From 614d4eeaefc63b3f43f18a05a029948812f8f020 Mon Sep 17 00:00:00 2001 From: Suneha Bose Date: Tue, 30 Jul 2024 11:45:59 -0700 Subject: [PATCH 1/2] added copy of last release --- .../examples/GeneratePreviewArtifacts.json | 30 + .../examples/GitHubOAuth.json | 18 + .../examples/GitHubOAuthCallback.json | 21 + .../examples/GitHubOAuth_List.json | 23 + .../examples/IacProfile_CreateOrUpdate.json | 224 ++++ .../examples/IacProfile_Delete.json | 12 + .../examples/IacProfile_ExportTemplate.json | 24 + .../examples/IacProfile_Get.json | 87 ++ .../examples/IacProfile_List.json | 88 ++ .../IacProfile_ListByResourceGroup.json | 90 ++ .../examples/IacProfile_ScaleTemplate.json | 25 + .../examples/IacProfile_SyncTemplate.json | 11 + .../examples/IacProfile_UpdateTags.json | 92 ++ .../examples/Operation_List.json | 23 + .../examples/Workflow_CreateOrUpdate.json | 146 ++ ...rkflow_CreateOrUpdate_WithArtifactGen.json | 159 +++ .../examples/Workflow_Delete.json | 16 + .../examples/Workflow_Get.json | 65 + .../examples/Workflow_List.json | 62 + .../Workflow_ListByResourceGroup.json | 71 + .../examples/Workflow_UpdateTags.json | 73 + .../preview/2024-08-01-preview/iac.json | 763 +++++++++++ .../preview/2024-08-01-preview/workflow.json | 1179 +++++++++++++++++ 23 files changed, 3302 insertions(+) create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GeneratePreviewArtifacts.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuthCallback.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth_List.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_CreateOrUpdate.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Delete.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ExportTemplate.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Get.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_List.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ListByResourceGroup.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ScaleTemplate.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_SyncTemplate.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_UpdateTags.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Operation_List.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate_WithArtifactGen.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Delete.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Get.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_List.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_ListByResourceGroup.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_UpdateTags.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/iac.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GeneratePreviewArtifacts.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GeneratePreviewArtifacts.json new file mode 100644 index 000000000000..f850c13e68fc --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GeneratePreviewArtifacts.json @@ -0,0 +1,30 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "location1", + "parameters": { + "generationLanguage": "javascript", + "languageVersion": "14", + "port": "80", + "appName": "my-app", + "dockerfileOutputDirectory": "./", + "manifestOutputDirectory": "./", + "manifestGenerationMode": "enabled", + "dockerfileGenerationMode": "enabled", + "manifestType": "kube", + "imageName": "myimage", + "namespace": "my-namespace", + "imageTag": "latest" + } + }, + "responses": { + "200": { + "body": { + "dockerfiles/example-dockerfile": "dockerfile-content \n including newlines", + "manifests/example-manifest-file-1": "manifest file 1 content \n including newlines", + "manifests/example-manifest-file-2": "manifest file 2 content \n including newlines" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth.json new file mode 100644 index 000000000000..b2bb5d5be028 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "eastus2euap", + "api-version": "2024-08-01-preview", + "parameters": { + "redirectUrl": "https://ms.portal.azure.com/aks" + } + }, + "responses": { + "200": { + "body": { + "authURL": "https://github.com/login/oauth/authorize?client_id=11111111&redirect_uri=https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DevHub/locations/eastus2euap/githuboauth&state=2345678-3456-7890-5678-012345678901&scope=repo,user:email,workflow", + "token": "" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuthCallback.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuthCallback.json new file mode 100644 index 000000000000..30ef90046017 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuthCallback.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "eastus2euap", + "api-version": "2024-08-01-preview", + "code": "3584d83530557fdd1f46af8289938c8ef79f9dc5", + "state": "12345678-3456-7890-5678-012345678901" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DevHub/locations/eastus2euap/githuboauth/default", + "type": "Microsoft.DevHub/locations/githuboauth", + "name": "default", + "properties": { + "username": "user" + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth_List.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth_List.json new file mode 100644 index 000000000000..af0b2b5d024c --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/GitHubOAuth_List.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "eastus2euap", + "api-version": "2024-08-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DevHub/locations/eastus2euap/githuboauth/default", + "type": "Microsoft.DevHub/locations/githuboauth", + "name": "default", + "properties": { + "username": "user" + } + } + ] + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_CreateOrUpdate.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_CreateOrUpdate.json new file mode 100644 index 000000000000..0961aaf641da --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_CreateOrUpdate.json @@ -0,0 +1,224 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "iacProfileName": "profile1", + "parameters": { + "location": "location1", + "tags": { + "appname": "testApp" + }, + "properties": { + "githubProfile": { + "repositoryOwner": "owner", + "repositoryName": "localtest", + "repositoryMainBranch": "main" + }, + "terraformProfile": { + "storageAccountSubscription": "subscription", + "storageAccountResourceGroup": "hybrid-iac", + "storageAccountName": "hybridiac", + "storageContainerName": "hybridiac" + }, + "stages": [ + { + "stageName": "dev", + "dependencies": [], + "gitEnvironment": "Terraform" + }, + { + "stageName": "qa", + "dependencies": [ + "dev" + ], + "gitEnvironment": "Terraform" + }, + { + "stageName": "prod", + "dependencies": [ + "qa" + ], + "gitEnvironment": "Terraform" + } + ], + "templates": [ + { + "templateName": "base", + "sourceResourceId": "/subscriptions/xxxx/resourceGroups/xxxx", + "instanceStage": "dev", + "instanceName": "contoso", + "templateDetails": [ + { + "productName": "HCI", + "count": 1, + "namingConvention": "$sitid-hci" + }, + { + "productName": "AKSarc", + "count": 1, + "namingConvention": "$sitid-aks" + } + ] + } + ] + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/a0a37f63-7183-4e86-9ac7-ce8036a3ed31/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/iacProfiles/profile1", + "location": "location1", + "name": "profile1", + "type": "Micfosoft.DevHub/iacProfiles", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2024-01-16T09:56:23.933651400Z", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-01-16T09:56:30.783361300Z" + }, + "properties": { + "githubProfile": { + "repositoryName": "localtest", + "repositoryMainBranch": "main", + "repositoryOwner": "owner", + "authStatus": "Unspecified", + "pullNumber": 8, + "prStatus": "submitted", + "branchName": "aks-devhub-ybvmw" + }, + "terraformProfile": { + "storageAccountSubscription": "subscription", + "storageAccountResourceGroup": "hybrid-iac", + "storageAccountName": "hybridiac", + "storageContainerName": "hybridiac" + }, + "stages": [ + { + "stageName": "dev", + "dependencies": [], + "gitEnvironment": "Terraform" + }, + { + "stageName": "qa", + "dependencies": [ + "dev" + ], + "gitEnvironment": "Terraform" + }, + { + "stageName": "prod", + "dependencies": [ + "qa" + ], + "gitEnvironment": "Terraform" + } + ], + "templates": [ + { + "templateName": "base", + "sourceResourceId": "/subscriptions/xxxx/resourceGroups/xxxx", + "instanceStage": "dev", + "instanceName": "contoso", + "templateDetails": [ + { + "productName": "HCI", + "count": 1, + "namingConvention": "$sitid-hci" + }, + { + "productName": "AKSarc", + "count": 1, + "namingConvention": "$sitid-aks" + } + ] + } + ] + } + } + }, + "201": { + "body": { + "id": "/subscriptions/a0a37f63-7183-4e86-9ac7-ce8036a3ed31/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/iacProfiles/profile1", + "location": "location1", + "name": "profile1", + "type": "Micfosoft.DevHub/iacProfiles", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2024-01-16T09:56:23.933651400Z", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2024-01-16T09:56:30.783361300Z" + }, + "properties": { + "githubProfile": { + "repositoryName": "localtest", + "repositoryMainBranch": "main", + "repositoryOwner": "owner", + "authStatus": "Unspecified", + "pullNumber": 8, + "prStatus": "submitted", + "branchName": "aks-devhub-ybvmw" + }, + "terraformProfile": { + "storageAccountSubscription": "subscription", + "storageAccountResourceGroup": "hybrid-iac", + "storageAccountName": "hybridiac", + "storageContainerName": "hybridiac" + }, + "stages": [ + { + "stageName": "dev", + "dependencies": [], + "gitEnvironment": "Terraform" + }, + { + "stageName": "qa", + "dependencies": [ + "dev" + ], + "gitEnvironment": "Terraform" + }, + { + "stageName": "prod", + "dependencies": [ + "qa" + ], + "gitEnvironment": "Terraform" + } + ], + "templates": [ + { + "templateName": "base", + "sourceResourceId": "/subscriptions/xxxx/resourceGroups/xxxx", + "instanceStage": "dev", + "instanceName": "contoso", + "templateDetails": [ + { + "productName": "HCI", + "count": 1, + "namingConvention": "$sitid-hci" + }, + { + "productName": "AKSarc", + "count": 1, + "namingConvention": "$sitid-aks" + } + ] + } + ] + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Delete.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Delete.json new file mode 100644 index 000000000000..d62da9af830d --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Delete.json @@ -0,0 +1,12 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "iacProfileName": "iacprofile" + }, + "responses": { + "200": {}, + "204": {} + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ExportTemplate.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ExportTemplate.json new file mode 100644 index 000000000000..46a928d62b7f --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ExportTemplate.json @@ -0,0 +1,24 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "iacProfileName": "iacprofile", + "parameters": { + "templateName": "base", + "resourceGroupIds": [ + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1", + "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup2" + ], + "instanceName": "sample", + "instanceStage": "dev" + } + }, + "responses": { + "200": { + "body": { + "prLink": "xxxx" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Get.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Get.json new file mode 100644 index 000000000000..0b570a5396f8 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_Get.json @@ -0,0 +1,87 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "iacProfileName": "iacprofile" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/a0a37f63-7183-4e86-9ac7-ce8036a3ed31/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/iacProfiles/iacprofile", + "location": "location1", + "name": "iacprofile", + "type": "Micfosoft.DevHub/iacProfiles", + "tags": { + "appname": "testapp" + }, + "properties": { + "githubProfile": { + "repositoryName": "localtest", + "repositoryMainBranch": "main", + "repositoryOwner": "owner", + "authStatus": "Authorized", + "pullNumber": 8, + "prStatus": "submitted", + "branchName": "aks-devhub-ybvmw" + }, + "terraformProfile": { + "storageAccountSubscription": "subscriptions", + "storageAccountResourceGroup": "hybrid-iac", + "storageAccountName": "hybridiac", + "storageContainerName": "hybridiac" + }, + "stages": [ + { + "stageName": "dev", + "dependencies": [], + "gitEnvironment": "Terraform" + }, + { + "stageName": "qa", + "dependencies": [ + "dev" + ], + "gitEnvironment": "Terraform" + }, + { + "stageName": "prod", + "dependencies": [ + "qa" + ], + "gitEnvironment": "Terraform" + } + ], + "templates": [ + { + "templateName": "base", + "sourceResourceId": "/subscriptions/xxxx/resourceGroups/xxxx", + "instanceStage": "dev", + "instanceName": "contoso", + "templateDetails": [ + { + "productName": "HCI", + "count": 1, + "namingConvention": "$sitid-hci" + }, + { + "productName": "AKSarc", + "count": 1, + "namingConvention": "$sitid-aks" + } + ] + } + ] + }, + "systemData": { + "createdBy": "", + "createdByType": "User", + "createdAt": "2024-01-16T09:56:23.933651400Z", + "lastModifiedBy": "aks-dev-hub-devhub", + "lastModifiedByType": "Application", + "lastModifiedAt": "2024-01-16T14:35:15.206059900Z" + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_List.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_List.json new file mode 100644 index 000000000000..90d1141d467e --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_List.json @@ -0,0 +1,88 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/a0a37f63-7183-4e86-9ac7-ce8036a3ed31/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/iacProfiles/profilename", + "name": "profilename", + "type": "Microsoft.DevHub/iacProfiles", + "location": "", + "tags": {}, + "properties": { + "githubProfile": { + "repositoryName": "localtest", + "repositoryMainBranch": "main", + "repositoryOwner": "owner", + "authStatus": "Authorized", + "pullNumber": 8, + "prStatus": "submitted", + "branchName": "aks-devhub-ybvmw" + }, + "terraformProfile": { + "storageAccountSubscription": "subscription", + "storageAccountResourceGroup": "hybrid-iac", + "storageAccountName": "hybridiac", + "storageContainerName": "hybridiac" + }, + "stages": [ + { + "stageName": "dev", + "dependencies": [], + "gitEnvironment": "Terraform" + }, + { + "stageName": "qa", + "dependencies": [ + "dev" + ], + "gitEnvironment": "Terraform" + }, + { + "stageName": "prod", + "dependencies": [ + "qa" + ], + "gitEnvironment": "Terraform" + } + ], + "templates": [ + { + "templateName": "base", + "sourceResourceId": "/subscriptions/xxxx/resourceGroups/xxxx", + "instanceStage": "dev", + "instanceName": "contoso", + "templateDetails": [ + { + "productName": "HCI", + "count": 1, + "namingConvention": "$sitid-hci" + }, + { + "productName": "AKSarc", + "count": 1, + "namingConvention": "$sitid-aks" + } + ] + } + ] + }, + "systemData": { + "createdBy": "", + "createdByType": "User", + "createdAt": "2024-01-16T09:56:23.933651400Z", + "lastModifiedBy": "aks-dev-hub-devhub", + "lastModifiedByType": "Application", + "lastModifiedAt": "2024-01-16T14:32:00.783994200Z" + } + } + ], + "nextLink": "https://management.azure.com:443/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DevHub/iacProfiles?api-version=2018-05-05-preview&timeRange=1&$skipToken=" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ListByResourceGroup.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ListByResourceGroup.json new file mode 100644 index 000000000000..5cdd6e3d85b2 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ListByResourceGroup.json @@ -0,0 +1,90 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "location": "location1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/a0a37f63-7183-4e86-9ac7-ce8036a3ed31/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/iacProfiles/profilename", + "name": "profilename", + "type": "Microsoft.DevHub/iacProfiles", + "location": "", + "tags": {}, + "properties": { + "githubProfile": { + "repositoryName": "localtest", + "repositoryMainBranch": "main", + "repositoryOwner": "owner", + "authStatus": "Authorized", + "pullNumber": 8, + "prStatus": "submitted", + "branchName": "aks-devhub-ybvmw" + }, + "terraformProfile": { + "storageAccountSubscription": "subscription", + "storageAccountResourceGroup": "hybrid-iac", + "storageAccountName": "hybridiac", + "storageContainerName": "hybridiac" + }, + "stages": [ + { + "stageName": "dev", + "dependencies": [], + "gitEnvironment": "Terraform" + }, + { + "stageName": "qa", + "dependencies": [ + "dev" + ], + "gitEnvironment": "Terraform" + }, + { + "stageName": "prod", + "dependencies": [ + "qa" + ], + "gitEnvironment": "Terraform" + } + ], + "templates": [ + { + "templateName": "base", + "sourceResourceId": "/subscriptions/xxxx/resourceGroups/xxxx", + "instanceStage": "dev", + "instanceName": "contoso", + "templateDetails": [ + { + "productName": "HCI", + "count": 1, + "namingConvention": "$sitid-hci" + }, + { + "productName": "AKSarc", + "count": 1, + "namingConvention": "$sitid-aks" + } + ] + } + ] + }, + "systemData": { + "createdBy": "", + "createdByType": "User", + "createdAt": "2024-01-16T09:56:23.933651400Z", + "lastModifiedBy": "aks-dev-hub-devhub", + "lastModifiedByType": "Application", + "lastModifiedAt": "2024-01-16T14:32:00.783994200Z" + } + } + ], + "nextLink": "https://management.azure.com:443/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/iacProfiles?api-version=2018-05-05-preview&timeRange=1&$skipToken=" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ScaleTemplate.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ScaleTemplate.json new file mode 100644 index 000000000000..9e86f6f2029d --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_ScaleTemplate.json @@ -0,0 +1,25 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "iacProfileName": "iacprofile", + "parameters": { + "templateName": "base", + "scaleRequirement": [ + { + "region": "useast", + "numberOfStore": 10, + "stage": "dev" + } + ] + } + }, + "responses": { + "200": { + "body": { + "prLink": "xxxx" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_SyncTemplate.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_SyncTemplate.json new file mode 100644 index 000000000000..418933c394d1 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_SyncTemplate.json @@ -0,0 +1,11 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "iacProfileName": "iacprofile" + }, + "responses": { + "200": {} + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_UpdateTags.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_UpdateTags.json new file mode 100644 index 000000000000..68d567917c6e --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/IacProfile_UpdateTags.json @@ -0,0 +1,92 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "a0a37f63-7183-4e86-9ac7-ce8036a3ed31", + "resourceGroupName": "resourceGroup1", + "iacProfileName": "iacprofile", + "parameters": { + "tags": { + "resourceEnv": "testing", + "promote": "false" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/a0a37f63-7183-4e86-9ac7-ce8036a3ed31/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/iacProfiles/iacprofile", + "location": "location1", + "name": "iacprofile", + "type": "Micfosoft.DevHub/iacProfiles", + "tags": { + "appname": "testapp", + "resourceEnv": "testing", + "promote": "false" + }, + "properties": { + "githubProfile": { + "repositoryName": "localtest", + "repositoryMainBranch": "main", + "repositoryOwner": "owner", + "authStatus": "Authorized", + "pullNumber": 8, + "prStatus": "submitted", + "branchName": "aks-devhub-ybvmw" + }, + "terraformProfile": { + "storageAccountSubscription": "subscriptions", + "storageAccountResourceGroup": "hybrid-iac", + "storageAccountName": "hybridiac", + "storageContainerName": "hybridiac" + }, + "stages": [ + { + "stageName": "dev", + "dependencies": [], + "gitEnvironment": "Terraform" + }, + { + "stageName": "qa", + "dependencies": [ + "dev" + ], + "gitEnvironment": "Terraform" + }, + { + "stageName": "prod", + "dependencies": [ + "qa" + ], + "gitEnvironment": "Terraform" + } + ], + "templates": [ + { + "templateName": "base", + "templateDetails": [ + { + "productName": "HCI", + "count": 1, + "namingConvention": "$sitid-hci" + }, + { + "productName": "AKSarc", + "count": 1, + "namingConvention": "$sitid-aks" + } + ] + } + ] + }, + "systemData": { + "createdBy": "", + "createdByType": "User", + "createdAt": "2024-01-16T09:56:23.933651400Z", + "lastModifiedBy": "aks-dev-hub-devhub", + "lastModifiedByType": "Application", + "lastModifiedAt": "2024-01-16T14:35:15.206059900Z" + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Operation_List.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Operation_List.json new file mode 100644 index 000000000000..66b308907cec --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Operation_List.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "name": "Microsoft.DevHub/workflows/read", + "display": { + "provider": "Microsoft Developer Hub", + "resource": "Workflows", + "operation": "Get workflow", + "description": "Gets workflow" + } + } + ], + "nextLink": null + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate.json new file mode 100644 index 000000000000..d91ffdd880d2 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate.json @@ -0,0 +1,146 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup1", + "workflowName": "workflow1", + "parameters": { + "location": "location1", + "tags": { + "appname": "testApp" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "kubeManifestLocations": [ + "/src/manifests/" + ], + "overrides": { + "key1": "value1" + } + }, + "namespace": "namespace1", + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo2", + "branchName": "branch2", + "dockerfile": "repo2/images/Dockerfile", + "dockerBuildContext": "repo2/src/", + "deploymentProperties": { + "manifestType": "helm", + "helmChartPath": "/src/charts", + "helmValues": "/src/chars/values.yaml", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/User/repo2/pull/6567", + "pullNumber": 6567, + "prStatus": "submitted", + "authStatus": "Authorized" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/owner1/repo1/pull/6567", + "pullNumber": 6567, + "prStatus": "submitted", + "authStatus": "Authorized" + } + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate_WithArtifactGen.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate_WithArtifactGen.json new file mode 100644 index 000000000000..d46abe68294a --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_CreateOrUpdate_WithArtifactGen.json @@ -0,0 +1,159 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup1", + "workflowName": "workflow1", + "parameters": { + "location": "location1", + "tags": { + "appname": "testApp" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "kubeManifestLocations": [ + "/src/manifests/" + ], + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1" + }, + "artifactGenerationProperties": { + "generationLanguage": "javascript", + "languageVersion": "14", + "port": "80", + "appName": "my-app", + "dockerfileOutputDirectory": "./", + "manifestOutputDirectory": "./", + "manifestGenerationMode": "enabled", + "dockerfileGenerationMode": "enabled", + "manifestType": "kube", + "imageName": "myimage", + "namespace": "my-namespace", + "imageTag": "latest" + } + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo2", + "branchName": "branch2", + "dockerfile": "repo2/images/Dockerfile", + "dockerBuildContext": "repo2/src/", + "deploymentProperties": { + "manifestType": "helm", + "helmChartPath": "/src/charts", + "helmValues": "/src/chars/values.yaml", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/User/repo2/pull/6567", + "pullNumber": 6567, + "prStatus": "submitted", + "authStatus": "Authorized" + } + } + } + }, + "201": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/owner1/repo1/pull/6567", + "pullNumber": 6567, + "prStatus": "submitted", + "authStatus": "Authorized" + } + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Delete.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Delete.json new file mode 100644 index 000000000000..9198391e9744 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Delete.json @@ -0,0 +1,16 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup1", + "workflowName": "workflow1" + }, + "responses": { + "200": { + "body": { + "status": "workflow deleted successfully" + } + }, + "204": {} + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Get.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Get.json new file mode 100644 index 000000000000..be3ec8e11a76 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_Get.json @@ -0,0 +1,65 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup1", + "workflowName": "workflow1" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/User/repo1/pull/6567", + "pullNumber": 6567, + "prStatus": "merged", + "lastWorkflowRun": { + "succeeded": true, + "workflowRunURL": "https://github.com/User/repo1/actions/runs/1820640230", + "lastRunAt": "2019-01-01T12:34:56.000Z", + "workflowRunStatus": "completed" + }, + "authStatus": "Authorized" + } + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_List.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_List.json new file mode 100644 index 000000000000..15dcb69aaca8 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_List.json @@ -0,0 +1,62 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/User/repo1/pull/6567", + "pullNumber": 6567, + "prStatus": "submitted", + "authStatus": "Authorized" + } + } + } + ], + "nextLink": "https://management.azure.com:443/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DevHub/workflows?api-version=2018-05-05-preview&timeRange=1&$skipToken=" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_ListByResourceGroup.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_ListByResourceGroup.json new file mode 100644 index 000000000000..f71632340b71 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_ListByResourceGroup.json @@ -0,0 +1,71 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup1", + "location": "location1", + "managedClusterResource": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "appname": "testapp" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/User/repo1/pull/6567", + "pullNumber": 6567, + "prStatus": "merged", + "lastWorkflowRun": { + "succeeded": true, + "workflowRunURL": "https://github.com/User/repo1/actions/runs/1820640230", + "lastRunAt": "2019-01-01T12:34:56.000Z", + "workflowRunStatus": "completed" + }, + "authStatus": "Authorized" + } + } + } + ], + "nextLink": "https://management.azure.com:443/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/workflows?api-version=2018-05-05-preview&timeRange=1&$skipToken=1" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_UpdateTags.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_UpdateTags.json new file mode 100644 index 000000000000..996eadb4c7f7 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/Workflow_UpdateTags.json @@ -0,0 +1,73 @@ +{ + "parameters": { + "api-version": "2024-08-01-preview", + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "resourceGroupName": "resourceGroup1", + "workflowName": "workflow1", + "parameters": { + "tags": { + "resourceEnv": "testing", + "promote": "false" + } + } + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resourceGroup1/providers/Microsoft.DevHub/workflow/workflow1", + "location": "location1", + "name": "workflow1", + "type": "Micfosoft.DevHub/Workflow", + "tags": { + "previousValue": "stillExists", + "resourceEnv": "testing", + "promote": "false" + }, + "systemData": { + "createdBy": "foo@contoso.com", + "createdByType": "User", + "createdAt": "2018-04-24T16:30:55+00:00", + "lastModifiedBy": "foo@contoso.com", + "lastModifiedByType": "User", + "lastModifiedAt": "2018-04-24T16:30:55+00:00" + }, + "properties": { + "githubWorkflowProfile": { + "repositoryOwner": "owner1", + "repositoryName": "repo1", + "branchName": "branch1", + "dockerfile": "repo1/images/Dockerfile", + "dockerBuildContext": "repo1/src/", + "deploymentProperties": { + "manifestType": "kube", + "overrides": { + "key1": "value1" + } + }, + "acr": { + "acrSubscriptionId": "00000000-0000-0000-0000-000000000000", + "acrResourceGroup": "resourceGroup1", + "acrRegistryName": "registry1", + "acrRepositoryName": "repo1" + }, + "oidcCredentials": { + "azureClientId": "12345678-3456-7890-5678-012345678901", + "azureTenantId": "66666666-3456-7890-5678-012345678901" + }, + "aksResourceId": "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/resourceGroup1/providers/Microsoft.ContainerService/managedClusters/cluster1", + "prURL": "https://github.com/owner1/repo1/pull/6567", + "pullNumber": 6567, + "prStatus": "merged", + "lastWorkflowRun": { + "succeeded": true, + "workflowRunURL": "https://github.com/User/repo1/actions/runs/1820640230", + "lastRunAt": "2019-01-01T12:34:56.000Z", + "workflowRunStatus": "completed" + }, + "authStatus": "Authorized" + } + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/iac.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/iac.json new file mode 100644 index 000000000000..1fa37bb940b4 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/iac.json @@ -0,0 +1,763 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-08-01-preview", + "title": "DeveloperHubServiceClient", + "description": "The AKS Developer Hub Service 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}/providers/Microsoft.DevHub/iacProfiles": { + "get": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_List", + "summary": "Gets a list of IacProfiles associated with the specified subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Describe the result of a successful operation.", + "schema": { + "$ref": "#/definitions/IacProfileListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List IacProfiles": { + "$ref": "./examples/IacProfile_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/iacProfiles": { + "get": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_ListByResourceGroup", + "summary": "Gets a list of iacProfiles within a resource group.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + } + ], + "responses": { + "200": { + "description": "Describe the result of a successful operation.", + "schema": { + "$ref": "#/definitions/IacProfileListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List IacProfiles": { + "$ref": "./examples/IacProfile_ListByResourceGroup.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/iacProfiles/{iacProfileName}": { + "get": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_Get", + "summary": "Gets a IacProfile.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/IacProfileParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IacProfile" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get IacProfile": { + "$ref": "./examples/IacProfile_Get.json" + } + } + }, + "put": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_CreateOrUpdate", + "summary": "Creates or updates a IacProfile", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/IacProfileParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/IacProfile" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IacProfile" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/IacProfile" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create IacProfile": { + "$ref": "./examples/IacProfile_CreateOrUpdate.json" + } + } + }, + "delete": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_Delete", + "summary": "Deletes a IacProfile", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/IacProfileParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "204": { + "description": "Successfully deleted the resource" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete IacProfile": { + "$ref": "./examples/IacProfile_Delete.json" + } + } + }, + "patch": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_UpdateTags", + "summary": "Updates tags on a IacProfile.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/IacProfileParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "workflow.json#/definitions/TagsObject" + }, + "description": "Parameters supplied to the Update TagsObject Tags operation." + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/IacProfile" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update IacProfile Tags": { + "$ref": "./examples/IacProfile_UpdateTags.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/iacProfiles/{iacProfileName}/export": { + "post": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_Export", + "summary": "Export a template", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/IacProfileParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ExportTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/prLinkResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create IacProfile": { + "$ref": "./examples/IacProfile_ExportTemplate.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/iacProfiles/{iacProfileName}/scale": { + "post": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_Scale", + "summary": "Scale by template", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/IacProfileParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/ScaleTemplateRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/prLinkResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create IacProfile": { + "$ref": "./examples/IacProfile_ScaleTemplate.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/iacProfiles/{iacProfileName}/sync": { + "post": { + "tags": [ + "IacProfile" + ], + "operationId": "IacProfiles_Sync", + "summary": "Sync template", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/IacProfileParameter" + } + ], + "responses": { + "200": { + "description": "OK" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create IacProfile": { + "$ref": "./examples/IacProfile_SyncTemplate.json" + } + } + } + } + }, + "definitions": { + "IacProfile": { + "title": "IacProfile", + "description": "Resource representation of a IacProfile.", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ], + "properties": { + "properties": { + "description": "Properties of a IacProfile.", + "$ref": "#/definitions/IacProfileProperties", + "x-ms-client-flatten": true + }, + "etag": { + "readOnly": true, + "type": "string", + "description": "A unique read-only string that changes whenever the resource is updated." + } + } + }, + "IacProfileProperties": { + "type": "object", + "description": "Properties of a IacProfile.", + "properties": { + "githubProfile": { + "description": "GitHub Profile of a IacProfile", + "$ref": "#/definitions/IacGitHubProfile", + "x-ms-client-flatten": true + }, + "terraformProfile": { + "description": "Terraform Profile of a IacProfile", + "$ref": "#/definitions/TerraformProfile", + "x-ms-client-flatten": true + }, + "stages": { + "type": "array", + "items": { + "$ref": "#/definitions/StageProperties" + } + }, + "templates": { + "type": "array", + "items": { + "$ref": "#/definitions/IacTemplateProperties" + } + } + } + }, + "StageProperties": { + "type": "object", + "description": "Properties of a Stage.", + "properties": { + "stageName": { + "type": "string", + "title": "The name of the stage.", + "description": "Stage Name" + }, + "dependencies": { + "type": "array", + "items": { + "type": "string" + } + }, + "gitEnvironment": { + "type": "string" + } + } + }, + "IacGitHubProfile": { + "type": "object", + "description": "GitHub Profile of a IacProfile.", + "properties": { + "repositoryName": { + "type": "string", + "title": "The name of the repository the IacProfile is associated with.", + "description": "Repository Name" + }, + "repositoryMainBranch": { + "type": "string", + "title": "The name of the main branch of the repository the IacProfile is associated with.", + "description": "Repository Main Branch" + }, + "repositoryOwner": { + "type": "string", + "title": "The owner of the repository the IacProfile is associated with.", + "description": "Repository Owner" + }, + "authStatus": { + "$ref": "workflow.json#/definitions/AuthorizationStatus" + }, + "pullNumber": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "The number associated with the submitted pull request." + }, + "prStatus": { + "$ref": "workflow.json#/definitions/PullRequestStatus" + }, + "branchName": { + "type": "string", + "title": "The name of the branch current operation is associated with.", + "description": "Repository Branch Name" + } + } + }, + "TerraformProfile": { + "type": "object", + "description": "Terraform backend profile.", + "properties": { + "storageAccountSubscription": { + "type": "string", + "title": "The subscription id of the storage account that save terraform state.", + "description": "Terraform Storage Account Subscription" + }, + "storageAccountResourceGroup": { + "type": "string", + "title": "The resource group of the storage account that save terraform state.", + "description": "Terraform Storage Account Resource Group" + }, + "storageAccountName": { + "type": "string", + "title": "The name of the storage account that save terraform state.", + "description": "Terraform Storage Account Name" + }, + "storageContainerName": { + "type": "string", + "title": "The name of the container that save terraform state.", + "description": "Terraform Container Name" + } + } + }, + "IacProfileListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/IacProfile" + }, + "description": "The list of IacProfiles." + }, + "nextLink": { + "type": "string", + "description": "The URL to the next set of IacProfile results.", + "readOnly": true + } + } + }, + "IacTemplateProperties": { + "type": "object", + "description": "Properties of a IacTemplate.", + "properties": { + "templateName": { + "type": "string", + "title": "The name of the template.", + "description": "Template Name" + }, + "sourceResourceId": { + "type": "string", + "title": "The source resource Id of the template.", + "description": "the source store of the template" + }, + "instanceStage": { + "type": "string", + "title": "The sample instance stage of the template.", + "description": "the source stage of the template" + }, + "instanceName": { + "type": "string", + "title": "The sample instance name of the template.", + "description": "the sample instance name of the template" + }, + "templateDetails": { + "type": "array", + "items": { + "$ref": "#/definitions/IacTemplateDetails" + } + }, + "quickStartTemplateType": { + "$ref": "#/definitions/QuickStartTemplateType" + } + } + }, + "QuickStartTemplateType": { + "type": "string", + "enum": [ + "None", + "HCI", + "HCIAKS", + "HCIARCVM" + ], + "readOnly": true, + "x-ms-enum": { + "name": "QuickStartTemplateType", + "modelAsString": true, + "values": [ + { + "value": "None", + "description": "The template has not use quick start template" + }, + { + "value": "HCI", + "description": "The template use quick start template of HCI" + }, + { + "value": "HCIAKS", + "description": "The template use quick start template of HCI and AKS" + }, + { + "value": "HCIARCVM", + "description": "The template use quick start template of HCI and ArcVM" + } + ] + }, + "description": "Determines the authorization status of requests." + }, + "IacTemplateDetails": { + "type": "object", + "properties": { + "productName": { + "type": "string", + "description": "The name of the products." + }, + "count": { + "type": "integer", + "format": "int32", + "description": "Count of the product" + }, + "namingConvention": { + "type": "string", + "description": "Naming convention of this product" + } + } + }, + "ExportTemplateRequest": { + "type": "object", + "properties": { + "templateName": { + "type": "string", + "title": "The name of the template.", + "description": "Template Name" + }, + "resourceGroupIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "siteId": { + "type": "string" + }, + "instanceName": { + "type": "string" + }, + "instanceStage": { + "type": "string" + } + } + }, + "ScaleTemplateRequest": { + "type": "object", + "properties": { + "templateName": { + "type": "string", + "title": "The name of the template.", + "description": "Template Name" + }, + "scaleRequirement": { + "type": "array", + "items": { + "$ref": "#/definitions/ScaleProperty" + } + } + } + }, + "ScaleProperty": { + "type": "object", + "properties": { + "region": { + "type": "string", + "description": "The region of the store" + }, + "stage": { + "type": "string", + "description": "The stage of the store" + }, + "numberOfStore": { + "type": "integer", + "format": "int32", + "description": "Number of the store" + } + } + }, + "prLinkResponse": { + "type": "object", + "properties": { + "prLink": { + "type": "string", + "description": "The link of the pull request." + } + } + } + }, + "parameters": { + "IacProfileParameter": { + "name": "iacProfileName", + "in": "path", + "required": true, + "type": "string", + "description": "The name of the IacProfile.", + "minLength": 1, + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$", + "x-ms-parameter-location": "method" + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json new file mode 100644 index 000000000000..f33ad936c62e --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json @@ -0,0 +1,1179 @@ +{ + "swagger": "2.0", + "info": { + "version": "2024-08-01-preview", + "title": "DeveloperHubServiceClient", + "description": "The AKS Developer Hub Service 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": { + "/providers/Microsoft.DevHub/operations": { + "get": { + "tags": [ + "Operations" + ], + "operationId": "Operations_List", + "description": "Returns list of operations.", + "summary": "Gets a list of operations.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + } + ], + "responses": { + "200": { + "description": "Operation details.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/OperationListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "deprecated": false, + "x-ms-examples": { + "List available operations for the container service resource provider": { + "$ref": "./examples/Operation_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/locations/{location}/githuboauth/default/getGitHubOAuthInfo": { + "post": { + "tags": [ + "GitHubOAuth" + ], + "operationId": "GitHubOAuth", + "summary": "Gets GitHubOAuth info used to authenticate users with the Developer Hub GitHub App.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "parameters", + "required": false, + "in": "body", + "schema": { + "$ref": "#/definitions/GitHubOAuthCallRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GitHubOAuthInfoResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GitHub OAuth": { + "$ref": "./examples/GitHubOAuth.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/locations/{location}/githuboauth/default": { + "get": { + "tags": [ + "GitHubOAuth" + ], + "operationId": "GitHubOAuthCallback", + "summary": "Callback URL to hit once authenticated with GitHub App to have the service store the OAuth token.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "$ref": "#/parameters/GitHubOAuthCodeParameter" + }, + { + "$ref": "#/parameters/GitHubOAuthStateParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GitHubOAuthResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "GitHub OAuth Callback": { + "$ref": "./examples/GitHubOAuthCallback.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/locations/{location}/githuboauth": { + "get": { + "tags": [ + "GitHubOAuth" + ], + "operationId": "ListGitHubOAuth", + "summary": "Callback URL to hit once authenticated with GitHub App to have the service store the OAuth token.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GitHubOAuthListResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "List GitHub OAuth": { + "$ref": "./examples/GitHubOAuth_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/workflows": { + "get": { + "tags": [ + "Workflow" + ], + "operationId": "Workflow_List", + "summary": "Gets a list of workflows associated with the specified subscription.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + } + ], + "responses": { + "200": { + "description": "Describe the result of a successful operation.", + "schema": { + "$ref": "#/definitions/WorkflowListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List Workflows": { + "$ref": "./examples/Workflow_List.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/workflows": { + "get": { + "tags": [ + "Workflow" + ], + "operationId": "Workflow_ListByResourceGroup", + "summary": "Gets a list of workflows within a resource group.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/ManagedClusterParameter" + } + ], + "responses": { + "200": { + "description": "Describe the result of a successful operation.", + "schema": { + "$ref": "#/definitions/WorkflowListResult" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List Workflows": { + "$ref": "./examples/Workflow_ListByResourceGroup.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevHub/workflows/{workflowName}": { + "get": { + "tags": [ + "Workflow" + ], + "operationId": "Workflow_Get", + "summary": "Gets a workflow.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkflowNameParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Workflow" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Workflow": { + "$ref": "./examples/Workflow_Get.json" + } + } + }, + "put": { + "tags": [ + "Workflow" + ], + "operationId": "Workflow_CreateOrUpdate", + "summary": "Creates or updates a workflow", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkflowNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/Workflow" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Workflow" + } + }, + "201": { + "description": "Created", + "schema": { + "$ref": "#/definitions/Workflow" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Create Workflow": { + "$ref": "./examples/Workflow_CreateOrUpdate.json" + }, + "Create Workflow With Artifact Generation": { + "$ref": "./examples/Workflow_CreateOrUpdate_WithArtifactGen.json" + } + } + }, + "delete": { + "tags": [ + "Workflow" + ], + "operationId": "Workflow_Delete", + "summary": "Deletes a workflow", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkflowNameParameter" + } + ], + "responses": { + "200": { + "description": "successful delete with response", + "schema": { + "$ref": "#/definitions/DeleteWorkflowResponse" + } + }, + "204": { + "description": "Successfully deleted the resource" + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Delete Workflow": { + "$ref": "./examples/Workflow_Delete.json" + } + } + }, + "patch": { + "tags": [ + "Workflow" + ], + "operationId": "Workflow_UpdateTags", + "summary": "Updates tags on a workflow.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ResourceGroupNameParameter" + }, + { + "$ref": "#/parameters/WorkflowNameParameter" + }, + { + "name": "parameters", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/TagsObject" + }, + "description": "Parameters supplied to the Update Workflow Tags operation." + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/Workflow" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Update Managed Cluster Tags": { + "$ref": "./examples/Workflow_UpdateTags.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/locations/{location}/generatePreviewArtifacts": { + "post": { + "tags": [ + "Artifacts" + ], + "operationId": "GeneratePreviewArtifacts", + "summary": "Generate preview dockerfile and manifests.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "parameters", + "required": true, + "in": "body", + "schema": { + "$ref": "#/definitions/ArtifactGenerationProperties" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/GeneratePreviewArtifactsResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Artifact Generation Properties": { + "$ref": "./examples/GeneratePreviewArtifacts.json" + } + } + } + } + }, + "definitions": { + "Workflow": { + "title": "Workflow", + "description": "Resource representation of a workflow", + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/TrackedResource" + } + ], + "properties": { + "properties": { + "description": "Properties of a workflow.", + "$ref": "#/definitions/WorkflowProperties", + "x-ms-client-flatten": true + } + } + }, + "WorkflowProperties": { + "type": "object", + "description": "Workflow properties", + "properties": { + "githubWorkflowProfile": { + "description": "Profile of a github workflow.", + "$ref": "#/definitions/GitHubWorkflowProfile", + "x-ms-client-flatten": true + }, + "artifactGenerationProperties": { + "description": "Properties for generating artifacts like dockerfile and manifests.", + "$ref": "#/definitions/ArtifactGenerationProperties", + "x-ms-client-flatten": true + } + } + }, + "GitHubWorkflowProfile": { + "type": "object", + "description": "GitHub Workflow Profile", + "properties": { + "repositoryOwner": { + "type": "string", + "title": "The owner of the repository the workflow is associated with.", + "description": "Repository Owner" + }, + "repositoryName": { + "type": "string", + "title": "The name of the repository the workflow is associated with.", + "description": "Repository Name" + }, + "branchName": { + "type": "string", + "title": "The name of the branch the workflow is associated with.", + "description": "Repository Branch Name" + }, + "dockerfile": { + "type": "string", + "title": "Path to Dockerfile within the repository.", + "description": "Path to the Dockerfile within the repository." + }, + "dockerBuildContext": { + "type": "string", + "title": "Path to Dockerfile Build Context within the repository.", + "description": "Path to Dockerfile Build Context within the repository." + }, + "deploymentProperties": { + "$ref": "#/definitions/DeploymentProperties" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace the application is deployed to.", + "title": "The Kubernetes namespace the application is deployed to" + }, + "acr": { + "$ref": "#/definitions/ACR" + }, + "oidcCredentials": { + "type": "object", + "description": "The fields needed for OIDC with GitHub.", + "properties": { + "azureClientId": { + "type": "string", + "description": "Azure Application Client ID" + }, + "azureTenantId": { + "type": "string", + "description": "Azure Directory (tenant) ID" + } + } + }, + "aksResourceId": { + "type": "string", + "description": "The Azure Kubernetes Cluster Resource the application will be deployed to.", + "title": "The Azure Kubernetes Managed Cluster resource." + }, + "prURL": { + "type": "string", + "description": "The URL to the Pull Request submitted against the users repository.", + "readOnly": true + }, + "pullNumber": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "The number associated with the submitted pull request." + }, + "prStatus": { + "$ref": "#/definitions/PullRequestStatus" + }, + "lastWorkflowRun": { + "$ref": "#/definitions/WorkflowRun" + }, + "authStatus": { + "$ref": "#/definitions/AuthorizationStatus" + } + } + }, + "WorkflowListResult": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/Workflow" + }, + "description": "The list of workflows." + }, + "nextLink": { + "type": "string", + "description": "The URL to the next set of workflow results.", + "readOnly": true + } + }, + "description": "The response from List Workflows operation." + }, + "PullRequestStatus": { + "type": "string", + "readOnly": true, + "enum": [ + "unknown", + "submitted", + "merged", + "removed" + ], + "x-ms-enum": { + "name": "PullRequestStatus", + "modelAsString": true, + "values": [ + { + "value": "unknown", + "description": "Pull Request state unknown." + }, + { + "value": "submitted", + "description": "Pull Request submitted to repository." + }, + { + "value": "merged", + "description": "Pull Request merged into repository." + }, + { + "value": "removed", + "description": "Workflow no longer found within repository." + } + ] + }, + "description": "The status of the Pull Request submitted against the users repository." + }, + "DeploymentProperties": { + "type": "object", + "properties": { + "manifestType": { + "$ref": "#/definitions/ManifestType" + }, + "kubeManifestLocations": { + "type": "array", + "items": { + "type": "string" + } + }, + "helmChartPath": { + "type": "string", + "description": "Helm chart directory path in repository." + }, + "helmValues": { + "type": "string", + "description": "Helm Values.yaml file location in repository." + }, + "overrides": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "title": "Manifest override values.", + "description": "Manifest override values." + } + } + }, + "ArtifactGenerationProperties": { + "description": "Properties used for generating artifacts such as Dockerfiles and manifests.", + "title": "Artifact Generation Properties", + "type": "object", + "properties": { + "generationLanguage": { + "$ref": "#/definitions/GenerationLanguage" + }, + "languageVersion": { + "type": "string", + "description": "The version of the language image used for execution in the generated dockerfile." + }, + "builderVersion": { + "type": "string", + "description": "The version of the language image used for building the code in the generated dockerfile." + }, + "port": { + "type": "string", + "description": "The port the application is exposed on." + }, + "appName": { + "type": "string", + "description": "The name of the app." + }, + "dockerfileOutputDirectory": { + "type": "string", + "description": "The directory to output the generated Dockerfile to." + }, + "manifestOutputDirectory": { + "type": "string", + "description": "The directory to output the generated manifests to." + }, + "dockerfileGenerationMode": { + "$ref": "#/definitions/DockerfileGenerationMode" + }, + "manifestGenerationMode": { + "$ref": "#/definitions/ManifestGenerationMode" + }, + "manifestType": { + "$ref": "#/definitions/GenerationManifestType" + }, + "imageName": { + "type": "string", + "description": "The name of the image to be generated." + }, + "namespace": { + "type": "string", + "description": "The namespace to deploy the application to." + }, + "imageTag": { + "type": "string", + "description": "The tag to apply to the generated image." + } + } + }, + "ManifestType": { + "type": "string", + "enum": [ + "helm", + "kube", + "kustomize" + ], + "x-ms-enum": { + "name": "ManifestType", + "modelAsString": true, + "values": [ + { + "value": "helm", + "description": "Repositories using helm" + }, + { + "value": "kube", + "description": "Repositories using kubernetes manifests" + } + ] + }, + "description": "Determines the type of manifests within the repository." + }, + "AuthorizationStatus": { + "type": "string", + "enum": [ + "Authorized", + "NotFound", + "Error" + ], + "readOnly": true, + "x-ms-enum": { + "name": "AuthorizationStatus", + "modelAsString": true, + "values": [ + { + "value": "Authorized", + "description": "Requests authorized successfully" + }, + { + "value": "NotFound", + "description": "Requests returned NotFound response" + }, + { + "value": "Error", + "description": "Requests returned other error response" + } + ] + }, + "description": "Determines the authorization status of requests." + }, + "GenerationLanguage": { + "type": "string", + "enum": [ + "clojure", + "csharp", + "erlang", + "go", + "gomodule", + "gradle", + "java", + "javascript", + "php", + "python", + "ruby", + "rust", + "swift" + ], + "x-ms-enum": { + "name": "GenerationLanguage", + "modelAsString": true, + "values": [ + { + "value": "clojure", + "description": "clojure language" + }, + { + "value": "csharp", + "description": "csharp language" + }, + { + "value": "erlang", + "description": "erlang language" + }, + { + "value": "go", + "description": "go language" + }, + { + "value": "gomodule", + "description": "gomodule language" + }, + { + "value": "gradle", + "description": "gradle language" + }, + { + "value": "java", + "description": "java language" + }, + { + "value": "javascript", + "description": "javascript language" + }, + { + "value": "php", + "description": "php language" + }, + { + "value": "python", + "description": "python language" + }, + { + "value": "ruby", + "description": "ruby language" + }, + { + "value": "rust", + "description": "rust language" + }, + { + "value": "swift", + "description": "swift language" + } + ] + }, + "description": "The programming language used." + }, + "ManifestGenerationMode": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "ManifestGenerationMode", + "modelAsString": true, + "values": [ + { + "value": "enabled", + "description": "Manifests will be generated" + }, + { + "value": "disabled", + "description": "Manifests will not be generated" + } + ] + }, + "description": "The mode of generation to be used for generating Manifest." + }, + "DockerfileGenerationMode": { + "type": "string", + "enum": [ + "enabled", + "disabled" + ], + "x-ms-enum": { + "name": "DockerfileGenerationMode", + "modelAsString": true, + "values": [ + { + "value": "enabled", + "description": "Dockerfiles will be generated" + }, + { + "value": "disabled", + "description": "Dockerfiles will not be generated" + } + ] + }, + "description": "The mode of generation to be used for generating Dockerfiles." + }, + "GenerationManifestType": { + "type": "string", + "enum": [ + "helm", + "kube" + ], + "x-ms-enum": { + "name": "GenerationManifestType", + "modelAsString": true, + "values": [ + { + "value": "helm", + "description": "Helm manifests" + }, + { + "value": "kube", + "description": "Kubernetes manifests" + } + ] + }, + "description": "Determines the type of manifests to be generated." + }, + "WorkflowRun": { + "type": "object", + "properties": { + "succeeded": { + "type": "boolean", + "readOnly": true, + "description": "Describes if the workflow run succeeded." + }, + "workflowRunURL": { + "type": "string", + "readOnly": true, + "description": "URL to the run of the workflow." + }, + "lastRunAt": { + "type": "string", + "readOnly": true, + "format": "date-time", + "description": "The timestamp of the last workflow run." + }, + "workflowRunStatus": { + "$ref": "#/definitions/WorkflowRunStatus" + } + } + }, + "WorkflowRunStatus": { + "type": "string", + "enum": [ + "queued", + "inprogress", + "completed" + ], + "x-ms-enum": { + "name": "WorkflowRunStatus", + "modelAsString": true, + "values": [ + { + "value": "queued", + "description": "Workflow run is queued" + }, + { + "value": "inprogress", + "description": "Workflow run is inprogress" + }, + { + "value": "completed", + "description": "Workflow run is completed" + } + ] + }, + "description": "Describes the status of the workflow run" + }, + "ACR": { + "type": "object", + "description": "Information on the azure container registry", + "properties": { + "acrSubscriptionId": { + "type": "string", + "description": "ACR subscription id" + }, + "acrResourceGroup": { + "type": "string", + "description": "ACR resource group" + }, + "acrRegistryName": { + "type": "string", + "description": "ACR registry" + }, + "acrRepositoryName": { + "type": "string", + "description": "ACR repository" + } + } + }, + "GeneratePreviewArtifactsResponse": { + "type": "object", + "description": "Dockerfile and manifest artifacts generated as a preview are returned as a map", + "additionalProperties": { + "type": "string" + } + }, + "GitHubOAuthInfoResponse": { + "type": "object", + "description": "URL used to authorize the Developer Hub GitHub App", + "properties": { + "authURL": { + "type": "string", + "description": "URL for authorizing the Developer Hub GitHub App" + }, + "token": { + "type": "string", + "description": "OAuth token used to make calls to GitHub" + } + } + }, + "TagsObject": { + "type": "object", + "properties": { + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + } + } + }, + "x-ms-mutability": [ + "read", + "create", + "update" + ], + "description": "Resource tags." + }, + "DeleteWorkflowResponse": { + "type": "object", + "properties": { + "status": { + "type": "string", + "description": "delete status message" + } + }, + "description": "delete response if content must be provided on delete operation" + }, + "GitHubOAuthCallRequest": { + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "The URL the client will redirect to on successful authentication. If empty, no redirect will occur." + } + }, + "description": "GitHubOAuth request object" + }, + "GitHubOAuthResponse": { + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "description": "Properties of a workflow.", + "$ref": "#/definitions/GitHubOAuthProperties", + "x-ms-client-flatten": true + } + }, + "description": "Singleton response of GitHubOAuth containing " + }, + "GitHubOAuthProperties": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "user making request" + } + }, + "description": "The response from List GitHubOAuth operation." + }, + "GitHubOAuthListResponse": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/GitHubOAuthResponse" + }, + "description": "Singleton list response containing one GitHubOAuthResponse response" + } + }, + "description": "The response from List GitHubOAuth operation." + } + }, + "parameters": { + "ManagedClusterParameter": { + "name": "managedClusterResource", + "in": "query", + "required": false, + "type": "string", + "description": "The ManagedCluster resource associated with the workflows.", + "x-ms-parameter-location": "method" + }, + "WorkflowNameParameter": { + "name": "workflowName", + "in": "path", + "required": true, + "type": "string", + "minLength": 1, + "maxLength": 63, + "pattern": "^[a-zA-Z0-9]$|^[a-zA-Z0-9][-_a-zA-Z0-9]{0,61}[a-zA-Z0-9]$", + "description": "The name of the workflow resource.", + "x-ms-parameter-location": "method" + }, + "GitHubOAuthCodeParameter": { + "name": "code", + "in": "query", + "required": true, + "type": "string", + "description": "The code response from authenticating the GitHub App.", + "x-ms-parameter-location": "method" + }, + "GitHubOAuthStateParameter": { + "name": "state", + "in": "query", + "required": true, + "type": "string", + "description": "The state response from authenticating the GitHub App.", + "x-ms-parameter-location": "method" + } + } +} From 1366fc01a9b48f87ef91c178b3edab4014c6339f Mon Sep 17 00:00:00 2001 From: Suneha Bose Date: Tue, 19 Mar 2024 17:34:03 -0700 Subject: [PATCH 2/2] new devhub changes removed x-ms-client-flatten added new routes for ADO OAuth added azurePipelineProfile obj --- cSpell.json | 7 + .../examples/ADOOAuthDefault.json | 21 ++ .../examples/ADOOAuthInfo.json | 18 + .../examples/ADOOAuthList.json | 23 ++ .../preview/2024-08-01-preview/workflow.json | 334 +++++++++++++++++- .../developerhub/resource-manager/readme.md | 22 +- 6 files changed, 414 insertions(+), 11 deletions(-) create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthDefault.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthInfo.json create mode 100644 specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthList.json diff --git a/cSpell.json b/cSpell.json index 4c920093c536..71cc33baa62c 100644 --- a/cSpell.json +++ b/cSpell.json @@ -1388,6 +1388,13 @@ "words": [ "systemversionname" ] + }, + { + "filename": "**/specification/developerhub/resource-manager/Microsoft.DevHub/preview/**/workflow.json", + "words": [ + "adooauth", + "ADOO" + ] } ], "enableFiletypes": [ diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthDefault.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthDefault.json new file mode 100644 index 000000000000..d4bee87a6ec4 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthDefault.json @@ -0,0 +1,21 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "eastus2euap", + "api-version": "2024-08-01-preview", + "code": "3584d83530557fdd1f46af8289938c8ef79f9dc5", + "state": "12345678-3456-7890-5678-012345678901" + }, + "responses": { + "200": { + "body": { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DevHub/locations/eastus2euap/adooauth/default", + "type": "Microsoft.DevHub/locations/adooauth", + "name": "default", + "properties": { + "username": "user" + } + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthInfo.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthInfo.json new file mode 100644 index 000000000000..7596ac9cc0f0 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthInfo.json @@ -0,0 +1,18 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "eastus2euap", + "api-version": "2024-08-01-preview", + "parameters": { + "redirectUrl": "https://ms.portal.azure.com/aks" + } + }, + "responses": { + "200": { + "body": { + "authURL": "https://login.microsoftonline.com/common/oauth2/authorize?client_id=11111111&response_type=code&state=1234567-9123-4567-8912-234567890123&scope=offline_access%20openid%20vso.profile&redirect_uri=https://management.azure.com/subscriptions/subscriptionId1/providers/Microsoft.DevHub/locations/eastus2euap/adooauth", + "token": "" + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthList.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthList.json new file mode 100644 index 000000000000..b4ca4ac9d025 --- /dev/null +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/examples/ADOOAuthList.json @@ -0,0 +1,23 @@ +{ + "parameters": { + "subscriptionId": "00000000-0000-0000-0000-000000000000", + "location": "eastus2euap", + "api-version": "2024-08-01-preview" + }, + "responses": { + "200": { + "body": { + "value": [ + { + "id": "/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.DevHub/locations/eastus2euap/adooauth/default", + "type": "Microsoft.DevHub/locations/adooauth", + "name": "default", + "properties": { + "username": "user" + } + } + ] + } + } + } +} diff --git a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json index f33ad936c62e..ddd4e14415a0 100644 --- a/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json +++ b/specification/developerhub/resource-manager/Microsoft.DevHub/preview/2024-08-01-preview/workflow.json @@ -521,6 +521,135 @@ } } } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/locations/{location}/adooauth/default/getADOOAuthInfo": { + "post": { + "tags": [ + "ADOOAuth" + ], + "operationId": "GetADOOAuthInfo", + "summary": "Gets ADOOAuth info used to authenticate users with ADO.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + }, + { + "name": "parameters", + "description": "The fields required in ADO OAuth call request.", + "required": false, + "in": "body", + "schema": { + "$ref": "#/definitions/ADOOAuthCallRequest" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ADOOAuthInfoResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ADO OAuthInfo": { + "$ref": "./examples/ADOOAuthInfo.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/locations/{location}/adooauth/default": { + "get": { + "tags": [ + "ADOOAuth" + ], + "operationId": "ADOOAuth_Get", + "summary": "Callback URL to hit once authenticated with Entra ID to have the service store the OAuth token.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ADOOAuthResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "ADO OAuth Callback": { + "$ref": "./examples/ADOOAuthDefault.json" + } + } + } + }, + "/subscriptions/{subscriptionId}/providers/Microsoft.DevHub/locations/{location}/adooauth": { + "get": { + "tags": [ + "ADOOAuth" + ], + "operationId": "ADOOAuth_List", + "summary": "Callback URL to hit once authenticated with ADO to have the service store the OAuth token.", + "parameters": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/ApiVersionParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/SubscriptionIdParameter" + }, + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/parameters/LocationParameter" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/ADOOAuthListResponse" + } + }, + "default": { + "description": "Error response describing why the operation failed.", + "schema": { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ErrorResponse" + } + } + }, + "x-ms-pageable": { + "nextLinkName": "nextLink" + }, + "x-ms-examples": { + "List ADO OAuth": { + "$ref": "./examples/ADOOAuthList.json" + } + } + } } }, "definitions": { @@ -536,8 +665,7 @@ "properties": { "properties": { "description": "Properties of a workflow.", - "$ref": "#/definitions/WorkflowProperties", - "x-ms-client-flatten": true + "$ref": "#/definitions/WorkflowProperties" } } }, @@ -547,13 +675,15 @@ "properties": { "githubWorkflowProfile": { "description": "Profile of a github workflow.", - "$ref": "#/definitions/GitHubWorkflowProfile", - "x-ms-client-flatten": true + "$ref": "#/definitions/GitHubWorkflowProfile" }, "artifactGenerationProperties": { "description": "Properties for generating artifacts like dockerfile and manifests.", - "$ref": "#/definitions/ArtifactGenerationProperties", - "x-ms-client-flatten": true + "$ref": "#/definitions/ArtifactGenerationProperties" + }, + "azurePipelineProfile": { + "description": "Profile of an azure pipeline.", + "$ref": "#/definitions/AzurePipelineProfile" } } }, @@ -587,7 +717,7 @@ "description": "Path to Dockerfile Build Context within the repository." }, "deploymentProperties": { - "$ref": "#/definitions/DeploymentProperties" + "$ref": "#/definitions/Deployment" }, "namespace": { "type": "string", @@ -638,6 +768,62 @@ } } }, + "AzurePipelineProfile": { + "type": "object", + "description": "Azure Pipeline Profile", + "properties": { + "repository": { + "$ref": "#/definitions/ADORepository" + }, + "armServiceConnection": { + "type": "string", + "description": "The name of the ARM Service Connection the pipeline is associated with." + }, + "build": { + "$ref": "#/definitions/Build" + }, + "deployment": { + "$ref": "#/definitions/Deployment" + }, + "namespace": { + "type": "string", + "description": "Kubernetes namespace the application is deployed to." + }, + "acr": { + "type": "string", + "description": "Resource identifier for azure container registry repository associated with the workflow.", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ContainerRegistry/registries" + } + ] + } + }, + "clusterId": { + "type": "string", + "description": "The Azure Kubernetes Cluster Resource the application will be deployed to.", + "format": "arm-id", + "x-ms-arm-id-details": { + "allowedResources": [ + { + "type": "Microsoft.ContainerService/managedClusters" + } + ] + } + }, + "pullRequest": { + "$ref": "#/definitions/PullRequest" + }, + "lastWorkflowRun": { + "$ref": "#/definitions/WorkflowRun" + }, + "authStatus": { + "$ref": "#/definitions/AuthorizationStatus" + } + } + }, "WorkflowListResult": { "type": "object", "properties": { @@ -689,8 +875,9 @@ }, "description": "The status of the Pull Request submitted against the users repository." }, - "DeploymentProperties": { + "Deployment": { "type": "object", + "description": "Deployment details of the repository associated with the workflow.", "properties": { "manifestType": { "$ref": "#/definitions/ManifestType" @@ -719,6 +906,66 @@ } } }, + "ADORepository": { + "type": "object", + "description": "Details of the ADO repository associated with the workflow.", + "properties": { + "repositoryOwner": { + "type": "string", + "description": "The owner of the repository the workflow is associated with." + }, + "repositoryName": { + "type": "string", + "description": "The name of the repository the workflow is associated with." + }, + "branchName": { + "type": "string", + "description": "The name of the branch the workflow is associated with." + }, + "adoOrganization": { + "type": "string", + "description": "The name of the Azure DevOps organization the pipeline is associated with." + }, + "projectName": { + "type": "string", + "description": "The name of the project the pipeline is associated with." + } + } + }, + "Build": { + "type": "object", + "description": "Build details of the repository associated with the workflow.", + "properties": { + "dockerfile": { + "type": "string", + "description": "Path to the Dockerfile within the repository." + }, + "dockerBuildContext": { + "type": "string", + "description": "Path to Dockerfile Build Context within the repository." + } + } + }, + "PullRequest": { + "type": "object", + "description": "Details of the pull request containing the workflow.", + "properties": { + "prURL": { + "type": "string", + "description": "The URL to the Pull Request submitted against the users repository.", + "readOnly": true + }, + "pullNumber": { + "type": "integer", + "format": "int32", + "readOnly": true, + "description": "The number associated with the submitted pull request." + }, + "prStatus": { + "$ref": "#/definitions/PullRequestStatus" + } + } + }, "ArtifactGenerationProperties": { "description": "Properties used for generating artifacts such as Dockerfiles and manifests.", "title": "Artifact Generation Properties", @@ -994,6 +1241,7 @@ }, "WorkflowRunStatus": { "type": "string", + "readOnly": true, "enum": [ "queued", "inprogress", @@ -1109,8 +1357,7 @@ "properties": { "properties": { "description": "Properties of a workflow.", - "$ref": "#/definitions/GitHubOAuthProperties", - "x-ms-client-flatten": true + "$ref": "#/definitions/GitHubOAuthProperties" } }, "description": "Singleton response of GitHubOAuth containing " @@ -1137,6 +1384,73 @@ } }, "description": "The response from List GitHubOAuth operation." + }, + "ADOOAuthCallRequest": { + "type": "object", + "properties": { + "redirectUrl": { + "type": "string", + "description": "The URL the client will redirect to on successful authentication. If empty, no redirect will occur." + } + }, + "description": "ADOOAuth request object" + }, + "ADOOAuthInfoResponse": { + "type": "object", + "description": "Response containing ADO OAuth information", + "properties": { + "authURL": { + "type": "string", + "description": "URL used to authorize ADO app using Entra ID" + }, + "token": { + "type": "string", + "description": "OAuth token used to make calls to ADO APIs" + } + } + }, + "ADOOAuthResponse": { + "type": "object", + "allOf": [ + { + "$ref": "../../../../../common-types/resource-management/v5/types.json#/definitions/ProxyResource" + } + ], + "properties": { + "properties": { + "description": "Details of ADO OAuth.", + "$ref": "#/definitions/ADOOAuth" + } + }, + "description": "Singleton response of ADO OAuth." + }, + "ADOOAuth": { + "type": "object", + "properties": { + "username": { + "type": "string", + "description": "user making request" + } + }, + "description": "The properties of ADO OAuth." + }, + "ADOOAuthListResponse": { + "type": "object", + "properties": { + "value": { + "type": "array", + "items": { + "$ref": "#/definitions/ADOOAuthResponse" + }, + "description": "Singleton list response containing one ADOOAuthResponse" + }, + "nextLink": { + "type": "string", + "description": "The URL to the next set of ADO OAuth results.", + "readOnly": true + } + }, + "description": "The response from List ADOOAuth operation." } }, "parameters": { diff --git a/specification/developerhub/resource-manager/readme.md b/specification/developerhub/resource-manager/readme.md index 65643f6f520c..9830e6c7c09e 100644 --- a/specification/developerhub/resource-manager/readme.md +++ b/specification/developerhub/resource-manager/readme.md @@ -26,9 +26,28 @@ These are the global settings for the DeveloperHub API. ``` yaml openapi-type: arm -tag: package-preview-2024-05 +tag: package-preview-2024-08 ``` +### Tag: package-preview-2024-08 + +These settings apply only when `--tag=package-preview-2024-08` is specified on the command line. + +``` yaml $(tag) == 'package-preview-2024-08' +input-file: + - Microsoft.DevHub/preview/2024-08-01-preview/workflow.json + - Microsoft.DevHub/preview/2024-08-01-preview/iac.json +suppressions: + - code: XmsPageableForListCalls + reason: False positive error for singleton resource Get API. + from: workflow.json + - code: AvoidAdditionalProperties + reason: Removing additionalProperties from the models will result in breaking changes. + from: workflow.json + - code: BodyTopLevelProperties + reason: False positive error for Collection Get API + from: workflow.json +``` ### Tag: package-preview-2024-05 @@ -48,6 +67,7 @@ These settings apply only when `--tag=package-2023-08` is specified on the comma input-file: - Microsoft.DevHub/stable/2023-08-01/workflow.json ``` + ### Tag: package-preview-2022-10 These settings apply only when `--tag=package-preview-2022-10` is specified on the command line.