swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: REST APIs for orchestrating deployments using the Azure Deployment Manager (ADM). See https://docs.microsoft.com/en-us/azure/azure-resource-manager/deployment-manager-overview for more information.
  title: AzureDeploymentManager
  version: 2019-11-01-preview
  x-apisguru-categories:
    - cloud
  x-logo:
    url: https://api.apis.guru/v2/cache/logo/https_assets.onestore.ms_cdnfiles_onestorerolling-1606-01000_shell_v3_images_logo_microsoft.png
  x-origin:
    - format: swagger
      url: https://raw.githubusercontent.com/Azure/azure-rest-api-specs/master/specification/deploymentmanager/resource-manager/Microsoft.DeploymentManager/preview/2019-11-01-preview/deploymentmanager.json
      version: "2.0"
  x-preferred: true
  x-providerName: azure.com
  x-serviceName: deploymentmanager
  x-tags:
    - Azure
    - Microsoft
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  azure_auth:
    authorizationUrl: https://login.microsoftonline.com/common/oauth2/authorize
    description: Azure Active Directory OAuth2 Flow
    flow: implicit
    scopes:
      user_impersonation: impersonate your user account
    type: oauth2
security:
  - azure_auth:
      - user_impersonation
parameters:
  ApiVersionParameter:
    description: The API version to use for this operation.
    in: query
    name: api-version
    required: true
    type: string
    x-ms-parameter-location: client
  artifactSourceName:
    description: The name of the artifact source.
    in: path
    name: artifactSourceName
    required: true
    type: string
    x-ms-parameter-location: method
  resourceGroupName:
    description: The name of the resource group. The name is case insensitive.
    in: path
    maxLength: 90
    minLength: 1
    name: resourceGroupName
    pattern: ^[-\w\._\(\)]+$
    required: true
    type: string
    x-ms-parameter-location: method
  retryAttempt:
    description: Rollout retry attempt ordinal to get the result of. If not specified, result of the latest attempt will be returned.
    in: query
    name: retryAttempt
    required: false
    type: integer
    x-ms-parameter-location: method
  rolloutName:
    description: The rollout name.
    in: path
    name: rolloutName
    required: true
    type: string
    x-ms-parameter-location: method
  serviceName:
    description: The name of the service resource.
    in: path
    name: serviceName
    required: true
    type: string
    x-ms-parameter-location: method
  serviceTopologyName:
    description: The name of the service topology .
    in: path
    name: serviceTopologyName
    required: true
    type: string
    x-ms-parameter-location: method
  serviceUnitName:
    description: The name of the service unit resource.
    in: path
    name: serviceUnitName
    required: true
    type: string
    x-ms-parameter-location: method
  stepName:
    description: The name of the deployment step.
    in: path
    name: stepName
    required: true
    type: string
    x-ms-parameter-location: method
  subscriptionId:
    description: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
    in: path
    name: subscriptionId
    required: true
    type: string
    x-ms-parameter-location: client
