├── .env ├── src └── pages │ ├── guides │ ├── dummy_metrics_api │ │ └── index.md │ ├── product-hierarchy │ │ └── index.md │ ├── using_postman │ │ └── index.md │ ├── migrating │ │ └── index.md │ ├── sample-api-calls │ │ └── index.md │ ├── index.md │ └── get-started │ │ └── index.md │ ├── support │ ├── FAQ │ │ └── index.md │ ├── community │ │ └── index.md │ ├── contribute │ │ └── index.md │ ├── stack-overflow.png │ ├── experience_cloud.png │ └── index.md │ ├── api │ ├── 1.4.md │ └── index.md │ └── index.md ├── .yarnrc.yml ├── static ├── images │ ├── status-api-env.png │ ├── steps │ │ ├── add-api.png │ │ ├── key-pair.png │ │ ├── choose-api.png │ │ ├── credentials.png │ │ ├── jwt-result.png │ │ ├── new-project.png │ │ ├── generate-jwt.png │ │ ├── profile-choose.png │ │ ├── key-pair-download.png │ │ ├── generate-access-token.png │ │ └── oauth-credential-selection.png │ ├── status-api-testing.png │ └── status-api-collection.png ├── postman-collection-and-env.zip ├── code │ ├── Node │ │ ├── locales.js │ │ ├── messages.js │ │ ├── regions.js │ │ ├── eventtypes.js │ │ ├── clouds.js │ │ ├── products.js │ │ ├── messagesbylocale.js │ │ ├── event.js │ │ ├── incident.js │ │ ├── scheduled.js │ │ └── maintenance.js │ └── JS │ │ ├── locales.js │ │ ├── messages.js │ │ ├── regions.js │ │ ├── eventtypes.js │ │ ├── clouds.js │ │ ├── products.js │ │ ├── messagesbylocale.js │ │ ├── event.js │ │ ├── incident.js │ │ ├── scheduled.js │ │ └── maintenance.js ├── petstore.json └── statusapi-spec.yaml ├── COPYRIGHT ├── .env.example ├── .github ├── super-linter.env ├── ISSUE_TEMPLATE │ ├── config.yml │ ├── missing_content.yaml │ ├── site_feature.yaml │ ├── incorrect_topic.yaml │ └── site_bug.yaml ├── dependabot.yml ├── ISSUE_TEMPLATE.md ├── workflows │ ├── deploy.yml │ ├── github-pages.yml │ └── test-pull-request.yml ├── linters │ ├── .yaml-lint.yml │ └── .markdownlint.yml ├── PULL_REQUEST_TEMPLATE.md └── CONTRIBUTING.md ├── .gitignore ├── package.json ├── gatsby-config.js ├── README.md ├── CODE_OF_CONDUCT.md └── LICENSE /.env: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/pages/guides/dummy_metrics_api/index.md: -------------------------------------------------------------------------------- 1 | # Dummy Metrics API 2 | -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- 1 | nodeLinker: node-modules 2 | 3 | yarnPath: .yarn/releases/yarn-3.3.0.cjs 4 | -------------------------------------------------------------------------------- /src/pages/support/FAQ/index.md: -------------------------------------------------------------------------------- 1 | # FAQ 2 | 3 | ## All questions resolved 4 | 5 | Lorem ipsum -------------------------------------------------------------------------------- /src/pages/support/community/index.md: -------------------------------------------------------------------------------- 1 | # Community 2 | 3 | ## We are here to help 4 | 5 | Lorem ipsum -------------------------------------------------------------------------------- /src/pages/support/contribute/index.md: -------------------------------------------------------------------------------- 1 | # Contribute 2 | 3 | ## How to contribute ? 4 | 5 | Lorem ipsum -------------------------------------------------------------------------------- /static/images/status-api-env.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/status-api-env.png -------------------------------------------------------------------------------- /static/images/steps/add-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/add-api.png -------------------------------------------------------------------------------- /static/images/steps/key-pair.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/key-pair.png -------------------------------------------------------------------------------- /static/images/steps/choose-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/choose-api.png -------------------------------------------------------------------------------- /static/images/steps/credentials.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/credentials.png -------------------------------------------------------------------------------- /static/images/steps/jwt-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/jwt-result.png -------------------------------------------------------------------------------- /static/images/steps/new-project.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/new-project.png -------------------------------------------------------------------------------- /src/pages/support/stack-overflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/src/pages/support/stack-overflow.png -------------------------------------------------------------------------------- /static/images/status-api-testing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/status-api-testing.png -------------------------------------------------------------------------------- /static/images/steps/generate-jwt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/generate-jwt.png -------------------------------------------------------------------------------- /static/postman-collection-and-env.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/postman-collection-and-env.zip -------------------------------------------------------------------------------- /src/pages/support/experience_cloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/src/pages/support/experience_cloud.png -------------------------------------------------------------------------------- /static/images/status-api-collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/status-api-collection.png -------------------------------------------------------------------------------- /static/images/steps/profile-choose.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/profile-choose.png -------------------------------------------------------------------------------- /static/images/steps/key-pair-download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/key-pair-download.png -------------------------------------------------------------------------------- /static/images/steps/generate-access-token.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/generate-access-token.png -------------------------------------------------------------------------------- /src/pages/api/1.4.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Adobe Status API Spec 1.0 3 | description: Adobe Status API Spec 1.0 4 | openAPISpec: /statusapi-spec.yaml 5 | --- 6 | -------------------------------------------------------------------------------- /src/pages/api/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Adobe Status API Spec 1.0 3 | description: Adobe Status API Spec 1.0 4 | openAPISpec: /statusapi-spec.yaml 5 | --- 6 | -------------------------------------------------------------------------------- /static/images/steps/oauth-credential-selection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AdobeDocs/adobe-status/main/static/images/steps/oauth-credential-selection.png -------------------------------------------------------------------------------- /COPYRIGHT: -------------------------------------------------------------------------------- 1 | © Copyright 2015-2020 Adobe. All rights reserved. 2 | 3 | Adobe holds the copyright for all the files found in this repository. 4 | 5 | See the LICENSE file for licensing information. -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | REPO_GITHUB_TOKEN=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 2 | REPO_OWNER=adobe-rajat 3 | REPO_NAME=adobe-status 4 | REPO_BRANCH=main 5 | -------------------------------------------------------------------------------- /.github/super-linter.env: -------------------------------------------------------------------------------- 1 | IGNORE_GITIGNORED_FILES=true 2 | VALIDATE_GITLEAKS=true 3 | VALIDATE_MARKDOWN=true 4 | MARKDOWN_CONFIG_FILE=.markdownlint.yml 5 | VALIDATE_YAML=true 6 | VALIDATE_JSON=true 7 | -------------------------------------------------------------------------------- /static/code/Node/locales.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/locales?api_key=${API_KEY}`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/Node/messages.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/messages?api_key=${API_KEY}`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/Node/regions.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/regions?api_key=${API_KEY}`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/Node/eventtypes.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/eventTypes?api_key=${API_KEY}`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/Node/clouds.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/clouds?api_key=${API_KEY}&cloudId=`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/Node/products.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/products?api_key=${API_KEY}&cloudId=&productId=`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | --- 2 | blank_issues_enabled: false 3 | contact_links: 4 | - name: Help Center 5 | url: https://helpx.adobe.com/support.html 6 | about: Find help with issues unrelated to documentation here. 7 | - name: Community resources 8 | url: https://developer.adobe.com/open 9 | about: Find more resources here. 10 | - name: Adobe Developer Support 11 | url: https://developer.adobe.com/developer-support 12 | about: Ask and answer questions. 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .editorconfig 2 | .idea 3 | .DS_Store 4 | .vscode/* 5 | 6 | # npm yarn 7 | node_modules 8 | package.lock 9 | yarn-error.log 10 | .pnp.* 11 | .yarn/* 12 | 13 | # keep in repo 14 | !.gitignore 15 | !.yarn.lock 16 | !.yarnrc.yml 17 | !.yarn/patches 18 | !.yarn/plugins 19 | !.yarn/releases 20 | !.yarn/sdks 21 | !.yarn/versions 22 | 23 | # gatsby files 24 | .env 25 | .cache 26 | public 27 | 28 | # cypress 29 | cypress/videos 30 | cypress/screenshots 31 | 32 | # lerna 33 | lerna-debug.log -------------------------------------------------------------------------------- /static/code/JS/locales.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/locales?api_key=${API_KEY}`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/JS/messages.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/messages?api_key=${API_KEY}`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/JS/regions.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/regions?api_key=${API_KEY}`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/JS/eventtypes.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/eventTypes?api_key=${API_KEY}`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/JS/clouds.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/clouds?api_key=${API_KEY}&cloudId=`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/Node/messagesbylocale.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | const LOCALE = 'es'; // update needed locale 4 | 5 | const options = { 6 | 'method': 'GET', 7 | 'url': `https://status.adobe.io/api/v1/messages/${LOCALE}?api_key=${API_KEY}`, 8 | 'headers': { 9 | 'Authorization': 'Bearer ' 10 | } 11 | }; 12 | request(options, function (error, response) { 13 | if (error) throw new Error(error); 14 | console.log(response.body); 15 | }); 16 | -------------------------------------------------------------------------------- /static/code/JS/products.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/products?api_key=${API_KEY}&cloudId=&productId=`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/JS/messagesbylocale.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | const LOCALE = 'es'; // update needed locale 5 | 6 | const requestOptions = { 7 | method: 'GET', 8 | headers: myHeaders, 9 | redirect: 'follow' 10 | }; 11 | 12 | fetch(`https://status.adobe.io/api/v1/messages/${LOCALE}?api_key=${API_KEY}`, requestOptions) 13 | .then(response => response.text()) 14 | .then(result => console.log(result)) 15 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/Node/event.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/events?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | # Enable version updates for npm 4 | - package-ecosystem: "npm" 5 | # Look for `package.json` and `lock` files in the `root` directory 6 | directory: "/" 7 | # Check the npm registry for updates every day (weekdays) 8 | schedule: 9 | interval: "daily" 10 | allow: 11 | - dependency-name: "@adobe/gatsby-theme-aio" 12 | versioning-strategy: increase 13 | open-pull-requests-limit: 25 14 | labels: 15 | - "dependencies" 16 | ignore: 17 | # Ignore updates to package 18 | - dependency-name: "gatsby" 19 | -------------------------------------------------------------------------------- /static/code/Node/incident.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/events/incidents?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/Node/scheduled.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/events/scheduled?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/Node/maintenance.js: -------------------------------------------------------------------------------- 1 | const request = require('request'); 2 | const API_KEY = ''; 3 | 4 | const options = { 5 | 'method': 'GET', 6 | 'url': `https://status.adobe.io/api/v1/events/maintenance?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, 7 | 'headers': { 8 | 'Authorization': 'Bearer ' 9 | } 10 | }; 11 | request(options, function (error, response) { 12 | if (error) throw new Error(error); 13 | console.log(response.body); 14 | }); 15 | -------------------------------------------------------------------------------- /static/code/JS/event.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/events?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); 15 | -------------------------------------------------------------------------------- /static/code/JS/incident.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/events/incidents?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/JS/scheduled.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io//api/v1/events/scheduled?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /static/code/JS/maintenance.js: -------------------------------------------------------------------------------- 1 | const myHeaders = new Headers(); 2 | myHeaders.append("Authorization", "Bearer "); 3 | const API_KEY = ''; 4 | 5 | const requestOptions = { 6 | method: 'GET', 7 | headers: myHeaders, 8 | redirect: 'follow' 9 | }; 10 | 11 | fetch(`https://status.adobe.io/api/v1/events/maintenance?api_key=${API_KEY}&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=`, requestOptions) 12 | .then(response => response.text()) 13 | .then(result => console.log(result)) 14 | .catch(error => console.log('error', error)); -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ### Expected Behaviour 5 | 6 | ### Actual Behaviour 7 | 8 | ### Reproduce Scenario (including but not limited to) 9 | 10 | #### Steps to Reproduce 11 | 12 | #### Platform and Version 13 | 14 | #### Sample Code that illustrates the problem 15 | 16 | #### Logs taken while reproducing problem 17 | -------------------------------------------------------------------------------- /src/pages/guides/product-hierarchy/index.md: -------------------------------------------------------------------------------- 1 | # Product Hierarchy 2 | Product taxonomy on status.adobe.com is hierarchical. 3 | 4 | Adobe Status registry follow this hierarchy - 5 | * Adobe Cloud 6 | * Product 7 | * Product Offering 8 | * Business Services 9 | * Regions 10 | * Environments (Where applicable) 11 | 12 | You will need to call Clouds API to get a list of all Clouds and Products and use those ids to call either the Registry API’s or the Events API’s. 13 | 14 | Registry API’s will provide taxonomy details like Product Offerings, Business Services, Regions, Environments, Locales and Event canned Messages. Events API’s will provide events details like ongoing events, events from the past 40 days, and future maintenances, for all Adobe Clouds and Products. The parameters that you can use to call these APIs are defined in the API Endpoint Reference document. 15 | -------------------------------------------------------------------------------- /src/pages/guides/using_postman/index.md: -------------------------------------------------------------------------------- 1 | # Postman Collection 2 | 3 | - Download Status API postman collection and environment variable from here - [Postman Collection](/postman-collection-and-env.zip) 4 | - Import both collection and environment variables into your postman 5 | - Replace below credentials with yours and run collection endpoints 6 | - CLIENT_ID, TECHNICAL_ACCOUNT_ID , TECHNICAL_ACCOUNT_ID and CLIENT_SECRET 7 | - PRIVATE_KEY – Replace private key which is obtained during the Adobe Status API onboarding in the developer console 8 | 9 | ## Environment Variable Reference 10 | 11 | ![alt text](../../../../static/images/status-api-env.png "Adobe Status API Environment Variable") 12 | 13 | ## Status API Postman Collection Reference 14 | 15 | ![alt text](../../../../static/images/status-api-collection.png "Adobe Status API Collection") 16 | ![alt text](../../../../static/images/status-api-testing.png "Adobe Status API Collection Endpoint Validation") 17 | 18 | -------------------------------------------------------------------------------- /src/pages/guides/migrating/index.md: -------------------------------------------------------------------------------- 1 | # Migrating 2 | 3 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis eleifend ornare purus, vel dapibus augue suscipit in. Nam blandit vitae ante et auctor. Donec placerat egestas posuere. Aliquam erat volutpat. In condimentum massa eu pharetra porta. Nunc tempus massa sit amet nisl posuere sagittis. Mauris sit amet rhoncus neque. Phasellus ut vulputate est, vel auctor metus. 4 | 5 | Donec tincidunt turpis in congue vulputate. Suspendisse potenti. Phasellus feugiat eros sem, tristique sollicitudin lacus consectetur id. Cras tortor orci, venenatis ac vulputate sit amet, auctor sed ex. Ut vel convallis felis. Etiam luctus, diam sed venenatis tincidunt, ipsum turpis volutpat eros, nec interdum arcu mi molestie dolor. Donec id mauris sed odio mollis viverra sed lobortis quam. Aliquam mi metus, ultricies sagittis hendrerit eget, volutpat vel dui. Proin id urna hendrerit, scelerisque arcu sit amet, egestas neque. Sed fringilla odio tincidunt sapien malesuada facilisis. -------------------------------------------------------------------------------- /.github/workflows/deploy.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Deployment 3 | on: 4 | workflow_dispatch: 5 | inputs: 6 | env: 7 | description: "Deploy to (dev|prod|dev prod)" 8 | required: true 9 | default: "dev" 10 | clean: 11 | description: "Clean cache" 12 | required: true 13 | type: boolean 14 | default: false 15 | excludeSubfolder: 16 | description: "Exclude a subfolder from deletion" 17 | required: false 18 | default: "" 19 | index-mode: 20 | description: 'Type of indexing. "index" to push to Algolia, "console" for dry run.' 21 | required: true 22 | default: "index" 23 | type: choice 24 | options: 25 | - console 26 | - index 27 | jobs: 28 | deployment: 29 | name: Deployment 30 | uses: AdobeDocs/adp-devsite-workflow/.github/workflows/gatsby-deploy.yml@main 31 | secrets: inherit 32 | with: 33 | env: ${{ inputs.env }} 34 | clean: ${{ inputs.clean }} 35 | excludeSubfolder: ${{ inputs.excludeSubfolder }} 36 | index-mode: ${{ inputs.index-mode }} 37 | NODE_OPTIONS: "--max-old-space-size=8192" -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/missing_content.yaml: -------------------------------------------------------------------------------- 1 | name: Missing content 2 | description: Undocumented feature, service, command, API, UI component, procedure, etc. 3 | body: 4 | - type: markdown 5 | attributes: 6 | value: | 7 | Thank you for taking the time to report this issue! 8 | This request should only relate to the content of the developer.adobe.com website. 9 | Requests that do not comply with our Code of Conduct or do not contain enough information may be closed at the maintainers' discretion. 10 | - type: checkboxes 11 | attributes: 12 | label: Is there an existing issue for this? 13 | description: Please search to see if an issue already exists for the documentation you are requesting. 14 | options: 15 | - label: I have searched the existing issues 16 | required: true 17 | - type: textarea 18 | attributes: 19 | label: What's missing? 20 | placeholder: | 21 | - In the or ... 22 | - Missing explanation of how ... works. 23 | - Missing steps or guidelines for .... 24 | - Missing code samples to demonstrate .... 25 | - Something else ... 26 | validations: 27 | required: true 28 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/site_feature.yaml: -------------------------------------------------------------------------------- 1 | name: Site feature request 2 | description: Propose a new functionality or an improvement of the developer.adobe.com website or of the local development tools. 3 | body: 4 | - type: markdown 5 | attributes: 6 | value: | 7 | Thank you for taking the time to report this issue! 8 | This feature request should only relate to the developer.adobe.com website itself and its behavior. 9 | Requests that do not comply with our Code of Conduct or do not contain enough information may be closed at the maintainers' discretion. 10 | - type: checkboxes 11 | attributes: 12 | label: Is there an existing issue for this? 13 | description: Please search to see if an issue already exists for the feature you are requesting. 14 | options: 15 | - label: I have searched the existing issues 16 | required: true 17 | - type: textarea 18 | attributes: 19 | label: What feature should be added? 20 | validations: 21 | required: true 22 | - type: textarea 23 | attributes: 24 | label: What is the expected behavior? 25 | validations: 26 | required: true 27 | - type: textarea 28 | attributes: 29 | label: How will this feature improve the user experience? 30 | validations: 31 | required: true 32 | - type: textarea 33 | attributes: 34 | label: What would a solution for this issue look like? 35 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "adobe-status", 4 | "version": "1.0.0", 5 | "license": "Apache-2.0", 6 | "repository": { 7 | "type": "git", 8 | "url": "https://github.com/AdobeDocs/adobe-status" 9 | }, 10 | "author": { 11 | "name": "Vana Bharathi Raja", 12 | "url": "https://github.com/adobe-rajat" 13 | }, 14 | "dependencies": { 15 | "@adobe/gatsby-theme-aio": "^4.14.4", 16 | "gatsby": "4.22.0", 17 | "react": "^17.0.2", 18 | "react-dom": "^17.0.2" 19 | }, 20 | "scripts": { 21 | "start": "gatsby build && gatsby serve", 22 | "start:prefix": "gatsby build --prefix-paths && gatsby serve --prefix-paths", 23 | "dev": "gatsby develop", 24 | "dev:https": "gatsby develop --https --host localhost.corp.adobe.com --port 9000", 25 | "build": "gatsby build", 26 | "build:incremental": "GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES=true gatsby build --log-pages", 27 | "serve": "gatsby serve", 28 | "clean": "gatsby clean", 29 | "test:links": "remark src/pages --quiet --frail", 30 | "lint": "docker run --rm -e RUN_LOCAL=true --env-file '.github/super-linter.env' -v \"$PWD\":/tmp/lint github/super-linter:slim-v4.10.1" 31 | }, 32 | "remarkConfig": { 33 | "plugins": [ 34 | "remark-validate-links" 35 | ] 36 | }, 37 | "packageManager": "yarn@3.3.0", 38 | "devDependencies": { 39 | "remark-cli": "^11.0.0", 40 | "remark-validate-links": "^12.1.0" 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/incorrect_topic.yaml: -------------------------------------------------------------------------------- 1 | name: Incorrect or unclear topic 2 | description: "Unclear or incorrect documentation: ambiguous guidelines, wrong or obsolete examples, typos, etc." 3 | body: 4 | - type: markdown 5 | attributes: 6 | value: | 7 | Thank you for taking the time to report this issue! 8 | This request should only relate to the content of the developer.adobe.com website. 9 | Requests that do not comply with our Code of Conduct or do not contain enough information may be closed at the maintainers' discretion. 10 | - type: checkboxes 11 | attributes: 12 | label: Is there an existing issue for this? 13 | description: Please search to see if an issue already exists for the documentation you are requesting. 14 | options: 15 | - label: I have searched the existing issues 16 | required: true 17 | - type: input 18 | attributes: 19 | label: Which topic? 20 | description: A link to the topic that needs clarification or correction 21 | placeholder: "Example: https://developer.adobe.com/commerce/webapi/rest/use-rest/search-endpoint/" 22 | validations: 23 | required: true 24 | - type: textarea 25 | attributes: 26 | label: What's wrong with the content? 27 | validations: 28 | required: true 29 | - type: textarea 30 | attributes: 31 | label: What changes do you propose? 32 | - type: textarea 33 | attributes: 34 | label: Anything else that can help to cover this? 35 | -------------------------------------------------------------------------------- /src/pages/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Overview - Adobe Status API 3 | description: This is the overview page of Adobe Status API 4 | contributors: 5 | - https://github.com/adobe-rajat 6 | --- 7 | 8 | 9 | 10 | # Adobe Status 1.0 APIs 11 | 12 | The Adobe Status APIs are a collection of APIs that provide detailed information and real time updates about Adobe cloud products and services outage, disruption and maintenance events. 13 | 14 | 15 | 16 | #### Resources 17 | 18 | * [Quickstart Guide](/adobe-status/guides/) 19 | * [API Reference](/adobe-status/api/) 20 | * [Github Repo](https://github.com/AdobeDocs/dev-site) 21 | 22 | ## Overview 23 | 24 | The Adobe Status 1.0 APIs allow you to directly call Adobe's servers to query and view events just like on status.adobe.com UI. You can use these API's to integrate into your own monitoring system or dashboards to view real time events from Adobe Status that can be filtered based on Product, Product Offering, Region, Environment(where available), Locale and Event type. This documentation provides instructions on how to call Adobe's endpoints to return the desired data. 25 | 26 | Please check out the resources here. The documentation assumes that you have an intermediate understanding of Adobe Status. 27 | 28 | * [Quickstart Guide](/adobe-status/guides/) 29 | * [API Reference](/adobe-status/api/) 30 | * [Github Repo](https://github.com/AdobeDocs/dev-site) 31 | 32 | 33 | This documentation adheres to Adobe's Code of Conduct. Contributions are encouraged and appreciated. See Adobe's Code of Conduct and Contribution guidelines on GitHub for more information. 34 | -------------------------------------------------------------------------------- /.github/linters/.yaml-lint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ########################################### 3 | # These are the rules used for # 4 | # linting all the yaml files in the stack # 5 | # NOTE: # 6 | # You can disable line with: # 7 | # # yamllint disable-line # 8 | ########################################### 9 | rules: 10 | braces: 11 | level: warning 12 | min-spaces-inside: 0 13 | max-spaces-inside: 0 14 | min-spaces-inside-empty: 1 15 | max-spaces-inside-empty: 5 16 | brackets: 17 | level: warning 18 | min-spaces-inside: 0 19 | max-spaces-inside: 0 20 | min-spaces-inside-empty: 1 21 | max-spaces-inside-empty: 5 22 | colons: 23 | level: warning 24 | max-spaces-before: 0 25 | max-spaces-after: 1 26 | commas: 27 | level: warning 28 | max-spaces-before: 0 29 | min-spaces-after: 1 30 | max-spaces-after: 1 31 | comments: disable 32 | comments-indentation: disable 33 | document-end: disable 34 | document-start: 35 | level: warning 36 | present: true 37 | empty-lines: 38 | level: warning 39 | max: 2 40 | max-start: 0 41 | max-end: 0 42 | hyphens: 43 | level: warning 44 | max-spaces-after: 1 45 | indentation: 46 | level: warning 47 | spaces: consistent 48 | indent-sequences: true 49 | check-multi-line-strings: false 50 | key-duplicates: enable 51 | line-length: 52 | level: warning 53 | max: 100 54 | allow-non-breakable-words: true 55 | allow-non-breakable-inline-mappings: true 56 | new-line-at-end-of-file: disable 57 | new-lines: 58 | type: unix 59 | trailing-spaces: disable 60 | -------------------------------------------------------------------------------- /.github/linters/.markdownlint.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ########################### 3 | ########################### 4 | ## Markdown Linter rules ## 5 | ########################### 6 | ########################### 7 | 8 | # Linter rules doc: 9 | # - https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md 10 | # 11 | # Note: 12 | # To comment out a single error: 13 | # 14 | # any violations you want 15 | # 16 | # 17 | 18 | # Default state for all rules 19 | default: false 20 | 21 | ################# 22 | # Rules by tags # 23 | ################# 24 | blanks-around-fences: true # Fenced code blocks should be surrounded by blank lines 25 | blanks-around-headings: true # Headings should be surrounded by blank lines 26 | blanks-around-lists: true # Lists should be surrounded by blank lines 27 | code-block-style: 28 | style: "fenced" 29 | code-fence-style: 30 | style: "backtick" 31 | emphasis-style: 32 | style: "consistent" 33 | fenced-code-language: true # Fenced code blocks should have a language specified 34 | heading-start-left: true # Headings must start at the beginning of the line 35 | heading-style: 36 | style: "atx" 37 | hr-style: true # Horizontal rule style 38 | list-indent: true # Inconsistent indentation for list items at the same level 39 | no-empty-links: true 40 | no-missing-space-atx: true # No space after hash on atx style heading 41 | no-multiple-blanks: true # Multiple consecutive blank lines 42 | no-reversed-links: true 43 | no-space-in-code: true 44 | no-space-in-emphasis: true 45 | no-space-in-links: true 46 | no-trailing-spaces: true 47 | single-trailing-newline: true # Files should end with a single newline character 48 | strong-style: 49 | style: "consistent" 50 | ul-style: 51 | style: "consistent" 52 | -------------------------------------------------------------------------------- /.github/workflows/github-pages.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Github Pages 3 | on: 4 | push: 5 | branches: [main] 6 | jobs: 7 | build-and-deploy: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - name: Checkout 11 | uses: actions/checkout@v3 12 | - name: Yarn Install 13 | uses: bahmutov/npm-install@v1 14 | - name: Build 15 | run: | 16 | yarn build 17 | env: 18 | PREFIX_PATHS: true # works like --prefix-paths flag for 'gatsby build' 19 | PATH_PREFIX: ${{ github.event.repository.name }} 20 | ADOBE_LAUNCH_SRC: ${{ secrets.AIO_ADOBE_LAUNCH_SRC }} 21 | ADOBE_LAUNCH_SRC_INCLUDE_IN_DEVELOPMENT: ${{ secrets.ADOBE_LAUNCH_SRC_INCLUDE_IN_DEVELOPMENT }} 22 | REPO_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 23 | REPO_OWNER: ${{ github.event.repository.owner.login }} 24 | REPO_NAME: ${{ github.event.repository.name }} 25 | REPO_BRANCH: ${{ github.ref_name }} 26 | GOOGLE_OAUTH_CLIENT_ID: ${{ secrets.GOOGLE_OAUTH_CLIENT_ID }} 27 | GOOGLE_OAUTH_CLIENT_SECRET: ${{ secrets.GOOGLE_OAUTH_CLIENT_SECRET }} 28 | GOOGLE_DOCS_TOKEN: ${{ secrets.GOOGLE_DOCS_TOKEN }} 29 | GOOGLE_DOCS_FOLDER_ID: ${{ secrets.GOOGLE_DOCS_FOLDER_ID }} 30 | - name: Deploy to GH Pages 31 | uses: JamesIves/github-pages-deploy-action@v4 32 | with: 33 | token: ${{ secrets.GITHUB_TOKEN }} 34 | branch: gh-pages # The branch the action should deploy to. 35 | folder: public # The folder the action should deploy. 36 | clean: true # Automatically remove deleted files from deploy branch 37 | - name: GH Pages URL 38 | id: gh-pages-url 39 | run: | 40 | echo "View GH-Pages: $(https://adobedocs.github.io/${{ github.event.repository.name }})" 41 | -------------------------------------------------------------------------------- /gatsby-config.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright 2020 Adobe. All rights reserved. 3 | * This file is licensed to you under the Apache License, Version 2.0 (the "License"); 4 | * you may not use this file except in compliance with the License. You may obtain a copy 5 | * of the License at http://www.apache.org/licenses/LICENSE-2.0 6 | * 7 | * Unless required by applicable law or agreed to in writing, software distributed under 8 | * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS 9 | * OF ANY KIND, either express or implied. See the License for the specific language 10 | * governing permissions and limitations under the License. 11 | */ 12 | 13 | module.exports = { 14 | pathPrefix: process.env.PATH_PREFIX || '/adobe-status/', 15 | siteMetadata: { 16 | pages: [ 17 | { 18 | title: 'Adobe Status API', 19 | path: '/' 20 | }, 21 | { 22 | title: 'Guides', 23 | path: '/guides/' 24 | }, 25 | { 26 | title: 'API Reference', 27 | path: '/api/index.md' 28 | }, 29 | { 30 | title: 'Support', 31 | path: '/support/' 32 | } 33 | ], 34 | subPages: [ 35 | { 36 | title: 'Get Started', 37 | path: '/guides/get-started' 38 | }, 39 | { 40 | title: 'Product Hierarchy', 41 | path: '/guides/product-hierarchy/' 42 | }, 43 | { 44 | title: 'Sample API Calls', 45 | path: '/guides/sample-api-calls/' 46 | }, 47 | { 48 | title: 'Overview', 49 | path: '/support/', 50 | header: true, 51 | pages: [ 52 | { 53 | title: 'FAQ', 54 | path: '/support/' 55 | } 56 | ] 57 | } 58 | ] 59 | }, 60 | plugins: [`@adobe/gatsby-theme-aio`] 61 | }; 62 | -------------------------------------------------------------------------------- /src/pages/support/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Support - Status API 3 | description: This is the support page of the Status API 4 | --- 5 | 6 | 7 | 8 | # Adobe Status 1.0 API Support 9 | 10 | Find answers to frequently asked questions here. 11 | 12 | ## Do Adobe Status API's provide more information than what is available on status.adobe.com? 13 | 14 | No. Status API's provide the same information as status.adobe.com. Just like Status.adobe.com allows you to filter events on Cloud and Product pages, the same functionality is available via API's. API's provide you the flexibility to plug that filtered view into your internal dashboards. 15 | 16 | ## Do I need permissions to access Status API's? 17 | 18 | Yes. Your Organization needs to have at least one Adobe product entitlement and your Adobe Developer Console account should be entitled to a Adobe Product. If your account is correctly setup, you should be able to see and add Adobe Status API's to your project. 19 | 20 | ## What are the setups needed before I can call the API's? 21 | 22 | Please refer to the Guides -> Getting Started section of the Status API documentation. 23 | 24 | ## How can I get an understanding of Adobe Status product taxonomy? 25 | 26 | Please refer to the Guides -> Product Hierarchy section. 27 | 28 | ## Are there any sample code snippets that I can use? 29 | 30 | Yes. Please refer to the API Reference menu item for NodeJs and Python code snippets to generate OAuth access token. If you use Postman, you can refer to the Postman Collection section on API Reference for downloadable Postman collection and environment variable files. All API's come with CLI, Javascript, and NodeJS samples. 31 | 32 | ## How do I get more help if I run into issues? 33 | 34 | Please contact Adobe support [here](https://experienceleague.adobe.com/?support-tab=home#support). 35 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Description 4 | 5 | 6 | 7 | ## Related Issue 8 | 9 | 10 | 11 | 12 | 13 | 14 | ## Motivation and Context 15 | 16 | 17 | 18 | ## How Has This Been Tested? 19 | 20 | 21 | 22 | 23 | 24 | ## Screenshots (if appropriate): 25 | 26 | ## Types of changes 27 | 28 | 29 | 30 | - [ ] Bug fix (non-breaking change which fixes an issue) 31 | - [ ] New feature (non-breaking change which adds functionality) 32 | - [ ] Breaking change (fix or feature that would cause existing functionality to change) 33 | 34 | ## Checklist: 35 | 36 | 37 | 38 | 39 | - [ ] I have signed the [Adobe Open Source CLA](https://opensource.adobe.com/cla.html). 40 | - [ ] My code follows the code style of this project. 41 | - [ ] My change requires a change to the documentation. 42 | - [ ] I have updated the documentation accordingly. 43 | - [ ] I have read the **CONTRIBUTING** document. 44 | - [ ] I have added tests to cover my changes. 45 | - [ ] All new and existing tests passed. 46 | -------------------------------------------------------------------------------- /src/pages/guides/sample-api-calls/index.md: -------------------------------------------------------------------------------- 1 | # Sample API calls 2 | 3 | Gateway URL: https://status.adobe.io 4 | 5 | Base URL: https://status.adobe.io/api/v1/ 6 | 7 | API Key: StatusAdobeIOClient 8 | 9 | Example of a complete path for making an API call - 10 | 11 | ```bash 12 | curl --location --request GET 'https://status.adobe.io/api/v1/events?api_key= --header 'Authorization: Bearer ' 13 | ``` 14 | 15 | - Get Product id 16 | - Go to Registry -> Clouds 17 | - GET Product id - https://status.adobe.io/api/v1/clouds?api_key=StatusAdobeIOClient 18 | - Example 19 | 20 | ```bash 21 | curl --location --request GET 'https://status.adobe.io/api/v1/clouds?cloudId=503460&api_key= --header 'Authorization: Bearer ' 22 | ``` 23 | 24 | - For code samples in Javascript, CLI and Node JS - https://statusapi-doc-nld2.cloud.adobe.io/#tag/Registry 25 | 26 | - Get all ongoing events by Product 27 | - Go to Events -> All Events 28 | - GET events by Product id - https://status.adobe.io/api/v1/events?api_key=StatusAdobeIOClient&id={Product_ID} 29 | - Example 30 | 31 | ```bash 32 | curl --location --request GET 'https://status.adobe.io/api/v1/events?from=2022-11-02&to=2022-11-03&api_key=StatusAdobeIOClient&productIds=503462' --header 'Authorization: Bearer ' 33 | ``` 34 | 35 | - For code samples in Javascript, CLI and Node JS - https://statusapi-doc-nld2.cloud.adobe.io/#tag/Events 36 | - Get all localized event messages for an event 37 | - GET messages by locale - https://status.adobe.io/api/v1/messages/en?api_key=StatusAdobeIOClient&languageCode=en 38 | - Example 39 | 40 | ```bash 41 | curl --location --request GET 'https://status.adobe.io/api/v1/messages/en?languageCode=en&api_key= --header 'Authorization: Bearer ' 42 | ``` 43 | 44 | - For code samples in Javascript, CLI and Node JS - https://statusapi-doc-nld2.cloud.adobe.io/#tag/Registry/operation/messagesUsingGET_1 45 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing 2 | 3 | Thanks for choosing to contribute! 4 | 5 | The following are a set of guidelines to follow when contributing to this project. 6 | 7 | ## Code Of Conduct 8 | 9 | This project adheres to the Adobe [code of conduct](../CODE_OF_CONDUCT.md). By participating, 10 | you are expected to uphold this code. Please report unacceptable behavior to 11 | [Grp-opensourceoffice@adobe.com](mailto:Grp-opensourceoffice@adobe.com). 12 | 13 | ## Have A Question? 14 | 15 | Start by filing an issue. The existing committers on this project work to reach 16 | consensus around project direction and issue solutions within issue threads 17 | (when appropriate). 18 | 19 | ## Contributor License Agreement 20 | 21 | All third-party contributions to this project must be accompanied by a signed contributor 22 | license agreement. This gives Adobe permission to redistribute your contributions 23 | as part of the project. [Sign our CLA](https://opensource.adobe.com/cla.html). You 24 | only need to submit an Adobe CLA one time, so if you have submitted one previously, 25 | you are good to go! 26 | 27 | ## Code Reviews 28 | 29 | All submissions should come in the form of pull requests and need to be reviewed 30 | by project committers. Read [GitHub's pull request documentation](https://help.github.com/articles/about-pull-requests/) 31 | for more information on sending pull requests. 32 | 33 | Lastly, please follow the [pull request template](PULL_REQUEST_TEMPLATE.md) when 34 | submitting a pull request! 35 | 36 | ## From Contributor To Committer 37 | 38 | We love contributions from our community! If you'd like to go a step beyond contributor 39 | and become a committer with full write access and a say in the project, you must 40 | be invited to the project. The existing committers employ an internal nomination 41 | process that must reach lazy consensus (silence is approval) before invitations 42 | are issued. If you feel you are qualified and want to get more deeply involved, 43 | feel free to reach out to existing committers to have a conversation about that. 44 | 45 | ## Security Issues 46 | 47 | Security issues shouldn't be reported on this issue tracker. Instead, [file an issue to our security experts](https://helpx.adobe.com/security/alertus.html). 48 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/site_bug.yaml: -------------------------------------------------------------------------------- 1 | name: Site bug 2 | description: Something isn't working on developer.adobe.com or when building the website locally. 3 | labels: ["bug"] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: | 8 | Thank you for taking the time to report this issue! 9 | This bug report should only relate to the developer.adobe.com website itself or non-content issues such as rendering, 404 pages, or other unexpected behavior. 10 | Issues that do not comply with our Code of Conduct or do not contain enough information may be closed at the maintainers' discretion. 11 | SECURITY DISCLOSURE: If this is a security disclosure please follow the guidelines in CONTRIBUTING.md. This helps keep folks from accidentally releasing vulnerabilities before the maintainers get a chance to fix the issue. 12 | - type: checkboxes 13 | attributes: 14 | label: Is there an existing issue for this? 15 | description: Please search to see if an issue already exists for the bug you encountered. 16 | options: 17 | - label: I have searched the existing issues 18 | required: true 19 | - type: textarea 20 | attributes: 21 | label: Expected behavior 22 | description: | 23 | Tell us what you expected to happen. 24 | validations: 25 | required: true 26 | - type: textarea 27 | attributes: 28 | label: Actual behavior 29 | description: | 30 | Tell us what happened. Include error messages and issues. 31 | validations: 32 | required: true 33 | - type: textarea 34 | attributes: 35 | label: Steps to reproduce 36 | description: | 37 | Provide a set of clear steps to reproduce this bug. 38 | validations: 39 | required: true 40 | - type: textarea 41 | attributes: 42 | label: Environment 43 | description: | 44 | Describe your environment such as platform, browser, and versions. 45 | Provide all the details that will help us to reproduce the bug. 46 | value: | 47 | - Browser: 48 | - OS: 49 | validations: 50 | required: true 51 | - type: textarea 52 | attributes: 53 | label: Sample code 54 | description: Sample Code that illustrates the problem 55 | - type: textarea 56 | attributes: 57 | label: Logs 58 | description: Logs taken while reproducing problem 59 | -------------------------------------------------------------------------------- /.github/workflows/test-pull-request.yml: -------------------------------------------------------------------------------- 1 | --- 2 | ########################### 3 | ########################### 4 | ## Pull request testing ## 5 | ########################### 6 | ########################### 7 | name: Latest Pull Request 8 | 9 | # Documentation: 10 | # - Workflow: https://help.github.com/en/articles/workflow-syntax-for-github-actions 11 | # - SuperLinter: https://github.com/github/super-linter 12 | # - Markdown linter: https://github.com/DavidAnson/markdownlint 13 | # - Link validation: https://github.com/remarkjs/remark-validate-links 14 | 15 | ###################################################### 16 | # Start the job on a pull request to the main branch # 17 | ###################################################### 18 | on: 19 | pull_request: 20 | branches: [main] 21 | 22 | ############### 23 | # Set the Job # 24 | ############### 25 | jobs: 26 | validate: 27 | # Set the agent to run on 28 | runs-on: ubuntu-latest 29 | 30 | ################## 31 | # Load all steps # 32 | ################## 33 | steps: 34 | ########################## 35 | # Checkout the code base # 36 | ########################## 37 | - name: Checkout Code 38 | uses: actions/checkout@v3 39 | with: 40 | # Full git history is needed to get a proper list of changed files 41 | # within `super-linter` 42 | fetch-depth: 0 43 | - run: cat ".github/super-linter.env" >> "$GITHUB_ENV" 44 | 45 | ################################ 46 | # Run Linters against code base # 47 | ################################ 48 | - name: Lint Code Base 49 | # 50 | # Use full version number to avoid cases when a next 51 | # released version is buggy 52 | # About slim image: https://github.com/github/super-linter#slim-image 53 | uses: github/super-linter/slim@v4.10.1 54 | env: 55 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 56 | DEFAULT_BRANCH: main 57 | VALIDATE_ALL_CODEBASE: false 58 | VALIDATE_GITHUB_ACTIONS: true 59 | 60 | - name: Setup Node v20 for Yarn v3 61 | uses: actions/setup-node@v3 62 | with: 63 | node-version: "20.19.5" # Current LTS version 64 | 65 | - name: Enable Corepack for Yarn v3 66 | run: corepack enable 67 | 68 | - name: Install dependencies 69 | run: yarn install 70 | 71 | - name: Check internal links 72 | run: yarn test:links 73 | 74 | - name: Build site 75 | if: ${{ success() }} 76 | run: yarn build -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Adobe I/O Documentation Template 2 | 3 | This is a site template built with the [Adobe I/O Theme](https://github.com/adobe/aio-theme). 4 | 5 | View the [demo](https://adobedocs.github.io/dev-site-documentation-template/) running on Github Pages. 6 | 7 | ## Where to ask for help 8 | 9 | The slack channel #adobeio-onsite-onboarding is our main point of contact for help. Feel free to join the channel and ask any questions. 10 | 11 | ## How to develop 12 | 13 | For local development, simply use : 14 | 15 | ```shell 16 | $ yarn install 17 | $ yarn dev 18 | ``` 19 | 20 | For the developer documentation, read the following sections on how to: 21 | 22 | - [Arrange the structure content of your docs](https://github.com/adobe/aio-theme#content-structure) 23 | - [Link to pages](https://github.com/adobe/aio-theme#links) 24 | - [Use assets](https://github.com/adobe/aio-theme#assets) 25 | - [Set global Navigation](https://github.com/adobe/aio-theme#global-navigation) 26 | - [Set side navigation](https://github.com/adobe/aio-theme#side-navigation) 27 | - [Use content blocks](https://github.com/adobe/aio-theme#jsx-blocks) 28 | - [Use Markdown](https://github.com/adobe/aio-theme#writing-enhanced-markdown) 29 | 30 | For more in-depth [instructions](https://github.com/adobe/aio-theme#getting-started). 31 | 32 | ## How to test 33 | 34 | - To run the configured linters locally (requires [Docker](https://www.docker.com/)): 35 | 36 | ```shell 37 | yarn lint 38 | ``` 39 | 40 | > NOTE If you cannot use Docker, you can install the linters separately. In `.github/super-linter.env`, see which linters are enabled, and find the tools being used for linting in [Supported Linters](https://github.com/github/super-linter#supported-linters). 41 | 42 | - To check internal links locally 43 | 44 | ```shell 45 | yarn test:links 46 | ``` 47 | 48 | - To build and preview locally: 49 | 50 | ```shell 51 | yarn start 52 | ``` 53 | 54 | ## How to deploy 55 | 56 | For any team that wishes to deploy to the developer.adobe.com and developer-stage.adobe.com websites, they must be in contact with the dev-site team. Teams will be given a path that will follow the pattern `developer.adobe.com/{product}/`. This will allow doc developers to setup their subpaths to look something like: 57 | 58 | ```text 59 | developer.adobe.com/{product}/docs 60 | developer.adobe.com/{product}/community 61 | developer.adobe.com/{product}/community/code_of_conduct 62 | developer.adobe.com/{product}/community/contribute 63 | ``` 64 | 65 | ### Launching a deploy 66 | 67 | You can deploy using the GitHub actions deploy workflow see [deploy instructions](https://github.com/adobe/aio-theme#deploy-to-azure-storage-static-websites). 68 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Adobe Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, gender identity and expression, level of experience, 9 | nationality, personal appearance, race, religion, or sexual identity and 10 | orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language. 18 | * Being respectful of differing viewpoints and experiences. 19 | * Gracefully accepting constructive criticism. 20 | * Focusing on what is best for the community. 21 | * Showing empathy towards other community members. 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances. 27 | * Trolling, insulting/derogatory comments, and personal or political attacks. 28 | * Public or private harassment. 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission. 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting. 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at Grp-opensourceoffice@adobe.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at [https://contributor-covenant.org/version/1/4][version]. 72 | 73 | [homepage]: https://contributor-covenant.org 74 | [version]: https://contributor-covenant.org/version/1/4/ -------------------------------------------------------------------------------- /src/pages/guides/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Guides - Status API 3 | description: This is the guides overview page of the Status API 4 | --- 5 | 6 | # Getting started with the Adobe Status API 7 | 8 | There are several steps to take before using the Status APIs. 9 | 10 | * Permissions: Configure permissions for the developer in the Adobe Admin Console. 11 | * API Client: Create a client configuration in the Adobe Developer Console. 12 | * Authentication: Obtain the necessary credentials to send data to Adobe. 13 | 14 | Once the setup is complete you can refer to Product hierarchy and Sample API calls from the left menu. 15 | 16 | ## Permissions 17 | 18 | Before starting to use the Status API, you must make sure that your account has the correct permissions to send requests. Even if you successfully authenticate with an Adobe ID, you cannot make requests to Adobe unless your account contains the correct organization permissions. 19 | 20 | Your organization needs to have entitlements for at least one Adobe product to be able to access Adobe APIs. At this time, only Enterprise accounts have access to Status APIs. Team accounts do not have permission to access the APIs. 21 | 22 | If your organization has Enterprise licenses, please follow these steps to assign product profile admin permissions to the developer who will access Status APIs: 23 | 24 | 1. Navigate to adminconsole.adobe.com. 25 | 2. Check the organization name in the top right to make sure that you are logged in to the correct company. 26 | 3. Click Products, then click on any Adobe product that you want to assign permissions to. 27 | 4. Select the desired product profile, or create a new product profile. 28 | 5. Under the Permissions tab, assign the desired permissions to the product profile. 29 | 6. Once the desired permissions are set, click the Developers tab. 30 | 7. Click Add Developer, and enter the user name or email address that you want to assign the permissions to. 31 | 8. Click Save. 32 | See Managing Developers in the Enterprise Admin user guide for more information. 33 | 34 | ## API Client 35 | 36 | Once you are a developer for an Adobe product profile, you can create a Status API client in the Adobe Developer Console. 37 | 38 | 1. Log in to [Adobe Developer Console](https://developer.adobe.com/console/home) 39 | 2. Create a new project![New Project](../../../static/images/steps/new-project.png "New Project") 40 | 3. Add Adobe Status API to the project. Adobe Status API card will show up if there is at least one entitlement for Adobe products/services in your organization and administrative permission for your org to create integrations. ![Add API](../../../static/images/steps/add-api.png "Add API") ![Choose API](../../../static/images/steps/choose-api.png "Choose API") 41 | 42 | To learn more about creating projects in Adobe Developer Console, read the [Console getting started guide](https://developer.adobe.com/developer-console/docs/guides/getting-started/). 43 | At this point, you decide how you want to authenticate with the API. 44 | 45 | ## Setting up the OAuth Server-to-Server credential 46 | 47 | Status API needs an OAuth token for authentication. Follow the below steps to generate an OAuth Server-to-Server credential. 48 | 49 | ### Credential Name 50 | 51 | An admin in your organization can manage all OAuth Server-to-Server credentials by visiting the [Adobe Admin Console](https://adminconsole.adobe.com) > Users > API credentials. To find the correct API credential easily on the Admin Console, you can provide your OAuth Server-to-Server credential a name during credential setup. 52 | 53 | 1. Choose the type of authentication as OAuth Server-to-Server and set the credential name![OAuth Credential](../../../static/images/steps/oauth-credential-selection.png "OAuth Credential") 54 | 55 | #### Note: This name can be modified later in your project by visiting the OAuth Server-to-Server credential overview page. 56 | 57 | 2. Select the product profile and save the configured Status API![Profile Choose](../../../static/images/steps/profile-choose.png "Profile Choose") 58 | 3. Generating access tokens for experimentation with the OAuth Server-to-Server credential is straightforward. You can use the 'Generate access token' button on the credential overview page or copy the cURL command and use the command line to generate an access token for quick use. 59 | 60 | |Parameter|Mandatory|Description| 61 | |---|---|---| 62 | |`grant_type`|Yes|Value should always be `client_credentials`| 63 | |`client_id`|Yes|The Client ID obtained from the [Adobe Developer Console](/console)| 64 | |`client_secret`|Yes|The value of client secret obtained from the [Adobe Developer Console](/console)| 65 | |`scopes`|Yes|The list of comma-separated scopes you are requesting. To see the scopes available to your credential, visit your project your the [Adobe Developer Console](/console)| 66 | 67 | ```curl 68 | curl -X POST 'https://ims-na1.adobelogin.com/ims/token/v3?client_id={CLIENT_ID}' \ 69 | -H 'Content-Type: application/x-www-form-urlencoded' \ 70 | -d 'client_secret={CLIENT_SECRET}&grant_type=client_credentials&scope={SCOPES}' 71 | ``` 72 | 73 | ### Sample Response 74 | 75 | ```json 76 | { 77 | "access_token": "{ACCESS_TOKEN}", 78 | "token_type": "bearer", 79 | "expires_in": 86399 80 | } 81 | ``` 82 | 83 | ### Refreshing access tokens 84 | 85 | The access token becomes invalid after its expiry time, `expires_in` represents the expiry time which is usually 24 hours from the token generation. You do not need a refresh token for OAuth Server-to-Server credentials. You can always request a new access token directly using your *client_id*, *client_secret*, and *scopes*. 86 | 87 | ![](../../../static/images/steps/generate-access-token.png) 88 | 89 | ### Generating access tokens using standard OAuth2 libraries 90 | 91 | We recommend using a standard OAuth 2.0 library to implement your application's access token generation logic. The OAuth community site https://oauth.net has a huge list of community-maintained OAuth2 libraries. Some widely known and maintained OAuth2 libraries from that list are - 92 | 93 | 1. [PassportJS](https://github.com/jaredhanson/passport) (Node.js) 94 | 2. [Spring Security](https://spring.io/projects/spring-security) (Java) 95 | 3. [Authlib](https://github.com/lepture/authlib) (Python) 96 | 4. View more libraries at https://oauth.net/code/ 97 | 98 | 99 | 100 | Using industry-standard libraries is the quickest and most secure way of integrating with OAuth. We recommend developers diligently pick the OAuth 2.0 library that works best for their application. 101 | 102 | ## Rotating client secrets 103 | 104 | The OAuth Server-to-Server credentials allow you to rotate your client secret as needed. 105 | 106 | Rotating your application's client secrets is highly recommended in case of a leak or unauthorized access. Furthermore, rotating client secrets periodically is an industry-standard practice that strengthens your application security posture. Follow [Rotating client secrets](https://developer.adobe.com/developer-console/docs/guides/authentication/ServerToServerAuthentication/implementation/#rotating-client-secrets) guide for more information. 107 | 108 | ## Migration from JWT to OAuth 2.0 109 | 110 | Log in to the Adobe Developer Console and open the [Projects Tab](https://developer.adobe.com/console/projects) to find out which of your Adobe applications and integrations are using the Service Account (JWT) credential. If any of your project's integration is using the JWT credential, then follow the [Migration Guide](https://developer.adobe.com/developer-console/docs/guides/authentication/ServerToServerAuthentication/migration/#migration-overview) to update your integration to OAuth Server-to-Server credentials. 111 | -------------------------------------------------------------------------------- /src/pages/guides/get-started/index.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: Guides - Status API 3 | description: This is the guides overview page of the Status API 4 | --- 5 | 6 | # Getting started with the Adobe Status API 7 | 8 | There are several steps to take before using the Status APIs. 9 | 10 | * Permissions: Configure permissions for the developer in the Adobe Admin Console. 11 | * API Client: Create a client configuration in the Adobe Developer Console. 12 | * Authentication: Obtain the necessary credentials to send data to Adobe. 13 | 14 | Once the setup is complete you can refer to Product hierarchy and Sample API calls from the left menu. 15 | 16 | ## Permissions 17 | 18 | Before starting to use the Status API, you must make sure that your account has the correct permissions to send requests. Even if you successfully authenticate with an Adobe ID, you cannot make requests to Adobe unless your account contains the correct organization permissions. 19 | 20 | Your organization needs to have entitlements for at least one Adobe product to be able to access Adobe APIs. At this time, only Enterprise accounts have access to Status APIs. Team accounts do not have permission to access the APIs. 21 | 22 | If your organization has Enterprise licenses, please follow these steps to assign product profile admin permissions to the developer who will access Status APIs: 23 | 24 | 1. Navigate to adminconsole.adobe.com. 25 | 2. Check the organization name in the top right to make sure that you are logged in to the correct company. 26 | 3. Click Products, then click on any Adobe product that you want to assign permissions to. 27 | 4. Select the desired product profile, or create a new product profile. 28 | 5. Under the Permissions tab, assign the desired permissions to the product profile. 29 | 6. Once the desired permissions are set, click the Developers tab. 30 | 7. Click Add Developer, and enter the user name or email address that you want to assign the permissions to. 31 | 8. Click Save. 32 | See Managing Developers in the Enterprise Admin user guide for more information. 33 | 34 | ## API Client 35 | 36 | Once you are a developer for an Adobe product profile, you can create a Status API client in the Adobe Developer Console. 37 | 38 | 1. Log in to [Adobe Developer Console](https://developer.adobe.com/console/home) 39 | 2. Create a new project![New Project](../../../../static/images/steps/new-project.png "New Project") 40 | 3. Add Adobe Status API to the project. Adobe Status API card will show up if there is at least one entitlement for Adobe products/services in your organization and administrative permission for your org to create integrations. ![Add API](../../../../static/images/steps/add-api.png "Add API") ![Choose API](../../../../static/images/steps/choose-api.png "Choose API") 41 | 42 | To learn more about creating projects in Adobe Developer Console, read the [Console getting started guide](https://developer.adobe.com/developer-console/docs/guides/getting-started/). 43 | At this point, you decide how you want to authenticate with the API. 44 | 45 | ## Setting up the OAuth Server-to-Server credential 46 | 47 | Status API needs an OAuth token for authentication. Follow the below steps to generate an OAuth Server-to-Server credential. 48 | 49 | ### Credential Name 50 | 51 | An admin in your organization can manage all OAuth Server-to-Server credentials by visiting the [Adobe Admin Console](https://adminconsole.adobe.com) > Users > API credentials. To find the correct API credential easily on the Admin Console, you can provide your OAuth Server-to-Server credential a name during credential setup. 52 | 53 | 1. Choose the type of authentication as OAuth Server-to-Server and set the credential name![OAuth Credential](../../../../static/images/steps/oauth-credential-selection.png "OAuth Credential") 54 | 55 | #### Note: This name can be modified later in your project by visiting the OAuth Server-to-Server credential overview page. 56 | 57 | 2. Select the product profile and save the configured Status API![Profile Choose](../../../../static/images/steps/profile-choose.png "Profile Choose") 58 | 3. Generating access tokens for experimentation with the OAuth Server-to-Server credential is straightforward. You can use the 'Generate access token' button on the credential overview page or copy the cURL command and use the command line to generate an access token for quick use. 59 | 60 | |Parameter|Mandatory|Description| 61 | |---|---|---| 62 | |`grant_type`|Yes|Value should always be `client_credentials`| 63 | |`client_id`|Yes|The Client ID obtained from the [Adobe Developer Console](/console)| 64 | |`client_secret`|Yes|The value of client secret obtained from the [Adobe Developer Console](/console)| 65 | |`scopes`|Yes|The list of comma-separated scopes you are requesting. To see the scopes available to your credential, visit your project your the [Adobe Developer Console](/console)| 66 | 67 | ```curl 68 | curl -X POST 'https://ims-na1.adobelogin.com/ims/token/v3?client_id={CLIENT_ID}' \ 69 | -H 'Content-Type: application/x-www-form-urlencoded' \ 70 | -d 'client_secret={CLIENT_SECRET}&grant_type=client_credentials&scope={SCOPES}' 71 | ``` 72 | 73 | ### Sample Response 74 | 75 | ```json 76 | { 77 | "access_token": "{ACCESS_TOKEN}", 78 | "token_type": "bearer", 79 | "expires_in": 86399 80 | } 81 | ``` 82 | 83 | ### Refreshing access tokens 84 | 85 | The access token becomes invalid after its expiry time, `expires_in` represents the expiry time which is usually 24 hours from the token generation. You do not need a refresh token for OAuth Server-to-Server credentials. You can always request a new access token directly using your *client_id*, *client_secret*, and *scopes*. 86 | 87 | ![](../../../../static/images/steps/generate-access-token.png) 88 | 89 | ### Generating access tokens using standard OAuth2 libraries 90 | 91 | We recommend using a standard OAuth 2.0 library to implement your application's access token generation logic. The OAuth community site https://oauth.net has a huge list of community-maintained OAuth2 libraries. Some widely known and maintained OAuth2 libraries from that list are - 92 | 93 | 1. [PassportJS](https://github.com/jaredhanson/passport) (Node.js) 94 | 2. [Spring Security](https://spring.io/projects/spring-security) (Java) 95 | 3. [Authlib](https://github.com/lepture/authlib) (Python) 96 | 4. View more libraries at https://oauth.net/code/ 97 | 98 | 99 | 100 | Using industry-standard libraries is the quickest and most secure way of integrating with OAuth. We recommend developers diligently pick the OAuth 2.0 library that works best for their application. 101 | 102 | ## Rotating client secrets 103 | 104 | The OAuth Server-to-Server credentials allow you to rotate your client secret as needed. 105 | 106 | Rotating your application's client secrets is highly recommended in case of a leak or unauthorized access. Furthermore, rotating client secrets periodically is an industry-standard practice that strengthens your application security posture. Follow [Rotating client secrets](https://developer.adobe.com/developer-console/docs/guides/authentication/ServerToServerAuthentication/implementation/#rotating-client-secrets) guide for more information. 107 | 108 | ## Migration from JWT to OAuth 2.0 109 | 110 | Log in to the Adobe Developer Console and open the [Projects Tab](https://developer.adobe.com/console/projects) to find out which of your Adobe applications and integrations are using the Service Account (JWT) credential. If any of your project's integration is using the JWT credential, then follow the [Migration Guide](https://developer.adobe.com/developer-console/docs/guides/authentication/ServerToServerAuthentication/migration/#migration-overview) to update your integration to OAuth Server-to-Server credentials. 111 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, 10 | and distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by 13 | the copyright owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all 16 | other entities that control, are controlled by, or are under common 17 | control with that entity. For the purposes of this definition, 18 | "control" means (i) the power, direct or indirect, to cause the 19 | direction or management of such entity, whether by contract or 20 | otherwise, or (ii) ownership of fifty percent (50%) or more of the 21 | outstanding shares, or (iii) beneficial ownership of such entity. 22 | 23 | "You" (or "Your") shall mean an individual or Legal Entity 24 | exercising permissions granted by this License. 25 | 26 | "Source" form shall mean the preferred form for making modifications, 27 | including but not limited to software source code, documentation 28 | source, and configuration files. 29 | 30 | "Object" form shall mean any form resulting from mechanical 31 | transformation or translation of a Source form, including but 32 | not limited to compiled object code, generated documentation, 33 | and conversions to other media types. 34 | 35 | "Work" shall mean the work of authorship, whether in Source or 36 | Object form, made available under the License, as indicated by a 37 | copyright notice that is included in or attached to the work 38 | (an example is provided in the Appendix below). 39 | 40 | "Derivative Works" shall mean any work, whether in Source or Object 41 | form, that is based on (or derived from) the Work and for which the 42 | editorial revisions, annotations, elaborations, or other modifications 43 | represent, as a whole, an original work of authorship. For the purposes 44 | of this License, Derivative Works shall not include works that remain 45 | separable from, or merely link (or bind by name) to the interfaces of, 46 | the Work and Derivative Works thereof. 47 | 48 | "Contribution" shall mean any work of authorship, including 49 | the original version of the Work and any modifications or additions 50 | to that Work or Derivative Works thereof, that is intentionally 51 | submitted to Licensor for inclusion in the Work by the copyright owner 52 | or by an individual or Legal Entity authorized to submit on behalf of 53 | the copyright owner. For the purposes of this definition, "submitted" 54 | means any form of electronic, verbal, or written communication sent 55 | to the Licensor or its representatives, including but not limited to 56 | communication on electronic mailing lists, source code control systems, 57 | and issue tracking systems that are managed by, or on behalf of, the 58 | Licensor for the purpose of discussing and improving the Work, but 59 | excluding communication that is conspicuously marked or otherwise 60 | designated in writing by the copyright owner as "Not a Contribution." 61 | 62 | "Contributor" shall mean Licensor and any individual or Legal Entity 63 | on behalf of whom a Contribution has been received by Licensor and 64 | subsequently incorporated within the Work. 65 | 66 | 2. Grant of Copyright License. Subject to the terms and conditions of 67 | this License, each Contributor hereby grants to You a perpetual, 68 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 69 | copyright license to reproduce, prepare Derivative Works of, 70 | publicly display, publicly perform, sublicense, and distribute the 71 | Work and such Derivative Works in Source or Object form. 72 | 73 | 3. Grant of Patent License. Subject to the terms and conditions of 74 | this License, each Contributor hereby grants to You a perpetual, 75 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable 76 | (except as stated in this section) patent license to make, have made, 77 | use, offer to sell, sell, import, and otherwise transfer the Work, 78 | where such license applies only to those patent claims licensable 79 | by such Contributor that are necessarily infringed by their 80 | Contribution(s) alone or by combination of their Contribution(s) 81 | with the Work to which such Contribution(s) was submitted. If You 82 | institute patent litigation against any entity (including a 83 | cross-claim or counterclaim in a lawsuit) alleging that the Work 84 | or a Contribution incorporated within the Work constitutes direct 85 | or contributory patent infringement, then any patent licenses 86 | granted to You under this License for that Work shall terminate 87 | as of the date such litigation is filed. 88 | 89 | 4. Redistribution. You may reproduce and distribute copies of the 90 | Work or Derivative Works thereof in any medium, with or without 91 | modifications, and in Source or Object form, provided that You 92 | meet the following conditions: 93 | 94 | (a) You must give any other recipients of the Work or 95 | Derivative Works a copy of this License; and 96 | 97 | (b) You must cause any modified files to carry prominent notices 98 | stating that You changed the files; and 99 | 100 | (c) You must retain, in the Source form of any Derivative Works 101 | that You distribute, all copyright, patent, trademark, and 102 | attribution notices from the Source form of the Work, 103 | excluding those notices that do not pertain to any part of 104 | the Derivative Works; and 105 | 106 | (d) If the Work includes a "NOTICE" text file as part of its 107 | distribution, then any Derivative Works that You distribute must 108 | include a readable copy of the attribution notices contained 109 | within such NOTICE file, excluding those notices that do not 110 | pertain to any part of the Derivative Works, in at least one 111 | of the following places: within a NOTICE text file distributed 112 | as part of the Derivative Works; within the Source form or 113 | documentation, if provided along with the Derivative Works; or, 114 | within a display generated by the Derivative Works, if and 115 | wherever such third-party notices normally appear. The contents 116 | of the NOTICE file are for informational purposes only and 117 | do not modify the License. You may add Your own attribution 118 | notices within Derivative Works that You distribute, alongside 119 | or as an addendum to the NOTICE text from the Work, provided 120 | that such additional attribution notices cannot be construed 121 | as modifying the License. 122 | 123 | You may add Your own copyright statement to Your modifications and 124 | may provide additional or different license terms and conditions 125 | for use, reproduction, or distribution of Your modifications, or 126 | for any such Derivative Works as a whole, provided Your use, 127 | reproduction, and distribution of the Work otherwise complies with 128 | the conditions stated in this License. 129 | 130 | 5. Submission of Contributions. Unless You explicitly state otherwise, 131 | any Contribution intentionally submitted for inclusion in the Work 132 | by You to the Licensor shall be under the terms and conditions of 133 | this License, without any additional terms or conditions. 134 | Notwithstanding the above, nothing herein shall supersede or modify 135 | the terms of any separate license agreement you may have executed 136 | with Licensor regarding such Contributions. 137 | 138 | 6. Trademarks. This License does not grant permission to use the trade 139 | names, trademarks, service marks, or product names of the Licensor, 140 | except as required for reasonable and customary use in describing the 141 | origin of the Work and reproducing the content of the NOTICE file. 142 | 143 | 7. Disclaimer of Warranty. Unless required by applicable law or 144 | agreed to in writing, Licensor provides the Work (and each 145 | Contributor provides its Contributions) on an "AS IS" BASIS, 146 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 147 | implied, including, without limitation, any warranties or conditions 148 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A 149 | PARTICULAR PURPOSE. You are solely responsible for determining the 150 | appropriateness of using or redistributing the Work and assume any 151 | risks associated with Your exercise of permissions under this License. 152 | 153 | 8. Limitation of Liability. In no event and under no legal theory, 154 | whether in tort (including negligence), contract, or otherwise, 155 | unless required by applicable law (such as deliberate and grossly 156 | negligent acts) or agreed to in writing, shall any Contributor be 157 | liable to You for damages, including any direct, indirect, special, 158 | incidental, or consequential damages of any character arising as a 159 | result of this License or out of the use or inability to use the 160 | Work (including but not limited to damages for loss of goodwill, 161 | work stoppage, computer failure or malfunction, or any and all 162 | other commercial damages or losses), even if such Contributor 163 | has been advised of the possibility of such damages. 164 | 165 | 9. Accepting Warranty or Additional Liability. While redistributing 166 | the Work or Derivative Works thereof, You may choose to offer, 167 | and charge a fee for, acceptance of support, warranty, indemnity, 168 | or other liability obligations and/or rights consistent with this 169 | License. However, in accepting such obligations, You may act only 170 | on Your own behalf and on Your sole responsibility, not on behalf 171 | of any other Contributor, and only if You agree to indemnify, 172 | defend, and hold each Contributor harmless for any liability 173 | incurred by, or claims asserted against, such Contributor by reason 174 | of your accepting any such warranty or additional liability. 175 | 176 | END OF TERMS AND CONDITIONS 177 | 178 | APPENDIX: How to apply the Apache License to your work. 179 | 180 | To apply the Apache License to your work, attach the following 181 | boilerplate notice, with the fields enclosed by brackets "[]" 182 | replaced with your own identifying information. (Don't include 183 | the brackets!) The text should be enclosed in the appropriate 184 | comment syntax for the file format. We also recommend that a 185 | file or class name and description of purpose be included on the 186 | same "printed page" as the copyright notice for easier 187 | identification within third-party archives. 188 | 189 | Copyright 2020 Adobe 190 | 191 | Licensed under the Apache License, Version 2.0 (the "License"); 192 | you may not use this file except in compliance with the License. 193 | You may obtain a copy of the License at 194 | 195 | http://www.apache.org/licenses/LICENSE-2.0 196 | 197 | Unless required by applicable law or agreed to in writing, software 198 | distributed under the License is distributed on an "AS IS" BASIS, 199 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 200 | See the License for the specific language governing permissions and 201 | limitations under the License. -------------------------------------------------------------------------------- /static/petstore.json: -------------------------------------------------------------------------------- 1 | { 2 | "swagger": "2.0", 3 | "info": { 4 | "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.", 5 | "version": "1.0.6", 6 | "title": "Swagger Petstore", 7 | "termsOfService": "http://swagger.io/terms/", 8 | "contact": { "email": "apiteam@swagger.io" }, 9 | "license": { 10 | "name": "Apache 2.0", 11 | "url": "http://www.apache.org/licenses/LICENSE-2.0.html" 12 | } 13 | }, 14 | "host": "petstore.swagger.io", 15 | "basePath": "/v2", 16 | "tags": [ 17 | { 18 | "name": "pet", 19 | "description": "Everything about your Pets", 20 | "externalDocs": { 21 | "description": "Find out more", 22 | "url": "http://swagger.io" 23 | } 24 | }, 25 | { "name": "store", "description": "Access to Petstore orders" }, 26 | { 27 | "name": "user", 28 | "description": "Operations about user", 29 | "externalDocs": { 30 | "description": "Find out more about our store", 31 | "url": "http://swagger.io" 32 | } 33 | } 34 | ], 35 | "schemes": ["https", "http"], 36 | "paths": { 37 | "/pet/{petId}/uploadImage": { 38 | "post": { 39 | "tags": ["pet"], 40 | "summary": "uploads an image", 41 | "description": "", 42 | "operationId": "uploadFile", 43 | "consumes": ["multipart/form-data"], 44 | "produces": ["application/json"], 45 | "parameters": [ 46 | { 47 | "name": "petId", 48 | "in": "path", 49 | "description": "ID of pet to update", 50 | "required": true, 51 | "type": "integer", 52 | "format": "int64" 53 | }, 54 | { 55 | "name": "additionalMetadata", 56 | "in": "formData", 57 | "description": "Additional data to pass to server", 58 | "required": false, 59 | "type": "string" 60 | }, 61 | { 62 | "name": "file", 63 | "in": "formData", 64 | "description": "file to upload", 65 | "required": false, 66 | "type": "file" 67 | } 68 | ], 69 | "responses": { 70 | "200": { 71 | "description": "successful operation", 72 | "schema": { "$ref": "#/definitions/ApiResponse" } 73 | } 74 | }, 75 | "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] 76 | } 77 | }, 78 | "/pet": { 79 | "post": { 80 | "tags": ["pet"], 81 | "summary": "Add a new pet to the store", 82 | "description": "", 83 | "operationId": "addPet", 84 | "consumes": ["application/json", "application/xml"], 85 | "produces": ["application/json", "application/xml"], 86 | "parameters": [ 87 | { 88 | "in": "body", 89 | "name": "body", 90 | "description": "Pet object that needs to be added to the store", 91 | "required": true, 92 | "schema": { "$ref": "#/definitions/Pet" } 93 | } 94 | ], 95 | "responses": { "405": { "description": "Invalid input" } }, 96 | "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] 97 | }, 98 | "put": { 99 | "tags": ["pet"], 100 | "summary": "Update an existing pet", 101 | "description": "", 102 | "operationId": "updatePet", 103 | "consumes": ["application/json", "application/xml"], 104 | "produces": ["application/json", "application/xml"], 105 | "parameters": [ 106 | { 107 | "in": "body", 108 | "name": "body", 109 | "description": "Pet object that needs to be added to the store", 110 | "required": true, 111 | "schema": { "$ref": "#/definitions/Pet" } 112 | } 113 | ], 114 | "responses": { 115 | "400": { "description": "Invalid ID supplied" }, 116 | "404": { "description": "Pet not found" }, 117 | "405": { "description": "Validation exception" } 118 | }, 119 | "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] 120 | } 121 | }, 122 | "/pet/findByStatus": { 123 | "get": { 124 | "tags": ["pet"], 125 | "summary": "Finds Pets by status", 126 | "description": "Multiple status values can be provided with comma separated strings", 127 | "operationId": "findPetsByStatus", 128 | "produces": ["application/json", "application/xml"], 129 | "parameters": [ 130 | { 131 | "name": "status", 132 | "in": "query", 133 | "description": "Status values that need to be considered for filter", 134 | "required": true, 135 | "type": "array", 136 | "items": { 137 | "type": "string", 138 | "enum": ["available", "pending", "sold"], 139 | "default": "available" 140 | }, 141 | "collectionFormat": "multi" 142 | } 143 | ], 144 | "responses": { 145 | "200": { 146 | "description": "successful operation", 147 | "schema": { 148 | "type": "array", 149 | "items": { "$ref": "#/definitions/Pet" } 150 | } 151 | }, 152 | "400": { "description": "Invalid status value" } 153 | }, 154 | "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] 155 | } 156 | }, 157 | "/pet/findByTags": { 158 | "get": { 159 | "tags": ["pet"], 160 | "summary": "Finds Pets by tags", 161 | "description": "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", 162 | "operationId": "findPetsByTags", 163 | "produces": ["application/json", "application/xml"], 164 | "parameters": [ 165 | { 166 | "name": "tags", 167 | "in": "query", 168 | "description": "Tags to filter by", 169 | "required": true, 170 | "type": "array", 171 | "items": { "type": "string" }, 172 | "collectionFormat": "multi" 173 | } 174 | ], 175 | "responses": { 176 | "200": { 177 | "description": "successful operation", 178 | "schema": { 179 | "type": "array", 180 | "items": { "$ref": "#/definitions/Pet" } 181 | } 182 | }, 183 | "400": { "description": "Invalid tag value" } 184 | }, 185 | "security": [{ "petstore_auth": ["write:pets", "read:pets"] }], 186 | "deprecated": true 187 | } 188 | }, 189 | "/pet/{petId}": { 190 | "get": { 191 | "tags": ["pet"], 192 | "summary": "Find pet by ID", 193 | "description": "Returns a single pet", 194 | "operationId": "getPetById", 195 | "produces": ["application/json", "application/xml"], 196 | "parameters": [ 197 | { 198 | "name": "petId", 199 | "in": "path", 200 | "description": "ID of pet to return", 201 | "required": true, 202 | "type": "integer", 203 | "format": "int64" 204 | } 205 | ], 206 | "responses": { 207 | "200": { 208 | "description": "successful operation", 209 | "schema": { "$ref": "#/definitions/Pet" } 210 | }, 211 | "400": { "description": "Invalid ID supplied" }, 212 | "404": { "description": "Pet not found" } 213 | }, 214 | "security": [{ "api_key": [] }] 215 | }, 216 | "post": { 217 | "tags": ["pet"], 218 | "summary": "Updates a pet in the store with form data", 219 | "description": "", 220 | "operationId": "updatePetWithForm", 221 | "consumes": ["application/x-www-form-urlencoded"], 222 | "produces": ["application/json", "application/xml"], 223 | "parameters": [ 224 | { 225 | "name": "petId", 226 | "in": "path", 227 | "description": "ID of pet that needs to be updated", 228 | "required": true, 229 | "type": "integer", 230 | "format": "int64" 231 | }, 232 | { 233 | "name": "name", 234 | "in": "formData", 235 | "description": "Updated name of the pet", 236 | "required": false, 237 | "type": "string" 238 | }, 239 | { 240 | "name": "status", 241 | "in": "formData", 242 | "description": "Updated status of the pet", 243 | "required": false, 244 | "type": "string" 245 | } 246 | ], 247 | "responses": { "405": { "description": "Invalid input" } }, 248 | "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] 249 | }, 250 | "delete": { 251 | "tags": ["pet"], 252 | "summary": "Deletes a pet", 253 | "description": "", 254 | "operationId": "deletePet", 255 | "produces": ["application/json", "application/xml"], 256 | "parameters": [ 257 | { 258 | "name": "api_key", 259 | "in": "header", 260 | "required": false, 261 | "type": "string" 262 | }, 263 | { 264 | "name": "petId", 265 | "in": "path", 266 | "description": "Pet id to delete", 267 | "required": true, 268 | "type": "integer", 269 | "format": "int64" 270 | } 271 | ], 272 | "responses": { 273 | "400": { "description": "Invalid ID supplied" }, 274 | "404": { "description": "Pet not found" } 275 | }, 276 | "security": [{ "petstore_auth": ["write:pets", "read:pets"] }] 277 | } 278 | }, 279 | "/store/order": { 280 | "post": { 281 | "tags": ["store"], 282 | "summary": "Place an order for a pet", 283 | "description": "", 284 | "operationId": "placeOrder", 285 | "consumes": ["application/json"], 286 | "produces": ["application/json", "application/xml"], 287 | "parameters": [ 288 | { 289 | "in": "body", 290 | "name": "body", 291 | "description": "order placed for purchasing the pet", 292 | "required": true, 293 | "schema": { "$ref": "#/definitions/Order" } 294 | } 295 | ], 296 | "responses": { 297 | "200": { 298 | "description": "successful operation", 299 | "schema": { "$ref": "#/definitions/Order" } 300 | }, 301 | "400": { "description": "Invalid Order" } 302 | } 303 | } 304 | }, 305 | "/store/order/{orderId}": { 306 | "get": { 307 | "tags": ["store"], 308 | "summary": "Find purchase order by ID", 309 | "description": "For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions", 310 | "operationId": "getOrderById", 311 | "produces": ["application/json", "application/xml"], 312 | "parameters": [ 313 | { 314 | "name": "orderId", 315 | "in": "path", 316 | "description": "ID of pet that needs to be fetched", 317 | "required": true, 318 | "type": "integer", 319 | "maximum": 10, 320 | "minimum": 1, 321 | "format": "int64" 322 | } 323 | ], 324 | "responses": { 325 | "200": { 326 | "description": "successful operation", 327 | "schema": { "$ref": "#/definitions/Order" } 328 | }, 329 | "400": { "description": "Invalid ID supplied" }, 330 | "404": { "description": "Order not found" } 331 | } 332 | }, 333 | "delete": { 334 | "tags": ["store"], 335 | "summary": "Delete purchase order by ID", 336 | "description": "For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors", 337 | "operationId": "deleteOrder", 338 | "produces": ["application/json", "application/xml"], 339 | "parameters": [ 340 | { 341 | "name": "orderId", 342 | "in": "path", 343 | "description": "ID of the order that needs to be deleted", 344 | "required": true, 345 | "type": "integer", 346 | "minimum": 1, 347 | "format": "int64" 348 | } 349 | ], 350 | "responses": { 351 | "400": { "description": "Invalid ID supplied" }, 352 | "404": { "description": "Order not found" } 353 | } 354 | } 355 | }, 356 | "/store/inventory": { 357 | "get": { 358 | "tags": ["store"], 359 | "summary": "Returns pet inventories by status", 360 | "description": "Returns a map of status codes to quantities", 361 | "operationId": "getInventory", 362 | "produces": ["application/json"], 363 | "parameters": [], 364 | "responses": { 365 | "200": { 366 | "description": "successful operation", 367 | "schema": { 368 | "type": "object", 369 | "additionalProperties": { "type": "integer", "format": "int32" } 370 | } 371 | } 372 | }, 373 | "security": [{ "api_key": [] }] 374 | } 375 | }, 376 | "/user/createWithArray": { 377 | "post": { 378 | "tags": ["user"], 379 | "summary": "Creates list of users with given input array", 380 | "description": "", 381 | "operationId": "createUsersWithArrayInput", 382 | "consumes": ["application/json"], 383 | "produces": ["application/json", "application/xml"], 384 | "parameters": [ 385 | { 386 | "in": "body", 387 | "name": "body", 388 | "description": "List of user object", 389 | "required": true, 390 | "schema": { 391 | "type": "array", 392 | "items": { "$ref": "#/definitions/User" } 393 | } 394 | } 395 | ], 396 | "responses": { "default": { "description": "successful operation" } } 397 | } 398 | }, 399 | "/user/createWithList": { 400 | "post": { 401 | "tags": ["user"], 402 | "summary": "Creates list of users with given input array", 403 | "description": "", 404 | "operationId": "createUsersWithListInput", 405 | "consumes": ["application/json"], 406 | "produces": ["application/json", "application/xml"], 407 | "parameters": [ 408 | { 409 | "in": "body", 410 | "name": "body", 411 | "description": "List of user object", 412 | "required": true, 413 | "schema": { 414 | "type": "array", 415 | "items": { "$ref": "#/definitions/User" } 416 | } 417 | } 418 | ], 419 | "responses": { "default": { "description": "successful operation" } } 420 | } 421 | }, 422 | "/user/{username}": { 423 | "get": { 424 | "tags": ["user"], 425 | "summary": "Get user by user name", 426 | "description": "", 427 | "operationId": "getUserByName", 428 | "produces": ["application/json", "application/xml"], 429 | "parameters": [ 430 | { 431 | "name": "username", 432 | "in": "path", 433 | "description": "The name that needs to be fetched. Use user1 for testing. ", 434 | "required": true, 435 | "type": "string" 436 | } 437 | ], 438 | "responses": { 439 | "200": { 440 | "description": "successful operation", 441 | "schema": { "$ref": "#/definitions/User" } 442 | }, 443 | "400": { "description": "Invalid username supplied" }, 444 | "404": { "description": "User not found" } 445 | } 446 | }, 447 | "put": { 448 | "tags": ["user"], 449 | "summary": "Updated user", 450 | "description": "This can only be done by the logged in user.", 451 | "operationId": "updateUser", 452 | "consumes": ["application/json"], 453 | "produces": ["application/json", "application/xml"], 454 | "parameters": [ 455 | { 456 | "name": "username", 457 | "in": "path", 458 | "description": "name that need to be updated", 459 | "required": true, 460 | "type": "string" 461 | }, 462 | { 463 | "in": "body", 464 | "name": "body", 465 | "description": "Updated user object", 466 | "required": true, 467 | "schema": { "$ref": "#/definitions/User" } 468 | } 469 | ], 470 | "responses": { 471 | "400": { "description": "Invalid user supplied" }, 472 | "404": { "description": "User not found" } 473 | } 474 | }, 475 | "delete": { 476 | "tags": ["user"], 477 | "summary": "Delete user", 478 | "description": "This can only be done by the logged in user.", 479 | "operationId": "deleteUser", 480 | "produces": ["application/json", "application/xml"], 481 | "parameters": [ 482 | { 483 | "name": "username", 484 | "in": "path", 485 | "description": "The name that needs to be deleted", 486 | "required": true, 487 | "type": "string" 488 | } 489 | ], 490 | "responses": { 491 | "400": { "description": "Invalid username supplied" }, 492 | "404": { "description": "User not found" } 493 | } 494 | } 495 | }, 496 | "/user/login": { 497 | "get": { 498 | "tags": ["user"], 499 | "summary": "Logs user into the system", 500 | "description": "", 501 | "operationId": "loginUser", 502 | "produces": ["application/json", "application/xml"], 503 | "parameters": [ 504 | { 505 | "name": "username", 506 | "in": "query", 507 | "description": "The user name for login", 508 | "required": true, 509 | "type": "string" 510 | }, 511 | { 512 | "name": "password", 513 | "in": "query", 514 | "description": "The password for login in clear text", 515 | "required": true, 516 | "type": "string" 517 | } 518 | ], 519 | "responses": { 520 | "200": { 521 | "description": "successful operation", 522 | "headers": { 523 | "X-Expires-After": { 524 | "type": "string", 525 | "format": "date-time", 526 | "description": "date in UTC when token expires" 527 | }, 528 | "X-Rate-Limit": { 529 | "type": "integer", 530 | "format": "int32", 531 | "description": "calls per hour allowed by the user" 532 | } 533 | }, 534 | "schema": { "type": "string" } 535 | }, 536 | "400": { "description": "Invalid username/password supplied" } 537 | } 538 | } 539 | }, 540 | "/user/logout": { 541 | "get": { 542 | "tags": ["user"], 543 | "summary": "Logs out current logged in user session", 544 | "description": "", 545 | "operationId": "logoutUser", 546 | "produces": ["application/json", "application/xml"], 547 | "parameters": [], 548 | "responses": { "default": { "description": "successful operation" } } 549 | } 550 | }, 551 | "/user": { 552 | "post": { 553 | "tags": ["user"], 554 | "summary": "Create user", 555 | "description": "This can only be done by the logged in user.", 556 | "operationId": "createUser", 557 | "consumes": ["application/json"], 558 | "produces": ["application/json", "application/xml"], 559 | "parameters": [ 560 | { 561 | "in": "body", 562 | "name": "body", 563 | "description": "Created user object", 564 | "required": true, 565 | "schema": { "$ref": "#/definitions/User" } 566 | } 567 | ], 568 | "responses": { "default": { "description": "successful operation" } } 569 | } 570 | } 571 | }, 572 | "securityDefinitions": { 573 | "api_key": { "type": "apiKey", "name": "api_key", "in": "header" }, 574 | "petstore_auth": { 575 | "type": "oauth2", 576 | "authorizationUrl": "https://petstore.swagger.io/oauth/authorize", 577 | "flow": "implicit", 578 | "scopes": { 579 | "read:pets": "read your pets", 580 | "write:pets": "modify pets in your account" 581 | } 582 | } 583 | }, 584 | "definitions": { 585 | "ApiResponse": { 586 | "type": "object", 587 | "properties": { 588 | "code": { "type": "integer", "format": "int32" }, 589 | "type": { "type": "string" }, 590 | "message": { "type": "string" } 591 | } 592 | }, 593 | "Category": { 594 | "type": "object", 595 | "properties": { 596 | "id": { "type": "integer", "format": "int64" }, 597 | "name": { "type": "string" } 598 | }, 599 | "xml": { "name": "Category" } 600 | }, 601 | "Pet": { 602 | "type": "object", 603 | "required": ["name", "photoUrls"], 604 | "properties": { 605 | "id": { "type": "integer", "format": "int64" }, 606 | "category": { "$ref": "#/definitions/Category" }, 607 | "name": { "type": "string", "example": "doggie" }, 608 | "photoUrls": { 609 | "type": "array", 610 | "xml": { "wrapped": true }, 611 | "items": { "type": "string", "xml": { "name": "photoUrl" } } 612 | }, 613 | "tags": { 614 | "type": "array", 615 | "xml": { "wrapped": true }, 616 | "items": { "xml": { "name": "tag" }, "$ref": "#/definitions/Tag" } 617 | }, 618 | "status": { 619 | "type": "string", 620 | "description": "pet status in the store", 621 | "enum": ["available", "pending", "sold"] 622 | } 623 | }, 624 | "xml": { "name": "Pet" } 625 | }, 626 | "Tag": { 627 | "type": "object", 628 | "properties": { 629 | "id": { "type": "integer", "format": "int64" }, 630 | "name": { "type": "string" } 631 | }, 632 | "xml": { "name": "Tag" } 633 | }, 634 | "Order": { 635 | "type": "object", 636 | "properties": { 637 | "id": { "type": "integer", "format": "int64" }, 638 | "petId": { "type": "integer", "format": "int64" }, 639 | "quantity": { "type": "integer", "format": "int32" }, 640 | "shipDate": { "type": "string", "format": "date-time" }, 641 | "status": { 642 | "type": "string", 643 | "description": "Order Status", 644 | "enum": ["placed", "approved", "delivered"] 645 | }, 646 | "complete": { "type": "boolean" } 647 | }, 648 | "xml": { "name": "Order" } 649 | }, 650 | "User": { 651 | "type": "object", 652 | "properties": { 653 | "id": { "type": "integer", "format": "int64" }, 654 | "username": { "type": "string" }, 655 | "firstName": { "type": "string" }, 656 | "lastName": { "type": "string" }, 657 | "email": { "type": "string" }, 658 | "password": { "type": "string" }, 659 | "phone": { "type": "string" }, 660 | "userStatus": { 661 | "type": "integer", 662 | "format": "int32", 663 | "description": "User Status" 664 | } 665 | }, 666 | "xml": { "name": "User" } 667 | } 668 | }, 669 | "externalDocs": { 670 | "description": "Find out more about Swagger", 671 | "url": "http://swagger.io" 672 | } 673 | } 674 | -------------------------------------------------------------------------------- /static/statusapi-spec.yaml: -------------------------------------------------------------------------------- 1 | openapi: 3.0.1 2 | info: 3 | title: Adobe Status API Reference 4 | description: > 5 | This guide will help you complete the setup needed to call Status API's.

