diff --git a/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/SourceControls.json b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/SourceControls.json new file mode 100644 index 000000000000..22609175c0da --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/SourceControls.json @@ -0,0 +1,425 @@ +{ + "swagger": "2.0", + "info": { + "version": "2022-01-01-preview", + "title": "ContainerApps API Client" + }, + "host": "management.azure.com", + "schemes": [ + "https" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "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": { + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols": { + "get": { + "tags": [ + "ContainerAppsSourceControls" + ], + "summary": "Get the Container App SourceControls in a given resource group.", + "operationId": "ContainerAppsSourceControls_ListByContainerApp", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "containerAppName", + "in": "path", + "description": "Name of the Container App.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SourceControlCollection" + } + }, + "default": { + "description": "Common error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "List Container Apps by resource group": { + "$ref": "./examples/SourceControls_ListByContainer.json" + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.App/containerApps/{containerAppName}/sourcecontrols/{name}": { + "get": { + "tags": [ + "ContainerAppsSourceControls" + ], + "summary": "Get a SourceControl of a Container App.", + "operationId": "ContainerAppsSourceControls_Get", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "containerAppName", + "in": "path", + "description": "Name of the Container App.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "Name of the Container App SourceControl.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/SourceControl" + } + }, + "default": { + "description": "Common error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Container App's SourceControl": { + "$ref": "./examples/SourceControls_Get.json" + } + } + }, + "put": { + "tags": [ + "ContainerAppsSourceControls" + ], + "summary": "Create or update the SourceControl for a Container App.", + "description": "Description for Create or update the SourceControl for a Container App.", + "operationId": "ContainerAppsSourceControls_CreateOrUpdate", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "containerAppName", + "in": "path", + "description": "Name of the Container App.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "Name of the Container App SourceControl.", + "required": true, + "type": "string" + }, + { + "name": "sourceControlEnvelope", + "in": "body", + "description": "Properties used to create a Container App SourceControl", + "required": true, + "schema": { + "$ref": "#/definitions/SourceControl" + } + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "No change performed on the Container App.", + "schema": { + "$ref": "#/definitions/SourceControl" + } + }, + "202": { + "description": "Container App create or update has been started.", + "schema": { + "$ref": "#/definitions/SourceControl" + } + }, + "default": { + "description": "Common error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Create or Update Container App SourceControl": { + "$ref": "./examples/SourceControls_CreateOrUpdate.json" + } + }, + "x-ms-long-running-operation": true + }, + "delete": { + "tags": [ + "ContainerAppsSourceControls" + ], + "summary": "Delete a Container App SourceControl.", + "description": "Description for Delete a Container App SourceControl.", + "operationId": "ContainerAppsSourceControls_Delete", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "name": "containerAppName", + "in": "path", + "description": "Name of the Container App.", + "required": true, + "type": "string" + }, + { + "name": "name", + "in": "path", + "description": "Name of the Container App SourceControl.", + "required": true, + "type": "string" + }, + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Container App deleted successfully." + }, + "202": { + "description": "Delete operation is in progress." + }, + "204": { + "description": "Container App SourceControl does not exist." + }, + "default": { + "description": "Common error response.", + "schema": { + "$ref": "./CommonDefinitions.json#/definitions/DefaultErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Container App SourceControl": { + "$ref": "./examples/SourceControls_Delete.json" + } + }, + "x-ms-long-running-operation": true + } + } + }, + "definitions": { + "SourceControl": { + "description": "Container App SourceControl.", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v3/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "description": "SourceControl resource specific properties", + "type": "object", + "properties": { + "operationState": { + "description": "Current provisioning State of the operation", + "enum": [ + "InProgress", + "Succeeded", + "Failed", + "Canceled" + ], + "type": "string", + "readOnly": true, + "x-ms-enum": { + "name": "SourceControlOperationState", + "modelAsString": true + } + }, + "repoUrl": { + "description": "The repo url which will be integrated to ContainerApp.", + "type": "string" + }, + "branch": { + "description": "The branch which will trigger the auto deployment", + "type": "string" + }, + "githubActionConfiguration": { + "$ref": "#/definitions/GithubActionConfiguration", + "description": "Container App Revision Template with all possible settings and the\ndefaults if user did not provide them. The defaults are populated\nas they were at the creation time" + } + }, + "x-ms-client-flatten": true + } + } + }, + "GithubActionConfiguration": { + "description": "Configuration properties that define the mutable settings of a Container App SourceControl", + "type": "object", + "properties": { + "registryInfo": { + "$ref": "#/definitions/RegistryInfo", + "description": "Registry configurations." + }, + "azureCredentials": { + "$ref": "#/definitions/AzureCredentials", + "description": "AzureCredentials configurations." + }, + "dockerfilePath": { + "description": "Docker file path", + "type": "string" + }, + "publishType": { + "description": "Code or Image", + "type": "string" + }, + "os": { + "description": "Operation system", + "type": "string" + }, + "runtimeStack": { + "description": "Runtime stack", + "type": "string" + }, + "runtimeVersion": { + "description": "Runtime Version", + "type": "string" + } + } + }, + "RegistryInfo": { + "description": "Container App registry information.", + "type": "object", + "properties": { + "registryUrl": { + "description": "registry server Url.", + "type": "string" + }, + "registryUserName": { + "description": "registry username.", + "type": "string" + }, + "registryPassword": { + "description": "registry secret.", + "type": "string", + "x-ms-mutability": [ + "create", + "update" + ], + "x-ms-secret": true + } + } + }, + "AzureCredentials": { + "description": "Container App credentials.", + "type": "object", + "properties": { + "clientId": { + "description": "Client Id.", + "type": "string", + "x-ms-mutability": [ + "create", + "update" + ], + "x-ms-secret": true + }, + "clientSecret": { + "description": "Client Secret.", + "type": "string", + "x-ms-mutability": [ + "create", + "update" + ], + "x-ms-secret": true + }, + "tenantId": { + "description": "Tenant Id.", + "type": "string", + "x-ms-mutability": [ + "create", + "update" + ], + "x-ms-secret": true + }, + "subscriptionId": { + "description": "Subscription Id.", + "type": "string" + } + } + }, + "SourceControlCollection": { + "description": "SourceControl collection ARM resource.", + "required": [ + "value" + ], + "type": "object", + "properties": { + "value": { + "description": "Collection of resources.", + "type": "array", + "items": { + "$ref": "#/definitions/SourceControl" + } + }, + "nextLink": { + "description": "Link to next page of resources.", + "type": "string", + "readOnly": true + } + } + } + } +} diff --git a/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_CreateOrUpdate.json b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_CreateOrUpdate.json new file mode 100644 index 000000000000..c8122586ee42 --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_CreateOrUpdate.json @@ -0,0 +1,69 @@ +{ + "parameters": { + "subscriptionId": "651f8027-33e8-4ec4-97b4-f6e9f3dc8744", + "resourceGroupName": "workerapps-rg-xj", + "containerAppName": "testcanadacentral", + "name": "current", + "api-version": "2022-01-01-preview", + "sourceControlEnvelope": { + "properties": { + "repoUrl": "https://github.com/xwang971/ghatest", + "branch": "master", + "githubActionConfiguration": { + "registryInfo": { + "registryUrl": "xwang971reg.azurecr.io", + "registryUserName": "xwang971reg", + "registryPassword": "" + }, + "azureCredentials": { + "clientId": "", + "clientSecret": "", + "tenantId": "" + } + } + } + } + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/651f8027-33e8-4ec4-97b4-f6e9f3dc8744/resourceGroups/workerapps-rg-xj/providers/Microsoft.Web/containerApps/myapp/sourcecontrols/current", + "name": "current", + "type": "Microsoft.Web/containerapps/sourcecontrols", + "properties": { + "operationState": "InProgress", + "repoUrl": "https://github.com/xwang971/ghatest", + "branch": "master", + "githubActionConfiguration": { + "registryInfo": { + "registryUrl": "xwang971reg.azurecr.io", + "registryUserName": "xwang971reg" + } + } + } + } + }, + "202": { + "headers": { + "location": "https://localhost/subscriptions/651f8027-33e8-4ec4-97b4-f6e9f3dc8744/resourceGroups/workerapps-rg-xj/providers/Microsoft.Web/containerApps/myapp/sourcecontrols/currentInOperationModel/operationresults/5a7f31af-8ae5-489b-a67e-f0a2d11df796?api-version=2021-03-01" + }, + "body": { + "id": "/subscriptions/651f8027-33e8-4ec4-97b4-f6e9f3dc8744/resourceGroups/workerapps-rg-xj/providers/Microsoft.Web/containerApps/myapp/sourcecontrols/current", + "name": "current", + "type": "Microsoft.Web/containerapps/sourcecontrols", + "properties": { + "operationState": "InProgress", + "repoUrl": "https://github.com/xwang971/ghatest", + "branch": "master", + "githubActionConfiguration": { + "registryInfo": { + "registryUrl": "xwang971reg.azurecr.io", + "registryUserName": "xwang971reg" + } + } + } + } + } + } +} diff --git a/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_Delete.json b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_Delete.json new file mode 100644 index 000000000000..ace88cd670fb --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_Delete.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "651f8027-33e8-4ec4-97b4-f6e9f3dc8744", + "resourceGroupName": "workerapps-rg-xj", + "containerAppName": "testcanadacentral", + "name": "current", + "api-version": "2022-01-01-preview" + }, + "responses": { + "200": {}, + "202": { + "headers": { + "location": "https://localhost/subscriptions/651f8027-33e8-4ec4-97b4-f6e9f3dc8744/resourceGroups/workerapps-rg-xj/providers/Microsoft.Web/containerApps/myapp/sourcecontrols/currentInOperationModel/operationresults/14a787ee-c65f-462d-8a8b-897f69a2ab4f?api-version=2021-03-01" + } + }, + "204": {} + } +} diff --git a/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_Get.json b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_Get.json new file mode 100644 index 000000000000..1d46a8fbb3c2 --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_Get.json @@ -0,0 +1,29 @@ +{ + "parameters": { + "subscriptionId": "651f8027-33e8-4ec4-97b4-f6e9f3dc8744", + "resourceGroupName": "workerapps-rg-xj", + "containerAppName": "testcanadacentral", + "name": "current", + "api-version": "2022-01-01-preview" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "id": "/subscriptions/651f8027-33e8-4ec4-97b4-f6e9f3dc8744/resourceGroups/workerapps-rg-xj/providers/Microsoft.Web/containerApps/testcanadacentral/sourcecontrols/current", + "name": "current", + "type": "Microsoft.Web/containerapps/sourcecontrols", + "properties": { + "repoUrl": "https://github.com/xwang971/ghatest", + "branch": "master", + "githubActionConfiguration": { + "registryInfo": { + "registryUrl": "xwang971reg.azurecr.io", + "registryUserName": "xwang971reg" + } + } + } + } + } + } +} diff --git a/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_ListByContainer.json b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_ListByContainer.json new file mode 100644 index 000000000000..12aee52b656b --- /dev/null +++ b/specification/app/resource-manager/Microsoft.App/preview/2022-01-01-preview/examples/SourceControls_ListByContainer.json @@ -0,0 +1,33 @@ +{ + "parameters": { + "subscriptionId": "651f8027-33e8-4ec4-97b4-f6e9f3dc8744", + "resourceGroupName": "workerapps-rg-xj", + "containerAppName": "testcanadacentral", + "api-version": "2022-01-01-preview" + }, + "responses": { + "200": { + "headers": {}, + "body": { + "value": [ + { + "id": "/subscriptions/651f8027-33e8-4ec4-97b4-f6e9f3dc8744/resourceGroups/workerapps-rg-xj/providers/Microsoft.Web/containerApps/testcanadacentral/sourcecontrols/current", + "name": "current", + "type": "Microsoft.Web/containerapps/sourcecontrols", + "properties": { + "repoUrl": "https://github.com/xwang971/ghatest", + "branch": "master", + "githubActionConfiguration": { + "registryInfo": { + "registryUrl": "xwang971reg.azurecr.io", + "registryUserName": "xwang971reg" + } + } + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/app/resource-manager/readme.md b/specification/app/resource-manager/readme.md index f841aa182a04..f04ff08b1950 100644 --- a/specification/app/resource-manager/readme.md +++ b/specification/app/resource-manager/readme.md @@ -40,6 +40,7 @@ input-file: - Microsoft.App/preview/2022-01-01-preview/ContainerAppsRevisions.json - Microsoft.App/preview/2022-01-01-preview/ManagedEnvironments.json - Microsoft.App/preview/2022-01-01-preview/Global.json + - Microsoft.App/preview/2022-01-01-preview/SourceControls.json directive: - suppress: R4009 from: ContainerAppsRevisions.json