diff --git a/specification/communication/data-plane/NetworkTraversal/preview/2021-10-08-preview/CommunicationNetworkTraversal.json b/specification/communication/data-plane/NetworkTraversal/preview/2021-10-08-preview/CommunicationNetworkTraversal.json new file mode 100644 index 000000000000..d2fb65ae0878 --- /dev/null +++ b/specification/communication/data-plane/NetworkTraversal/preview/2021-10-08-preview/CommunicationNetworkTraversal.json @@ -0,0 +1,171 @@ +{ + "swagger": "2.0", + "info": { + "title": "CommunicationNetworkingClient", + "description": "Azure Communication Networking Service", + "version": "2021-10-08-preview" + }, + "paths": { + "/networktraversal/:issueRelayConfiguration": { + "post": { + "tags": [ + "Turn" + ], + "summary": "Issue a configuration for an STUN/TURN server for an existing identity.", + "operationId": "CommunicationNetworkTraversal_IssueRelayConfiguration", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "in": "body", + "name": "body", + "schema": { + "$ref": "#/definitions/CommunicationRelayConfigurationRequest" + } + } + ], + "responses": { + "200": { + "description": "Success", + "schema": { + "$ref": "#/definitions/CommunicationRelayConfiguration" + } + }, + "default": { + "description": "Error", + "schema": { + "$ref": "../../../Common/stable/2021-03-07/common.json#/definitions/CommunicationErrorResponse" + } + } + }, + "x-ms-examples": { + "Issue Relay Configuration": { + "$ref": "./examples/IssueRelayConfiguration.json" + } + } + } + } + }, + "definitions": { + "CommunicationRelayConfigurationRequest": { + "description": "Request for a CommunicationRelayConfiguration.", + "type": "object", + "properties": { + "id": { + "description": "An existing ACS identity.", + "type": "string" + }, + "routeType": { + "description": "The routing methodology to where the ICE server will be located from the client.", + "type": "string", + "default": "any", + "enum": [ + "any", + "nearest" + ] + } + } + }, + "CommunicationIceServer": { + "description": "An instance of a STUN/TURN server with credentials to be used for ICE negotiation.", + "required": [ + "credential", + "urls", + "username", + "routeType" + ], + "type": "object", + "properties": { + "urls": { + "description": "List of STUN/TURN server URLs.", + "type": "array", + "items": { + "type": "string" + } + }, + "username": { + "description": "User account name which uniquely identifies the credentials.", + "type": "string" + }, + "credential": { + "description": "Credential for the server.", + "type": "string" + }, + "routeType": { + "description": "The routing methodology to where the ICE server will be located from the client.", + "type": "string", + "enum": [ + "any", + "nearest" + ] + } + } + }, + "CommunicationRelayConfiguration": { + "description": "A relay configuration containing the STUN/TURN URLs and credentials.", + "required": [ + "expiresOn", + "iceServers" + ], + "type": "object", + "properties": { + "expiresOn": { + "format": "date-time", + "description": "The date for which the username and credentials are not longer valid.", + "type": "string" + }, + "iceServers": { + "description": "An array representing the credentials and the STUN/TURN server URLs for use in ICE negotiations.", + "type": "array", + "items": { + "$ref": "#/definitions/CommunicationIceServer" + } + } + } + } + }, + "parameters": { + "ApiVersionParameter": { + "in": "query", + "name": "api-version", + "description": "Version of API to invoke.", + "required": true, + "enum": [ + "2021-10-08-preview" + ], + "type": "string" + } + }, + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "flow": "implicit", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "x-ms-parameterized-host": { + "hostTemplate": "{endpoint}", + "useSchemePrefix": false, + "parameters": [ + { + "name": "endpoint", + "description": "The communication resource, for example https://my-resource.communication.azure.com", + "required": true, + "type": "string", + "in": "path", + "x-ms-skip-url-encoding": true, + "x-ms-parameter-location": "client" + } + ] + } +} diff --git a/specification/communication/data-plane/NetworkTraversal/preview/2021-10-08-preview/examples/IssueRelayConfiguration.json b/specification/communication/data-plane/NetworkTraversal/preview/2021-10-08-preview/examples/IssueRelayConfiguration.json new file mode 100644 index 000000000000..0927f60852e7 --- /dev/null +++ b/specification/communication/data-plane/NetworkTraversal/preview/2021-10-08-preview/examples/IssueRelayConfiguration.json @@ -0,0 +1,28 @@ +{ + "parameters": { + "api-version": "2021-10-08-preview", + "content-type": "application/json", + "body": { + "id": "8:acs:2dee53b4-368b-45b4-ab52-8493fb117652_00000005-14a2-493b-8a72-5a3a0d000081" + }, + "endpoint": "https://my-resource.communication.azure.com" + }, + "responses": { + "200": { + "body": { + "expiresOn": "2021-11-10T21:39:39.3244584+00:00", + "iceServers": [ + { + "urls": [ + "turn:131.107.255.255:3478", + "stun:131.107.255.255:3478" + ], + "username": "AgAAJNOeygwB1uVGvuwAVMHV4PLhYDgY66Fg1dUZvQ4AAAAEhXrhc8uJFjOK8lxEsZk3KIpWxc0=", + "credential": "9rl8ablFWj6/aqSuPLgLykLZKqw=", + "routeType": "any" + } + ] + } + } + } +} diff --git a/specification/communication/data-plane/NetworkTraversal/readme.md b/specification/communication/data-plane/NetworkTraversal/readme.md index de431910454a..d8e5e19406b2 100644 --- a/specification/communication/data-plane/NetworkTraversal/readme.md +++ b/specification/communication/data-plane/NetworkTraversal/readme.md @@ -49,6 +49,15 @@ input-file: - preview/2021-06-21-preview/CommunicationNetworkTraversal.json ``` +### Tag: package-2021-10-08-preview + +These settings apply only when `--tag=package-2021-10-08-preview` is specified on the command line. + +```yaml $(tag) == 'package-2021-10-08-preview' +input-file: + - preview/2021-10-08-preview/CommunicationNetworkTraversal.json +``` + --- # Code Generation