6 | 7 | The following sections contain sample code snippets for generating tokens. Once the setup is complete, you can find the API specs under Events and Registry. 8 | All the API's have CLI, Javascript and NodeJS code request samples.

9 | 10 | If you chose to use Postman to call the Status API's, please see the section 'Postman Collection'. It has downloadable collection files that you can use to get started.

11 | 12 | You will need OAuth token and API key to call Status API's. Please find the sample code below.
13 | 14 | 15 | 16 | 17 | 18 | # Code Snippets 19 | 20 | ## NodeJS 21 | 22 | - Make sure `node` installed on your machine 23 | 24 | - Add all required packages into the project eg., `npm install axios` 25 | 26 | - Get the credentials from the developer console website -> 'OAuth Server-to-Server' credentials page of your project and replace the values in the sample code 27 | 28 | 29 | ```javascript 30 | 31 | const axios = require("axios") 32 | 33 | 34 | const oauth_token_endpoint = 'https://ims-na1.adobelogin.com/ims/token/v3'; 35 | 36 | 37 | // Get the below values from the developer console project's 'OAuth Server-to-Server' credentials page 38 | 39 | const CLIENT_ID = 'a68bc04-----------92e86df4513ff'; 40 | 41 | const CLIENT_SECRET = process.env.CLIENT_SECRET; 42 | 43 | const SCOPES = 'creative_cloud, openid, additional_info.ownerOrg, AdobeID, org.read, read_organizations, additional_info.roles, gnav, additional_info.company, additional_info.projectedProductContext'; 44 | 45 | 46 | const query_params= `client_id=${CLIENT_ID}`; 47 | 48 | const REQUEST_URL = oauth_token_endpoint + '?' + query_params; 49 | 50 | 51 | 52 | const get_access_token = async auth_code => { 53 | 54 | return await axios ({ 55 | method: 'post', 56 | url: REQUEST_URL, 57 | data: { 58 | 'client_secret': CLIENT_SECRET, 59 | 'grant_type': 'client_credentials', 60 | 'scope': SCOPES 61 | }, 62 | headers: { 63 | 'Content-Type': 'application/x-www-form-urlencoded' 64 | } 65 | }); 66 | }; 67 | 68 | 69 | get_access_token().then((response)=> { 70 | if(response.status === 200) { 71 | console.log(response.data); // access token 72 | } 73 | }); 74 | 75 | ``` 76 | 77 | ## Python 78 | 79 | - Below code tested in Python version 3.9 80 | 81 | - Install requests and os. eg., `pip3 install "requests"` 82 | 83 | - Get the credentials from the developer console website -> 'OAuth Server-to-Server' credentials page of your project and replace the values in the sample code 84 | 85 | 86 | ```python 87 | 88 | import requests 89 | 90 | import os 91 | 92 | 93 | # Update CLIENT_ID and CLIENT_SECRET with your config 94 | 95 | # which can be obtain from the Adobe Developer Console integration 96 | 97 | CLIENT_ID = "a68bc04-----------92e86df4513ff"; 98 | 99 | CLIENT_SECRET = os.environ['CLIENT_SECRET']; 100 | 101 | SCOPES = "creative_cloud, openid, additional_info.ownerOrg, AdobeID, org.read, read_organizations, additional_info.roles, gnav, additional_info.company, additional_info.projectedProductContext"; 102 | 103 | headers = {"content-type": "application/x-www-form-urlencoded"} 104 | 105 | url = "https://ims-na1.adobelogin.com/ims/token/v3" 106 | 107 | 108 | data = { 109 | "client_secret": CLIENT_SECRET, 110 | "grant_type": "client_credentials", 111 | "scope": SCOPES 112 | } 113 | 114 | params = {'client_id': CLIENT_ID} 115 | 116 | response = requests.post(url, params=params, data=data, headers=headers) 117 | 118 | if(response.status_code == 200): 119 | print(response.text) # access token 120 | 121 | 122 | ``` 123 | 124 | 125 | # Postman Collection 126 | 127 | - Download Status API postman collection and environment variable from here - [Postman Collection](/adobe-status/postman-collection-and-env.zip) 128 | 129 | - Import both collection and environment variables into your postman 130 | 131 | - Replace CLIENT_ID and CLIENT_SECRET in environment variable with yours and run collection endpoints 132 | 133 | ### Environment Variable Reference 134 | 135 | ![alt text](/adobe-status/images/status-api-env.png "Adobe Status API Environment Variable") 136 | 137 | ### Status API Postman Collection Reference 138 | 139 | ![alt text](/adobe-status/images/status-api-collection.png "Adobe Status API Collection") 140 | 141 | ![alt text](/adobe-status/images/status-api-testing.png "Adobe Status API Collection Endpoint Validation") 142 | 143 | # Throttling Policy 144 | 145 | We have a throttling policy in place. We accept up to 50 requests / 5 secs per user's session. Your throttled requests will receive an error code—HTTP Status 429 (Too Many Requests) response with a Retry-After header, following the [RFC 7231](https://tools.ietf.org/html/rfc7231#section-7.1.3) HTTP standard. 146 | 147 | 148 | contact: 149 | name: Status.adobe 150 | url: https://status.adobe.com 151 | email: statuscom-adobe-support@adobe.com 152 | version: '1.0' 153 | servers: 154 | - url: https://status.adobe.io/ 155 | security: 156 | - Authorization: [] 157 | api_key: [] 158 | tags: 159 | - name: Events 160 | description: >- 161 | Query and view all ongoing events, events from the past 40 days, and 162 | future maintenance, that will impact Adobe Products and Services. 163 | - name: Registry 164 | description: Query and view the product taxonomy of Adobe Products and Services. 165 | paths: 166 | /api/v1/clouds: 167 | get: 168 | tags: 169 | - Registry 170 | summary: Clouds 171 | description: List the top-level product families for all Adobe Products and Services. 172 | operationId: cloudsUsingGET 173 | parameters: 174 | - name: cloudId 175 | in: query 176 | description: List of cloud ids for which you want to retrieve the cloud detail. 177 | style: form 178 | explode: true 179 | schema: 180 | type: array 181 | items: 182 | type: string 183 | - name: cloudName 184 | in: query 185 | description: Partial or complete cloud name for which you want to retrieve the cloud detail. 186 | style: form 187 | explode: true 188 | schema: 189 | type: string 190 | responses: 191 | '200': 192 | description: OK 193 | content: 194 | application/json: 195 | schema: 196 | type: array 197 | items: 198 | $ref: '#/components/schemas/Cloud' 199 | '400': 200 | description: Bad Request 201 | content: {} 202 | '401': 203 | description: Unauthorized 204 | content: {} 205 | '403': 206 | description: Forbidden 207 | content: {} 208 | '404': 209 | description: Not Found 210 | content: {} 211 | '429': 212 | description: Too Many Requests 213 | content: {} 214 | '500': 215 | description: Internal Server Error 216 | content: {} 217 | x-codeSamples: 218 | - lang: cURL 219 | label: CLI 220 | source: >- 221 | curl --location --request GET 'https://status.adobe.io/api/v1/clouds?api_key=&cloudId=' \ 222 | --header 'Authorization: Bearer ' 223 | - lang: JavaScript 224 | label: JavaScript 225 | source: {$ref: code/JS/clouds.js} 226 | - lang: JavaScript 227 | label: NodeJS 228 | source: {$ref: code/Node/clouds.js} 229 | /api/v1/products: 230 | get: 231 | tags: 232 | - Registry 233 | summary: Products 234 | description: List all the Adobe Products and Services across Clouds. 235 | operationId: productsUsingGET 236 | parameters: 237 | - name: cloudId 238 | in: query 239 | description: List of cloud ids for which you want to retrieve the events. 240 | style: form 241 | explode: true 242 | schema: 243 | type: array 244 | items: 245 | type: string 246 | - name: productId 247 | in: query 248 | description: List of product ids for which you want to retrieve the product detail. 249 | style: form 250 | explode: true 251 | schema: 252 | type: array 253 | items: 254 | type: string 255 | - name: productName 256 | in: query 257 | description: Partial or complete product name for which you want to retrieve the product detail. 258 | style: form 259 | explode: true 260 | schema: 261 | type: string 262 | responses: 263 | '200': 264 | description: OK 265 | content: 266 | application/json: 267 | schema: 268 | type: array 269 | items: 270 | $ref: '#/components/schemas/Product' 271 | '400': 272 | description: Bad Request 273 | content: {} 274 | '401': 275 | description: Unauthorized 276 | content: {} 277 | '403': 278 | description: Forbidden 279 | content: {} 280 | '404': 281 | description: Not Found 282 | content: {} 283 | '429': 284 | description: Too Many Requests 285 | content: {} 286 | '500': 287 | description: Internal Server Error 288 | content: {} 289 | x-codeSamples: 290 | - lang: cURL 291 | label: CLI 292 | source: >- 293 | curl --location --request GET 'https://status.adobe.io/api/v1/products?api_key=&cloudId=&productId=' \ 294 | --header 'Authorization: Bearer ' 295 | - lang: JavaScript 296 | label: JavaScript 297 | source: {$ref: code/JS/products.js} 298 | - lang: JavaScript 299 | label: NodeJS 300 | source: {$ref: code/Node/products.js} 301 | /api/v1/eventTypes: 302 | get: 303 | tags: 304 | - Registry 305 | summary: Event Types 306 | description: >- 307 | List all the types of events that can impact Adobe Products and 308 | Services. 309 | operationId: eventTypesUsingGET 310 | responses: 311 | '200': 312 | description: OK 313 | content: 314 | application/json: 315 | schema: 316 | type: object 317 | additionalProperties: 318 | type: string 319 | '400': 320 | description: Bad Request 321 | content: {} 322 | '401': 323 | description: Unauthorized 324 | content: {} 325 | '403': 326 | description: Forbidden 327 | content: {} 328 | '404': 329 | description: Not Found 330 | content: {} 331 | '429': 332 | description: Too Many Requests 333 | content: {} 334 | '500': 335 | description: Internal Server Error 336 | content: {} 337 | x-codeSamples: 338 | - lang: cURL 339 | label: CLI 340 | source: >- 341 | curl --location --request GET 'https://status.adobe.io/api/v1/eventTypes?api_key=' \ 342 | --header 'Authorization: Bearer ' 343 | - lang: JavaScript 344 | label: JavaScript 345 | source: {$ref: code/JS/eventtypes.js} 346 | - lang: JavaScript 347 | label: NodeJS 348 | source: {$ref: code/Node/eventtypes.js} 349 | /api/v1/events: 350 | get: 351 | tags: 352 | - Events 353 | summary: All Events 354 | description: >- 355 | List all ongoing issues and maintenances that are impacting Adobe 356 | Products and Services. 357 | operationId: eventsUsingGET 358 | parameters: 359 | - name: cloudIds 360 | in: query 361 | description: List of cloud ids for which you want to retrieve the events. 362 | style: form 363 | explode: true 364 | schema: 365 | type: array 366 | items: 367 | type: string 368 | - name: environmentIds 369 | in: query 370 | description: List of environmentIds for which you want to retrieve the events. 371 | style: form 372 | explode: true 373 | schema: 374 | type: array 375 | items: 376 | type: string 377 | - name: from 378 | in: query 379 | description: Retrieve the events starting from Date (yyyy-MM-dd format). 380 | schema: 381 | type: string 382 | format: date 383 | - name: offeringIds 384 | in: query 385 | description: List of offeringIds for which you want to retrieve the events. 386 | style: form 387 | explode: true 388 | schema: 389 | type: array 390 | items: 391 | type: string 392 | - name: productIds 393 | in: query 394 | description: List of product ids for which you want to retrieve the events. 395 | style: form 396 | explode: true 397 | schema: 398 | type: array 399 | items: 400 | type: string 401 | - name: regionIds 402 | in: query 403 | description: List of regionIds for which you want to retrieve the events. 404 | style: form 405 | explode: true 406 | schema: 407 | type: array 408 | items: 409 | type: string 410 | - name: search 411 | in: query 412 | description: Product name search 413 | schema: 414 | type: string 415 | - name: serviceIds 416 | in: query 417 | description: List of serviceIds for which you want to retrieve the events. 418 | style: form 419 | explode: true 420 | schema: 421 | type: array 422 | items: 423 | type: string 424 | - name: to 425 | in: query 426 | description: Retrieve the events till Date (yyyy-MM-dd format). 427 | schema: 428 | type: string 429 | format: date 430 | responses: 431 | '200': 432 | description: OK 433 | content: 434 | application/json: 435 | schema: 436 | $ref: '#/components/schemas/Event' 437 | '400': 438 | description: Bad Request 439 | content: {} 440 | '401': 441 | description: Unauthorized 442 | content: {} 443 | '403': 444 | description: Forbidden 445 | content: {} 446 | '404': 447 | description: Not Found 448 | content: {} 449 | '429': 450 | description: Too Many Requests 451 | content: {} 452 | '500': 453 | description: Internal Server Error 454 | content: {} 455 | x-codeSamples: 456 | - lang: cURL 457 | label: CLI 458 | source: >- 459 | curl --location --request GET 460 | 'https://status.adobe.io/api/v1/events?api_key=&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=' \ 461 | --header 'Authorization: Bearer ' 462 | - lang: JavaScript 463 | label: JavaScript 464 | source: {$ref: code/JS/event.js} 465 | - lang: JavaScript 466 | label: NodeJS 467 | source: {$ref: code/Node/event.js} 468 | /api/v1/events/incidents: 469 | get: 470 | tags: 471 | - Events 472 | summary: All Issues 473 | description: List all ongoing issues that are impacting Adobe Products and Services. 474 | operationId: incidentsUsingGET 475 | parameters: 476 | - name: cloudIds 477 | in: query 478 | description: List of cloud ids for which you want to retrieve the incidents. 479 | style: form 480 | explode: true 481 | schema: 482 | type: array 483 | items: 484 | type: string 485 | - name: environmentIds 486 | in: query 487 | description: List of environmentIds for which you want to retrieve the incidents. 488 | style: form 489 | explode: true 490 | schema: 491 | type: array 492 | items: 493 | type: string 494 | - name: from 495 | in: query 496 | description: Retrieve the events starting from Date (yyyy-MM-dd format). 497 | schema: 498 | type: string 499 | format: date 500 | - name: offeringIds 501 | in: query 502 | description: List of offeringIds for which you want to retrieve the incidents. 503 | style: form 504 | explode: true 505 | schema: 506 | type: array 507 | items: 508 | type: string 509 | - name: productIds 510 | in: query 511 | description: List of product ids for which you want to retrieve the incidents. 512 | style: form 513 | explode: true 514 | schema: 515 | type: array 516 | items: 517 | type: string 518 | - name: regionIds 519 | in: query 520 | description: List of regionIds for which you want to retrieve the incidents. 521 | style: form 522 | explode: true 523 | schema: 524 | type: array 525 | items: 526 | type: string 527 | - name: search 528 | in: query 529 | description: Product name search 530 | schema: 531 | type: string 532 | - name: serviceIds 533 | in: query 534 | description: List of serviceIds for which you want to retrieve the incidents. 535 | style: form 536 | explode: true 537 | schema: 538 | type: array 539 | items: 540 | type: string 541 | - name: to 542 | in: query 543 | description: Retrieve the events till Date (yyyy-MM-dd format). 544 | schema: 545 | type: string 546 | format: date 547 | responses: 548 | '200': 549 | description: OK 550 | content: 551 | application/json: 552 | schema: 553 | type: array 554 | items: 555 | $ref: '#/components/schemas/IncidentDto' 556 | '400': 557 | description: Bad Request 558 | content: {} 559 | '401': 560 | description: Unauthorized 561 | content: {} 562 | '403': 563 | description: Forbidden 564 | content: {} 565 | '404': 566 | description: Not Found 567 | content: {} 568 | '429': 569 | description: Too Many Requests 570 | content: {} 571 | '500': 572 | description: Internal Server Error 573 | content: {} 574 | x-codeSamples: 575 | - lang: cURL 576 | label: CLI 577 | source: >- 578 | curl --location --request GET 'https://status.adobe.io/api/v1/events/incidents?api_key=&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=' \ 579 | --header 'Authorization: Bearer ' 580 | - lang: JavaScript 581 | label: JavaScript 582 | source: {$ref: code/JS/incident.js} 583 | - lang: JavaScript 584 | label: NodeJS 585 | source: {$ref: code/Node/incident.js} 586 | /api/v1/events/maintenance: 587 | get: 588 | tags: 589 | - Events 590 | summary: All Maintenances 591 | description: >- 592 | List all ongoing maintenances that are impacting Adobe Products and 593 | Services. 594 | operationId: maintenanceUsingGET 595 | parameters: 596 | - name: cloudIds 597 | in: query 598 | description: List of cloud ids for which you want to retrieve the Maintenance. 599 | style: form 600 | explode: true 601 | schema: 602 | type: array 603 | items: 604 | type: string 605 | - name: environmentIds 606 | in: query 607 | description: >- 608 | List of environmentIds for which you want to retrieve the 609 | Maintenance. 610 | style: form 611 | explode: true 612 | schema: 613 | type: array 614 | items: 615 | type: string 616 | - name: from 617 | in: query 618 | description: Retrieve the events starting from Date (yyyy-MM-dd format). 619 | schema: 620 | type: string 621 | format: date 622 | - name: offeringIds 623 | in: query 624 | description: List of offeringIds for which you want to retrieve the Maintenance. 625 | style: form 626 | explode: true 627 | schema: 628 | type: array 629 | items: 630 | type: string 631 | - name: productIds 632 | in: query 633 | description: List of product ids for which you want to retrieve the Maintenance. 634 | style: form 635 | explode: true 636 | schema: 637 | type: array 638 | items: 639 | type: string 640 | - name: regionIds 641 | in: query 642 | description: List of regionIds for which you want to retrieve the Maintenance. 643 | style: form 644 | explode: true 645 | schema: 646 | type: array 647 | items: 648 | type: string 649 | - name: search 650 | in: query 651 | description: Product name search 652 | schema: 653 | type: string 654 | - name: serviceIds 655 | in: query 656 | description: List of serviceIds for which you want to retrieve the Maintenance. 657 | style: form 658 | explode: true 659 | schema: 660 | type: array 661 | items: 662 | type: string 663 | - name: to 664 | in: query 665 | description: Retrieve the events till Date (yyyy-MM-dd format). 666 | schema: 667 | type: string 668 | format: date 669 | responses: 670 | '200': 671 | description: OK 672 | content: 673 | application/json: 674 | schema: 675 | type: array 676 | items: 677 | $ref: '#/components/schemas/MaintenanceDto' 678 | '400': 679 | description: Bad Request 680 | content: {} 681 | '401': 682 | description: Unauthorized 683 | content: {} 684 | '403': 685 | description: Forbidden 686 | content: {} 687 | '404': 688 | description: Not Found 689 | content: {} 690 | '429': 691 | description: Too Many Requests 692 | content: {} 693 | '500': 694 | description: Internal Server Error 695 | content: {} 696 | x-codeSamples: 697 | - lang: cURL 698 | label: CLI 699 | source: >- 700 | curl --location --request GET 'https://status.adobe.io/api/v1/events/maintenance?api_key=&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=' \ 701 | --header 'Authorization: Bearer ' 702 | - lang: JavaScript 703 | label: JavaScript 704 | source: {$ref: code/JS/maintenance.js} 705 | - lang: JavaScript 706 | label: NodeJS 707 | source: {$ref: code/Node/maintenance.js} 708 | /api/v1/events/scheduled: 709 | get: 710 | tags: 711 | - Events 712 | summary: All Scheduled Maintenances 713 | description: >- 714 | View all upcoming scheduled maintenances that are impacting Adobe 715 | Products and Services. 716 | operationId: scheduledUsingGET 717 | parameters: 718 | - name: cloudIds 719 | in: query 720 | description: List of cloud ids for which you want to retrieve the Maintenance. 721 | style: form 722 | explode: true 723 | schema: 724 | type: array 725 | items: 726 | type: string 727 | - name: environmentIds 728 | in: query 729 | description: >- 730 | List of environmentIds for which you want to retrieve the 731 | Maintenance. 732 | style: form 733 | explode: true 734 | schema: 735 | type: array 736 | items: 737 | type: string 738 | - name: from 739 | in: query 740 | description: Retrieve the events starting from Date (yyyy-MM-dd format). 741 | schema: 742 | type: string 743 | format: date 744 | - name: offeringIds 745 | in: query 746 | description: List of offeringIds for which you want to retrieve the Maintenance. 747 | style: form 748 | explode: true 749 | schema: 750 | type: array 751 | items: 752 | type: string 753 | - name: productIds 754 | in: query 755 | description: List of product ids for which you want to retrieve the Maintenance. 756 | style: form 757 | explode: true 758 | schema: 759 | type: array 760 | items: 761 | type: string 762 | - name: regionIds 763 | in: query 764 | description: List of regionIds for which you want to retrieve the Maintenance. 765 | style: form 766 | explode: true 767 | schema: 768 | type: array 769 | items: 770 | type: string 771 | - name: search 772 | in: query 773 | description: Product name search 774 | schema: 775 | type: string 776 | - name: serviceIds 777 | in: query 778 | description: List of serviceIds for which you want to retrieve the Maintenance. 779 | style: form 780 | explode: true 781 | schema: 782 | type: array 783 | items: 784 | type: string 785 | - name: to 786 | in: query 787 | description: Retrieve the events till Date (yyyy-MM-dd format). 788 | schema: 789 | type: string 790 | format: date 791 | responses: 792 | '200': 793 | description: OK 794 | content: 795 | application/json: 796 | schema: 797 | type: array 798 | items: 799 | $ref: '#/components/schemas/MaintenanceDto' 800 | '400': 801 | description: Bad Request 802 | content: {} 803 | '401': 804 | description: Unauthorized 805 | content: {} 806 | '403': 807 | description: Forbidden 808 | content: {} 809 | '404': 810 | description: Not Found 811 | content: {} 812 | '429': 813 | description: Too Many Requests 814 | content: {} 815 | '500': 816 | description: Internal Server Error 817 | content: {} 818 | x-codeSamples: 819 | - lang: cURL 820 | label: CLI 821 | source: >- 822 | curl --location --request GET 'https://status.adobe.io/api/v1/events/scheduled?api_key=&cloudIds=&environmentIds=&from=&offeringIds=&productIds=®ionIds=&search=&serviceIds=&to=' \ 823 | --header 'Authorization: Bearer ' 824 | - lang: JavaScript 825 | label: JavaScript 826 | source: {$ref: code/JS/scheduled.js} 827 | - lang: JavaScript 828 | label: NodeJS 829 | source: {$ref: code/Node/scheduled.js} 830 | /api/v1/regions: 831 | get: 832 | tags: 833 | - Registry 834 | summary: Regions 835 | description: List all the regions that can be impacted by Adobe Status Events. 836 | operationId: regionsUsingGET 837 | responses: 838 | '200': 839 | description: OK 840 | content: 841 | application/json: 842 | schema: 843 | type: array 844 | items: 845 | $ref: '#/components/schemas/RegionDto' 846 | '400': 847 | description: Bad Request 848 | content: {} 849 | '401': 850 | description: Unauthorized 851 | content: {} 852 | '403': 853 | description: Forbidden 854 | content: {} 855 | '404': 856 | description: Not Found 857 | content: {} 858 | '429': 859 | description: Too Many Requests 860 | content: {} 861 | '500': 862 | description: Internal Server Error 863 | content: {} 864 | x-codeSamples: 865 | - lang: cURL 866 | label: CLI 867 | source: >- 868 | curl --location --request GET 'https://status.adobe.io/api/v1/regions?api_key=' \ 869 | --header 'Authorization: Bearer ' 870 | - lang: JavaScript 871 | label: JavaScript 872 | source: {$ref: code/JS/regions.js} 873 | - lang: JavaScript 874 | label: NodeJS 875 | source: {$ref: code/Node/regions.js} 876 | /api/v1/locales: 877 | get: 878 | tags: 879 | - Registry 880 | summary: Locales 881 | description: >- 882 | List all the locales for the messages for an event impacting Adobe 883 | products. 884 | operationId: localesUsingGET 885 | responses: 886 | '200': 887 | description: OK 888 | content: 889 | application/json: 890 | schema: 891 | type: array 892 | items: 893 | $ref: '#/components/schemas/LocaleDto' 894 | '400': 895 | description: Bad Request 896 | content: {} 897 | '401': 898 | description: Unauthorized 899 | content: {} 900 | '403': 901 | description: Forbidden 902 | content: {} 903 | '404': 904 | description: Not Found 905 | content: {} 906 | '429': 907 | description: Too Many Requests 908 | content: {} 909 | '500': 910 | description: Internal Server Error 911 | content: {} 912 | x-codeSamples: 913 | - lang: cURL 914 | label: CLI 915 | source: >- 916 | curl --location --request GET 'https://status.adobe.io/api/v1/locales?api_key=' \ 917 | --header 'Authorization: Bearer ' 918 | - lang: JavaScript 919 | label: JavaScript 920 | source: {$ref: code/JS/locales.js} 921 | - lang: JavaScript 922 | label: NodeJS 923 | source: {$ref: code/Node/locales.js} 924 | /api/v1/messages: 925 | get: 926 | tags: 927 | - Registry 928 | summary: Messages 929 | description: List all the messages for an event impacting Adobe products. 930 | operationId: messagesUsingGET 931 | parameters: 932 | - name: messageToken 933 | in: query 934 | description: Message token for which you want to retrieve the messages. 935 | style: form 936 | explode: true 937 | schema: 938 | type: string 939 | responses: 940 | '200': 941 | description: OK 942 | content: 943 | application/json: 944 | schema: 945 | type: array 946 | items: 947 | $ref: '#/components/schemas/MessagesDto' 948 | '400': 949 | description: Bad Request 950 | content: {} 951 | '401': 952 | description: Unauthorized 953 | content: {} 954 | '403': 955 | description: Forbidden 956 | content: {} 957 | '404': 958 | description: Not Found 959 | content: {} 960 | '429': 961 | description: Too Many Requests 962 | content: {} 963 | '500': 964 | description: Internal Server Error 965 | content: {} 966 | x-codeSamples: 967 | - lang: cURL 968 | label: CLI 969 | source: >- 970 | curl --location --request GET 'https://status.adobe.io/api/v1/messages?api_key=' \ 971 | --header 'Authorization: Bearer ' 972 | - lang: JavaScript 973 | label: JavaScript 974 | source: {$ref: code/JS/messages.js} 975 | - lang: JavaScript 976 | label: NodeJS 977 | source: {$ref: code/Node/messages.js} 978 | /api/v1/messages/{locale}: 979 | get: 980 | tags: 981 | - Registry 982 | summary: Messages By Locale 983 | description: >- 984 | List all the messages for a locale, for an event impacting Adobe 985 | products.
Note: Use Locales API(`/api/v1/locales`) to get 986 | supported locales 987 | operationId: messagesUsingGET_1 988 | parameters: 989 | - name: locale 990 | in: path 991 | description: Locale for fetching message details. 992 | required: true 993 | schema: 994 | type: string 995 | - name: messageToken 996 | in: query 997 | description: Message token for which you want to retrieve the messages. 998 | style: form 999 | explode: true 1000 | schema: 1001 | type: string 1002 | responses: 1003 | '200': 1004 | description: OK 1005 | content: 1006 | application/json: 1007 | schema: 1008 | type: array 1009 | items: 1010 | $ref: '#/components/schemas/MessagesDto' 1011 | '400': 1012 | description: Bad Request 1013 | content: {} 1014 | '401': 1015 | description: Unauthorized 1016 | content: {} 1017 | '403': 1018 | description: Forbidden 1019 | content: {} 1020 | '404': 1021 | description: Not Found 1022 | content: {} 1023 | '429': 1024 | description: Too Many Requests 1025 | content: {} 1026 | '500': 1027 | description: Internal Server Error 1028 | content: {} 1029 | x-codeSamples: 1030 | - lang: cURL 1031 | label: CLI 1032 | source: >- 1033 | curl --location --request GET 'https://status.adobe.io/api/v1/messages/es?api_key=' \ 1034 | --header 'Authorization: Bearer ' 1035 | - lang: JavaScript 1036 | label: JavaScript 1037 | source: {$ref: code/JS/messagesbylocale.js} 1038 | - lang: JavaScript 1039 | label: NodeJS 1040 | source: {$ref: code/Node/messagesbylocale.js} 1041 | components: 1042 | schemas: 1043 | Cloud: 1044 | title: Cloud 1045 | type: object 1046 | properties: 1047 | cloudProducts: 1048 | uniqueItems: true 1049 | type: array 1050 | items: 1051 | $ref: '#/components/schemas/CloudProduct' 1052 | id: 1053 | type: string 1054 | name: 1055 | type: string 1056 | CloudProduct: 1057 | title: CloudProduct 1058 | type: object 1059 | properties: 1060 | id: 1061 | type: string 1062 | name: 1063 | type: string 1064 | Environment: 1065 | title: Environment 1066 | type: object 1067 | properties: 1068 | id: 1069 | type: string 1070 | name: 1071 | type: string 1072 | regionId: 1073 | uniqueItems: true 1074 | type: array 1075 | items: 1076 | type: string 1077 | Error: 1078 | title: Error 1079 | type: object 1080 | properties: 1081 | error_code: 1082 | type: string 1083 | message: 1084 | type: string 1085 | Event: 1086 | title: Event 1087 | type: object 1088 | properties: 1089 | incidents: 1090 | type: array 1091 | items: 1092 | $ref: '#/components/schemas/IncidentDto' 1093 | maintenances: 1094 | type: array 1095 | items: 1096 | $ref: '#/components/schemas/MaintenanceDto' 1097 | EventCapabilities: 1098 | title: EventCapabilities 1099 | type: object 1100 | properties: 1101 | id: 1102 | type: string 1103 | name: 1104 | type: string 1105 | productServices: 1106 | uniqueItems: true 1107 | type: array 1108 | items: 1109 | type: string 1110 | EventCloud: 1111 | title: EventCloud 1112 | type: object 1113 | properties: 1114 | cloudProducts: 1115 | uniqueItems: true 1116 | type: array 1117 | items: 1118 | type: string 1119 | id: 1120 | type: string 1121 | name: 1122 | type: string 1123 | EventEnvironment: 1124 | title: EventEnvironment 1125 | type: object 1126 | properties: 1127 | id: 1128 | type: string 1129 | name: 1130 | type: string 1131 | serviceRegions: 1132 | uniqueItems: true 1133 | type: array 1134 | items: 1135 | type: string 1136 | EventOffering: 1137 | title: EventOffering 1138 | type: object 1139 | properties: 1140 | id: 1141 | type: string 1142 | name: 1143 | type: string 1144 | productCapabilities: 1145 | uniqueItems: true 1146 | type: array 1147 | items: 1148 | type: string 1149 | productServices: 1150 | uniqueItems: true 1151 | type: array 1152 | items: 1153 | type: string 1154 | EventOfferingDto: 1155 | title: EventOfferingDto 1156 | type: object 1157 | properties: 1158 | id: 1159 | type: string 1160 | name: 1161 | type: string 1162 | productServices: 1163 | uniqueItems: true 1164 | type: array 1165 | items: 1166 | type: string 1167 | EventRegion: 1168 | title: EventRegion 1169 | type: object 1170 | properties: 1171 | id: 1172 | type: string 1173 | name: 1174 | type: string 1175 | EventServices: 1176 | title: EventServices 1177 | type: object 1178 | properties: 1179 | id: 1180 | type: string 1181 | name: 1182 | type: string 1183 | serviceEnvironments: 1184 | uniqueItems: true 1185 | type: array 1186 | items: 1187 | type: string 1188 | Events: 1189 | title: Events 1190 | type: object 1191 | properties: 1192 | incidentEvent: 1193 | $ref: '#/components/schemas/IncidentDetails' 1194 | maintenanceEvent: 1195 | $ref: '#/components/schemas/MaintenanceDetails' 1196 | ImpactedServices: 1197 | title: ImpactedServices 1198 | type: object 1199 | properties: 1200 | productCapabilities: 1201 | uniqueItems: true 1202 | type: array 1203 | items: 1204 | type: string 1205 | productOfferings: 1206 | uniqueItems: true 1207 | type: array 1208 | items: 1209 | type: string 1210 | productServices: 1211 | uniqueItems: true 1212 | type: array 1213 | items: 1214 | type: string 1215 | Incident: 1216 | title: Incident 1217 | type: object 1218 | properties: 1219 | capabilities: 1220 | type: object 1221 | additionalProperties: 1222 | $ref: '#/components/schemas/EventCapabilities' 1223 | clouds: 1224 | type: object 1225 | additionalProperties: 1226 | $ref: '#/components/schemas/EventCloud' 1227 | environments: 1228 | type: object 1229 | additionalProperties: 1230 | $ref: '#/components/schemas/EventEnvironment' 1231 | id: 1232 | type: string 1233 | offerings: 1234 | type: object 1235 | additionalProperties: 1236 | $ref: '#/components/schemas/EventOffering' 1237 | products: 1238 | type: object 1239 | additionalProperties: 1240 | $ref: '#/components/schemas/IncidentProduct' 1241 | regions: 1242 | type: object 1243 | additionalProperties: 1244 | $ref: '#/components/schemas/EventRegion' 1245 | services: 1246 | type: object 1247 | additionalProperties: 1248 | $ref: '#/components/schemas/EventServices' 1249 | IncidentDetails: 1250 | title: IncidentDetails 1251 | type: object 1252 | properties: 1253 | incidents: 1254 | type: object 1255 | additionalProperties: 1256 | $ref: '#/components/schemas/Incident' 1257 | messages: 1258 | type: object 1259 | additionalProperties: 1260 | type: object 1261 | additionalProperties: 1262 | $ref: '#/components/schemas/Message' 1263 | IncidentDto: 1264 | title: IncidentDto 1265 | type: object 1266 | properties: 1267 | clouds: 1268 | type: array 1269 | items: 1270 | $ref: '#/components/schemas/EventCloud' 1271 | environment: 1272 | type: array 1273 | items: 1274 | $ref: '#/components/schemas/EventEnvironment' 1275 | id: 1276 | type: string 1277 | offering: 1278 | type: array 1279 | items: 1280 | $ref: '#/components/schemas/EventOfferingDto' 1281 | products: 1282 | type: array 1283 | items: 1284 | $ref: '#/components/schemas/IncidentProductDto' 1285 | region: 1286 | type: array 1287 | items: 1288 | $ref: '#/components/schemas/EventRegion' 1289 | services: 1290 | type: array 1291 | items: 1292 | $ref: '#/components/schemas/EventServices' 1293 | IncidentHistoryEvent: 1294 | title: IncidentHistoryEvent 1295 | required: 1296 | - customerImpact 1297 | - messageType 1298 | - operationsImpact 1299 | - previousCustomerImpact 1300 | - previousOperationsImpact 1301 | - previousSeverity 1302 | - previousStatus 1303 | - severity 1304 | - showEnvironment 1305 | - status 1306 | type: object 1307 | properties: 1308 | cfsId: 1309 | type: string 1310 | cfsSource: 1311 | type: string 1312 | customerImpact: 1313 | type: string 1314 | enum: 1315 | - Most 1316 | - None 1317 | - Some 1318 | - Unknown 1319 | id: 1320 | type: string 1321 | isEndDateChanged: 1322 | type: boolean 1323 | isStartDateChanged: 1324 | type: boolean 1325 | locationImpact: 1326 | $ref: '#/components/schemas/LocationImpact' 1327 | messageTime: 1328 | minimum: 1 1329 | exclusiveMinimum: false 1330 | type: integer 1331 | format: int64 1332 | messageToken: 1333 | type: string 1334 | messageType: 1335 | type: string 1336 | enum: 1337 | - CFS 1338 | - Canned 1339 | - Custom 1340 | - None 1341 | operationsImpact: 1342 | type: string 1343 | enum: 1344 | - Availability 1345 | - None 1346 | - Performance 1347 | - Unknown 1348 | previousCustomerImpact: 1349 | type: string 1350 | enum: 1351 | - Most 1352 | - None 1353 | - Some 1354 | - Unknown 1355 | previousOperationsImpact: 1356 | type: string 1357 | enum: 1358 | - Availability 1359 | - None 1360 | - Performance 1361 | - Unknown 1362 | previousSeverity: 1363 | type: string 1364 | enum: 1365 | - Major 1366 | - Minor 1367 | - None 1368 | - Potential 1369 | - Trivial 1370 | previousStatus: 1371 | type: string 1372 | enum: 1373 | - Closed 1374 | - Discovery 1375 | - Dismissed 1376 | - None 1377 | - Opened 1378 | serviceImpact: 1379 | $ref: '#/components/schemas/ImpactedServices' 1380 | severity: 1381 | type: string 1382 | enum: 1383 | - Major 1384 | - Minor 1385 | - None 1386 | - Potential 1387 | - Trivial 1388 | showEnvironment: 1389 | type: boolean 1390 | status: 1391 | type: string 1392 | enum: 1393 | - Closed 1394 | - Discovery 1395 | - Dismissed 1396 | - None 1397 | - Opened 1398 | statusTime: 1399 | type: integer 1400 | format: int64 1401 | titleToken: 1402 | type: string 1403 | IncidentHistoryEventDto: 1404 | title: IncidentHistoryEventDto 1405 | type: object 1406 | properties: 1407 | cfsId: 1408 | type: string 1409 | cfsSource: 1410 | type: string 1411 | cfsURL: 1412 | type: string 1413 | customerImpact: 1414 | type: string 1415 | enum: 1416 | - Most 1417 | - None 1418 | - Some 1419 | - Unknown 1420 | id: 1421 | type: string 1422 | locationImpact: 1423 | $ref: '#/components/schemas/LocationImpact' 1424 | messageTime: 1425 | type: string 1426 | messageToken: 1427 | type: string 1428 | messageType: 1429 | type: string 1430 | enum: 1431 | - CFS 1432 | - Canned 1433 | - Custom 1434 | - None 1435 | operationsImpact: 1436 | type: string 1437 | enum: 1438 | - Availability 1439 | - None 1440 | - Performance 1441 | - Unknown 1442 | serviceImpact: 1443 | $ref: '#/components/schemas/ImpactedServices' 1444 | severity: 1445 | type: string 1446 | enum: 1447 | - Major 1448 | - Minor 1449 | - None 1450 | - Potential 1451 | - Trivial 1452 | showEnvironment: 1453 | type: boolean 1454 | status: 1455 | type: string 1456 | enum: 1457 | - Closed 1458 | - Discovery 1459 | - Dismissed 1460 | - None 1461 | - Opened 1462 | titleToken: 1463 | type: string 1464 | IncidentProduct: 1465 | title: IncidentProduct 1466 | type: object 1467 | properties: 1468 | endedOn: 1469 | type: integer 1470 | format: int64 1471 | history: 1472 | type: object 1473 | additionalProperties: 1474 | $ref: '#/components/schemas/IncidentHistoryEvent' 1475 | id: 1476 | type: string 1477 | name: 1478 | type: string 1479 | startedOn: 1480 | minimum: 1 1481 | exclusiveMinimum: false 1482 | type: integer 1483 | format: int64 1484 | IncidentProductDto: 1485 | title: IncidentProductDto 1486 | type: object 1487 | properties: 1488 | endedOn: 1489 | type: string 1490 | history: 1491 | type: array 1492 | items: 1493 | $ref: '#/components/schemas/IncidentHistoryEventDto' 1494 | id: 1495 | type: string 1496 | name: 1497 | type: string 1498 | severity: 1499 | type: string 1500 | enum: 1501 | - Major 1502 | - Minor 1503 | - None 1504 | - Potential 1505 | - Trivial 1506 | startedOn: 1507 | type: string 1508 | status: 1509 | type: string 1510 | enum: 1511 | - Closed 1512 | - Empty 1513 | - Opened 1514 | LocaleDto: 1515 | title: LocaleDto 1516 | type: object 1517 | properties: 1518 | languageName: 1519 | type: string 1520 | localeCode: 1521 | type: string 1522 | LocationImpact: 1523 | title: LocationImpact 1524 | type: object 1525 | properties: 1526 | serviceEnvironments: 1527 | uniqueItems: true 1528 | type: array 1529 | items: 1530 | type: string 1531 | serviceRegions: 1532 | uniqueItems: true 1533 | type: array 1534 | items: 1535 | type: string 1536 | Maintenance: 1537 | title: Maintenance 1538 | required: 1539 | - cmrStatus 1540 | - status 1541 | - type 1542 | type: object 1543 | properties: 1544 | capabilities: 1545 | type: object 1546 | additionalProperties: 1547 | $ref: '#/components/schemas/EventCapabilities' 1548 | clouds: 1549 | type: object 1550 | additionalProperties: 1551 | $ref: '#/components/schemas/EventCloud' 1552 | cmrStatus: 1553 | type: string 1554 | enum: 1555 | - Canceled 1556 | - Completed 1557 | - Empty 1558 | - Scheduled 1559 | - Started 1560 | completedOn: 1561 | minimum: 1 1562 | exclusiveMinimum: false 1563 | type: integer 1564 | format: int64 1565 | environments: 1566 | type: object 1567 | additionalProperties: 1568 | $ref: '#/components/schemas/EventEnvironment' 1569 | id: 1570 | type: string 1571 | offerings: 1572 | type: object 1573 | additionalProperties: 1574 | $ref: '#/components/schemas/EventOffering' 1575 | products: 1576 | type: object 1577 | additionalProperties: 1578 | $ref: '#/components/schemas/MaintenanceProduct' 1579 | regions: 1580 | type: object 1581 | additionalProperties: 1582 | $ref: '#/components/schemas/EventRegion' 1583 | reminderDate: 1584 | uniqueItems: true 1585 | type: array 1586 | items: 1587 | type: integer 1588 | format: int64 1589 | scheduledDate: 1590 | type: integer 1591 | format: int64 1592 | services: 1593 | type: object 1594 | additionalProperties: 1595 | $ref: '#/components/schemas/EventServices' 1596 | startedOn: 1597 | minimum: 1 1598 | exclusiveMinimum: false 1599 | type: integer 1600 | format: int64 1601 | status: 1602 | type: string 1603 | enum: 1604 | - Canceled 1605 | - Completed 1606 | - Empty 1607 | - Scheduled 1608 | - Started 1609 | type: 1610 | type: string 1611 | enum: 1612 | - Empty 1613 | - Normal 1614 | - Scheduled 1615 | - Urgent 1616 | MaintenanceDetails: 1617 | title: MaintenanceDetails 1618 | type: object 1619 | properties: 1620 | maintenance: 1621 | type: object 1622 | additionalProperties: 1623 | $ref: '#/components/schemas/Maintenance' 1624 | messages: 1625 | type: object 1626 | additionalProperties: 1627 | type: object 1628 | additionalProperties: 1629 | $ref: '#/components/schemas/Message' 1630 | MaintenanceDto: 1631 | title: MaintenanceDto 1632 | type: object 1633 | properties: 1634 | clouds: 1635 | type: array 1636 | items: 1637 | $ref: '#/components/schemas/EventCloud' 1638 | completedOn: 1639 | type: string 1640 | environment: 1641 | type: array 1642 | items: 1643 | $ref: '#/components/schemas/EventEnvironment' 1644 | id: 1645 | type: string 1646 | maintenanceType: 1647 | type: string 1648 | enum: 1649 | - Empty 1650 | - Normal 1651 | - Scheduled 1652 | - Urgent 1653 | offering: 1654 | type: array 1655 | items: 1656 | $ref: '#/components/schemas/EventOfferingDto' 1657 | products: 1658 | type: array 1659 | items: 1660 | $ref: '#/components/schemas/MaintenanceProductDto' 1661 | region: 1662 | type: array 1663 | items: 1664 | $ref: '#/components/schemas/EventRegion' 1665 | reminderDate: 1666 | uniqueItems: true 1667 | type: array 1668 | items: 1669 | type: string 1670 | scheduledDate: 1671 | type: string 1672 | services: 1673 | type: array 1674 | items: 1675 | $ref: '#/components/schemas/EventServices' 1676 | startedOn: 1677 | type: string 1678 | status: 1679 | type: string 1680 | enum: 1681 | - Canceled 1682 | - Completed 1683 | - Empty 1684 | - Scheduled 1685 | - Started 1686 | MaintenanceHistoryEvent: 1687 | title: MaintenanceHistoryEvent 1688 | required: 1689 | - customerImpact 1690 | - messageType 1691 | - operationsImpact 1692 | - showEnvironment 1693 | - status 1694 | type: object 1695 | properties: 1696 | customerImpact: 1697 | type: string 1698 | enum: 1699 | - Most 1700 | - None 1701 | - Some 1702 | - Unknown 1703 | id: 1704 | type: string 1705 | locationImpact: 1706 | $ref: '#/components/schemas/LocationImpact' 1707 | messageTime: 1708 | minimum: 1 1709 | exclusiveMinimum: false 1710 | type: integer 1711 | format: int64 1712 | messageToken: 1713 | type: string 1714 | messageType: 1715 | type: string 1716 | enum: 1717 | - Canned 1718 | - Custom 1719 | operationsImpact: 1720 | type: string 1721 | enum: 1722 | - Availability 1723 | - None 1724 | - Performance 1725 | - Unknown 1726 | serviceImpact: 1727 | $ref: '#/components/schemas/ImpactedServices' 1728 | showEnvironment: 1729 | type: boolean 1730 | status: 1731 | type: string 1732 | enum: 1733 | - Cancelled 1734 | - Completed 1735 | - Empty 1736 | - Scheduled 1737 | - Started 1738 | - Updated 1739 | titleToken: 1740 | type: string 1741 | MaintenanceProduct: 1742 | title: MaintenanceProduct 1743 | type: object 1744 | properties: 1745 | history: 1746 | type: object 1747 | additionalProperties: 1748 | $ref: '#/components/schemas/MaintenanceHistoryEvent' 1749 | id: 1750 | type: string 1751 | name: 1752 | type: string 1753 | MaintenanceProductDto: 1754 | title: MaintenanceProductDto 1755 | type: object 1756 | properties: 1757 | history: 1758 | type: array 1759 | items: 1760 | $ref: '#/components/schemas/MaintenanceHistoryEvent' 1761 | id: 1762 | type: string 1763 | name: 1764 | type: string 1765 | Message: 1766 | title: Message 1767 | type: object 1768 | properties: 1769 | htmlMessage: 1770 | type: string 1771 | textMessage: 1772 | type: string 1773 | token: 1774 | type: string 1775 | MessagesDto: 1776 | title: MessagesDto 1777 | type: object 1778 | properties: 1779 | incidentMessages: 1780 | type: object 1781 | additionalProperties: 1782 | $ref: '#/components/schemas/Message' 1783 | languageCode: 1784 | type: string 1785 | maintenanceMessages: 1786 | type: object 1787 | additionalProperties: 1788 | $ref: '#/components/schemas/Message' 1789 | Offering: 1790 | title: Offering 1791 | type: object 1792 | properties: 1793 | id: 1794 | type: string 1795 | name: 1796 | type: string 1797 | productServices: 1798 | uniqueItems: true 1799 | type: array 1800 | items: 1801 | type: string 1802 | Product: 1803 | title: Product 1804 | type: object 1805 | properties: 1806 | environments: 1807 | type: array 1808 | items: 1809 | $ref: '#/components/schemas/Environment' 1810 | id: 1811 | type: string 1812 | name: 1813 | type: string 1814 | productOfferings: 1815 | type: array 1816 | items: 1817 | $ref: '#/components/schemas/Offering' 1818 | productServices: 1819 | type: array 1820 | items: 1821 | $ref: '#/components/schemas/ProductService' 1822 | regions: 1823 | type: array 1824 | items: 1825 | $ref: '#/components/schemas/RegionDto' 1826 | ProductService: 1827 | title: ProductService 1828 | type: object 1829 | properties: 1830 | id: 1831 | type: string 1832 | name: 1833 | type: string 1834 | serviceEnvironments: 1835 | uniqueItems: true 1836 | type: array 1837 | items: 1838 | type: string 1839 | RegionDto: 1840 | title: RegionDto 1841 | type: object 1842 | properties: 1843 | id: 1844 | type: string 1845 | name: 1846 | type: string 1847 | securitySchemes: 1848 | Authorization: 1849 | description: >- 1850 | [To generate OAuth Authorization 1851 | token](https://developer.adobe.com/developer-console/docs/guides/authentication/ServerToServerAuthentication/implementation/) 1852 | type: http 1853 | scheme: bearer 1854 | api_key: 1855 | type: apiKey 1856 | description: Use the api key `StatusAdobeIOClient` 1857 | name: api_key 1858 | in: query 1859 | --------------------------------------------------------------------------------