paths:
  /providers/Microsoft.DeploymentManager/operations:
    get:
      operationId: Operations_List
      parameters:
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The operations are successfully returned. The response code does not determine if the request which this operation corresponds to is successful. Check the response content for the status and any error information on failures.
          schema:
            $ref: "#/definitions/OperationsList"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Lists the supported operations.
      tags:
        - Operations
      x-ms-examples:
        Get operations:
          parameters:
            api-version: 2019-11-01-preview
          responses:
            "200":
              body:
                value:
                  - display:
                      description: View the properties of a service topology
                      operation: View service topology
                      provider: Azure Deployment Manager
                      resource: ServiceTopology
                    name: Microsoft.DeploymentManager/serviceTopologies/read
                  - display:
                      description: Create a new topology or update the properties of an existing topology
                      operation: Update the service topology
                      provider: Azure Deployment Manager
                      resource: ServiceTopology
                    name: Microsoft.DeploymentManager/serviceTopologies/write
                  - display:
                      description: Deletes an existing topology.
                      operation: Delete service topology
                      provider: Azure Deployment Manager
                      resource: ServiceTopology
                    name: Microsoft.DeploymentManager/serviceTopologies/delete
                  - display:
                      description: View the properties of a service in a service topology
                      operation: View service in a topology
                      provider: Azure Deployment Manager
                      resource: Service
                    name: Microsoft.DeploymentManager/serviceTopologies/services/read
                  - display:
                      description: Create a new service or update the properties of an existing service
                      operation: Update the service in a topology
                      provider: Azure Deployment Manager
                      resource: Service
                    name: Microsoft.DeploymentManager/serviceTopologies/services/write
                  - display:
                      description: Deletes an existing service in a service topology.
                      operation: Delete service
                      provider: Azure Deployment Manager
                      resource: Service
                    name: Microsoft.DeploymentManager/serviceTopologies/services/delete
                  - display:
                      description: View the properties of a service unit
                      operation: View service unit
                      provider: Azure Deployment Manager
                      resource: ServiceUnit
                    name: Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits/read
                  - display:
                      description: Create a new service unit or update the properties of an existing service unit
                      operation: Update the service unit
                      provider: Azure Deployment Manager
                      resource: ServiceUnit
                    name: Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits/write
                  - display:
                      description: Deletes an existing service unit.
                      operation: Delete service unit
                      provider: Azure Deployment Manager
                      resource: ServiceUnit
                    name: Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits/delete
                  - display:
                      description: View the properties of an artifact source.
                      operation: View artifact source
                      provider: Azure Deployment Manager
                      resource: ArtifactSource
                    name: Microsoft.DeploymentManager/artifactSources/read
                  - display:
                      description: Create a new artifact source or updates the properties of an existing artifact source.
                      operation: Update the artifact source
                      provider: Azure Deployment Manager
                      resource: ArtifactSource
                    name: Microsoft.DeploymentManager/artifactSources/write
                  - display:
                      description: Deletes an existing artifact source.
                      operation: Delete artifact source
                      provider: Azure Deployment Manager
                      resource: ArtifactSource
                    name: Microsoft.DeploymentManager/artifactSources/delete
                  - display:
                      description: View the properties of rollout.
                      operation: View rollout
                      provider: Azure Deployment Manager
                      resource: Rollout
                    name: Microsoft.DeploymentManager/rollouts/read
                  - display:
                      description: Create a new rollout or update an existing rollout.
                      operation: Create or update a rollout.
                      provider: Azure Deployment Manager
                      resource: Rollout
                    name: Microsoft.DeploymentManager/rollouts/write
                  - display:
                      description: Restarts a failed rollout.
                      operation: Restart a rollout
                      provider: Azure Deployment Manager
                      resource: Rollout
                    name: Microsoft.DeploymentManager/rollouts/restart
                  - display:
                      description: Cancel a rollout in progress.
                      operation: Cancel a rollout
                      provider: Azure Deployment Manager
                      resource: Rollout
                    name: Microsoft.DeploymentManager/rollouts/cancel
                  - display:
                      description: Deletes an existing rollout.
                      operation: Delete rollout
                      provider: Azure Deployment Manager
                      resource: Rollout
                    name: Microsoft.DeploymentManager/rollouts/delete
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/artifactSources":
    get:
      operationId: ArtifactSources_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactSourceListResult"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Lists the artifact sources in a resource group.
      tags:
        - ArtifactSources
      x-ms-examples:
        List steps:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                - location: centralus
                  name: TemplatesArtifactSource
                  properties:
                    authentication:
                      properties:
                        sasUri: https://mystorageaccount.blob.core.windows.net/templates?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                      type: Sas
                    sourceType: AzureStorage
                  tags: {}
                  type: Microsoft.DeploymentManager/artifactSources
                - location: centralus
                  name: BinariesArtifactSource
                  properties:
                    artifactRoot: builds/1.0.0.1
                    authentication:
                      properties:
                        sasUri: https://mystorageaccount.blob.core.windows.net/binaries?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                      type: Sas
                    sourceType: AzureStorage
                  tags: {}
                  type: Microsoft.DeploymentManager/artifactSources
    parameters:
      - $ref: "#/parameters/subscriptionId"
      - $ref: "#/parameters/resourceGroupName"
      - $ref: "#/parameters/ApiVersionParameter"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/artifactSources/{artifactSourceName}":
    delete:
      operationId: ArtifactSources_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/artifactSourceName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The artifact source was successfully deleted.
        "204":
          description: The artifact source was not found and the operation is considered success.
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Deletes an artifact source.
      tags:
        - ArtifactSources
      x-ms-examples:
        Delete artifact source:
          parameters:
            api-version: 2019-11-01-preview
            artifactSourceName: myArtifactSource
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200": {}
            "204": {}
    get:
      operationId: ArtifactSources_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/artifactSourceName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ArtifactSource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Gets an artifact source.
      tags:
        - ArtifactSources
      x-ms-examples:
        Get artifact source:
          parameters:
            api-version: 2019-11-01-preview
            artifactSourceName: myArtifactSource
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                location: centralus
                name: myArtifactSource
                properties:
                  authentication:
                    properties:
                      sasUri: https://mystorageaccount.blob.core.windows.net/myartifactsource?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                    type: Sas
                  sourceType: AzureStorage
                tags: {}
                type: Microsoft.DeploymentManager/artifactSources
    put:
      description: Synchronously creates a new artifact source or updates an existing artifact source.
      operationId: ArtifactSources_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/artifactSourceName"
        - $ref: "#/parameters/ApiVersionParameter"
        - description: Source object that defines the resource.
          in: body
          name: artifactSourceInfo
          schema:
            $ref: "#/definitions/ArtifactSource"
      responses:
        "201":
          description: Created
          schema:
            $ref: "#/definitions/ArtifactSource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Creates or updates an artifact source.
      tags:
        - ArtifactSources
      x-ms-examples:
        Create artifact source:
          parameters:
            api-version: 2019-11-01-preview
            artifactSourceInfo:
              location: centralus
              properties:
                authentication:
                  properties:
                    sasUri: https://mystorageaccount.blob.core.windows.net/myartifactsource?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                  type: Sas
                sourceType: AzureStorage
              tags: {}
            artifactSourceName: myArtifactSource
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: myArtifactSource
                properties:
                  authentication:
                    properties:
                      sasUri: https://mystorageaccount.blob.core.windows.net/myartifactsource?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                    type: Sas
                  sourceType: AzureStorage
                tags: {}
                type: Microsoft.DeploymentManager/artifactSources
        "Create artifact source with artifact root, an offset into the storage container":
          parameters:
            api-version: 2019-11-01-preview
            artifactSourceInfo:
              location: centralus
              properties:
                artifactRoot: 1.0.0.0
                authentication:
                  properties:
                    sasUri: https://mystorageaccount.blob.core.windows.net/myartifactsource?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                  type: Sas
                sourceType: AzureStorage
              tags: {}
            artifactSourceName: myArtifactSource
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: myArtifactSource
                properties:
                  authentication:
                    properties:
                      sasUri: https://mystorageaccount.blob.core.windows.net/myartifactsource?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                    type: Sas
                  sourceType: AzureStorage
                tags: {}
                type: Microsoft.DeploymentManager/artifactSources
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/rollouts":
    get:
      operationId: Rollouts_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/RolloutListResult"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Lists the rollouts in a resource group.
      tags:
        - Rollouts
      x-ms-examples:
        List rollouts by resource group:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                - identity:
                    identityIds:
                      - /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userassignedidentities/myuseridentity
                    type: userAssigned
                  location: centralus
                  name: CanaryRollout
                  properties:
                    artifactSourceId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/artifactSources/binariesArtifactSource
                    buildVersion: 1.0.0.1
                    operationInfo:
                      endTime: 2018-08-28T03:43:55.010Z
                      retryAttempt: 0
                      startTime: 2018-08-28T03:33:56.386Z
                    status: Succeeded
                    stepGroups:
                      - deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit1'
                        name: FirstRegion
                        postDeploymentSteps:
                          - stepId: Microsoft.DeploymentManager/steps/postDeployStep1
                        preDeploymentSteps:
                          - stepId: Microsoft.DeploymentManager/steps/preDeployStep1
                          - stepId: Microsoft.DeploymentManager/steps/preDeployStep2
                    targetServiceTopologyId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/serviceTopologies/myTopology
                    totalRetryAttempts: 0
                  tags: {}
                  type: Microsoft.DeploymentManager/rollouts
                - identity:
                    identityIds:
                      - /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userassignedidentities/myuseridentity
                    type: userAssigned
                  location: centralus
                  name: ProdRollout
                  properties:
                    artifactSourceId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/artifactSources/binariesArtifactSource
                    buildVersion: 1.0.0.1
                    operationInfo:
                      retryAttempt: 0
                      startTime: 2019-05-02T03:33:56.386Z
                    status: Running
                    stepGroups:
                      - dependsOnStepGroups:
                          - FirstRegion
                        deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit2'
                        name: ProdRegion
                        postDeploymentSteps:
                          - stepId: Microsoft.DeploymentManager/steps/postDeployStep3
                        preDeploymentSteps:
                          - stepId: Microsoft.DeploymentManager/steps/preDeployStep
                          - stepId: Microsoft.DeploymentManager/steps/preDeployStep2
                    targetServiceTopologyId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/serviceTopologies/myTopology
                    totalRetryAttempts: 0
                  tags: {}
                  type: Microsoft.DeploymentManager/rollouts
    parameters:
      - $ref: "#/parameters/subscriptionId"
      - $ref: "#/parameters/resourceGroupName"
      - $ref: "#/parameters/ApiVersionParameter"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/rollouts/{rolloutName}":
    delete:
      description: Only rollouts in terminal state can be deleted.
      operationId: Rollouts_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/rolloutName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The rollout was successfully deleted.
        "204":
          description: The rollout was not found and the operation is considered success.
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Deletes a rollout resource.
      tags:
        - Rollouts
      x-ms-examples:
        Delete rollout:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            rolloutName: myRollout
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200": {}
            "204": {}
    get:
      operationId: Rollouts_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/rolloutName"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/retryAttempt"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Rollout"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Gets detailed information of a rollout.
      tags:
        - Rollouts
      x-ms-examples:
        Get rollout:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            rolloutName: myRollout
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                identity:
                  identityIds:
                    - /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userassignedidentities/myuseridentity
                  type: userAssigned
                location: centralus
                name: myRollout
                properties:
                  artifactSourceId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/artifactSources/myArtifactSource
                  buildVersion: 1.0.0.1
                  operationInfo:
                    retryAttempt: 0
                    startTime: 2018-08-28T03:33:56.386Z
                  services:
                    - name: myService1
                      serviceUnits:
                        - deploymentMode: Incremental
                          name: myTopologyUni1
                          steps:
                            - name: preDeploymentStep1
                              operationInfo:
                                endTime: 2018-08-28T03:35:28.556Z
                                startTime: 2018-08-28T03:33:56.386Z
                              status: succeeded
                            - name: preDeploymentStep2
                              operationInfo:
                                endTime: 2018-08-28T03:37:28.556Z
                                startTime: 2018-08-28T03:36:56.386Z
                              status: succeeded
                            - name: deploy
                              operationInfo:
                                lastUpdatedTime: 2018-08-28T03:39:28.556Z
                                startTime: 2018-08-28T03:38:56.386Z
                              resourceOperations:
                                - operationId: 20FC5A21382DA306
                                  provisioningState: Succeeded
                                  resourceName: keyVaultcentralus
                                  resourceType: Microsoft.KeyVault/vaults
                                  statusCode: OK
                                  statusMessage: ""
                              status: running
                          targetResourceGroup: myDeploymentResourceGroup
                      targetLocation: centralus
                      targetSubscriptionId: 600c95c5-3ee5-44fe-b190-ca38a19adcd7
                  status: Running
                  stepGroups:
                    - deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit1'
                      name: FirstRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep1
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep1
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep2
                    - dependsOnStepGroups:
                        - FirstRegion
                      deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit2'
                      name: SecondRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep5
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep3
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep4
                  targetServiceTopologyId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/serviceTopologies/myTopology
                  totalRetryAttempts: 0
                tags: {}
                type: Microsoft.DeploymentManager/rollouts
    put:
      description: This is an asynchronous operation and can be polled to completion using the location header returned by this operation.
      operationId: Rollouts_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/rolloutName"
        - $ref: "#/parameters/ApiVersionParameter"
        - description: Source rollout request object that defines the rollout.
          in: body
          name: rolloutRequest
          schema:
            $ref: "#/definitions/RolloutRequest"
      responses:
        "201":
          description: This is a long running operation. The operation returns a 201 if the request was successfully registered and basic validation is successful. The response includes an Azure-AsyncOperation header that contains the operation status URL. Clients are expected to poll the status URL for the status of the operation.
          headers:
            Azure-AsyncOperation:
              description: Contains the status URL on which clients are expected to poll the status of the operation.
              type: string
          schema:
            $ref: "#/definitions/RolloutRequest"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Creates or updates a rollout.
      tags:
        - Rollouts
      x-ms-examples:
        Create or update rollout:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            rolloutName: myRollout
            rolloutRequest:
              identity:
                identityIds:
                  - /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userassignedidentities/myuseridentity
                type: userAssigned
              location: centralus
              properties:
                artifactSourceId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/artifactSources/myArtifactSource
                buildVersion: 1.0.0.1
                stepGroups:
                  - deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit1'
                    name: FirstRegion
                    postDeploymentSteps:
                      - stepId: Microsoft.DeploymentManager/steps/postDeployStep1
                    preDeploymentSteps:
                      - stepId: Microsoft.DeploymentManager/steps/preDeployStep1
                      - stepId: Microsoft.DeploymentManager/steps/preDeployStep2
                  - dependsOnStepGroups:
                      - FirstRegion
                    deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit2'
                    name: SecondRegion
                    postDeploymentSteps:
                      - stepId: Microsoft.DeploymentManager/steps/postDeployStep5
                    preDeploymentSteps:
                      - stepId: Microsoft.DeploymentManager/steps/preDeployStep3
                      - stepId: Microsoft.DeploymentManager/steps/preDeployStep4
                targetServiceTopologyId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/serviceTopologies/myTopology
              tags: {}
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                identity:
                  identityIds:
                    - /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userassignedidentities/myuseridentity
                  type: userAssigned
                location: centralus
                name: myRollout
                properties:
                  artifactSourceId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/artifactSources/myArtifactSource
                  buildVersion: 1.0.0.1
                  stepGroups:
                    - deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit1'
                      name: FirstRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep1
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep1
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep2
                    - dependsOnStepGroups:
                        - FirstRegion
                      deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit2'
                      name: SecondRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep5
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep3
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep4
                  targetServiceTopologyId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/serviceTopologies/myTopology
                tags: {}
                type: Microsoft.DeploymentManager/rollouts
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/rollouts/{rolloutName}/cancel":
    post:
      description: Only running rollouts can be canceled.
      operationId: Rollouts_Cancel
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/rolloutName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Rollout"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Stops a running rollout.
      tags:
        - Rollouts
      x-ms-examples:
        Cancel rollout:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            rolloutName: myRollout
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                identity:
                  identityIds:
                    - /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userassignedidentities/myuseridentity
                  type: userAssigned
                location: centralus
                name: myRollout
                properties:
                  artifactSourceId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/artifactSources/myArtifactSource
                  buildVersion: 1.0.0.1
                  operationInfo:
                    retryAttempt: 0
                    startTime: 2018-08-28T03:33:56.386Z
                  services:
                    - name: myService1
                      serviceUnits:
                        - deploymentMode: Incremental
                          name: myTopologyUni1
                          steps:
                            - name: preDeploymentStep1
                              operationInfo:
                                endTime: 2018-08-28T03:35:28.556Z
                                startTime: 2018-08-28T03:33:56.386Z
                              status: succeeded
                            - name: preDeploymentStep2
                              operationInfo:
                                endTime: 2018-08-28T03:37:28.556Z
                                startTime: 2018-08-28T03:36:56.386Z
                              status: succeeded
                            - name: deploy
                              operationInfo:
                                lastUpdatedTime: 2018-08-28T03:39:28.556Z
                                startTime: 2018-08-28T03:38:56.386Z
                              resourceOperations:
                                - operationId: 20FC5A21382DA306
                                  provisioningState: Succeeded
                                  resourceName: keyVaultcentralus
                                  resourceType: Microsoft.KeyVault/vaults
                                  statusCode: OK
                                  statusMessage: ""
                              status: running
                          targetResourceGroup: myDeploymentResourceGroup
                      targetLocation: centralus
                      targetSubscriptionId: 600c95c5-3ee5-44fe-b190-ca38a19adcd7
                  status: Canceling
                  stepGroups:
                    - deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit1'
                      name: FirstRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep1
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep1
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep2
                    - dependsOnStepGroups:
                        - FirstRegion
                      deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit2'
                      name: SecondRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep5
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep3
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep4
                  targetServiceTopologyId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/serviceTopologies/myTopology
                  totalRetryAttempts: 0
                tags: {}
                type: Microsoft.DeploymentManager/rollouts
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/rollouts/{rolloutName}/restart":
    post:
      description: Only failed rollouts can be restarted.
      operationId: Rollouts_Restart
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/rolloutName"
        - description: If true, will skip all succeeded steps so far in the rollout. If false, will execute the entire rollout again regardless of the current state of individual resources. Defaults to false if not specified.
          in: query
          name: skipSucceeded
          required: false
          type: boolean
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/Rollout"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Restarts a failed rollout and optionally skips all succeeded steps.
      tags:
        - Rollouts
      x-ms-examples:
        Restart rollout:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            rolloutName: myRollout
            skipSucceeded: true
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                identity:
                  identityIds:
                    - /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userassignedidentities/myuseridentity
                  type: userAssigned
                location: centralus
                name: myRollout
                properties:
                  artifactSourceId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/artifactSources/myArtifactSource
                  buildVersion: 1.0.0.1
                  operationInfo:
                    retryAttempt: 1
                    startTime: 2018-08-28T03:33:56.386Z
                  status: Running
                  stepGroups:
                    - deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit1'
                      name: FirstRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep1
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep1
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep2
                    - dependsOnStepGroups:
                        - FirstRegion
                      deploymentTargetId: Microsoft.DeploymentManager/serviceTopologies/myTopology/services/myService/serviceUnits/myServiceUnit2'
                      name: SecondRegion
                      postDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/postDeployStep5
                      preDeploymentSteps:
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep3
                        - stepId: Microsoft.DeploymentManager/steps/preDeployStep4
                  targetServiceTopologyId: /subscriptions/caac1590-e859-444f-a9e0-62091c0f5929/resourceGroups/myResourceGroup/Microsoft.DeploymentManager/serviceTopologies/myTopology
                  totalRetryAttempts: 1
                tags: {}
                type: Microsoft.DeploymentManager/rollouts
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/serviceTopologies":
    get:
      operationId: ServiceTopologies_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceTopologiesListResult"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Lists the service topologies in the resource group.
      tags:
        - ServiceTopologies
      x-ms-examples:
        List topologies:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                - location: centralus
                  name: ContosoSvc1Topology
                  properties:
                    artifactSourceId: Microsoft.DeploymentManager/artifactSources/contoso1ArtifactSource
                  tags: {}
                  type: Microsoft.DeploymentManager/serviceTopologies
                - location: centralus
                  name: ContosoSvc2Topology
                  properties:
                    artifactSourceId: Microsoft.DeploymentManager/artifactSources/contoso2ArtifactSource
                  tags: {}
                  type: Microsoft.DeploymentManager/serviceTopologies
    parameters:
      - $ref: "#/parameters/subscriptionId"
      - $ref: "#/parameters/resourceGroupName"
      - $ref: "#/parameters/ApiVersionParameter"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/serviceTopologies/{serviceTopologyName}":
    delete:
      operationId: ServiceTopologies_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The topology was successfully deleted.
        "204":
          description: The topology was not found and the operation is considered success.
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Deletes the service topology.
      tags:
        - ServiceTopologies
      x-ms-examples:
        Delete topology:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200": {}
            "204": {}
    get:
      operationId: ServiceTopologies_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceTopologyResource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Gets the service topology.
      tags:
        - ServiceTopologies
      x-ms-examples:
        Get topology:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                location: centralus
                name: myTopology
                properties:
                  artifactSourceId: Microsoft.DeploymentManager/artifactSources/myArtifactSource
                tags: {}
                type: Microsoft.DeploymentManager/serviceTopologies
    parameters:
      - $ref: "#/parameters/subscriptionId"
      - $ref: "#/parameters/resourceGroupName"
      - $ref: "#/parameters/serviceTopologyName"
      - $ref: "#/parameters/ApiVersionParameter"
    put:
      description: Synchronously creates a new service topology or updates an existing service topology.
      operationId: ServiceTopologies_CreateOrUpdate
      parameters:
        - description: Source topology object defines the resource.
          in: body
          name: serviceTopologyInfo
          required: true
          schema:
            $ref: "#/definitions/ServiceTopologyResource"
      responses:
        "201":
          description: OK
          schema:
            $ref: "#/definitions/ServiceTopologyResource"
        default:
          description: All non-success conditions are handled using the standard Error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Creates or updates a service topology.
      tags:
        - ServiceTopologies
      x-ms-examples:
        Create a topology with Artifact Source:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceTopologyInfo:
              location: centralus
              properties:
                artifactSourceId: Microsoft.DeploymentManager/artifactSources/myArtifactSource
              tags: {}
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: myTopology
                properties:
                  artifactSourceId: Microsoft.DeploymentManager/artifactSources/myArtifactSource
                tags: {}
                type: Microsoft.DeploymentManager/serviceTopologies
        Create a topology without Artifact Source:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceTopologyInfo:
              location: centralus
              properties: {}
              tags: {}
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: myTopology
                properties: {}
                tags: {}
                type: Microsoft.DeploymentManager/serviceTopologies
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/serviceTopologies/{serviceTopologyName}/services":
    get:
      operationId: Services_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceListResult"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Lists the services in the service topology.
      tags:
        - Services
      x-ms-examples:
        List services:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                - location: centralus
                  name: Service East
                  properties:
                    targetLocation: eastus
                    targetSubscriptionId: 600c95c5-3ee5-44fe-b190-ca38a19adcd7
                  tags: {}
                  type: Microsoft.DeploymentManager/serviceTopologies/services
                - location: centralus
                  name: Service West
                  properties:
                    targetLocation: westus
                    targetSubscriptionId: 600c95c5-3ee5-44fe-b190-ca38a19adcd7
                  tags: {}
                  type: Microsoft.DeploymentManager/serviceTopologies/services
    parameters:
      - $ref: "#/parameters/subscriptionId"
      - $ref: "#/parameters/resourceGroupName"
      - $ref: "#/parameters/serviceTopologyName"
      - $ref: "#/parameters/ApiVersionParameter"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/serviceTopologies/{serviceTopologyName}/services/{serviceName}":
    delete:
      operationId: Services_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/serviceName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The service was successfully deleted.
        "204":
          description: The service was not found and the operation is considered success.
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Deletes the service.
      tags:
        - Services
      x-ms-examples:
        Delete service:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceName: myService
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200": {}
            "204": {}
    get:
      operationId: Services_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/serviceName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceResource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Gets the service.
      tags:
        - Services
      x-ms-examples:
        Get service:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceName: myService
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                location: centralus
                name: myService
                properties:
                  targetLocation: centralus
                  targetSubscriptionId: 600c95c5-3ee5-44fe-b190-ca38a19adcd7
                tags: {}
                type: Microsoft.DeploymentManager/serviceTopologies/services
    put:
      description: Synchronously creates a new service or updates an existing service.
      operationId: Services_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/serviceName"
        - $ref: "#/parameters/ApiVersionParameter"
        - description: The service object
          in: body
          name: serviceInfo
          required: true
          schema:
            $ref: "#/definitions/ServiceResource"
      responses:
        "201":
          description: OK
          schema:
            $ref: "#/definitions/ServiceResource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Creates or updates a service in the service topology.
      tags:
        - Services
      x-ms-examples:
        Create service:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceInfo:
              location: centralus
              properties:
                targetLocation: centralus
                targetSubscriptionId: 600c95c5-3ee5-44fe-b190-ca38a19adcd7
              tags: {}
            serviceName: myService
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: myService
                properties:
                  targetLocation: centralus
                  targetSubscriptionId: 600c95c5-3ee5-44fe-b190-ca38a19adcd7
                tags: {}
                type: Microsoft.DeploymentManager/serviceTopologies/services
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/serviceTopologies/{serviceTopologyName}/services/{serviceName}/serviceUnits":
    get:
      operationId: ServiceUnits_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/serviceName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceUnitListResult"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Lists the service units under a service in the service topology.
      tags:
        - ServiceUnits
      x-ms-examples:
        List service units:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceName: myService
            serviceTopologyName: myTopology
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                - location: centralus
                  name: BackEndServiceUnit
                  properties:
                    artifacts:
                      parametersArtifactSourceRelativePath: parameter/backend.parameters.json
                      templateArtifactSourceRelativePath: templates/backend.template.json
                    deploymentMode: Incremental
                    targetResourceGroup: myDeploymentResourceGroup
                  tags: {}
                  type: Microsoft.DeploymentManager/servicetopologies/services/serviceunits
                - location: centralus
                  name: FrontEndServiceUnit
                  properties:
                    artifacts:
                      parametersArtifactSourceRelativePath: parameter/frontend.parameters.json
                      templateArtifactSourceRelativePath: templates/frontend.template.json
                    deploymentMode: Complete
                    targetResourceGroup: myDeploymentResourceGroup
                  tags: {}
                  type: Microsoft.DeploymentManager/servicetopologies/services/serviceunits
    parameters:
      - $ref: "#/parameters/subscriptionId"
      - $ref: "#/parameters/resourceGroupName"
      - $ref: "#/parameters/serviceTopologyName"
      - $ref: "#/parameters/serviceName"
      - $ref: "#/parameters/ApiVersionParameter"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/serviceTopologies/{serviceTopologyName}/services/{serviceName}/serviceUnits/{serviceUnitName}":
    delete:
      operationId: ServiceUnits_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/serviceName"
        - $ref: "#/parameters/serviceUnitName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The service unit was successfully deleted.
        "204":
          description: The service unit was not found and the operation is considered success.
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Deletes the service unit.
      tags:
        - ServiceUnits
      x-ms-examples:
        Delete service unit:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceName: myService
            serviceTopologyName: myTopology
            serviceUnitName: myServiceUnit
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200": {}
            "204": {}
    get:
      operationId: ServiceUnits_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/serviceName"
        - $ref: "#/parameters/serviceUnitName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/ServiceUnitResource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Gets the service unit.
      tags:
        - ServiceUnits
      x-ms-examples:
        Get service unit:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceName: myService
            serviceTopologyName: myTopology
            serviceUnitName: myServiceUnit
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                location: centralus
                name: myServiceUnit
                properties:
                  artifacts:
                    parametersArtifactSourceRelativePath: parameter/myTopologyUnit.parameters.json
                    templateArtifactSourceRelativePath: templates/myTopologyUnit.template.json
                  deploymentMode: Incremental
                  targetResourceGroup: myDeploymentResourceGroup
                tags: {}
                type: Microsoft.DeploymentManager/servicetopologies/services/serviceunits
    put:
      description: This is an asynchronous operation and can be polled to completion using the operation resource returned by this operation.
      operationId: ServiceUnits_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/serviceTopologyName"
        - $ref: "#/parameters/serviceName"
        - $ref: "#/parameters/serviceUnitName"
        - $ref: "#/parameters/ApiVersionParameter"
        - description: The service unit resource object.
          in: body
          name: serviceUnitInfo
          required: true
          schema:
            $ref: "#/definitions/ServiceUnitResource"
      responses:
        "201":
          description: This is a long running operation. The operation returns a 201 if the validation is complete. The response includes an Azure-AsyncOperation header that contains a status URL. Clients are expected to poll the status URL for the status of the operation.
          headers:
            Azure-AsyncOperation:
              description: Contains the status URL on which clients are expected to poll the status of the operation.
              type: string
          schema:
            $ref: "#/definitions/ServiceUnitResource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Creates or updates a service unit under the service in the service topology.
      tags:
        - ServiceUnits
      x-ms-examples:
        Create service unit using SAS URIs:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceName: myService
            serviceTopologyName: myTopology
            serviceUnitInfo:
              location: centralus
              properties:
                artifacts:
                  parametersUri: https://mystorageaccount.blob.core.windows.net/myartifactsource/parameter/myTopologyUnit.parameters.json?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                  templateUri: https://mystorageaccount.blob.core.windows.net/myartifactsource/templates/myTopologyUnit.template.json?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                deploymentMode: Incremental
                targetResourceGroup: myDeploymentResourceGroup
              tags: {}
            serviceUnitName: myServiceUnit
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: myServiceUnit
                properties:
                  artifacts:
                    parametersUri: https://mystorageaccount.blob.core.windows.net/myartifactsource/parameter/myTopologyUnit.parameters.json?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                    templateUri: https://mystorageaccount.blob.core.windows.net/myartifactsource/templates/myTopologyUnit.template.json?st=2018-07-07T14%3A10%3A00Z&se=2019-12-31T15%3A10%3A00Z&sp=rl&sv=2017-04-17&sr=c&sig=Yh2SoJ1NhhLRwCLln7de%2Fkabcdefghijklmno5sWEIk%3D
                  deploymentMode: Incremental
                  targetResourceGroup: myDeploymentResourceGroup
                tags: {}
                type: Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits
        Create service unit using relative paths into the artifact source:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            serviceName: myService
            serviceTopologyName: myTopology
            serviceUnitInfo:
              location: centralus
              properties:
                artifacts:
                  parametersArtifactSourceRelativePath: parameter/myTopologyUnit.parameters.json
                  templateArtifactSourceRelativePath: templates/myTopologyUnit.template.json
                deploymentMode: Incremental
                targetResourceGroup: myDeploymentResourceGroup
              tags: {}
            serviceUnitName: myServiceUnit
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: myServiceUnit
                properties:
                  artifacts:
                    parametersArtifactSourceRelativePath: parameter/myTopologyUnit.parameters.json
                    templateArtifactSourceRelativePath: templates/myTopologyUnit.template.json
                  deploymentMode: Incremental
                  targetResourceGroup: myDeploymentResourceGroup
                tags: {}
                type: Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits
      x-ms-long-running-operation: true
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/steps":
    get:
      operationId: Steps_List
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/StepResourceListResult"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Lists the steps in a resource group.
      tags:
        - Steps
      x-ms-examples:
        List steps:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                - location: centralus
                  name: waitStepfrontEnd
                  properties:
                    attributes:
                      duration: PT10M
                    stepType: Wait
                  tags: {}
                  type: Microsoft.DeploymentManager/steps
                - location: centralus
                  name: waitStepBackEnd
                  properties:
                    attributes:
                      duration: PT30M
                    stepType: Wait
                  tags: {}
                  type: Microsoft.DeploymentManager/steps
    parameters:
      - $ref: "#/parameters/subscriptionId"
      - $ref: "#/parameters/resourceGroupName"
      - $ref: "#/parameters/ApiVersionParameter"
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DeploymentManager/steps/{stepName}":
    delete:
      operationId: Steps_Delete
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/stepName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: The step was successfully deleted.
        "204":
          description: The step was not found and the operation is considered success.
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Deletes the step.
      tags:
        - Steps
      x-ms-examples:
        Delete deployment step:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            stepName: deploymentStep1
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200": {}
            "204": {}
    get:
      operationId: Steps_Get
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/stepName"
        - $ref: "#/parameters/ApiVersionParameter"
      responses:
        "200":
          description: OK
          schema:
            $ref: "#/definitions/StepResource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Gets the step.
      tags:
        - Steps
      x-ms-examples:
        Get deployment step:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            stepName: waitStep
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "200":
              body:
                location: centralus
                name: deploymentStep1
                properties:
                  attributes:
                    duration: PT20M
                  stepType: Wait
                tags: {}
                type: Microsoft.DeploymentManager/steps
    put:
      description: Synchronously creates a new step or updates an existing step.
      operationId: Steps_CreateOrUpdate
      parameters:
        - $ref: "#/parameters/subscriptionId"
        - $ref: "#/parameters/resourceGroupName"
        - $ref: "#/parameters/stepName"
        - $ref: "#/parameters/ApiVersionParameter"
        - description: The step object.
          in: body
          name: stepInfo
          schema:
            $ref: "#/definitions/StepResource"
      responses:
        "201":
          description: OK
          schema:
            $ref: "#/definitions/StepResource"
        default:
          description: All non-success conditions are handled using the standard error contract.
          schema:
            $ref: "#/definitions/CloudError"
      summary: Creates or updates a rollout step with the given step properties.
      tags:
        - Steps
      x-ms-examples:
        Create health check step:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            stepInfo:
              location: centralus
              properties:
                attributes:
                  healthyStateDuration: PT2H
                  maxElasticDuration: PT30M
                  properties:
                    healthChecks:
                      - name: appHealth
                        request:
                          authentication:
                            in: Query
                            name: Code
                            type: ApiKey
                            value: NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==
                          method: GET
                          uri: https://resthealth.healthservice.com/api/applications/contosoApp/healthStatus
                        response:
                          regex:
                            matchQuantifier: All
                            matches:
                              - (?i)Contoso-App
                              - |-
                                (?i)"health_status":((.|
                                )*)"(green|yellow)"
                              - '(?mi)^("application_host": 94781052)$'
                          successStatusCodes:
                            - OK
                      - name: serviceHealth
                        request:
                          authentication:
                            in: Header
                            name: code
                            type: ApiKey
                            value: NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==
                          method: GET
                          uri: https://resthealth.healthservice.com/api/services/contosoService/healthStatus
                        response:
                          regex:
                            matchQuantifier: All
                            matches:
                              - (?i)Contoso-Service-EndToEnd
                              - |-
                                (?i)"health_status":((.|
                                )*)"(green)"
                          successStatusCodes:
                            - OK
                  type: REST
                  waitDuration: PT15M
                stepType: HealthCheck
              tags: {}
            stepName: healthCheckStep
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: healthCheckStep
                properties:
                  attributes:
                    healthyStateDuration: PT2H
                    maxElasticDuration: PT30M
                    properties:
                      healthChecks:
                        - name: appHealth
                          request:
                            authentication:
                              in: Query
                              name: Code
                              type: ApiKey
                              value: NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==
                            method: GET
                            uri: https://resthealth.healthservice.com/api/applications/contosoApp/healthStatus
                          response:
                            regex:
                              matchQuantifier: All
                              matches:
                                - (?i)Contoso-App
                                - |-
                                  (?i)"health_status":((.|
                                  )*)"(green|yellow)"
                                - '(?mi)^("application_host": 94781052)$'
                            successStatusCodes:
                              - OK
                        - name: serviceHealth
                          request:
                            authentication:
                              in: Header
                              name: code
                              type: ApiKey
                              value: NBCapiMOBQyAAbCkeytoPadnvO0eGHmidwFz5rXpappznKp3Jt7LLg==
                            method: GET
                            uri: https://resthealth.healthservice.com/api/services/contosoService/healthStatus
                          response:
                            regex:
                              matchQuantifier: All
                              matches:
                                - (?i)Contoso-Service-EndToEnd
                                - |-
                                  (?i)"health_status":((.|
                                  )*)"(green)"
                            successStatusCodes:
                              - OK
                    type: REST
                    waitDuration: PT15M
                  stepType: HealthCheck
                tags: {}
                type: Microsoft.DeploymentManager/steps
        Create wait step:
          parameters:
            api-version: 2019-11-01-preview
            resourceGroupName: myResourceGroup
            stepInfo:
              location: centralus
              properties:
                attributes:
                  duration: PT20M
                stepType: Wait
              tags: {}
            stepName: waitStep
            subscriptionId: caac1590-e859-444f-a9e0-62091c0f5929
          responses:
            "201":
              body:
                location: centralus
                name: waitStep
                properties:
                  attributes:
                    duration: PT20M
                  stepType: Wait
                tags: {}
                type: Microsoft.DeploymentManager/steps
