{
  "openapi": "3.0.1",
  "info": {
    "title": "SqlManagementClient",
    "description": "The Azure SQL Database management API provides a RESTful set of web APIs that interact with Azure SQL Database services to manage your databases. The API enables users to create, retrieve, update, and delete databases, servers, and other entities.",
    "version": "2017-10-01-preview"
  },
  "servers": [
    {
      "url": "https://management.azure.com/"
    }
  ],
  "paths": {
    "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Sql/managedInstances/{managedInstanceName}/tdeCertificates": {
      "post": {
        "tags": [
          "ManagedInstanceTdeCertificates"
        ],
        "description": "Creates a TDE certificate for a given server.",
        "operationId": "ManagedInstanceTdeCertificates_Create",
        "parameters": [
          {
            "name": "resourceGroupName",
            "in": "path",
            "description": "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "managedInstanceName",
            "in": "path",
            "description": "The name of the managed instance.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscriptionId",
            "in": "path",
            "description": "The subscription ID that identifies an Azure subscription.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "api-version",
            "in": "query",
            "description": "The API version to use for the request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The requested TDE certificate to be created or updated.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TdeCertificate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successfully created the TDE certificate."
          },
          "202": {
            "description": "Accepted"
          },
          "default": {
            "description": "*** Error Responses: ***\n\n * 400 MissingPrivateBlob - The private blob is missing.\n\n * 400 InvalidPrivateBlobOrPassword - Invalid private blob or password specified.\n\n * 400 InvalidResourceRequestBody - The resource or resource properties in the request body is empty or invalid.\n\n * 404 SubscriptionDoesNotHaveServer - The requested server was not found\n\n * 404 ResourceNotFound - The requested resource was not found."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "TdeCertificate": {
        "properties": {
          "properties": {
            "$ref": "#/components/schemas/TdeCertificateProperties"
          }
        },
        "description": "A TDE certificate that can be uploaded into a server.",
        "allOf": [
          {
            "description": "ARM proxy resource.",
            "allOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Resource ID.",
                    "readOnly": true
                  },
                  "name": {
                    "type": "string",
                    "description": "Resource name.",
                    "readOnly": true
                  },
                  "type": {
                    "type": "string",
                    "description": "Resource type.",
                    "readOnly": true
                  }
                },
                "description": "ARM resource."
              }
            ]
          }
        ]
      },
      "TdeCertificateProperties": {
        "required": [
          "privateBlob"
        ],
        "type": "object",
        "properties": {
          "certPassword": {
            "type": "string",
            "description": "The certificate password."
          },
          "privateBlob": {
            "type": "string",
            "description": "The base64 encoded certificate private blob."
          }
        },
        "description": "Properties of a TDE certificate."
      }
    },
    "parameters": {
      "ApiVersionParameter": {
        "name": "api-version",
        "in": "query",
        "description": "The API version to use for the request.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "BlobAuditingPolicyNameParameter": {
        "name": "blobAuditingPolicyName",
        "in": "path",
        "description": "The name of the blob auditing policy.",
        "required": true,
        "schema": {
          "type": "string",
          "enum": [
            "default"
          ]
        }
      },
      "DatabaseNameParameter": {
        "name": "databaseName",
        "in": "path",
        "description": "The name of the database.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ManagedInstanceNameParameter": {
        "name": "managedInstanceName",
        "in": "path",
        "description": "The name of the managed instance.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ResourceGroupParameter": {
        "name": "resourceGroupName",
        "in": "path",
        "description": "The name of the resource group that contains the resource. You can obtain this value from the Azure Resource Manager API or the portal.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "ServerNameParameter": {
        "name": "serverName",
        "in": "path",
        "description": "The name of the server.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SqlVirtualMachineContainerNameParameter": {
        "name": "sqlVirtualMachineContainerName",
        "in": "path",
        "description": "The name of the SqlVirtualMachineContainer.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SqlVirtualMachineInstanceNameParameter": {
        "name": "sqlVirtualMachineInstanceName",
        "in": "path",
        "description": "The name of the SqlVirtualMachineInstance.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "SubscriptionIdParameter": {
        "name": "subscriptionId",
        "in": "path",
        "description": "The subscription ID that identifies an Azure subscription.",
        "required": true,
        "schema": {
          "type": "string"
        }
      },
      "VirtualClusterNameParameter": {
        "name": "virtualClusterName",
        "in": "path",
        "description": "The name of the virtual cluster.",
        "required": true,
        "schema": {
          "type": "string"
        }
      }
    },
    "securitySchemes": {
      "azure_auth": {
        "type": "oauth2",
        "description": "Azure Active Directory OAuth2 Flow"
      }
    }
  }
}