{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"caabd8f2-285f-40b2-a3c0-7b2d1038750a","name":"AMPLIFY Central - Promote API to Unified Catalog","description":"# AMPLIFY Central collection to promote an APIs to AMPLIFY Central Unified Catalog.\n\nFor authentication, the APIS require OAuth2 implicit:\nhttps://learning.postman.com/docs/postman/sending-api-requests/authorization/#implicit\n\nTo authenticate use: \n* Grant Type: `Implicit`\n* Auth URL:`https://login.axway.com/auth/realms/Broker/protocol/openid-connect/auth?idpHint=360`\n\nTo run the collection make sure your Axway Platform tenant id is set as a Postman Environment variable named \"org_id\".\n\nAll the resources in this collection are created in AMPLIFY API Server. \n\nAPI Server oas3 specification can be downloaded from: `https://apicentral.axway.com/apis/docs`\n\n## API Server resource types\nAPI Server supports two types of resources: Unscoped and Scoped.\n\n### Unscoped resources\n\nAre top level resources that can group a set of other resources.\nThe endpoints for Unscoped resources are defined as:\n\n| Operation | URL                                                                       | Description                                                                                               |\n|--------- |------------------------------------------------------------------------- |--------------------------------------------------------------------------------------------------------- |\n| GET       | /apis/{group}/{apiVersion}/{resourceNamesPlural}                          | Lists all resources of the kind related to the resourceNamesPlural and the specified group and version    |\n| POST      | /apis/{group}/{apiVersion}/{resourceNamesPlural}                          | Creates a new resource of the kind related to the resourceNamesPlural and the specified group and version |\n| GET       | /apis/{group}/{apiVersion}/{resourceNamesPlural}/{name}                   | Retries a resource with a specific name                                                                   |\n| DELETE    | /apis/{group}/{apiVersion}/{resourceNamesPlural}/{name}                   | Removes a resource with a specific name                                                                   |\n| PUT       | /apis/{group}/{apiVersion}/{resourceNamesPlural}/{name}                   | Updates a resource with a specific name                                                                   |\n| GET       | /apis/{group}/{apiVersion}/{resourceNamesPlural}/{name}/{subResourceName} | Retrieves a sub resource with the specified spec name                                                     |\n| PUT       | /apis/{group}/{apiVersion}/{resourceNamesPlural}/{name}/{subResourceName} | Updates a subresource with the specified spec name                                                        |\n\n\n\n### Scoped resources\nCan only be created, updated and deleted by specifying the scope in their path.\n\n| Operation | URL                                                                                                                        | Description                                                                                            |\n|--------- |-------------------------------------------------------------------------------------------------------------------------- |------------------------------------------------------------------------------------------------------ |\n| GET       | /apis/{group}/{apiVersion}/{resourceNamesPlural}                                                                           | Lists all resources of the kind related to the resourceNamesPlural and the specified group and version |\n| GET       | /apis/{group}/{apiVersion}/{scopedResourceNamesPlural}/{scopedResourceName}/{resourceNamesPlural}                          | Lists all the resources under their defined scope.                                                     |\n| POST      | /apis/{group}/{apiVersion}/{scopedResourceNamesPlural}/{scopedResourceName}/{resourceNamesPlural}                          | Creates a new resources under its defined scope.                                                       |\n| GET       | /apis/{group}/{apiVersion}/{scopedResourceNamesPlural}/{scopedResourceName}/{resourceNamesPlural}/{name}                   | Retries a resource with a specific name under the spcified scope name.                                 |\n| DELETE    | /apis/{group}/{apiVersion}/{scopedResourceNamesPlural}/{scopedResourceName}/{resourceNamesPlural}/{name}                   | Removes a resource with a specific name under the spcified scope name                                  |\n| PUT       | /apis/{group}/{apiVersion}/{scopedResourceNamesPlural}/{scopedResourceName}/{resourceNamesPlural}/{name}                   | Updates a resource with a specific name under the spcified scope name                                  |\n| GET       | /apis/{group}/{apiVersion}/{scopedResourceNamesPlural}/{scopedResourceName}/{resourceNamesPlural}/{name}/{subResourceName} | Retrieves a sub resource with the specified spec name under the specified scope.                       |\n| PUT       | /apis/{group}/{apiVersion}/{scopedResourceNamesPlural}/{scopedResourceName}/{resourceNamesPlural}/{name}/{subResourceName} | Updates a subresource with the specified spec name under the specified scope.                          |\n\n\n\n### References between resources\nA resource can reference another one by name in their spec. The fields the contain a reference are annotated in the oas3 spec with `x-amplify-kind-ref`. \n\nThere are two types of references:\n- hard\n- soft\n\nWhen a spec field has a hard reference to another resource, that means that when the referenced resource is removed, the current resource that has the reference will also be removed. \nExample, when an APIService gets removed, its APIServiceRevision gets removed as well. \n\nWhen a spec field has a soft reference to another resource, it will not get removed when the referenced resource is removed, but its reference will get nulled out.\nFor soft references, the API Server oas3 spec will have an additional annotation: `x-amplify-kind-ref-type: \"soft\"`.\nExample, when a Webhook resource gets removed, the reference from ConsumerSubscriptionDefinition resources get nulled out.\n\nFor both types of resources, if they live under an unscoped resource, then when the unscoped resource gets removed, all the resources in its scope are removed. Example, when an Environment is removed, APIService, APIServiceRevision, etc. are cleaned asynchronously. \n\n## Promoting an API Service to Unified Catalog \nPromoting the API Service is done through creating a ConsumerInstance resource. AMPLIFY Central will asynchronously gather information from the created API Service, API Service Revision and API Service Instance to create an entry in AMPLIFY Unified Catalog.\n\nAMPLIFY Unified Catalog currently has support of the following definition types and subtypes:\n\n| Definition type | Definition subtype |\n|-----------------|--------------------|\n| API             | swaggerv2          |\n| API             | oas3               |\n| API             | wsdl               |\n| API             | protobuf           |\n| API             | unstructured       |\n| MFT             | servicedefinition  |\n| CUSTOM          | unstructured       |\n\nIn API Server, the resource representing a Catalog Item in AMPLIFY Unified Catalog is a ConsumerInstance.\nThe ConsumerInstance has an optional reference to an APIServiceInstance, while the APIServiceInstance is linked to an APIServiceRevision.\n\nMapping between API Server resources and Unified Catalog resource types:\n\n| APIServiceRevision (.spec.definition.type) | APIServiceInstance ref in ConsumerInstance|-> |Definition subtype | Definition type |\n|--------------------------------------------|-------------------------------------------|---|-------------------|-----------------|\n| oas2                                       | present                                   |-> | API               | swaggerv2       |\n| oas3                                       | present                                   |-> | API               | oas3            |\n| wsdl                                       | present                                   |-> | API               | wsdl            |\n| protobuf                                   | present                                   |-> | API               | protobuf        |\n| anything else                              | present                                   |-> | API               | unstructured    |\n| not present                                | not present                               |-> | CUSTOM            | unstructured    |\n\nIf a ConsumerInstance has a reference to an APIServiceInstance, then the type in Unified Catalog will be API.\nIf a ConsumerInstance does not reference an APIServiceInstance, then the type is CUSTOM, subtype unstructured.\n\n\n## Configure Unified Catalog to send events on subscription updates\n\nWehbhook invocations on subscription updates in Unified Catalog is possible by creating a Webhook resource, linking it to a ConsumerSubscriptionDefinition and having the ConsumerSubscriptionDefinition references in the ConsumerInstance resource.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"2125605","team":761200,"collectionId":"caabd8f2-285f-40b2-a3c0-7b2d1038750a","publishedId":"SzKbLaVV","public":true,"publicUrl":"https://documenter-api.postman.tech/view/2125605/SzKbLaVV","privateUrl":"https://go.postman.co/documentation/2125605-caabd8f2-285f-40b2-a3c0-7b2d1038750a","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","version":"8.10.0","publishDate":"2020-03-02T15:53:18.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"Amplify Central Production","id":"0fc36193-b3a8-4aba-9dad-efc26e1ba063","owner":"2125605","values":[{"key":"amplify_central_url","value":"https://apicentral.axway.com","enabled":true},{"key":"org_id","value":"701901766188168","enabled":true},{"key":"platform_auth_url","value":"https://login.axway.com/auth/realms/Broker/protocol/openid-connect/auth","enabled":true},{"key":"env_name","value":"test","enabled":true},{"key":"auth_token","value":"","enabled":true},{"key":"global_id","value":"","enabled":true}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/8c6678240f6916ce64395a58ef3eecc0755679de28211c3d33a8833c9bed8b63","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"Amplify Central Production","value":"2125605-0fc36193-b3a8-4aba-9dad-efc26e1ba063"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/SzKbLaVV"}