{
  "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": "2018-09-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/2018-09-01-preview/deploymentmanager.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "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": {
    "/subscriptions/{subscriptionId}/providers/Microsoft.DeploymentManager/operations": {
      "get": {
        "operationId": "Operations_Get",
        "parameters": [
          {
            "$ref": "#/parameters/subscriptionId"
          },
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "The operation details 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": "Gets an operation resource.",
        "tags": [
          "Operations"
        ],
        "x-ms-examples": {
          "Get operations": {
            "parameters": {
              "api-version": "2018-09-01-preview",
              "subscriptionId": "caac1590-e859-444f-a9e0-62091c0f5929"
            },
            "responses": {
              "200": {
                "body": [
                  {
                    "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/{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": "2018-09-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": "2018-09-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": "2018-09-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": {},
                "type": "Microsoft.DeploymentManager/artifactSources"
              },
              "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": "2018-09-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": {},
                "type": "Microsoft.DeploymentManager/artifactSources"
              },
              "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/{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": "2018-09-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": "2018-09-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": "2018-09-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": {},
                "type": "Microsoft.DeploymentManager/rollouts"
              },
              "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": "2018-09-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": "2018-09-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/{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": "2018-09-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": "2018-09-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": "2018-09-01-preview",
              "resourceGroupName": "myResourceGroup",
              "serviceTopologyInfo": {
                "location": "centralus",
                "properties": {
                  "artifactSourceId": "Microsoft.DeploymentManager/artifactSources/myArtifactSource"
                },
                "tags": {},
                "type": "Microsoft.DeploymentManager/serviceTopologies"
              },
              "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": "2018-09-01-preview",
              "resourceGroupName": "myResourceGroup",
              "serviceTopologyInfo": {
                "location": "centralus",
                "properties": {},
                "tags": {},
                "type": "Microsoft.DeploymentManager/serviceTopologies"
              },
              "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/{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": "2018-09-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": "2018-09-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": "2018-09-01-preview",
              "resourceGroupName": "myResourceGroup",
              "serviceInfo": {
                "location": "centralus",
                "properties": {
                  "targetLocation": "centralus",
                  "targetSubscriptionId": "600c95c5-3ee5-44fe-b190-ca38a19adcd7"
                },
                "tags": {},
                "type": "Microsoft.DeploymentManager/serviceTopologies/services"
              },
              "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/{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": "2018-09-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": "2018-09-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": "2018-09-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": {},
                "type": "Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits"
              },
              "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": "2018-09-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": {},
                "type": "Microsoft.DeploymentManager/serviceTopologies/services/serviceUnits"
              },
              "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/{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": "2018-09-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": "2018-09-01-preview",
              "resourceGroupName": "myResourceGroup",
              "stepName": "deploymentStep1",
              "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 deployment step": {
            "parameters": {
              "api-version": "2018-09-01-preview",
              "resourceGroupName": "myResourceGroup",
              "stepInfo": {
                "location": "centralus",
                "properties": {
                  "attributes": {
                    "duration": "PT20M"
                  },
                  "stepType": "Wait"
                },
                "tags": {},
                "type": "Microsoft.DeploymentManager/steps"
              },
              "stepName": "deploymentStep1",
              "subscriptionId": "caac1590-e859-444f-a9e0-62091c0f5929"
            },
            "responses": {
              "201": {
                "body": {
                  "location": "centralus",
                  "name": "deploymentStep1",
                  "properties": {
                    "attributes": {
                      "duration": "PT20M"
                    },
                    "stepType": "Wait"
                  },
                  "tags": {},
                  "type": "Microsoft.DeploymentManager/steps"
                }
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "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
        }
      }
    },
    "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"
        }
      }
    },
    "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 list of supported operations.",
      "items": {
        "$ref": "#/definitions/Operation"
      },
      "type": "array"
    },
    "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"
        }
      }
    },
    "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
        }
      }
    },
    "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/Step"
          },
          "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"
        }
      }
    },
    "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"
      ]
    },
    "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"
        }
      }
    },
    "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"
      ]
    },
    "Step": {
      "description": "The properties that define an Azure Deployment Manager step.",
      "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.",
          "example": "Wait",
          "type": "string"
        }
      },
      "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"
      ]
    },
    "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"
        }
      },
      "type": "object",
      "x-ms-discriminator-value": "Wait"
    }
  }
}