{
  "swagger": "2.0",
  "schemes": [
    "https"
  ],
  "host": "management.azure.com",
  "info": {
    "description": "Azure Blueprint Client.",
    "title": "BlueprintClient",
    "version": "2017-11-11-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/blueprint/resource-manager/Microsoft.Blueprint/preview/2017-11-11-preview/blueprintDefinition.json",
        "version": "2.0"
      }
    ],
    "x-preferred": false,
    "x-providerName": "azure.com",
    "x-serviceName": "blueprint-blueprintDefinition",
    "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": "Client Api Version.",
      "in": "query",
      "name": "api-version",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "client"
    },
    "ArtifactNameParameter": {
      "description": "name of the artifact.",
      "in": "path",
      "name": "artifactName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "BlueprintNameParameter": {
      "description": "name of the blueprint.",
      "in": "path",
      "name": "blueprintName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "ManagementGroupNameParameter": {
      "description": "ManagementGroup where blueprint stores.",
      "in": "path",
      "name": "managementGroupName",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "PublishedBlueprintVersionIdParameter": {
      "description": "version of the published blueprint.",
      "in": "path",
      "name": "versionId",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    },
    "SubscriptionIdParameter": {
      "description": "azure subscriptionId, which we assign the blueprint to.",
      "in": "path",
      "name": "subscriptionId",
      "required": true,
      "type": "string",
      "x-ms-parameter-location": "method"
    }
  },
  "paths": {
    "/providers/Microsoft.Blueprint/operations": {
      "get": {
        "description": "List all of the available operations the Blueprint resource provider supports.",
        "operationId": "Operations_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK response definition.",
            "schema": {
              "$ref": "#/definitions/ResourceProviderOperationList"
            }
          }
        },
        "tags": [
          "Operations"
        ],
        "x-ms-examples": {
          "OperationsList": {
            "parameters": {
              "api-version": "2017-11-11-preview"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "display": {
                        "description": "Read any Blueprints",
                        "operation": "Read Blueprints",
                        "provider": "Microsoft Blueprint",
                        "resource": "Blueprint"
                      },
                      "name": "Microsoft.Blueprint/blueprints/read"
                    }
                  ]
                }
              }
            }
          }
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints": {
      "get": {
        "description": "List Blueprint definitions within a Management Group.",
        "operationId": "Blueprints_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- retrieved Blueprints in this ManagementGroup.",
            "schema": {
              "$ref": "#/definitions/BlueprintList"
            }
          }
        },
        "tags": [
          "Blueprint"
        ],
        "x-ms-examples": {
          "Blueprint": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
                      "name": "simpleBlueprint",
                      "properties": {
                        "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                        "parameters": {
                          "costCenter": {
                            "metadata": {
                              "displayName": "force cost center tag for all resources under given subscription."
                            },
                            "type": "string"
                          },
                          "owners": {
                            "metadata": {
                              "displayName": "assign owners to subscription along with blueprint assignment."
                            },
                            "type": "array"
                          },
                          "storageAccountType": {
                            "metadata": {
                              "displayName": "storage account type."
                            },
                            "type": "string"
                          }
                        },
                        "resourceGroups": {
                          "storageRG": {
                            "metadata": {
                              "description": "Contains storageAccounts that collect all shoebox logs.",
                              "displayName": "storage resource group"
                            }
                          }
                        },
                        "status": null,
                        "targetScope": "subscription"
                      },
                      "type": "Microsoft.Blueprint/blueprints"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}": {
      "delete": {
        "description": "Delete a blueprint definition.",
        "operationId": "Blueprints_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- blueprint definition deleted",
            "schema": {
              "$ref": "#/definitions/Blueprint"
            }
          },
          "204": {
            "description": "no content"
          }
        },
        "tags": [
          "Blueprint"
        ],
        "x-ms-examples": {
          "Blueprint_Delete": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
                  "name": "simpleBlueprint",
                  "properties": {
                    "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                    "parameters": {
                      "costCenter": {
                        "metadata": {
                          "displayName": "force cost center tag for all resources under given subscription."
                        },
                        "type": "string"
                      },
                      "owners": {
                        "metadata": {
                          "displayName": "assign owners to subscription along with blueprint assignment."
                        },
                        "type": "array"
                      },
                      "storageAccountType": {
                        "metadata": {
                          "displayName": "storage account type."
                        },
                        "type": "string"
                      }
                    },
                    "resourceGroups": {
                      "storageRG": {
                        "metadata": {
                          "description": "Contains storageAccounts that collect all shoebox logs.",
                          "displayName": "storage resource group"
                        }
                      }
                    },
                    "status": null,
                    "targetScope": "subscription"
                  },
                  "type": "Microsoft.Blueprint/blueprints"
                }
              },
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get a blueprint definition.",
        "operationId": "Blueprints_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- blueprint definition retrieved.",
            "schema": {
              "$ref": "#/definitions/Blueprint"
            }
          }
        },
        "tags": [
          "Blueprint"
        ],
        "x-ms-examples": {
          "Blueprint": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
                  "name": "simpleBlueprint",
                  "properties": {
                    "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                    "parameters": {
                      "costCenter": {
                        "metadata": {
                          "displayName": "force cost center tag for all resources under given subscription."
                        },
                        "type": "string"
                      },
                      "owners": {
                        "metadata": {
                          "displayName": "assign owners to subscription along with blueprint assignment."
                        },
                        "type": "array"
                      },
                      "storageAccountType": {
                        "metadata": {
                          "displayName": "storage account type."
                        },
                        "type": "string"
                      }
                    },
                    "resourceGroups": {
                      "storageRG": {
                        "metadata": {
                          "description": "Contains storageAccounts that collect all shoebox logs.",
                          "displayName": "storage resource group"
                        }
                      }
                    },
                    "status": null,
                    "targetScope": "subscription"
                  },
                  "type": "Microsoft.Blueprint/blueprints"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Create or update Blueprint definition.",
        "operationId": "Blueprints_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "description": "Blueprint definition.",
            "in": "body",
            "name": "blueprint",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Blueprint"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created -- Blueprint definition saved.",
            "schema": {
              "$ref": "#/definitions/Blueprint"
            }
          }
        },
        "tags": [
          "Blueprint"
        ],
        "x-ms-examples": {
          "Blueprint": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprint": {
                "properties": {
                  "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                  "parameters": {
                    "costCenter": {
                      "metadata": {
                        "displayName": "force cost center tag for all resources under given subscription."
                      },
                      "type": "string"
                    },
                    "owners": {
                      "metadata": {
                        "displayName": "assign owners to subscription along with blueprint assignment."
                      },
                      "type": "array"
                    },
                    "storageAccountType": {
                      "metadata": {
                        "displayName": "storage account type."
                      },
                      "type": "string"
                    }
                  },
                  "resourceGroups": {
                    "storageRG": {
                      "metadata": {
                        "description": "Contains storageAccounts that collect all shoebox logs.",
                        "displayName": "storage resource group"
                      }
                    }
                  },
                  "targetScope": "subscription"
                }
              },
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
                  "name": "simpleBlueprint",
                  "properties": {
                    "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                    "parameters": {
                      "costCenter": {
                        "metadata": {
                          "description": null,
                          "displayName": "force cost center tag for all resources under given subscription."
                        },
                        "type": "string"
                      },
                      "owners": {
                        "metadata": {
                          "description": null,
                          "displayName": "assign owners to subscription along with blueprint assignment."
                        },
                        "type": "array"
                      },
                      "storageAccountType": {
                        "metadata": {
                          "description": null,
                          "displayName": "storage account type."
                        },
                        "type": "string"
                      }
                    },
                    "resourceGroups": {
                      "storageRG": {
                        "metadata": {
                          "description": "Contains storageAccounts that collect all shoebox logs.",
                          "displayName": "storage resource group"
                        }
                      }
                    },
                    "targetScope": "subscription"
                  },
                  "type": "Microsoft.Blueprint/blueprints"
                }
              }
            }
          }
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/artifacts": {
      "get": {
        "description": "List artifacts for a given Blueprint.",
        "operationId": "Artifacts_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- Blueprint artifacts retrieved.",
            "schema": {
              "$ref": "#/definitions/ArtifactList"
            }
          }
        },
        "tags": [
          "Artifact"
        ],
        "x-ms-examples": {
          "ArtifactList": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment",
                      "kind": "roleAssignment",
                      "name": "ownerAssignment",
                      "properties": {
                        "displayName": "enforce owners of given subscription",
                        "principalIds": "[parameters('owners')]",
                        "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7"
                      },
                      "type": "Microsoft.Blueprint/blueprints/artifacts"
                    },
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy",
                      "kind": "policyAssignment",
                      "name": "costCenterPolicy",
                      "properties": {
                        "displayName": "force costCenter tag on all resources",
                        "parameters": {
                          "tagName": {
                            "value": "costCenter"
                          },
                          "tagValue": {
                            "value": "[parameter('costCenter')]"
                          }
                        },
                        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62"
                      },
                      "type": "Microsoft.Blueprint/blueprints/artifacts"
                    },
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate",
                      "kind": "template",
                      "name": "storageTemplate",
                      "properties": {
                        "parameters": {
                          "storageAccountType": {
                            "value": "[parameters('storageAccountType')]"
                          }
                        },
                        "resourceGroup": "storageRG",
                        "template": {
                          "contentVersion": "1.0.0.0",
                          "outputs": {
                            "storageAccountName": {
                              "type": "string",
                              "value": "[variables('storageAccountName')]"
                            }
                          },
                          "parameters": {
                            "storageAccountType": {
                              "allowedValues": [
                                "Standard_LRS",
                                "Standard_GRS",
                                "Standard_ZRS",
                                "Premium_LRS"
                              ],
                              "defaultValue": "Standard_LRS",
                              "metadata": {
                                "description": "Storage Account type"
                              },
                              "type": "string"
                            }
                          },
                          "resources": [
                            {
                              "apiVersion": "2016-01-01",
                              "kind": "Storage",
                              "location": "[resourceGroup().location]",
                              "name": "[variables('storageAccountName')]",
                              "properties": {},
                              "sku": {
                                "name": "[parameters('storageAccountType')]"
                              },
                              "type": "Microsoft.Storage/storageAccounts"
                            }
                          ],
                          "variables": {
                            "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                          }
                        }
                      },
                      "type": "Microsoft.Blueprint/blueprints/artifacts"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/artifacts/{artifactName}": {
      "delete": {
        "description": "Delete a Blueprint artifact.",
        "operationId": "Artifacts_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/ArtifactNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- Blueprint artifact deleted.",
            "schema": {
              "$ref": "#/definitions/Artifact"
            }
          },
          "204": {
            "description": "No Content"
          }
        },
        "tags": [
          "Artifact"
        ],
        "x-ms-examples": {
          "ARMTemplateArtifact_Delete": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "storageTemplate",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate",
                  "kind": "template",
                  "name": "storageTemplate",
                  "properties": {
                    "parameters": {
                      "storageAccountType": {
                        "value": "[parameters('storageAccountType')]"
                      }
                    },
                    "resourceGroup": "storageRG",
                    "template": {
                      "contentVersion": "1.0.0.0",
                      "outputs": {
                        "storageAccountName": {
                          "type": "string",
                          "value": "[variables('storageAccountName')]"
                        }
                      },
                      "parameters": {
                        "storageAccountType": {
                          "allowedValues": [
                            "Standard_LRS",
                            "Standard_GRS",
                            "Standard_ZRS",
                            "Premium_LRS"
                          ],
                          "defaultValue": "Standard_LRS",
                          "metadata": {
                            "description": "Storage Account type"
                          },
                          "type": "string"
                        }
                      },
                      "resources": [
                        {
                          "apiVersion": "2016-01-01",
                          "kind": "Storage",
                          "location": "[resourceGroup().location]",
                          "name": "[variables('storageAccountName')]",
                          "properties": {},
                          "sku": {
                            "name": "[parameters('storageAccountType')]"
                          },
                          "type": "Microsoft.Storage/storageAccounts"
                        }
                      ],
                      "variables": {
                        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                      }
                    }
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              },
              "204": {}
            }
          },
          "PolicyAssignmentArtifact_Delete": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "costCenterPolicy",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy",
                  "kind": "policyAssignment",
                  "name": "costCenterPolicy",
                  "properties": {
                    "displayName": "force costCenter tag on all resources",
                    "parameters": {
                      "tagName": {
                        "value": "costCenter"
                      },
                      "tagValue": {
                        "value": "[parameter('costCenter')]"
                      }
                    },
                    "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62"
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              },
              "204": {}
            }
          },
          "RoleAssignmentArtifact_Delete": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "ownerAssignment",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment",
                  "kind": "roleAssignment",
                  "name": "ownerAssignment",
                  "properties": {
                    "displayName": "enforce owners of given subscription",
                    "principalIds": "[parameters('owners')]",
                    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7"
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              },
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get a Blueprint artifact.",
        "operationId": "Artifacts_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/ArtifactNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- Blueprint artifact retrieved.",
            "schema": {
              "$ref": "#/definitions/Artifact"
            }
          }
        },
        "tags": [
          "Artifact"
        ],
        "x-ms-examples": {
          "ARMTemplateArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "storageTemplate",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate",
                  "kind": "template",
                  "name": "storageTemplate",
                  "properties": {
                    "parameters": {
                      "storageAccountType": {
                        "value": "[parameters('storageAccountType')]"
                      }
                    },
                    "resourceGroup": "storageRG",
                    "template": {
                      "contentVersion": "1.0.0.0",
                      "outputs": {
                        "storageAccountName": {
                          "type": "string",
                          "value": "[variables('storageAccountName')]"
                        }
                      },
                      "parameters": {
                        "storageAccountType": {
                          "allowedValues": [
                            "Standard_LRS",
                            "Standard_GRS",
                            "Standard_ZRS",
                            "Premium_LRS"
                          ],
                          "defaultValue": "Standard_LRS",
                          "metadata": {
                            "description": "Storage Account type"
                          },
                          "type": "string"
                        }
                      },
                      "resources": [
                        {
                          "apiVersion": "2016-01-01",
                          "kind": "Storage",
                          "location": "[resourceGroup().location]",
                          "name": "[variables('storageAccountName')]",
                          "properties": {},
                          "sku": {
                            "name": "[parameters('storageAccountType')]"
                          },
                          "type": "Microsoft.Storage/storageAccounts"
                        }
                      ],
                      "variables": {
                        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                      }
                    }
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              }
            }
          },
          "PolicyAssignmentArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "costCenterPolicy",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy",
                  "kind": "policyAssignment",
                  "name": "costCenterPolicy",
                  "properties": {
                    "displayName": "force costCenter tag on all resources",
                    "parameters": {
                      "tagName": {
                        "value": "costCenter"
                      },
                      "tagValue": {
                        "value": "[parameter('costCenter')]"
                      }
                    },
                    "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62"
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              }
            }
          },
          "RoleAssignmentArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "ownerAssignment",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment",
                  "kind": "roleAssignment",
                  "name": "ownerAssignment",
                  "properties": {
                    "displayName": "enforce owners of given subscription",
                    "principalIds": "[parameters('owners')]",
                    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7"
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Create or update Blueprint artifact.",
        "operationId": "Artifacts_CreateOrUpdate",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/ArtifactNameParameter"
          },
          {
            "description": "Blueprint artifact to save.",
            "in": "body",
            "name": "artifact",
            "required": true,
            "schema": {
              "$ref": "#/definitions/Artifact"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created -- Blueprint artifact created/updated.",
            "schema": {
              "$ref": "#/definitions/Artifact"
            }
          }
        },
        "tags": [
          "Artifact"
        ],
        "x-ms-examples": {
          "ARMTemplateArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifact": {
                "kind": "template",
                "properties": {
                  "parameters": {
                    "storageAccountType": {
                      "value": "[parameters('storageAccountType')]"
                    }
                  },
                  "resourceGroup": "storageRG",
                  "template": {
                    "contentVersion": "1.0.0.0",
                    "outputs": {
                      "storageAccountName": {
                        "type": "string",
                        "value": "[variables('storageAccountName')]"
                      }
                    },
                    "parameters": {
                      "storageAccountType": {
                        "allowedValues": [
                          "Standard_LRS",
                          "Standard_GRS",
                          "Standard_ZRS",
                          "Premium_LRS"
                        ],
                        "defaultValue": "Standard_LRS",
                        "metadata": {
                          "description": "Storage Account type"
                        },
                        "type": "string"
                      }
                    },
                    "resources": [
                      {
                        "apiVersion": "2016-01-01",
                        "kind": "Storage",
                        "location": "[resourceGroup().location]",
                        "name": "[variables('storageAccountName')]",
                        "properties": {},
                        "sku": {
                          "name": "[parameters('storageAccountType')]"
                        },
                        "type": "Microsoft.Storage/storageAccounts"
                      }
                    ],
                    "variables": {
                      "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                    }
                  }
                }
              },
              "artifactName": "storageTemplate",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/storageTemplate",
                  "kind": "template",
                  "name": "storageTemplate",
                  "properties": {
                    "parameters": {
                      "storageAccountType": {
                        "value": "[parameters('storageAccountType')]"
                      }
                    },
                    "resourceGroup": "storageRG",
                    "template": {
                      "contentVersion": "1.0.0.0",
                      "outputs": {
                        "storageAccountName": {
                          "type": "string",
                          "value": "[variables('storageAccountName')]"
                        }
                      },
                      "parameters": {
                        "storageAccountType": {
                          "allowedValues": [
                            "Standard_LRS",
                            "Standard_GRS",
                            "Standard_ZRS",
                            "Premium_LRS"
                          ],
                          "defaultValue": "Standard_LRS",
                          "metadata": {
                            "description": "Storage Account type"
                          },
                          "type": "string"
                        }
                      },
                      "resources": [
                        {
                          "apiVersion": "2016-01-01",
                          "kind": "Storage",
                          "location": "[resourceGroup().location]",
                          "name": "[variables('storageAccountName')]",
                          "properties": {},
                          "sku": {
                            "name": "[parameters('storageAccountType')]"
                          },
                          "type": "Microsoft.Storage/storageAccounts"
                        }
                      ],
                      "variables": {
                        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                      }
                    }
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              }
            }
          },
          "PolicyAssignmentArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifact": {
                "kind": "policyAssignment",
                "properties": {
                  "displayName": "force costCenter tag on all resources",
                  "parameters": {
                    "tagName": {
                      "value": "costCenter"
                    },
                    "tagValue": {
                      "value": "[parameter('costCenter')]"
                    }
                  },
                  "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62"
                }
              },
              "artifactName": "costCenterPolicy",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/costCenterPolicy",
                  "kind": "policyAssignment",
                  "name": "costCenterPolicy",
                  "properties": {
                    "displayName": "force costCenter tag on all resources",
                    "parameters": {
                      "tagName": {
                        "value": "costCenter"
                      },
                      "tagValue": {
                        "value": "[parameter('costCenter')]"
                      }
                    },
                    "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62"
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              }
            }
          },
          "RoleAssignmentArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifact": {
                "kind": "roleAssignment",
                "properties": {
                  "displayName": "enforce owners of given subscription",
                  "principalIds": "[parameters('owners')]",
                  "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7"
                }
              },
              "artifactName": "ownerAssignment",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/artifacts/ownerAssignment",
                  "kind": "roleAssignment",
                  "name": "ownerAssignment",
                  "properties": {
                    "displayName": "enforce owners of given subscription",
                    "principalIds": "[parameters('owners')]",
                    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7"
                  },
                  "type": "Microsoft.Blueprint/blueprints/artifacts"
                }
              }
            }
          }
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions": {
      "get": {
        "description": "List published versions of given Blueprint.",
        "operationId": "PublishedBlueprints_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- all published Blueprint retrieved.",
            "schema": {
              "$ref": "#/definitions/PublishedBlueprintList"
            }
          }
        },
        "tags": [
          "PublishedBlueprint"
        ],
        "x-ms-examples": {
          "PublishedBlueprintList": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/v1",
                      "name": "v1",
                      "properties": {
                        "blueprintName": "simpleBlueprint",
                        "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                        "parameters": {
                          "costCenter": {
                            "metadata": {
                              "displayName": "force cost center tag for all resources under given subscription."
                            },
                            "type": "string"
                          },
                          "owners": {
                            "metadata": {
                              "displayName": "assign owners to subscription along with blueprint assignment."
                            },
                            "type": "array"
                          },
                          "storageAccountType": {
                            "metadata": {
                              "displayName": "storage account type."
                            },
                            "type": "string"
                          }
                        },
                        "resourceGroups": {
                          "storageRG": {
                            "metadata": {
                              "description": "Contains storageAccounts that collect all shoebox logs.",
                              "displayName": "storage resource group"
                            }
                          }
                        },
                        "status": null,
                        "targetScope": "subscription"
                      },
                      "type": "Microsoft.Blueprint/blueprints/versions"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}": {
      "delete": {
        "description": "Delete a published Blueprint.",
        "operationId": "PublishedBlueprints_Delete",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/PublishedBlueprintVersionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- published Blueprint deleted.",
            "schema": {
              "$ref": "#/definitions/PublishedBlueprint"
            }
          },
          "204": {
            "description": "No Content"
          }
        },
        "tags": [
          "PublishedBlueprint"
        ],
        "x-ms-examples": {
          "PublishedBlueprint_Delete": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management",
              "versionId": "v2"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
                  "name": "v2",
                  "properties": {
                    "blueprintName": "simpleBlueprint",
                    "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                    "parameters": {
                      "costCenter": {
                        "metadata": {
                          "description": null,
                          "displayName": "force cost center tag for all resources under given subscription."
                        },
                        "type": "string"
                      },
                      "owners": {
                        "metadata": {
                          "description": null,
                          "displayName": "assign owners to subscription along with blueprint assignment."
                        },
                        "type": "array"
                      },
                      "storageAccountType": {
                        "metadata": {
                          "description": null,
                          "displayName": "storage account type."
                        },
                        "type": "string"
                      }
                    },
                    "resourceGroups": {
                      "storageRG": {
                        "metadata": {
                          "description": "Contains storageAccounts that collect all shoebox logs.",
                          "displayName": "storage resource group"
                        }
                      }
                    },
                    "targetScope": "subscription"
                  },
                  "type": "Microsoft.Blueprint/blueprints/versions"
                }
              },
              "204": {}
            }
          }
        }
      },
      "get": {
        "description": "Get a published Blueprint.",
        "operationId": "PublishedBlueprints_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/PublishedBlueprintVersionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- published Blueprint retrieved.",
            "schema": {
              "$ref": "#/definitions/PublishedBlueprint"
            }
          }
        },
        "tags": [
          "PublishedBlueprint"
        ],
        "x-ms-examples": {
          "PublishedBlueprint_Get": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management",
              "versionId": "v2"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
                  "name": "v2",
                  "properties": {
                    "blueprintName": "simpleBlueprint",
                    "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                    "parameters": {
                      "costCenter": {
                        "metadata": {
                          "description": null,
                          "displayName": "force cost center tag for all resources under given subscription."
                        },
                        "type": "string"
                      },
                      "owners": {
                        "metadata": {
                          "description": null,
                          "displayName": "assign owners to subscription along with blueprint assignment."
                        },
                        "type": "array"
                      },
                      "storageAccountType": {
                        "metadata": {
                          "description": null,
                          "displayName": "storage account type."
                        },
                        "type": "string"
                      }
                    },
                    "resourceGroups": {
                      "storageRG": {
                        "metadata": {
                          "description": "Contains storageAccounts that collect all shoebox logs.",
                          "displayName": "storage resource group"
                        }
                      }
                    },
                    "targetScope": "subscription"
                  },
                  "type": "Microsoft.Blueprint/blueprints/versions"
                }
              }
            }
          }
        }
      },
      "put": {
        "description": "Publish a new version of the Blueprint with the latest artifacts. Published Blueprints are immutable.",
        "operationId": "PublishedBlueprints_Create",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/PublishedBlueprintVersionIdParameter"
          }
        ],
        "responses": {
          "201": {
            "description": "Created -- published Blueprint.",
            "schema": {
              "$ref": "#/definitions/PublishedBlueprint"
            }
          }
        },
        "tags": [
          "PublishedBlueprint"
        ],
        "x-ms-examples": {
          "PublishedBlueprint_Publish": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management",
              "versionId": "v2"
            },
            "responses": {
              "201": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint",
                  "name": "v2",
                  "properties": {
                    "blueprintName": "simpleBlueprint",
                    "description": "blueprint contains all artifact kinds {'template', 'rbac', 'policy'}",
                    "parameters": {
                      "costCenter": {
                        "metadata": {
                          "description": null,
                          "displayName": "force cost center tag for all resources under given subscription."
                        },
                        "type": "string"
                      },
                      "owners": {
                        "metadata": {
                          "description": null,
                          "displayName": "assign owners to subscription along with blueprint assignment."
                        },
                        "type": "array"
                      },
                      "storageAccountType": {
                        "metadata": {
                          "description": null,
                          "displayName": "storage account type."
                        },
                        "type": "string"
                      }
                    },
                    "resourceGroups": {
                      "storageRG": {
                        "metadata": {
                          "description": "Contains storageAccounts that collect all shoebox logs.",
                          "displayName": "storage resource group"
                        }
                      }
                    },
                    "targetScope": "subscription"
                  },
                  "type": "Microsoft.Blueprint/blueprints/versions"
                }
              }
            }
          }
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}/artifacts": {
      "get": {
        "description": "List artifacts for a published Blueprint.",
        "operationId": "PublishedArtifacts_List",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/PublishedBlueprintVersionIdParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- all published artifact retrieved.",
            "schema": {
              "$ref": "#/definitions/ArtifactList"
            }
          }
        },
        "tags": [
          "PublishedArtifact"
        ],
        "x-ms-examples": {
          "ArtifactList": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management",
              "versionId": "V2"
            },
            "responses": {
              "200": {
                "body": {
                  "value": [
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/ownerAssignment",
                      "kind": "roleAssignment",
                      "name": "ownerAssignment",
                      "properties": {
                        "displayName": "enforce owners of given subscription",
                        "principalIds": "[parameters('owners')]",
                        "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7"
                      },
                      "type": "Microsoft.Blueprint/blueprints/versions/artifacts"
                    },
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/costCenterPolicy",
                      "kind": "policyAssignment",
                      "name": "costCenterPolicy",
                      "properties": {
                        "displayName": "force costCenter tag on all resources",
                        "parameters": {
                          "tagName": {
                            "value": "costCenter"
                          },
                          "tagValue": {
                            "value": "[parameter('costCenter')]"
                          }
                        },
                        "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62"
                      },
                      "type": "Microsoft.Blueprint/blueprints/versions/artifacts"
                    },
                    {
                      "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/storageTemplate",
                      "kind": "template",
                      "name": "storageTemplate",
                      "properties": {
                        "parameters": {
                          "storageAccountType": {
                            "value": "[parameters('storageAccountType')]"
                          }
                        },
                        "resourceGroup": "storageRG",
                        "template": {
                          "contentVersion": "1.0.0.0",
                          "outputs": {
                            "storageAccountName": {
                              "type": "string",
                              "value": "[variables('storageAccountName')]"
                            }
                          },
                          "parameters": {
                            "storageAccountType": {
                              "allowedValues": [
                                "Standard_LRS",
                                "Standard_GRS",
                                "Standard_ZRS",
                                "Premium_LRS"
                              ],
                              "defaultValue": "Standard_LRS",
                              "metadata": {
                                "description": "Storage Account type"
                              },
                              "type": "string"
                            }
                          },
                          "resources": [
                            {
                              "apiVersion": "2016-01-01",
                              "kind": "Storage",
                              "location": "[resourceGroup().location]",
                              "name": "[variables('storageAccountName')]",
                              "properties": {},
                              "sku": {
                                "name": "[parameters('storageAccountType')]"
                              },
                              "type": "Microsoft.Storage/storageAccounts"
                            }
                          ],
                          "variables": {
                            "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                          }
                        }
                      },
                      "type": "Microsoft.Blueprint/blueprints/versions/artifacts"
                    }
                  ]
                }
              }
            }
          }
        },
        "x-ms-pageable": {
          "nextLinkName": "nextLink"
        }
      }
    },
    "/providers/Microsoft.Management/managementGroups/{managementGroupName}/providers/Microsoft.Blueprint/blueprints/{blueprintName}/versions/{versionId}/artifacts/{artifactName}": {
      "get": {
        "description": "Get an artifact for a published Blueprint.",
        "operationId": "PublishedArtifacts_Get",
        "parameters": [
          {
            "$ref": "#/parameters/ApiVersionParameter"
          },
          {
            "$ref": "#/parameters/ManagementGroupNameParameter"
          },
          {
            "$ref": "#/parameters/BlueprintNameParameter"
          },
          {
            "$ref": "#/parameters/PublishedBlueprintVersionIdParameter"
          },
          {
            "$ref": "#/parameters/ArtifactNameParameter"
          }
        ],
        "responses": {
          "200": {
            "description": "OK -- published artifact retrieved.",
            "schema": {
              "$ref": "#/definitions/Artifact"
            }
          }
        },
        "tags": [
          "PublishedArtifact"
        ],
        "x-ms-examples": {
          "ARMTemplateArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "storageTemplate",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management",
              "versionId": "V2"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/storageTemplate",
                  "kind": "template",
                  "name": "storageTemplate",
                  "properties": {
                    "parameters": {
                      "storageAccountType": {
                        "value": "[parameters('storageAccountType')]"
                      }
                    },
                    "resourceGroup": "storageRG",
                    "template": {
                      "contentVersion": "1.0.0.0",
                      "outputs": {
                        "storageAccountName": {
                          "type": "string",
                          "value": "[variables('storageAccountName')]"
                        }
                      },
                      "parameters": {
                        "storageAccountType": {
                          "allowedValues": [
                            "Standard_LRS",
                            "Standard_GRS",
                            "Standard_ZRS",
                            "Premium_LRS"
                          ],
                          "defaultValue": "Standard_LRS",
                          "metadata": {
                            "description": "Storage Account type"
                          },
                          "type": "string"
                        }
                      },
                      "resources": [
                        {
                          "apiVersion": "2016-01-01",
                          "kind": "Storage",
                          "location": "[resourceGroup().location]",
                          "name": "[variables('storageAccountName')]",
                          "properties": {},
                          "sku": {
                            "name": "[parameters('storageAccountType')]"
                          },
                          "type": "Microsoft.Storage/storageAccounts"
                        }
                      ],
                      "variables": {
                        "storageAccountName": "[concat(uniquestring(resourceGroup().id), 'standardsa')]"
                      }
                    }
                  },
                  "type": "Microsoft.Blueprint/blueprints/versions/artifacts"
                }
              }
            }
          },
          "PolicyAssignmentArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "costCenterPolicy",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management",
              "versionId": "V2"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/costCenterPolicy",
                  "kind": "policyAssignment",
                  "name": "costCenterPolicy",
                  "properties": {
                    "displayName": "force costCenter tag on all resources",
                    "parameters": {
                      "tagName": {
                        "value": "costCenter"
                      },
                      "tagValue": {
                        "value": "[parameter('costCenter')]"
                      }
                    },
                    "policyDefinitionId": "/providers/Microsoft.Authorization/policyDefinitions/1e30110a-5ceb-460c-a204-c1c3969c6d62"
                  },
                  "type": "Microsoft.Blueprint/blueprints/versions/artifacts"
                }
              }
            }
          },
          "RoleAssignmentArtifact": {
            "parameters": {
              "api-version": "2017-11-11-preview",
              "artifactName": "ownerAssignment",
              "blueprintName": "simpleBlueprint",
              "managementGroupName": "ContosoOnlineGroup",
              "managementGroupsNamespace": "Microsoft.Management",
              "versionId": "V2"
            },
            "responses": {
              "200": {
                "body": {
                  "id": "/providers/Microsoft.Management/managementGroups/ContosoOnlineGroup/providers/Microsoft.Blueprint/blueprints/simpleBlueprint/versions/V2/artifacts/ownerAssignment",
                  "kind": "roleAssignment",
                  "name": "ownerAssignment",
                  "properties": {
                    "displayName": "enforce owners of given subscription",
                    "principalIds": "[parameters('owners')]",
                    "roleDefinitionId": "/providers/Microsoft.Authorization/roleDefinitions/acdd72a7-3385-48ef-bd42-f606fba81ae7"
                  },
                  "type": "Microsoft.Blueprint/blueprints/versions/artifacts"
                }
              }
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Artifact": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureResourceBase"
        }
      ],
      "description": "Represents a Blueprint artifact.",
      "discriminator": "kind",
      "properties": {
        "kind": {
          "description": "Specifies the kind of Blueprint artifact.",
          "enum": [
            "template",
            "roleAssignment",
            "policyAssignment"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "ArtifactKind"
          }
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    },
    "ArtifactList": {
      "description": "List of Blueprint artifacts",
      "properties": {
        "nextLink": {
          "description": "Link to the next page of results.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "List of Blueprint artifacts.",
          "items": {
            "$ref": "#/definitions/Artifact"
          },
          "type": "array"
        }
      },
      "type": "object"
    },
    "ArtifactPropertiesBase": {
      "description": "Common properties shared by different artifacts.",
      "properties": {
        "dependsOn": {
          "description": "Artifacts which need to be deployed before the specified artifact.",
          "items": {
            "description": "ID of peer artifact.",
            "type": "string"
          },
          "type": "array"
        }
      },
      "type": "object",
      "x-ms-external": true
    },
    "AzureResourceBase": {
      "description": "Common properties for all Azure resources.",
      "properties": {
        "id": {
          "description": "String Id used to locate any resource on Azure.",
          "readOnly": true,
          "type": "string"
        },
        "name": {
          "description": "Name of this resource.",
          "readOnly": true,
          "type": "string"
        },
        "type": {
          "description": "Type of this resource.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-azure-resource": true
    },
    "Blueprint": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureResourceBase"
        }
      ],
      "description": "Represents a Blueprint definition.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/BlueprintProperties",
          "description": "Detailed properties for blueprint",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ],
      "type": "object"
    },
    "BlueprintList": {
      "description": "List of Blueprint definitions.",
      "properties": {
        "nextLink": {
          "description": "Link to the next page of results.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "List of Blueprint definitions.",
          "items": {
            "$ref": "#/definitions/Blueprint"
          },
          "type": "array"
        }
      },
      "title": "BlueprintList",
      "type": "object"
    },
    "BlueprintProperties": {
      "allOf": [
        {
          "$ref": "#/definitions/SharedBlueprintProperties"
        }
      ],
      "description": "Schema for Blueprint properties.",
      "properties": {
        "layout": {
          "description": "Layout view of the blueprint, for UI reference.",
          "type": "object"
        },
        "versions": {
          "description": "Published versions of this blueprint.",
          "type": "object"
        }
      },
      "required": [
        "targetScope"
      ],
      "type": "object",
      "x-ms-external": true
    },
    "BlueprintResourcePropertiesBase": {
      "description": "Shared properties between all Blueprint resources.",
      "properties": {
        "description": {
          "description": "Multi-line explain this resource.",
          "maxLength": 500,
          "type": "string"
        },
        "displayName": {
          "description": "One-liner string explain this resource.",
          "maxLength": 256,
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-external": true
    },
    "BlueprintResourceStatusBase": {
      "description": "Shared status properties between all Blueprint resources.",
      "properties": {
        "lastModified": {
          "description": "Last modified time of this blueprint.",
          "readOnly": true,
          "type": "string"
        },
        "timeCreated": {
          "description": "Creation time of this blueprint.",
          "readOnly": true,
          "type": "string"
        }
      },
      "type": "object"
    },
    "BlueprintStatus": {
      "allOf": [
        {
          "$ref": "#/definitions/BlueprintResourceStatusBase"
        }
      ],
      "description": "The status of the blueprint. This field is readonly.",
      "properties": {},
      "type": "object"
    },
    "ParameterDefinition": {
      "description": "Represent a parameter with constrains and metadata.",
      "properties": {
        "allowedValues": {
          "description": "Array of allowed values for this parameter.",
          "items": {
            "description": "Allowed value."
          },
          "type": "array"
        },
        "defaultValue": {
          "description": "Default Value for this parameter."
        },
        "metadata": {
          "$ref": "#/definitions/ParameterDefinitionMetadata",
          "description": "User-friendly properties for this parameter.",
          "x-ms-client-flatten": true
        },
        "type": {
          "description": "Allowed data types for Azure Resource Manager template parameters.",
          "enum": [
            "string",
            "array",
            "bool",
            "int",
            "object",
            "secureObject",
            "secureString"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "TemplateParameterType"
          }
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    },
    "ParameterDefinitionCollection": {
      "additionalProperties": {
        "$ref": "#/definitions/ParameterDefinition",
        "description": "named collection of parameter metadata."
      },
      "description": "A dictionary hold parameter name and it's metadata.",
      "properties": {},
      "type": "object"
    },
    "ParameterDefinitionMetadata": {
      "description": "User-friendly properties for this parameter.",
      "properties": {
        "description": {
          "description": "Description of this parameter/resourceGroup.",
          "maxLength": 500,
          "type": "string"
        },
        "displayName": {
          "description": "DisplayName of this parameter/resourceGroup.",
          "maxLength": 256,
          "type": "string"
        },
        "strongType": {
          "description": "StrongType for UI to render rich experience during assignment time.",
          "maxLength": 64,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ParameterValue": {
      "allOf": [
        {
          "$ref": "#/definitions/ParameterValueBase"
        }
      ],
      "description": "Value for the specified parameter.",
      "properties": {
        "value": {
          "description": "actual value."
        }
      },
      "required": [
        "value"
      ],
      "type": "object"
    },
    "ParameterValueBase": {
      "description": "Base class for ParameterValue.",
      "properties": {
        "description": {
          "description": "Optional property, just to establish ParameterValueBase as a BaseClass.",
          "type": "string"
        }
      },
      "type": "object"
    },
    "ParameterValueCollection": {
      "additionalProperties": {
        "$ref": "#/definitions/ParameterValueBase",
        "description": "keyValue pair of parameter fulfillment."
      },
      "description": "A dictionary for parameters and their corresponding values.",
      "properties": {},
      "type": "object"
    },
    "PolicyAssignmentArtifact": {
      "allOf": [
        {
          "$ref": "#/definitions/Artifact"
        }
      ],
      "description": "Blueprint artifact applies Policy assignments.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/PolicyAssignmentArtifactProperties",
          "description": "properties for policyAssignment Artifact",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ],
      "type": "object",
      "x-ms-discriminator-value": "policyAssignment"
    },
    "PolicyAssignmentArtifactProperties": {
      "allOf": [
        {
          "$ref": "#/definitions/BlueprintResourcePropertiesBase"
        },
        {
          "$ref": "#/definitions/ArtifactPropertiesBase"
        }
      ],
      "description": "PolicyAssignment properties",
      "properties": {
        "parameters": {
          "$ref": "#/definitions/ParameterValueCollection",
          "description": "Parameter values for the policy definition."
        },
        "policyDefinitionId": {
          "description": "Azure resource ID of the policy definition.",
          "type": "string"
        },
        "resourceGroup": {
          "description": "Name of the resource group placeholder to which the policy will be assigned.",
          "type": "string"
        }
      },
      "required": [
        "policyDefinitionId",
        "parameters"
      ],
      "type": "object"
    },
    "PublishedBlueprint": {
      "allOf": [
        {
          "$ref": "#/definitions/AzureResourceBase"
        }
      ],
      "description": "Represents a published Blueprint.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/PublishedBlueprintProperties",
          "description": "Detailed properties for published Blueprint",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ],
      "type": "object"
    },
    "PublishedBlueprintList": {
      "description": "List of published Blueprints",
      "properties": {
        "nextLink": {
          "description": "Link to the next page of results.",
          "readOnly": true,
          "type": "string"
        },
        "value": {
          "description": "List of published Blueprints.",
          "items": {
            "$ref": "#/definitions/PublishedBlueprint"
          },
          "type": "array"
        }
      },
      "title": "BlueprintList",
      "type": "object"
    },
    "PublishedBlueprintProperties": {
      "allOf": [
        {
          "$ref": "#/definitions/SharedBlueprintProperties"
        }
      ],
      "description": "Schema for published Blueprint properties.",
      "properties": {
        "blueprintName": {
          "description": "Name of the Blueprint definition.",
          "type": "string"
        },
        "changeNotes": {
          "description": "Version-specific change notes",
          "maxLength": 500,
          "type": "string"
        }
      },
      "type": "object",
      "x-ms-external": true
    },
    "ResourceGroupDefinition": {
      "description": "Represents an Azure resource group in a Blueprint definition.",
      "properties": {
        "dependsOn": {
          "description": "Artifacts which need to be deployed before this resource group.",
          "items": {
            "description": "Name of peer artifact.",
            "type": "string"
          },
          "type": "array"
        },
        "location": {
          "description": "Location of this resourceGroup, leave empty if the resource group location will be specified during the Blueprint assignment.",
          "maxLength": 90,
          "type": "string"
        },
        "metadata": {
          "$ref": "#/definitions/ParameterDefinitionMetadata",
          "description": "User-friendly properties for this resource group.",
          "x-ms-client-flatten": true
        },
        "name": {
          "description": "Name of this resourceGroup, leave empty if the resource group name will be specified during the Blueprint assignment.",
          "maxLength": 90,
          "minLength": 1,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ResourceGroupDefinitionCollection": {
      "additionalProperties": {
        "$ref": "#/definitions/ResourceGroupDefinition",
        "description": "named collection for resourceGroupDefinition"
      },
      "description": "A dictionary which maps resource group placeholders to the resource groups which will be created.",
      "properties": {},
      "type": "object"
    },
    "ResourceGroupValue": {
      "description": "Represents an Azure resource group.",
      "properties": {
        "location": {
          "description": "Location of the resource group",
          "type": "string"
        },
        "name": {
          "description": "Name of the resource group",
          "maxLength": 90,
          "minLength": 1,
          "type": "string"
        }
      },
      "type": "object"
    },
    "ResourceGroupValueCollection": {
      "additionalProperties": {
        "$ref": "#/definitions/ResourceGroupValue"
      },
      "description": "A dictionary which maps resource group placeholders to the resource groups which will be created.",
      "properties": {},
      "type": "object"
    },
    "ResourceProviderOperation": {
      "description": "Supported operation of this resource provider.",
      "properties": {
        "display": {
          "description": "Display metadata associated with the operation.",
          "properties": {
            "description": {
              "description": "Description of this operation.",
              "type": "string"
            },
            "operation": {
              "description": "Type of operation: get, read, delete, etc.",
              "type": "string"
            },
            "provider": {
              "description": "Resource provider: Microsoft Blueprint.",
              "type": "string"
            },
            "resource": {
              "description": "Resource on which the operation is performed.",
              "type": "string"
            }
          }
        },
        "name": {
          "description": "Operation name, in format of {provider}/{resource}/{operation}",
          "type": "string"
        }
      },
      "readOnly": true
    },
    "ResourceProviderOperationList": {
      "description": "Result of the request to list operations.",
      "properties": {
        "value": {
          "description": "List of operations supported by this resource provider.",
          "items": {
            "$ref": "#/definitions/ResourceProviderOperation"
          },
          "type": "array"
        }
      },
      "readOnly": true
    },
    "RoleAssignmentArtifact": {
      "allOf": [
        {
          "$ref": "#/definitions/Artifact"
        }
      ],
      "description": "Blueprint artifact applies Azure role assignment.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/RoleAssignmentArtifactProperties",
          "description": "Properties for roleAssignment artifact.",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ],
      "type": "object",
      "x-ms-discriminator-value": "roleAssignment"
    },
    "RoleAssignmentArtifactProperties": {
      "allOf": [
        {
          "$ref": "#/definitions/BlueprintResourcePropertiesBase"
        },
        {
          "$ref": "#/definitions/ArtifactPropertiesBase"
        }
      ],
      "description": "Properties of the Role assignment artifact.",
      "properties": {
        "principalIds": {
          "description": "Array of user or group identities in Azure Active Directory. The roleDefinition will apply to these identity."
        },
        "resourceGroup": {
          "description": "RoleAssignment will be scope to this resourceGroup, if left empty, it would scope to the subscription.",
          "type": "string"
        },
        "roleDefinitionId": {
          "description": "Azure resource ID of the RoleDefinition.",
          "type": "string"
        }
      },
      "required": [
        "roleDefinitionId",
        "principalIds"
      ],
      "type": "object"
    },
    "SecretReferenceParameterValue": {
      "allOf": [
        {
          "$ref": "#/definitions/ParameterValueBase"
        }
      ],
      "description": "The reference to a secret, if the parameter should be protected.",
      "properties": {
        "reference": {
          "$ref": "#/definitions/SecretValueReference",
          "description": "Specifies the reference."
        }
      },
      "required": [
        "reference"
      ],
      "type": "object"
    },
    "SecretValueReference": {
      "description": "Reference to a KeyVault secret.",
      "properties": {
        "keyVault": {
          "$ref": "#/definitions/keyVaultReference",
          "description": "Specifies the reference to a given Azure KeyVault."
        },
        "secretName": {
          "description": "Name of the secret.",
          "type": "string"
        },
        "secretVersion": {
          "description": "Version of the secret, (if there are multiple versions)",
          "type": "string"
        }
      },
      "required": [
        "keyVault",
        "secretName"
      ],
      "type": "object"
    },
    "SharedBlueprintProperties": {
      "allOf": [
        {
          "$ref": "#/definitions/BlueprintResourcePropertiesBase"
        }
      ],
      "description": "Shared Schema for both blueprintProperties and publishedBlueprintProperties.",
      "properties": {
        "parameters": {
          "$ref": "#/definitions/ParameterDefinitionCollection",
          "description": "Parameters required by this Blueprint definition."
        },
        "resourceGroups": {
          "$ref": "#/definitions/ResourceGroupDefinitionCollection",
          "description": "Resource group placeholders defined by this Blueprint definition."
        },
        "status": {
          "$ref": "#/definitions/BlueprintStatus",
          "description": "Status of the Blueprint. This field is readonly.",
          "readOnly": true
        },
        "targetScope": {
          "description": "The scope where this Blueprint can be applied.",
          "enum": [
            "subscription",
            "managementGroup"
          ],
          "type": "string",
          "x-ms-enum": {
            "modelAsString": true,
            "name": "BlueprintTargetScope"
          }
        }
      },
      "type": "object",
      "x-ms-external": true
    },
    "TemplateArtifact": {
      "allOf": [
        {
          "$ref": "#/definitions/Artifact"
        }
      ],
      "description": "Blueprint artifact deploys Azure resource manager template.",
      "properties": {
        "properties": {
          "$ref": "#/definitions/TemplateArtifactProperties",
          "description": "Properties for template artifact",
          "x-ms-client-flatten": true
        }
      },
      "required": [
        "properties"
      ],
      "type": "object",
      "x-ms-discriminator-value": "template"
    },
    "TemplateArtifactProperties": {
      "allOf": [
        {
          "$ref": "#/definitions/BlueprintResourcePropertiesBase"
        },
        {
          "$ref": "#/definitions/ArtifactPropertiesBase"
        }
      ],
      "description": "Properties of a Template Artifact.",
      "properties": {
        "parameters": {
          "$ref": "#/definitions/ParameterValueCollection",
          "description": "Template parameter values."
        },
        "resourceGroup": {
          "description": "If applicable, the name of the resource group placeholder to which the template will be deployed.",
          "type": "string"
        },
        "template": {
          "description": "The Azure Resource Manager template body.",
          "type": "object"
        }
      },
      "required": [
        "template",
        "parameters"
      ],
      "type": "object"
    },
    "keyVaultReference": {
      "description": "Specifies the link to a KeyVault.",
      "properties": {
        "id": {
          "description": "Azure resource ID of the KeyVault.",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "type": "object"
    }
  }
}