diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json new file mode 100644 index 000000000000..6e840a1d9a20 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json @@ -0,0 +1,1088 @@ +{ + "swagger": "2.0", + "info": { + "title": "Azure Communication Services Management API", + "version": "2020-08-20-preview", + "description": "REST API for Azure Communication Services" + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "host": "management.azure.com", + "schemes": [ + "https" + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, + "paths": { + "/providers/Microsoft.Communication/operations": { + "get": { + "description": "Lists all of the available REST API operations of the Microsoft.Communication provider.", + "operationId": "Operations_List", + "summary": "List Operations", + "tags": [ + "Operations" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Success. The response describes the list of operations.", + "schema": { + "$ref": "#/definitions/OperationList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}/linkNotificationHub": { + "post": { + "description": "Links an Azure Notification Hub to this communication service.", + "operationId": "CommunicationService_LinkNotificationHub", + "summary": "Link Notification Hub", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "name": "linkNotificationHubParameters", + "in": "body", + "schema": { + "$ref": "#/definitions/LinkNotificationHubParameters" + }, + "description": "Parameters supplied to the operation." + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/CommunicationServiceName" + } + ], + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "Success. The notification hub has been linked.", + "schema": { + "$ref": "#/definitions/LinkedNotificationHub" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Link notification hub": { + "$ref": "./examples/linkNotificationHub.json" + } + } + } + }, + "/providers/Microsoft.Communication/locations/{location}/operationStatuses/{operationId}": { + "get": { + "description": "Gets the current status of an async operation.", + "operationId": "OperationStatuses_Get", + "summary": "Get Operation Status", + "tags": [ + "OperationStatus" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/LocationParameter" + }, + { + "$ref": "#/parameters/OperationIdParameter" + } + ], + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "The requested operation status", + "schema": { + "$ref": "#/definitions/OperationStatus" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Get OperationStatus": { + "$ref": "./examples/getOperationStatus.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.Communication/communicationServices": { + "get": { + "description": "Handles requests to list all resources in a subscription.", + "operationId": "CommunicationService_ListBySubscription", + "summary": "List By Subscription", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Success. The response describes the list of CommunicationServices in the subscription.", + "schema": { + "$ref": "#/definitions/CommunicationServiceResourceList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List by subscription": { + "$ref": "./examples/listBySubscription.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices": { + "get": { + "description": "Handles requests to list all resources in a resource group.", + "operationId": "CommunicationService_ListByResourceGroup", + "summary": "List By Resource Group", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + } + ], + "responses": { + "200": { + "description": "Success. The response describes the list of CommunicationServices in a resourceGroup.", + "schema": { + "$ref": "#/definitions/CommunicationServiceResourceList" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "produces": [ + "application/json" + ], + "x-ms-examples": { + "List by resource group": { + "$ref": "./examples/listByResourceGroup.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}": { + "patch": { + "description": "Operation to update an existing CommunicationService.", + "operationId": "CommunicationService_Update", + "summary": "Update", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "name": "parameters", + "in": "body", + "description": "Parameters for the update operation", + "required": false, + "schema": { + "$ref": "#/definitions/TaggedResource" + } + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/CommunicationServiceName" + } + ], + "responses": { + "200": { + "description": "The update request was successful", + "schema": { + "$ref": "#/definitions/CommunicationServiceResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Update resource": { + "$ref": "./examples/update.json" + } + } + }, + "get": { + "description": "Get the CommunicationService and its properties.", + "operationId": "CommunicationService_Get", + "summary": "Get", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/CommunicationServiceName" + } + ], + "responses": { + "200": { + "description": "Success. The response describe the corresponding CommunicationService service.", + "schema": { + "$ref": "#/definitions/CommunicationServiceResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Get resource": { + "$ref": "./examples/get.json" + } + } + }, + "put": { + "description": "Create a new CommunicationService or update an existing CommunicationService.", + "operationId": "CommunicationService_CreateOrUpdate", + "summary": "Create Or Update", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "name": "parameters", + "in": "body", + "description": "Parameters for the create or update operation", + "required": false, + "schema": { + "$ref": "#/definitions/CommunicationServiceResource" + } + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/CommunicationServiceName" + } + ], + "consumes": [ + "application/json" + ], + "responses": { + "200": { + "description": "The create or update request was completed successfully", + "schema": { + "$ref": "#/definitions/CommunicationServiceResource" + } + }, + "201": { + "description": "The create or update request was accepted", + "headers": { + "Azure-AsyncOperation": { + "description": "URL to query for status of the operation.", + "type": "string" + } + }, + "schema": { + "$ref": "#/definitions/CommunicationServiceResource" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Create or update resource": { + "$ref": "./examples/createOrUpdate.json" + } + } + }, + "delete": { + "description": "Operation to delete a CommunicationService.", + "operationId": "CommunicationService_Delete", + "summary": "Delete", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/CommunicationServiceName" + } + ], + "responses": { + "200": { + "description": "The delete operation was successful." + }, + "202": { + "description": "The delete operation is being performed in the background.", + "headers": { + "location": { + "description": "URL to query for status of the operation.", + "type": "string" + } + } + }, + "204": { + "description": "The resource did not exist." + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-long-running-operation": true, + "x-ms-examples": { + "Delete resource": { + "$ref": "./examples/delete.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}/listKeys": { + "post": { + "description": "Get the access keys of the CommunicationService resource.", + "operationId": "CommunicationService_ListKeys", + "summary": "List Keys", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/CommunicationServiceName" + } + ], + "responses": { + "200": { + "description": "Success. The response describes CommunicationService access keys.", + "schema": { + "$ref": "#/definitions/CommunicationServiceKeys" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "produces": [ + "application/json" + ], + "x-ms-examples": { + "List keys": { + "$ref": "./examples/listKeys.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Communication/communicationServices/{communicationServiceName}/regenerateKey": { + "post": { + "description": "Regenerate CommunicationService access key. PrimaryKey and SecondaryKey cannot be regenerated at the same time.", + "operationId": "CommunicationService_RegenerateKey", + "summary": "Regenerate Key", + "tags": [ + "CommunicationService" + ], + "parameters": [ + { + "name": "parameters", + "in": "body", + "description": "Parameter that describes the Regenerate Key Operation.", + "required": false, + "schema": { + "$ref": "#/definitions/RegenerateKeyParameters" + } + }, + { + "$ref": "#/parameters/ApiVersionParameter" + }, + { + "$ref": "#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "#/parameters/ResourceGroupParameter" + }, + { + "$ref": "#/parameters/CommunicationServiceName" + } + ], + "responses": { + "200": { + "description": "Created. The response contains the new key.", + "schema": { + "$ref": "#/definitions/CommunicationServiceKeys" + } + }, + "201": { + "description": "Created and an async operation is executing in background to make the new key take effect. The response contains new keys and an Azure-AsyncOperation header to query the async operation result.", + "schema": { + "$ref": "#/definitions/CommunicationServiceKeys" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "x-ms-examples": { + "Regenerate key": { + "$ref": "./examples/regenerateKey.json" + } + } + } + } + }, + "definitions": { + "ErrorResponse": { + "description": "Error response indicating why the requested operation could not be performed.", + "type": "object", + "properties": { + "error": { + "description": "The error", + "properties": { + "code": { + "description": "Error code.", + "type": "string" + }, + "message": { + "description": "Error message indicating why the operation failed.", + "type": "string" + } + } + } + } + }, + "OperationList": { + "description": "Result of the request to list REST API operations. It contains a list of operations.", + "type": "object", + "properties": { + "value": { + "description": "List of operations supported by the resource provider.", + "type": "array", + "items": { + "$ref": "#/definitions/Operation" + } + }, + "nextLink": { + "description": "The URL the client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.", + "type": "string" + } + } + }, + "Operation": { + "description": "REST API operation supported by CommunicationService resource provider.", + "type": "object", + "properties": { + "name": { + "description": "Name of the operation with format: {provider}/{resource}/{operation}", + "type": "string" + }, + "display": { + "$ref": "#/definitions/OperationDisplay", + "description": "The object that describes the operation." + }, + "origin": { + "description": "Optional. The intended executor of the operation; governs the display of the operation in the RBAC UX and the audit logs UX.", + "type": "string" + }, + "properties": { + "$ref": "#/definitions/OperationProperties", + "description": "Extra properties for the operation.", + "x-ms-client-flatten": false + } + } + }, + "OperationDisplay": { + "description": "The object that describes a operation.", + "type": "object", + "properties": { + "provider": { + "description": "Friendly name of the resource provider", + "type": "string" + }, + "resource": { + "description": "Resource type on which the operation is performed.", + "type": "string" + }, + "operation": { + "description": "The localized friendly name for the operation.", + "type": "string" + }, + "description": { + "description": "The localized friendly description for the operation", + "type": "string" + } + } + }, + "OperationProperties": { + "description": "Extra Operation properties.", + "type": "object", + "properties": { + "serviceSpecification": { + "$ref": "#/definitions/ServiceSpecification", + "description": "The service specifications." + } + } + }, + "ServiceSpecification": { + "description": "An object that describes a specification.", + "type": "object", + "properties": { + "metricSpecifications": { + "description": "Specifications of the Metrics for Azure Monitoring.", + "type": "array", + "items": { + "$ref": "#/definitions/MetricSpecification" + } + } + } + }, + "MetricSpecification": { + "description": "Specifications of the Metrics for Azure Monitoring.", + "type": "object", + "properties": { + "name": { + "description": "Name of the metric.", + "type": "string" + }, + "displayName": { + "description": "Localized friendly display name of the metric.", + "type": "string" + }, + "displayDescription": { + "description": "Localized friendly description of the metric.", + "type": "string" + }, + "unit": { + "description": "The unit that makes sense for the metric.", + "type": "string" + }, + "aggregationType": { + "description": "The method for aggregating the metric.", + "type": "string", + "enum": [ + "Average", + "Minimum", + "Maximum", + "Total", + "Count" + ], + "x-ms-enum": { + "name": "AggregationType", + "modelAsString": true + } + }, + "fillGapWithZero": { + "description": "Optional. If set to true, then zero will be returned for time duration where no metric is emitted/published. \r\nEx. a metric that returns the number of times a particular error code was emitted. The error code may not appear \r\noften, instead of the RP publishing 0, Shoebox can auto fill in 0s for time periods where nothing was emitted.", + "type": "string" + }, + "category": { + "description": "The name of the metric category that the metric belongs to. A metric can only belong to a single category.", + "type": "string" + }, + "dimensions": { + "description": "The dimensions of the metrics.", + "type": "array", + "items": { + "$ref": "#/definitions/Dimension" + } + } + } + }, + "Dimension": { + "description": "Specifications of the Dimension of metrics.", + "type": "object", + "properties": { + "name": { + "description": "The public facing name of the dimension.", + "type": "string" + }, + "displayName": { + "description": "Localized friendly display name of the dimension.", + "type": "string" + }, + "internalName": { + "description": "Name of the dimension as it appears in MDM.", + "type": "string" + }, + "toBeExportedForShoebox": { + "description": "A Boolean flag indicating whether this dimension should be included for the shoebox export scenario.", + "type": "boolean" + } + } + }, + "LinkNotificationHubParameters": { + "description": "Description of an Azure Notification Hub to link to the communication service", + "required": [ + "resourceId", + "connectionString" + ], + "type": "object", + "properties": { + "resourceId": { + "description": "The resource ID of the notification hub", + "type": "string" + }, + "connectionString": { + "description": "Connection string for the notification hub", + "type": "string" + } + } + }, + "LinkedNotificationHub": { + "description": "A notification hub that has been linked to the communication service", + "type": "object", + "properties": { + "resourceId": { + "description": "The resource ID of the notification hub", + "type": "string" + } + } + }, + "OperationStatus": { + "description": "The current status of an async operation", + "type": "object", + "properties": { + "id": { + "description": "The operation Id.", + "type": "string", + "readOnly": true + }, + "status": { + "description": "Provisioning state of the resource.", + "enum": [ + "Succeeded", + "Failed", + "Canceled", + "Creating", + "Deleting", + "Moving" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "Status", + "modelAsString": true + } + }, + "startTime": { + "description": "The start time of the operation", + "type": "string", + "readOnly": true, + "format": "date-time" + }, + "endTime": { + "description": "The end time of the operation", + "type": "string", + "readOnly": true, + "format": "date-time" + }, + "percentComplete": { + "description": "Percent of the operation that is complete", + "type": "number", + "readOnly": true, + "minimum": 0, + "maximum": 100 + }, + "error": { + "description": "Operation Error message", + "$ref": "#/definitions/ErrorResponse", + "x-ms-client-flatten": true + } + } + }, + "CommunicationServiceResourceList": { + "description": "Object that includes an array of CommunicationServices and a possible link for next set.", + "type": "object", + "properties": { + "value": { + "description": "List of CommunicationService", + "type": "array", + "items": { + "$ref": "#/definitions/CommunicationServiceResource" + } + }, + "nextLink": { + "description": "The URL the client should use to fetch the next page (per server side paging).\r\nIt's null for now, added for future use.", + "type": "string" + } + } + }, + "CommunicationServiceResource": { + "description": "A class representing a CommunicationService resource.", + "type": "object", + "allOf": [ + { + "$ref": "#/definitions/Resource" + }, + { + "$ref": "#/definitions/LocationResource" + }, + { + "$ref": "#/definitions/TaggedResource" + } + ], + "properties": { + "properties": { + "$ref": "#/definitions/CommunicationServiceProperties", + "description": "The properties of the service.", + "x-ms-client-flatten": true + } + } + }, + "Resource": { + "description": "The core properties of ARM resources.", + "type": "object", + "properties": { + "id": { + "description": "Fully qualified resource ID for the resource.", + "type": "string", + "readOnly": true + }, + "name": { + "description": "The name of the resource.", + "type": "string", + "readOnly": true + }, + "type": { + "description": "The type of the service - e.g. \"Microsoft.Communication/CommunicationServices\"", + "type": "string", + "readOnly": true + } + }, + "x-ms-azure-resource": true + }, + "LocationResource": { + "description": "An ARM resource with its own location (not a global or an inherited location).", + "type": "object", + "properties": { + "location": { + "description": "The Azure location where the CommunicationService is running.", + "type": "string", + "x-ms-mutability": [ + "create", + "read" + ] + } + } + }, + "TaggedResource": { + "description": "An ARM resource with that can accept tags", + "type": "object", + "properties": { + "tags": { + "description": "Tags of the service which is a list of key value pairs that describe the resource.", + "type": "object", + "additionalProperties": { + "type": "string" + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ] + } + } + }, + "CommunicationServiceProperties": { + "description": "A class that describes the properties of the CommunicationService.", + "required": [ + "dataLocation" + ], + "type": "object", + "properties": { + "provisioningState": { + "description": "Provisioning state of the resource.", + "enum": [ + "Unknown", + "Succeeded", + "Failed", + "Canceled", + "Running", + "Creating", + "Updating", + "Deleting", + "Moving" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "ProvisioningState", + "modelAsString": true + } + }, + "hostName": { + "description": "FQDN of the CommunicationService instance.", + "type": "string", + "readOnly": true + }, + "dataLocation": { + "description": "The location where the communication service stores its data at rest.", + "type": "string", + "x-ms-mutability": [ + "create", + "read" + ] + }, + "notificationHubId": { + "description": "Resource ID of an Azure Notification Hub linked to this resource.", + "type": "string", + "readOnly": true + }, + "version": { + "description": "Version of the CommunicationService resource. Probably you need the same or higher version of client SDKs.", + "type": "string", + "readOnly": true + }, + "immutableResourceId": { + "description": "The immutable resource Id of the communication service.", + "type": "string", + "readOnly": true + } + } + }, + "CommunicationServiceKeys": { + "description": "A class representing the access keys of a CommunicationService.", + "type": "object", + "properties": { + "primaryKey": { + "description": "The primary access key.", + "type": "string" + }, + "secondaryKey": { + "description": "The secondary access key.", + "type": "string" + }, + "primaryConnectionString": { + "description": "CommunicationService connection string constructed via the primaryKey", + "type": "string" + }, + "secondaryConnectionString": { + "description": "CommunicationService connection string constructed via the secondaryKey", + "type": "string" + } + } + }, + "RegenerateKeyParameters": { + "description": "Parameters describes the request to regenerate access keys", + "type": "object", + "properties": { + "keyType": { + "description": "The keyType to regenerate. Must be either 'primary' or 'secondary'(case-insensitive).", + "enum": [ + "Primary", + "Secondary" + ], + "type": "string", + "x-ms-enum": { + "name": "KeyType", + "modelAsString": false + } + } + } + } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "description": "Client Api Version.", + "required": true, + "type": "string", + "enum": [ + "2020-08-20-preview" + ] + }, + "SubscriptionIdParameter": { + "name": "subscriptionId", + "in": "path", + "description": "Gets subscription ID which uniquely identifies the Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.", + "required": true, + "type": "string" + }, + "ResourceGroupParameter": { + "name": "resourceGroupName", + "in": "path", + "description": "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "CommunicationServiceName": { + "name": "communicationServiceName", + "in": "path", + "description": "The name of the CommunicationService resource.", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "LocationParameter": { + "name": "location", + "in": "path", + "description": "The Azure region", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + }, + "OperationIdParameter": { + "name": "operationId", + "in": "path", + "description": "The ID of an ongoing async operation", + "required": true, + "type": "string", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/createOrUpdate.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/createOrUpdate.json new file mode 100644 index 000000000000..aafec77cf065 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/createOrUpdate.json @@ -0,0 +1,44 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "communicationServiceName": "MyCommunicationResource", + "api-version": "2020-08-20-preview", + "parameters": { + "location": "Global", + "properties": { + "dataLocation": "United States" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource", + "name": "MyCommunicationResource", + "type": "Microsoft.Communication/CommunicationServices", + "location": "Global", + "properties": { + "dataLocation": "United States", + "provisioningState": "Succeeded", + "hostName": "mycommunicationresource.communications.azure.com" + } + } + }, + "201": { + "headers": { + "Azure-AsyncOperation": "https://management.azure.com/providers/Microsoft.Communication/locations/westus/operationStatuses/ed5d502c-acaa-42ec-ad61-0d8488a9fd1d" + }, + "body": { + "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource", + "name": "MyCommunicationResource", + "type": "Microsoft.Communication/CommunicationServices", + "location": "Global", + "properties": { + "dataLocation": "United States", + "provisioningState": "Accepted" + } + } + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/delete.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/delete.json new file mode 100644 index 000000000000..5bb01a4d2773 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/delete.json @@ -0,0 +1,17 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "communicationServiceName": "MyCommunicationResource", + "api-version": "2020-08-20-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "Location": "https://management.azure.com/providers/Microsoft.Communication/locations/westus/operationStatuses/ed5d502c-acaa-42ec-ad61-0d8488a9fd1d" + } + }, + "204": {} + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/get.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/get.json new file mode 100644 index 000000000000..ea4bdc176b41 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/get.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "communicationServiceName": "MyCommunicationResource", + "api-version": "2020-08-20-preview" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource", + "name": "MyCommunicationResource", + "type": "Microsoft.Communication/CommunicationServices", + "location": "Global", + "properties": { + "dataLocation": "United States", + "provisioningState": "Running", + "hostName": "mycommunicationservice.comms.azure.net", + "version": "0.2.0" + } + } + }, + "default": { + "body": { + "error": { + "code": "ResourceNotFound", + "message": "The requested resource was not found" + } + } + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/getOperationStatus.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/getOperationStatus.json new file mode 100644 index 000000000000..caa62830d1e7 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/getOperationStatus.json @@ -0,0 +1,26 @@ +{ + "parameters": { + "location": "westus2", + "operationId": "db5f291f-284d-46e9-9152-d5c83f7c14b8", + "api-version": "2020-08-20-preview" + }, + "responses": { + "200": { + "body": { + "id": "db5f291f-284d-46e9-9152-d5c83f7c14b8", + "status": "Succeeded", + "startTime": "2020-07-06T17:06:26.100Z", + "endTime": "2020-07-06T17:06:42.800Z", + "percentComplete": 100 + } + }, + "default": { + "body": { + "error": { + "code": "OperationNotFound", + "message": "The requested async operation was not found" + } + } + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/linkNotificationHub.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/linkNotificationHub.json new file mode 100644 index 000000000000..1f39fc5fecc3 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/linkNotificationHub.json @@ -0,0 +1,27 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "communicationServiceName": "MyCommunicationResource", + "api-version": "2020-08-20-preview", + "linkNotificationHubParameters": { + "resourceId": "/subscriptions/12345/resourceGroups/MyOtherResourceGroup/providers/Microsoft.NotificationHubs/namespaces/MyNamespace/notificationHubs/MyHub", + "connectionString": "Endpoint=sb://MyNamespace.servicebus.windows.net/;SharedAccessKey=abcd1234" + } + }, + "responses": { + "200": { + "body": { + "resourceId": "/subscriptions/12345/resourceGroups/MyOtherResourceGroup/providers/Microsoft.NotificationHubs/namespaces/MyNamespace/notificationHubs/MyHub" + } + }, + "default": { + "body": { + "error": { + "code": "WrongSubscription", + "message": "The notification hub must be in the same subscription as the communication service" + } + } + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listByResourceGroup.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listByResourceGroup.json new file mode 100644 index 000000000000..139e7f6cf04f --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listByResourceGroup.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "api-version": "2020-08-20-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "provisioningState": "Running", + "dataLocation": "United States", + "hostName": "mycommunicationservice.comms.azure.net", + "version": "0.2.0" + } + } + ] + } + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listBySubscription.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listBySubscription.json new file mode 100644 index 000000000000..8300a9f55093 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listBySubscription.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "12345", + "api-version": "2020-08-20-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "properties": { + "provisioningState": "Running", + "dataLocation": "United States", + "hostName": "mycommunicationservice.comms.azure.net", + "version": "0.2.0" + } + } + ] + } + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listKeys.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listKeys.json new file mode 100644 index 000000000000..ee092cda96e0 --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/listKeys.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "communicationServiceName": "MyCommunicationResource", + "api-version": "2020-08-20-preview" + }, + "responses": { + "200": { + "body": { + "primaryKey": "1234", + "secondaryKey": "ABCD" + } + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/regenerateKey.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/regenerateKey.json new file mode 100644 index 000000000000..72ba59e10b8f --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/regenerateKey.json @@ -0,0 +1,22 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "communicationServiceName": "MyCommunicationResource", + "api-version": "2020-08-20-preview", + "parameters": { + "keyType": "Primary" + } + }, + "responses": { + "200": { + "body": { + "primaryKey": "1234", + "primaryConnectionString": "endpoint=http://example.com;accesskey=1234" + } + }, + "201": { + "body": {} + } + } +} diff --git a/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/update.json b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/update.json new file mode 100644 index 000000000000..a441c4f0546c --- /dev/null +++ b/specification/communication/resource-manager/Microsoft.Communication/preview/2020-08-20-preview/examples/update.json @@ -0,0 +1,32 @@ +{ + "parameters": { + "subscriptionId": "12345", + "resourceGroupName": "MyResourceGroup", + "communicationServiceName": "MyCommunicationResource", + "api-version": "2020-08-20-preview", + "parameters": { + "tags": { + "newTag": "newVal" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/12345/resourceGroups/MyResourceGroup/providers/Microsoft.Communication/CommunicationServices/MyCommunicationResource", + "name": "MyCommunicationResource", + "type": "Microsoft.Communication/CommunicationServices", + "location": "Global", + "tags": { + "newTag": "newVal" + }, + "properties": { + "provisioningState": "Succeeded", + "dataLocation": "United States", + "hostName": "mycommunicationresource.communications.azure.com", + "version": "0.2.0" + } + } + } + } +} diff --git a/specification/communication/resource-manager/readme.csharp.md b/specification/communication/resource-manager/readme.csharp.md new file mode 100644 index 000000000000..f1aed9643153 --- /dev/null +++ b/specification/communication/resource-manager/readme.csharp.md @@ -0,0 +1,15 @@ +## C# + +These settings apply only when `--csharp` is specified on the command line. +Please also specify `--csharp-sdks-folder=`. + +```yaml $(csharp) +csharp: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + payload-flattening-threshold: 1 + clear-output-folder: true + client-side-validation: false + namespace: Microsoft.Azure.Management.Communication + output-folder: $(csharp-sdks-folder)/communication/Microsoft.Azure.Management.Communication/src/Generated +``` diff --git a/specification/communication/resource-manager/readme.go.md b/specification/communication/resource-manager/readme.go.md new file mode 100644 index 000000000000..1434d5fd3791 --- /dev/null +++ b/specification/communication/resource-manager/readme.go.md @@ -0,0 +1,26 @@ +## Go + +These settings apply only when `--go` is specified on the command line. + +``` yaml $(go) +go: + license-header: MICROSOFT_APACHE_NO_VERSION + namespace: communication + clear-output-folder: true +``` + +### Go multi-api + +``` yaml $(go) && $(multiapi) +batch: + - tag: package-2020-08-20-preview +``` + +### Tag: package-2020-08-20-preview and go + +These settings apply only when `--tag=package-2020-08-20-preview --go` is specified on the command line. +Please also specify `--go-sdk-folder=`. + +``` yaml $(tag) == 'package-2020-08-20-preview' && $(go) +output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-08-20-preview/$(namespace) +``` diff --git a/specification/communication/resource-manager/readme.md b/specification/communication/resource-manager/readme.md new file mode 100644 index 000000000000..2191f6dd16bf --- /dev/null +++ b/specification/communication/resource-manager/readme.md @@ -0,0 +1,70 @@ +# vsonline + +> see https://aka.ms/autorest + +This is the AutoRest configuration file for Azure Communication Services. + +--- + +## Getting Started + +To build the SDKs for Azure Communication Services, simply [Install AutoRest](https://aka.ms/autorest/install) or via `npm` (`npm install -g autorest`) and in this folder run: + +> `autorest` + +To see additional help and options, run: + +> `autorest --help` + +--- + +## Configuration + +### Basic Information + +These are the global settings for the Azure Communication Services API. + +```yaml +title: CommunicationServiceManagementClient +openapi-type: arm +openapi-subtype: rpaas +tag: package-2020-08-20-preview +``` + +### Tag: package-2020-08-20-preview + +These settings apply only when `--tag=package-2020-08-20-preview` is specified on the command line. + +```yaml $(tag) == 'package-2020-08-20-preview' +input-file: + - Microsoft.Communication/preview/2020-08-20-preview/CommunicationService.json +``` + +# Code Generation + +## Swagger to SDK + +This section describes what SDK should be generated by the automatic system. +This is not used by Autorest itself. + +```yaml $(swagger-to-sdk) +swagger-to-sdk: + - repo: azure-sdk-for-net + - repo: azure-sdk-for-python + - repo: azure-sdk-for-python-track2 + - repo: azure-sdk-for-go + after_scripts: + - bundle install && rake arm:regen_all_profiles['azure_mgmt_vsonline'] +``` + +## CSharp + +See configuration in [readme.csharp.md](./readme.csharp.md) + +## Python + +See configuration in [readme.python.md](./readme.python.md) + +## Go + +See configuration in [readme.go.md](./readme.go.md) diff --git a/specification/communication/resource-manager/readme.python.md b/specification/communication/resource-manager/readme.python.md new file mode 100644 index 000000000000..18112d3b5145 --- /dev/null +++ b/specification/communication/resource-manager/readme.python.md @@ -0,0 +1,44 @@ +## Python + +These settings apply only when `--python` is specified on the command line. +Please also specify `--python-sdks-folder=`. +Use `--python-mode=update` if you already have a setup.py and just want to update the code itself. + + +``` yaml !$(track2) +python-mode: create +python: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + payload-flattening-threshold: 2 + namespace: azure.mgmt.communication + package-name: azure-mgmt-communication + package-version: 1.0.0rc1 + clear-output-folder: true +``` + +These settings apply only when `--track2` is specified on the command line. + +``` yaml $(track2) +azure-arm: true +license-header: MICROSOFT_MIT_NO_VERSION +package-name: azure-mgmt-communication +no-namespace-folders: true +package-version: 1.0.0rc1 +``` + +```yaml $(python) && $(python-mode) == 'update' +python: + no-namespace-folders: true + output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication/azure/mgmt/communication +no-namespace-folders: true +output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication/azure/mgmt/communication +``` + +```yaml $(python) && $(python-mode) == 'create' +python: + basic-setup-py: true + output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication +basic-setup-py: true +output-folder: $(python-sdks-folder)/communication/azure-mgmt-communication +```