swagger: "2.0"
schemes:
  - https
host: management.azure.com
info:
  description: The Azure management API provides a RESTful set of web services that interact with Azure Dedicated HSM RP.
  title: Azure Dedicated HSM Resource Provider
  version: 2018-10-31-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/hardwaresecuritymodules/resource-manager/Microsoft.HardwareSecurityModules/preview/2018-10-31-preview/dedicatedhsm.json
      version: "2.0"
  x-providerName: azure.com
  x-serviceName: hardwaresecuritymodules-dedicatedhsm
  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
  SubscriptionIdParameter:
    description: Subscription credentials which uniquely identify Microsoft Azure subscription. The subscription ID forms part of the URI for every service call.
    in: path
    name: subscriptionId
    required: true
    type: string
paths:
  "/subscriptions/{subscriptionId}/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs":
    get:
      description: The List operation gets information about the dedicated HSMs associated with the subscription.
      operationId: DedicatedHsm_ListBySubscription
      parameters:
        - description: Maximum number of results to return.
          format: int32
          in: query
          name: $top
          type: integer
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Get information about all dedicated HSMs in the specified subscription.
          schema:
            $ref: "#/definitions/DedicatedHsmListResult"
        default:
          description: The error response describing why the operation failed.
          schema:
            $ref: "#/definitions/DedicatedHsmError"
      tags:
        - DedicatedHsms
      x-ms-examples:
        List dedicated HSM devices in a subscription:
          parameters:
            api-version: 2018-10-31-preview
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                nextLink: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs?api-version=2018-10-31-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==
                value:
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm1
                    location: westus
                    name: hsm1
                    properties:
                      networkProfile:
                        networkInterfaces:
                          - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                            privateIpAddress: 1.0.0.1
                        subnet:
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                      provisioningState: Succeeded
                      stampId: stamp01
                      statusMessage: DedicatedHsm device is functional.
                    sku:
                      name: SafeNet Luna Network HSM A790
                    tags:
                      Dept: hsm
                      Environment: dogfood
                      Slice: A
                    type: Microsoft.HardwareSecurityModules/dedicatedHSMs
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm2
                    location: westus
                    name: hsm1
                    properties:
                      networkProfile:
                        networkInterfaces:
                          - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                            privateIpAddress: 1.0.0.2
                        subnet:
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                      provisioningState: Succeeded
                      stampId: stamp01
                      statusMessage: DedicatedHsm device is functional.
                    sku:
                      name: SafeNet Luna Network HSM A790
                    tags:
                      Dept: hsm
                      Environment: dogfood
                      Slice: B
                    type: Microsoft.HardwareSecurityModules/dedicatedHSMs
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs":
    get:
      description: The List operation gets information about the dedicated hsms associated with the subscription and within the specified resource group.
      operationId: DedicatedHsm_ListByResourceGroup
      parameters:
        - description: The name of the Resource Group to which the dedicated HSM belongs.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: Maximum number of results to return.
          format: int32
          in: query
          name: $top
          type: integer
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Get information about all dedicated HSMs in the specified resource group.
          schema:
            $ref: "#/definitions/DedicatedHsmListResult"
        default:
          description: The error response describing why the operation failed.
          schema:
            $ref: "#/definitions/DedicatedHsmError"
      tags:
        - DedicatedHsms
      x-ms-examples:
        List dedicated HSM devices in a resource group:
          parameters:
            api-version: 2018-10-31-preview
            resourceGroupName: hsm-group
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                nextLink: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs?api-version=2018-10-31-preview&$skiptoken=dmF1bHQtcGVza3ktanVyeS03MzA3Ng==
                value:
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm1
                    location: westus
                    name: hsm1
                    properties:
                      networkProfile:
                        networkInterfaces:
                          - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                            privateIpAddress: 1.0.0.1
                        subnet:
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                      provisioningState: Succeeded
                      stampId: stamp01
                      statusMessage: DedicatedHsm device is functional.
                    sku:
                      name: SafeNet Luna Network HSM A790
                    tags:
                      Dept: hsm
                      Environment: dogfood
                      Slice: A
                    type: Microsoft.HardwareSecurityModules/dedicatedHSMs
                  - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm2
                    location: westus
                    name: hsm1
                    properties:
                      networkProfile:
                        networkInterfaces:
                          - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                            privateIpAddress: 1.0.0.2
                        subnet:
                          id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                      provisioningState: Succeeded
                      stampId: stamp01
                      statusMessage: DedicatedHsm device is functional.
                    sku:
                      name: SafeNet Luna Network HSM A790
                    tags:
                      Dept: hsm
                      Environment: dogfood
                      Slice: B
                    type: Microsoft.HardwareSecurityModules/dedicatedHSMs
      x-ms-pageable:
        nextLinkName: nextLink
  "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/{name}":
    delete:
      description: Deletes the specified Azure Dedicated HSM.
      operationId: DedicatedHsm_Delete
      parameters:
        - description: The name of the Resource Group to which the dedicated HSM belongs.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated HSM to delete
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: OK Response.
        "202":
          description: Accepted
        "204":
          description: No Content
        default:
          description: The error response describing why the operation failed.
          schema:
            $ref: "#/definitions/DedicatedHsmError"
      tags:
        - DedicatedHsms
      x-ms-examples:
        Delete a dedicated HSM:
          parameters:
            api-version: 2018-10-31-preview
            name: hsm1
            resourceGroupName: hsm-group
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200": {}
            "202": {}
            "204": {}
      x-ms-long-running-operation: true
    get:
      description: Gets the specified Azure dedicated HSM.
      operationId: DedicatedHsm_Get
      parameters:
        - description: The name of the Resource Group to which the dedicated hsm belongs.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: The name of the dedicated HSM.
          in: path
          name: name
          required: true
          type: string
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Retrieved dedicated HSM
          schema:
            $ref: "#/definitions/DedicatedHsm"
        default:
          description: The error response describing why the operation failed.
          schema:
            $ref: "#/definitions/DedicatedHsmError"
      tags:
        - DedicatedHsms
      x-ms-examples:
        Get a dedicated HSM:
          parameters:
            api-version: 2018-10-31-preview
            name: hsm1
            resourceGroupName: hsm-group
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm1
                location: westus
                name: hsm1
                properties:
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                        privateIpAddress: 1.0.0.1
                    subnet:
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                  provisioningState: Succeeded
                  stampId: stamp01
                  statusMessage: DedicatedHsm device is functional.
                sku:
                  name: SafeNet Luna Network HSM A790
                tags:
                  Dept: hsm
                  Environment: dogfood
                  Slice: A
                type: Microsoft.HardwareSecurityModules/dedicatedHSMs
    patch:
      description: Update a dedicated HSM in the specified subscription.
      operationId: DedicatedHsm_Update
      parameters:
        - description: The name of the Resource Group to which the server belongs.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: Name of the dedicated HSM
          in: path
          name: name
          pattern: ^[a-zA-Z0-9-]{3,24}$
          required: true
          type: string
        - description: Parameters to patch the dedicated HSM
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DedicatedHsmPatchParameters"
          x-ms-client-flatten: true
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Patched dedicated HSM
          schema:
            $ref: "#/definitions/DedicatedHsm"
        default:
          description: The error response describing why the operation failed.
          schema:
            $ref: "#/definitions/DedicatedHsmError"
      tags:
        - DedicatedHsms
      x-ms-examples:
        Update an existing dedicated HSM:
          parameters:
            api-version: 2018-10-31-preview
            name: hsm1
            parameters:
              tags:
                Dept: hsm
                Environment: dogfood
                Slice: A
            resourceGroupName: hsm-group
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm1
                location: westus
                name: hsm1
                properties:
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                        privateIpAddress: 1.0.0.1
                    subnet:
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                  provisioningState: Succeeded
                  stampId: stamp01
                  statusMessage: DedicatedHsm device is functional.
                sku:
                  name: SafeNet Luna Network HSM A790
                tags:
                  Dept: hsm
                  Environment: dogfood
                  Slice: A
                type: Microsoft.HardwareSecurityModules/dedicatedHSMs
      x-ms-long-running-operation: true
    put:
      description: Create or Update a dedicated HSM in the specified subscription.
      operationId: DedicatedHsm_CreateOrUpdate
      parameters:
        - description: The name of the Resource Group to which the resource belongs.
          in: path
          name: resourceGroupName
          required: true
          type: string
        - description: Name of the dedicated Hsm
          in: path
          name: name
          pattern: ^[a-zA-Z0-9-]{3,24}$
          required: true
          type: string
        - description: Parameters to create or update the dedicated hsm
          in: body
          name: parameters
          required: true
          schema:
            $ref: "#/definitions/DedicatedHsm"
        - $ref: "#/parameters/ApiVersionParameter"
        - $ref: "#/parameters/SubscriptionIdParameter"
      responses:
        "200":
          description: Created dedicated HSM
          schema:
            $ref: "#/definitions/DedicatedHsm"
        "201":
          description: Created dedicated HSM
          schema:
            $ref: "#/definitions/DedicatedHsm"
        default:
          description: The error response describing why the operation failed.
          schema:
            $ref: "#/definitions/DedicatedHsmError"
      tags:
        - DedicatedHsms
      x-ms-examples:
        Create a new or update an existing dedicated HSM:
          parameters:
            api-version: 2018-10-31-preview
            name: hsm1
            parameters:
              location: westus
              properties:
                networkProfile:
                  networkInterfaces:
                    - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                      privateIpAddress: 1.0.0.1
                  subnet:
                    id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                stampId: stamp01
              sku:
                name: SafeNet Luna Network HSM A790
              tags:
                Dept: hsm
                Environment: dogfood
            resourceGroupName: hsm-group
            subscriptionId: 00000000-0000-0000-0000-000000000000
          responses:
            "200":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm1
                location: westus
                name: hsm1
                properties:
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                        privateIpAddress: 1.0.0.1
                    subnet:
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                  provisioningState: Succeeded
                  stampId: stamp01
                  statusMessage: DedicatedHsm device is functional.
                sku:
                  name: SafeNet Luna Network HSM A790
                tags:
                  Dept: hsm
                  Environment: dogfood
                type: Microsoft.HardwareSecurityModules/dedicatedHSMs
            "201":
              body:
                id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/hsm1
                location: westus
                name: hsm1
                properties:
                  networkProfile:
                    networkInterfaces:
                      - id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/networkInterfaces/hsm_vnic
                        privateIpAddress: 1.0.0.1
                    subnet:
                      id: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/hsm-group/providers/Microsoft.Network/virtualNetworks/stamp01/subnets/stamp01
                  provisioningState: Provisioning
                  stampId: stamp01
                  statusMessage: DedicatedHsm device is being provisioned.
                sku:
                  name: SafeNet Luna Network HSM A790
                tags:
                  Dept: hsm
                  Environment: dogfood
                type: Microsoft.HardwareSecurityModules/dedicatedHSMs
      x-ms-long-running-operation: true
