Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Communication] Adding 2022-02-01 NetworkTraversal API version for General Availability #16946

Merged
merged 3 commits into from
Dec 8, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,15 @@ input-file:
- preview/2021-10-08-preview/CommunicationNetworkTraversal.json
```

### Tag: package-2022-02-01

These settings apply only when `--tag=package-2022-02-01` is specified on the command line.

```yaml $(tag) == 'package-2022-02-01'
input-file:
- stable/2022-02-01/CommunicationNetworkTraversal.json
```

---

# Code Generation
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
{
"swagger": "2.0",
"info": {
"title": "CommunicationNetworkTraversalClient",
"description": "Azure Communication Network Traversal Service",
"version": "2022-02-01"
},
"paths": {
"/networkTraversal/:issueRelayConfiguration": {
"post": {
"tags": [
"Turn"
],
"summary": "Issue a configuration for an STUN/TURN server.",
"operationId": "CommunicationNetworkTraversal_IssueRelayConfiguration",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/ApiVersionParameter"
},
{
"description": "Optional request for providing the id and/or route type for the returned relay configuration.",
"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 identity to be associated with telemetry for data relayed using the returned credentials. Must be an existing ACS user identity. If not provided, the telemetry will not contain an associated identity value.",
"type": "string"
},
"routeType": {
"description": "Filter the routing methodology returned. If not provided, will return all route types in separate ICE servers.",
"$ref": "#/definitions/RouteType"
}
}
},
"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": {
"$ref": "#/definitions/RouteType"
}
}
},
"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. Will be 48 hours from request time.",
"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"
}
}
}
},
"RouteType": {
"description": "The routing methodology to where the ICE server will be located from the client. \"any\" will have higher reliability while \"nearest\" will have lower latency. It is recommended to default to use the \"any\" routing method unless there are specific scenarios which minimizing latency is critical.",
"enum": [
"any",
"nearest"
],
"type": "string",
"x-ms-enum": {
"name": "RouteType",
"modelAsString": true
}
}
},
"parameters": {
"ApiVersionParameter": {
"in": "query",
"name": "api-version",
"description": "Version of API to invoke.",
"required": true,
"enum": [
"2022-02-01"
],
"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"
}
]
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"parameters": {
"api-version": "2022-02-01",
"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": "2022-01-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"
}
]
}
}
}
}