definitions:
  ApiKeyAuthentication:
    allOf:
      - $ref: "#/definitions/RestRequestAuthentication"
    description: ApiKey authentication gives a name and a value that can be included in either the request header or query parameters.
    properties:
      in:
        description: The location of the authentication key/value pair in the request.
        enum:
          - Query
          - Header
        type: string
        x-ms-enum:
          modelAsString: false
          name: RestAuthLocation
      name:
        description: The key name of the authentication key/value pair.
        type: string
      value:
        description: The value of the authentication key/value pair.
        type: string
    required:
      - name
      - in
      - value
    type: object
    x-ms-discriminator-value: ApiKey
  ArtifactSource:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM tracked top level resource
        properties:
          location:
            description: The geo-location where the resource lives
            type: string
            x-ms-mutability:
              - read
              - create
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
            x-ms-mutability:
              - read
              - create
              - update
        required:
          - location
    description: The resource that defines the source location where the artifacts are located.
    properties:
      properties:
        allOf:
          - $ref: "#/definitions/ArtifactSourceProperties"
        description: The properties that define the artifact source.
        x-ms-client-flatten: true
  ArtifactSourceListResult:
    description: The list of artifact sources.
    items:
      $ref: "#/definitions/ArtifactSource"
    type: array
  ArtifactSourceProperties:
    description: The properties that define the source location where the artifacts are located.
    properties:
      artifactRoot:
        description: The path from the location that the 'authentication' property [say, a SAS URI to the blob container] refers to, to the location of the artifacts. This can be used to differentiate different versions of the artifacts. Or, different types of artifacts like binaries or templates. The location referenced by the authentication property concatenated with this optional artifactRoot path forms the artifact source location where the artifacts are expected to be found.
        example: binaries/2018.09.24
        type: string
      authentication:
        $ref: "#/definitions/Authentication"
        description: The authentication method to use to access the artifact source.
      sourceType:
        description: The type of artifact source used.
        example: AzureStorage
        type: string
    required:
      - sourceType
      - authentication
  Authentication:
    description: Defines the authentication method and properties to access the artifacts.
    discriminator: type
    properties:
      type:
        description: The authentication type
        type: string
    required:
      - type
    type: object
  CloudError:
    description: The error information object.
    properties:
      error:
        $ref: "#/definitions/CloudErrorBody"
        description: The properties that define the error.
    x-ms-external: true
  CloudErrorBody:
    description: Detailed error information of any failure.
    properties:
      code:
        description: Error code string.
        readOnly: true
        type: string
      details:
        description: More detailed error information.
        items:
          $ref: "#/definitions/CloudErrorBody"
        type: array
      message:
        description: Descriptive error information.
        readOnly: true
        type: string
      target:
        description: Error target
        type: string
  HealthCheckStepAttributes:
    description: The attributes for the health check step.
    discriminator: type
    properties:
      healthyStateDuration:
        description: The duration in ISO 8601 format for which the resource is expected to be continuously healthy. If maxElasticDuration is specified, healthy state duration is enforced after the detection of first healthy signal.
        example: PT60M
        type: string
      maxElasticDuration:
        description: The duration in ISO 8601 format for which the health check waits for the resource to become healthy. Health check fails if it doesn't. Health check starts to enforce healthyStateDuration once resource becomes healthy.
        example: PT30M
        type: string
      type:
        description: The type of health check.
        example: REST
        type: string
      waitDuration:
        description: The duration in ISO 8601 format for which health check waits idly without any checks.
        example: PT15M
        type: string
    required:
      - type
      - healthyStateDuration
    type: object
  HealthCheckStepProperties:
    allOf:
      - $ref: "#/definitions/StepProperties"
    description: Defines the properties of a health check step.
    properties:
      attributes:
        $ref: "#/definitions/HealthCheckStepAttributes"
        description: The health check step attributes
    required:
      - attributes
    type: object
    x-ms-discriminator-value: HealthCheck
  Identity:
    description: Identity for the resource.
    properties:
      identityIds:
        description: The list of identities.
        items:
          example: /subscriptions/mySubId/resourcegroups/myRG/providers/Microsoft.ManagedIdentity/userassignedidentities/myIdentity
          type: string
        type: array
      type:
        description: The identity type.
        example: userAssigned
        type: string
    required:
      - type
      - identityIds
    type: object
  Message:
    description: Supplementary contextual messages during a rollout.
    properties:
      message:
        description: The actual message text.
        readOnly: true
        type: string
      timeStamp:
        description: Time in UTC this message was provided.
        format: date-time
        readOnly: true
        type: string
  Operation:
    description: Represents an operation that can be performed on the service.
    properties:
      display:
        $ref: "#/definitions/OperationDetail"
        description: The display name of the operation.
      name:
        description: The name of the operation.
        type: string
      origin:
        description: The origin of the operation.
        type: string
      properties:
        description: The properties of the operation.
        type: object
        x-ms-client-flatten: true
  OperationDetail:
    description: The detail about an operation.
    properties:
      description:
        description: The description of the operation.
        type: string
      operation:
        description: The name of the operation.
        type: string
      provider:
        description: The name of the provider that supports the operation.
        type: string
      resource:
        description: The resource type on which this operation can be performed.
        type: string
  OperationsList:
    description: The operations response.
    properties:
      value:
        $ref: "#/definitions/Operation"
        description: The list of supported operations
        type: array
    type: object
  PrePostStep:
    description: The properties that define a step.
    properties:
      stepId:
        description: The resource Id of the step to be run.
        example: Microsoft.DeploymentManager/steps/healthCheckStep1
        type: string
    required:
      - stepId
  ResourceOperation:
    description: Individual resource operation information.
    properties:
      operationId:
        description: Unique identifier of the operation. For ARM resources, this is the operationId obtained from ARM service.
        readOnly: true
        type: string
      provisioningState:
        description: State of the resource deployment. For ARM resources, this is the current provisioning state of the resource.
        readOnly: true
        type: string
      resourceName:
        description: Name of the resource as specified in the artifacts. For ARM resources, this is the name of the resource specified in the template.
        type: string
      resourceType:
        description: Type of the resource as specified in the artifacts. For ARM resources, this is the type of the resource specified in the template.
        type: string
      statusCode:
        description: Http status code of the operation.
        readOnly: true
        type: string
      statusMessage:
        description: Descriptive information of the resource operation.
        readOnly: true
        type: string
  RestHealthCheck:
    description: A REST based health check
    properties:
      name:
        description: A unique name for this check.
        type: string
      request:
        $ref: "#/definitions/RestRequest"
        description: The request to the health provider.
      response:
        $ref: "#/definitions/RestResponse"
        description: The expected response from the health provider. If no expected response is provided, the default is to expect the received response to have an HTTP status code of 200 OK.
    required:
      - name
      - request
    type: object
  RestHealthCheckStepAttributes:
    allOf:
      - $ref: "#/definitions/HealthCheckStepAttributes"
    description: Defines the REST health check step properties.
    properties:
      properties:
        $ref: "#/definitions/RestParameters"
        description: The REST health check parameters.
        x-ms-client-flatten: true
    type: object
    x-ms-discriminator-value: REST
  RestParameters:
    description: The parameters for the REST health check.
    properties:
      healthChecks:
        description: The list of checks that form the health check step.
        items:
          $ref: "#/definitions/RestHealthCheck"
        type: array
    required:
      - healthChecks
    type: object
  RestRequest:
    description: The properties that make up a REST request
    properties:
      authentication:
        $ref: "#/definitions/RestRequestAuthentication"
        description: The authentication information required in the request to the health provider.
      method:
        description: The HTTP method to use for the request.
        enum:
          - GET
          - POST
        type: string
        x-ms-enum:
          modelAsString: false
          name: RestRequestMethod
      uri:
        description: The HTTP URI to use for the request.
        type: string
    required:
      - method
      - uri
      - authentication
    type: object
  RestRequestAuthentication:
    description: The authentication information required in the REST health check request to the health provider.
    discriminator: type
    properties:
      type:
        description: The authentication type.
        enum:
          - ApiKey
          - RolloutIdentity
        example: ApiKey
        type: string
        x-ms-enum:
          modelAsString: false
          name: RestAuthType
    required:
      - type
    type: object
  RestResponse:
    description: The properties that make up the expected REST response
    properties:
      regex:
        description: The regular expressions to match the response content with.
        properties:
          matchQuantifier:
            description: Indicates whether any or all of the expressions should match with the response content.
            enum:
              - All
              - Any
            type: string
            x-ms-enum:
              modelAsString: false
              name: RestMatchQuantifier
          matches:
            description: The list of regular expressions.
            example:
              - Contoso-Service-EndToEnd
              - |-
                (?i)"health_status":((.|
                )*)"(green|yellow)"
              - '(?mi)^("application_host": 94781052)$'
            items:
              type: string
            type: array
        type: object
      successStatusCodes:
        description: The HTTP status codes expected in a successful health check response. The response is expected to match one of the given status codes. If no expected status codes are provided, default expected status code is 200 OK.
        example:
          - Ok
          - No Content
        items:
          type: string
        type: array
    type: object
  Rollout:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM tracked top level resource
        properties:
          location:
            description: The geo-location where the resource lives
            type: string
            x-ms-mutability:
              - read
              - create
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
            x-ms-mutability:
              - read
              - create
              - update
        required:
          - location
    description: Defines the rollout.
    properties:
      identity:
        $ref: "#/definitions/Identity"
        description: Identity for the resource.
      properties:
        allOf:
          - $ref: "#/definitions/RolloutRequestProperties"
          - $ref: "#/definitions/RolloutProperties"
        description: The properties that define a rollout.
        x-ms-client-flatten: true
  RolloutIdentityAuthentication:
    allOf:
      - $ref: "#/definitions/RestRequestAuthentication"
    description: RolloutIdentity uses the user-assigned managed identity authentication context specified in the Identity property during rollout creation.
    type: object
    x-ms-discriminator-value: RolloutIdentity
  RolloutListResult:
    description: The list of rollouts.
    items:
      $ref: "#/definitions/Rollout"
    type: array
  RolloutOperationInfo:
    description: Detailed runtime information of the rollout.
    properties:
      endTime:
        description: The start time of the rollout in UTC. This property will not be set if the rollout has not completed yet.
        format: date-time
        readOnly: true
        type: string
      error:
        $ref: "#/definitions/CloudErrorBody"
        description: The detailed error information for any failure.
        readOnly: true
      retryAttempt:
        description: The ordinal count of the number of retry attempts on a rollout. 0 if no retries of the rollout have been performed. If the rollout is updated with a PUT, this count is reset to 0.
        format: int32
        readOnly: true
        type: integer
      skipSucceededOnRetry:
        description: True, if all steps that succeeded on the previous run/attempt were chosen to be skipped in this retry attempt. False, otherwise.
        readOnly: true
        type: boolean
      startTime:
        description: The start time of the rollout in UTC.
        format: date-time
        readOnly: true
        type: string
  RolloutProperties:
    description: Defines the properties of a rollout.
    properties:
      operationInfo:
        $ref: "#/definitions/RolloutOperationInfo"
        description: Operational information of the rollout.
        readOnly: true
      services:
        description: The detailed information on the services being deployed.
        items:
          $ref: "#/definitions/Service"
        readOnly: true
        type: array
      status:
        description: The current status of the rollout.
        readOnly: true
        type: string
      totalRetryAttempts:
        description: The cardinal count of total number of retries performed on the rollout at a given time.
        format: int32
        readOnly: true
        type: integer
  RolloutRequest:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM tracked top level resource
        properties:
          location:
            description: The geo-location where the resource lives
            type: string
            x-ms-mutability:
              - read
              - create
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
            x-ms-mutability:
              - read
              - create
              - update
        required:
          - location
    description: Defines the PUT rollout request body.
    properties:
      identity:
        $ref: "#/definitions/Identity"
        description: Identity for the resource.
      properties:
        $ref: "#/definitions/RolloutRequestProperties"
        description: Defines the properties that make up a rollout request.
        x-ms-client-flatten: true
    required:
      - identity
      - properties
  RolloutRequestProperties:
    description: The properties for defining a rollout.
    properties:
      artifactSourceId:
        description: The reference to the artifact source resource Id where the payload is located.
        example: Microsoft.DeploymentManager/artifactSources/payloadStore1
        type: string
      buildVersion:
        description: The version of the build being deployed.
        example: 1.0.0.1
        type: string
      stepGroups:
        description: The list of step groups that define the orchestration.
        items:
          $ref: "#/definitions/StepGroup"
        type: array
      targetServiceTopologyId:
        description: The resource Id of the service topology from which service units are being referenced in step groups to be deployed.
        example: Microsoft.DeploymentManager/serviceTopologies/myServiceTopology
        type: string
    required:
      - stepGroups
      - targetServiceTopologyId
      - buildVersion
  RolloutStep:
    description: Defines a specific step on a target service unit.
    properties:
      messages:
        description: Supplementary informative messages during rollout.
        items:
          $ref: "#/definitions/Message"
        readOnly: true
        type: array
      name:
        description: Name of the step.
        type: string
      operationInfo:
        $ref: "#/definitions/StepOperationInfo"
        description: Detailed information of specific action execution.
        readOnly: true
      resourceOperations:
        description: Set of resource operations that were performed, if any, on an Azure resource.
        items:
          $ref: "#/definitions/ResourceOperation"
        readOnly: true
        type: array
      status:
        description: Current state of the step.
        readOnly: true
        type: string
      stepGroup:
        description: The step group the current step is part of.
        type: string
    required:
      - name
  SasAuthentication:
    allOf:
      - $ref: "#/definitions/Authentication"
    description: Defines the properties to access the artifacts using an Azure Storage SAS URI.
    properties:
      properties:
        $ref: "#/definitions/SasProperties"
        description: The SAS properties
        x-ms-client-flatten: true
    type: object
    x-ms-discriminator-value: Sas
  SasProperties:
    description: The properties that define SAS authentication.
    properties:
      sasUri:
        description: The SAS URI to the Azure Storage blob container. Any offset from the root of the container to where the artifacts are located can be defined in the artifactRoot.
        type: string
    required:
      - sasUri
  Service:
    allOf:
      - $ref: "#/definitions/ServiceProperties"
    description: Defines a service.
    properties:
      name:
        description: Name of the service.
        type: string
      serviceUnits:
        description: The detailed information about the units that make up the service.
        items:
          $ref: "#/definitions/ServiceUnit"
        type: array
  ServiceListResult:
    description: The list of services.
    items:
      $ref: "#/definitions/ServiceResource"
    type: array
  ServiceProperties:
    description: The properties of a service.
    properties:
      targetLocation:
        description: The Azure location to which the resources in the service belong to or should be deployed to.
        type: string
      targetSubscriptionId:
        description: The subscription to which the resources in the service belong to or should be deployed to.
        type: string
    required:
      - targetLocation
      - targetSubscriptionId
  ServiceResource:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM tracked top level resource
        properties:
          location:
            description: The geo-location where the resource lives
            type: string
            x-ms-mutability:
              - read
              - create
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
            x-ms-mutability:
              - read
              - create
              - update
        required:
          - location
    description: The resource representation of a service in a service topology.
    properties:
      properties:
        allOf:
          - $ref: "#/definitions/ServiceProperties"
        description: The properties that define a service in a service topology.
        x-ms-client-flatten: true
    required:
      - properties
  ServiceTopologiesListResult:
    description: The list of service topologies.
    items:
      $ref: "#/definitions/ServiceTopologyResource"
    type: array
  ServiceTopologyProperties:
    description: The properties of a service topology.
    properties:
      artifactSourceId:
        description: The resource Id of the artifact source that contains the artifacts that can be referenced in the service units.
        type: string
  ServiceTopologyResource:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM tracked top level resource
        properties:
          location:
            description: The geo-location where the resource lives
            type: string
            x-ms-mutability:
              - read
              - create
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
            x-ms-mutability:
              - read
              - create
              - update
        required:
          - location
    description: The resource representation of a service topology.
    properties:
      properties:
        allOf:
          - $ref: "#/definitions/ServiceTopologyProperties"
        description: The properties that define the service topology.
        x-ms-client-flatten: true
    required:
      - properties
  ServiceUnit:
    allOf:
      - $ref: "#/definitions/ServiceUnitProperties"
    description: Defines a service unit.
    properties:
      name:
        description: Name of the service unit.
        type: string
      steps:
        description: Detailed step information, if present.
        items:
          $ref: "#/definitions/RolloutStep"
        type: array
  ServiceUnitArtifacts:
    description: Defines the artifacts of a service unit.
    properties:
      parametersArtifactSourceRelativePath:
        description: The path to the ARM parameters file relative to the artifact source.
        example: /parameters/resource1.parameters.json
        type: string
      parametersUri:
        description: The full URI of the ARM parameters file with the SAS token.
        example: https://teststore.blob.core.windows.net/payloadcontainer/parameters.json?sasUri
        type: string
      templateArtifactSourceRelativePath:
        description: The path to the ARM template file relative to the artifact source.
        example: /templates/resource1.template.json
        type: string
      templateUri:
        description: The full URI of the ARM template file with the SAS token.
        example: https://teststore.blob.core.windows.net/payloadcontainer/template.json?sasUri
        type: string
  ServiceUnitListResult:
    description: The list of service units.
    items:
      $ref: "#/definitions/ServiceUnitResource"
    type: array
  ServiceUnitProperties:
    description: Defines the properties of a service unit.
    properties:
      artifacts:
        $ref: "#/definitions/ServiceUnitArtifacts"
        description: The artifacts for the service unit.
        type: object
      deploymentMode:
        description: Describes the type of ARM deployment to be performed on the resource.
        enum:
          - Incremental
          - Complete
        type: string
        x-ms-enum:
          modelAsString: false
          name: DeploymentMode
      targetResourceGroup:
        description: The Azure Resource Group to which the resources in the service unit belong to or should be deployed to.
        type: string
    required:
      - targetResourceGroup
      - deploymentMode
  ServiceUnitResource:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM tracked top level resource
        properties:
          location:
            description: The geo-location where the resource lives
            type: string
            x-ms-mutability:
              - read
              - create
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
            x-ms-mutability:
              - read
              - create
              - update
        required:
          - location
    description: Represents the response of a service unit resource.
    properties:
      properties:
        allOf:
          - $ref: "#/definitions/ServiceUnitProperties"
        description: The properties that define the service unit.
        x-ms-client-flatten: true
    required:
      - properties
  StepGroup:
    description: The properties that define a Step group in a rollout.
    properties:
      dependsOnStepGroups:
        description: The list of step group names on which this step group depends on.
        example:
          - stepGroup1
          - stepGroup2
        items:
          type: string
        type: array
      deploymentTargetId:
        description: The resource Id of service unit to be deployed. The service unit should be from the service topology referenced in targetServiceTopologyId
        example: Microsoft.DeploymentManager/serviceTopologies/myServiceTopology/services/myService/serviceUnits/database
        type: string
      name:
        description: The name of the step group.
        type: string
      postDeploymentSteps:
        description: The list of steps to be run after deploying the target.
        items:
          $ref: "#/definitions/PrePostStep"
        type: array
      preDeploymentSteps:
        description: The list of steps to be run before deploying the target.
        items:
          $ref: "#/definitions/PrePostStep"
        type: array
    required:
      - deploymentTargetId
      - name
  StepOperationInfo:
    description: Detailed information of a specific step run.
    properties:
      correlationId:
        description: Unique identifier to track the request for ARM-based resources.
        readOnly: true
        type: string
      deploymentName:
        description: The name of the ARM deployment initiated as part of the step.
        readOnly: true
        type: string
      endTime:
        description: End time of the action in UTC.
        format: date-time
        readOnly: true
        type: string
      error:
        $ref: "#/definitions/CloudErrorBody"
        description: The errors, if any, for the action.
      lastUpdatedTime:
        description: Last time in UTC this operation was updated.
        format: date-time
        readOnly: true
        type: string
      startTime:
        description: Start time of the action in UTC.
        format: date-time
        readOnly: true
        type: string
  StepProperties:
    description: The properties of a step resource.
    discriminator: stepType
    properties:
      stepType:
        description: The type of step.
        enum:
          - Wait
          - HealthCheck
        type: string
        x-ms-enum:
          modelAsString: false
          name: StepType
    required:
      - stepType
    type: object
  StepResource:
    allOf:
      - allOf:
          - properties:
              id:
                description: Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
                readOnly: true
                type: string
              name:
                description: The name of the resource
                readOnly: true
                type: string
              type:
                description: The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts.
                readOnly: true
                type: string
            x-ms-azure-resource: true
        description: The resource model definition for a ARM tracked top level resource
        properties:
          location:
            description: The geo-location where the resource lives
            type: string
            x-ms-mutability:
              - read
              - create
          tags:
            additionalProperties:
              type: string
            description: Resource tags.
            type: object
            x-ms-mutability:
              - read
              - create
              - update
        required:
          - location
    description: The resource representation of a rollout step.
    properties:
      properties:
        $ref: "#/definitions/StepProperties"
        description: The properties that define the step.
    required:
      - properties
  StepResourceListResult:
    description: The list of steps.
    items:
      $ref: "#/definitions/StepResource"
    type: array
  WaitStepAttributes:
    description: The parameters for the wait step.
    properties:
      duration:
        description: The duration in ISO 8601 format of how long the wait should be.
        example: PT30M
        type: string
    required:
      - duration
    type: object
  WaitStepProperties:
    allOf:
      - $ref: "#/definitions/StepProperties"
    description: Defines the properties of a Wait step.
    properties:
      attributes:
        $ref: "#/definitions/WaitStepAttributes"
        description: The Wait attributes
    required:
      - attributes
    type: object
    x-ms-discriminator-value: Wait