definitions:
  ApiEntityReference:
    description: The API entity reference.
    properties:
      id:
        description: The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
        type: string
  DedicatedHsm:
    allOf:
      - $ref: "#/definitions/Resource"
    description: Resource information with extended details.
    properties:
      properties:
        $ref: "#/definitions/DedicatedHsmProperties"
        description: Properties of the dedicated HSM
        x-ms-client-flatten: true
    required:
      - location
      - sku
      - properties
  DedicatedHsmError:
    description: The error exception.
    properties:
      error:
        $ref: "#/definitions/Error"
        readOnly: true
  DedicatedHsmListResult:
    description: List of dedicated HSMs
    properties:
      nextLink:
        description: The URL to get the next set of dedicated hsms.
        type: string
      value:
        description: The list of dedicated HSMs.
        items:
          $ref: "#/definitions/DedicatedHsm"
        type: array
  DedicatedHsmPatchParameters:
    description: Patchable properties of the dedicated HSM
    properties:
      tags:
        additionalProperties:
          type: string
        description: Resource tags
        type: object
  DedicatedHsmProperties:
    description: Properties of the dedicated hsm
    properties:
      networkProfile:
        $ref: "#/definitions/NetworkProfile"
        description: Specifies the network interfaces of the dedicated hsm.
      provisioningState:
        description: Provisioning state.
        enum:
          - Succeeded
          - Provisioning
          - Allocating
          - Connecting
          - Failed
          - CheckingQuota
          - Deleting
        readOnly: true
        type: string
        x-ms-enum:
          modelAsString: true
          name: JsonWebKeyType
          values:
            - description: The dedicated HSM has been full provisioned.
              value: Succeeded
            - description: The dedicated HSM is currently being provisioned.
              value: Provisioning
            - description: A device is currently being allocated for the dedicated HSM resource.
              value: Allocating
            - description: The dedicated HSM is being connected to the virtual network.
              value: Connecting
            - description: Provisioning of the dedicated HSM has failed.
              value: Failed
            - description: Validating the subscription has sufficient quota to allocate a dedicated HSM device.
              value: CheckingQuota
            - description: The dedicated HSM is currently being deleted.
              value: Deleting
      stampId:
        description: This field will be used when RP does not support Availability zones.
        type: string
      statusMessage:
        description: Resource Status Message.
        readOnly: true
        type: string
  Error:
    description: The key vault server error.
    properties:
      code:
        description: The error code.
        readOnly: true
        type: string
      innererror:
        $ref: "#/definitions/Error"
        readOnly: true
        x-ms-client-name: innerError
      message:
        description: The error message.
        readOnly: true
        type: string
  NetworkInterface:
    description: The network interface definition.
    properties:
      id:
        description: The ARM resource id in the form of /subscriptions/{SubscriptionId}/resourceGroups/{ResourceGroupName}/...
        readOnly: true
        type: string
      privateIpAddress:
        description: Private Ip address of the interface
        type: string
  NetworkProfile:
    properties:
      networkInterfaces:
        description: Specifies the list of resource Ids for the network interfaces associated with the dedicated HSM.
        items:
          $ref: "#/definitions/NetworkInterface"
        type: array
      subnet:
        $ref: "#/definitions/ApiEntityReference"
        description: Specifies the identifier of the subnet.
  Resource:
    description: Dedicated HSM resource
    properties:
      id:
        description: The Azure Resource Manager resource ID for the dedicated HSM.
        readOnly: true
        type: string
      location:
        description: The supported Azure location where the dedicated HSM should be created.
        type: string
      name:
        description: The name of the dedicated HSM.
        readOnly: true
        type: string
      sku:
        $ref: "#/definitions/Sku"
        description: SKU details
      tags:
        additionalProperties:
          type: string
        description: Resource tags
        type: object
      type:
        description: The resource type of the dedicated HSM.
        readOnly: true
        type: string
      zones:
        description: The Dedicated Hsm zones.
        items:
          type: string
        type: array
    required:
      - location
    x-ms-azure-resource: true
  ResourceListResult:
    description: List of dedicated HSM resources.
    properties:
      nextLink:
        description: The URL to get the next set of dedicated HSM resources.
        type: string
      value:
        description: The list of dedicated HSM resources.
        items:
          $ref: "#/definitions/Resource"
        type: array
  Sku:
    properties:
      name:
        description: SKU of the dedicated HSM
        enum:
          - SafeNet Luna Network HSM A790
        type: string
