{
  "metadata":{
    "apiVersion":"2014-05-30",
    "endpointPrefix":"cloudhsm",
    "jsonVersion":"1.1",
    "serviceAbbreviation":"CloudHSM",
    "serviceFullName":"Amazon CloudHSM",
    "signatureVersion":"v4",
    "targetPrefix":"CloudHsmFrontendService",
    "protocol":"json"
  },
  "documentation":"<fullname>AWS CloudHSM Service</fullname>",
  "operations":{
    "CreateHapg":{
      "name":"CreateHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"CreateHapgRequest",
        "documentation":"<p>Contains the inputs for the <a>CreateHapgRequest</a> action.</p>"
      },
      "output":{
        "shape":"CreateHapgResponse",
        "documentation":"<p>Contains the output of the <a>CreateHAPartitionGroup</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Creates a high-availability partition group. A high-availability partition group is a group of partitions that spans multiple physical HSMs.</p>"
    },
    "CreateHsm":{
      "name":"CreateHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"CreateHsmRequest",
        "documentation":"<p>Contains the inputs for the <a>CreateHsm</a> action. </p>",
        "locationName":"CreateHsmRequest"
      },
      "output":{
        "shape":"CreateHsmResponse",
        "documentation":"<p>Contains the output of the <a>CreateHsm</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Creates an uninitialized HSM instance. Running this command provisions an HSM appliance and will result in charges to your AWS account for the HSM.</p>"
    },
    "CreateLunaClient":{
      "name":"CreateLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"CreateLunaClientRequest",
        "documentation":"<p>Contains the inputs for the <a>CreateLunaClient</a> action.</p>"
      },
      "output":{
        "shape":"CreateLunaClientResponse",
        "documentation":"<p>Contains the output of the <a>CreateLunaClient</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Creates an HSM client.</p>"
    },
    "DeleteHapg":{
      "name":"DeleteHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DeleteHapgRequest",
        "documentation":"<p>Contains the inputs for the <a>DeleteHapg</a> action.</p>"
      },
      "output":{
        "shape":"DeleteHapgResponse",
        "documentation":"<p>Contains the output of the <a>DeleteHapg</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Deletes a high-availability partition group.</p>"
    },
    "DeleteHsm":{
      "name":"DeleteHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DeleteHsmRequest",
        "documentation":"<p>Contains the inputs for the <a>DeleteHsm</a> action. </p>",
        "locationName":"DeleteHsmRequest"
      },
      "output":{
        "shape":"DeleteHsmResponse",
        "documentation":"<p>Contains the output of the <a>DeleteHsm</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Deletes an HSM. Once complete, this operation cannot be undone and your key material cannot be recovered.</p>"
    },
    "DeleteLunaClient":{
      "name":"DeleteLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteLunaClientRequest"},
      "output":{"shape":"DeleteLunaClientResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Deletes a client.</p>"
    },
    "DescribeHapg":{
      "name":"DescribeHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DescribeHapgRequest",
        "documentation":"<p>Contains the inputs for the <a>DescribeHapg</a> action.</p>"
      },
      "output":{
        "shape":"DescribeHapgResponse",
        "documentation":"<p>Contains the output of the <a>DescribeHapg</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Retrieves information about a high-availability partition group.</p>"
    },
    "DescribeHsm":{
      "name":"DescribeHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"DescribeHsmRequest",
        "documentation":"<p>Contains the inputs for the <a>DescribeHsm</a> action. </p>"
      },
      "output":{
        "shape":"DescribeHsmResponse",
        "documentation":"<p>Contains the output of the <a>DescribeHsm</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Retrieves information about an HSM. You can identify the HSM by its ARN or its serial number.</p>"
    },
    "DescribeLunaClient":{
      "name":"DescribeLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeLunaClientRequest"},
      "output":{"shape":"DescribeLunaClientResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Retrieves information about an HSM client.</p>"
    },
    "GetConfig":{
      "name":"GetConfig",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetConfigRequest"},
      "output":{"shape":"GetConfigResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Gets the configuration files necessary to connect to all high availability partition groups the client is associated with.</p>"
    },
    "ListAvailableZones":{
      "name":"ListAvailableZones",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ListAvailableZonesRequest",
        "documentation":"<p>Contains the inputs for the <a>ListAvailableZones</a> action. </p>"
      },
      "output":{"shape":"ListAvailableZonesResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Lists the Availability Zones that have available AWS CloudHSM capacity.</p>"
    },
    "ListHapgs":{
      "name":"ListHapgs",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListHapgsRequest"},
      "output":{"shape":"ListHapgsResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Lists the high-availability partition groups for the account.</p> <p>This operation supports pagination with the use of the <i>NextToken</i> member. If more results are available, the <i>NextToken</i> member of the response contains a token that you pass in the next call to <a>ListHapgs</a> to retrieve the next set of items.</p>"
    },
    "ListHsms":{
      "name":"ListHsms",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListHsmsRequest"},
      "output":{
        "shape":"ListHsmsResponse",
        "documentation":"<p>Contains the output of the <a>ListHsms</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Retrieves the identifiers of all of the HSMs provisioned for the current customer.</p> <p>This operation supports pagination with the use of the <i>NextToken</i> member. If more results are available, the <i>NextToken</i> member of the response contains a token that you pass in the next call to <a>ListHsms</a> to retrieve the next set of items.</p>"
    },
    "ListLunaClients":{
      "name":"ListLunaClients",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListLunaClientsRequest"},
      "output":{"shape":"ListLunaClientsResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Lists all of the clients.</p> <p>This operation supports pagination with the use of the <i>NextToken</i> member. If more results are available, the <i>NextToken</i> member of the response contains a token that you pass in the next call to <a>ListLunaClients</a> to retrieve the next set of items.</p>"
    },
    "ModifyHapg":{
      "name":"ModifyHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ModifyHapgRequest"},
      "output":{"shape":"ModifyHapgResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Modifies an existing high-availability partition group.</p>"
    },
    "ModifyHsm":{
      "name":"ModifyHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{
        "shape":"ModifyHsmRequest",
        "documentation":"<p>Contains the inputs for the <a>ModifyHsm</a> action. </p>",
        "locationName":"ModifyHsmRequest"
      },
      "output":{
        "shape":"ModifyHsmResponse",
        "documentation":"<p>Contains the output of the <a>ModifyHsm</a> action.</p>"
      },
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        },
        {
          "shape":"CloudHsmInternalException",
          "exception":true,
          "fault":true,
          "documentation":"<p>Indicates that an internal error occurred.</p>"
        },
        {
          "shape":"InvalidRequestException",
          "exception":true,
          "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
        }
      ],
      "documentation":"<p>Modifies an HSM.</p>"
    },
    "ModifyLunaClient":{
      "name":"ModifyLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ModifyLunaClientRequest"},
      "output":{"shape":"ModifyLunaClientResponse"},
      "errors":[
        {
          "shape":"CloudHsmServiceException",
          "exception":true,
          "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
        }
      ],
      "documentation":"<p>Modifies the certificate used by the client.</p> <p>This action can potentially start a workflow to install the new certificate on the client's HSMs.</p>"
    }
  },
  "shapes":{
    "AZ":{
      "type":"string",
      "pattern":"[a-zA-Z0-9\\-]*"
    },
    "AZList":{
      "type":"list",
      "member":{"shape":"AZ"}
    },
    "Boolean":{"type":"boolean"},
    "Certificate":{
      "type":"string",
      "min":600,
      "max":2400,
      "pattern":"[\\w :+=./\\n-]*"
    },
    "CertificateFingerprint":{
      "type":"string",
      "pattern":"([0-9a-fA-F][0-9a-fA-F]:){15}[0-9a-fA-F][0-9a-fA-F]"
    },
    "ClientArn":{
      "type":"string",
      "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:client-[0-9a-f]{8}"
    },
    "ClientLabel":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_.-]{2,64}"
    },
    "ClientList":{
      "type":"list",
      "member":{"shape":"ClientArn"}
    },
    "ClientToken":{
      "type":"string",
      "pattern":"[a-zA-Z0-9]{1,64}"
    },
    "ClientVersion":{
      "type":"string",
      "enum":[
        "5.1",
        "5.3"
      ]
    },
    "CloudHsmInternalException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "fault":true,
      "documentation":"<p>Indicates that an internal error occurred.</p>"
    },
    "CloudHsmObjectState":{
      "type":"string",
      "enum":[
        "READY",
        "UPDATING",
        "DEGRADED"
      ]
    },
    "CloudHsmServiceException":{
      "type":"structure",
      "members":{
        "message":{
          "shape":"String",
          "documentation":"<p>Additional information about the error.</p>"
        },
        "retryable":{
          "shape":"Boolean",
          "documentation":"<p>Indicates if the action can be retried.</p>"
        }
      },
      "exception":true,
      "documentation":"<p>Indicates that an exception occurred in the AWS CloudHSM service.</p>"
    },
    "CreateHapgRequest":{
      "type":"structure",
      "required":["Label"],
      "members":{
        "Label":{
          "shape":"Label",
          "documentation":"<p>The label of the new high-availability partition group.</p>"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>CreateHapgRequest</a> action.</p>"
    },
    "CreateHapgResponse":{
      "type":"structure",
      "members":{
        "HapgArn":{
          "shape":"HapgArn",
          "documentation":"<p>The ARN of the high-availability partition group.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>CreateHAPartitionGroup</a> action.</p>"
    },
    "CreateHsmRequest":{
      "type":"structure",
      "required":[
        "SubnetId",
        "SshKey",
        "IamRoleArn",
        "SubscriptionType"
      ],
      "members":{
        "SubnetId":{
          "shape":"SubnetId",
          "documentation":"<p>The identifier of the subnet in your VPC in which to place the HSM.</p>",
          "locationName":"SubnetId"
        },
        "SshKey":{
          "shape":"SshKey",
          "documentation":"<p>The SSH public key to install on the HSM.</p>",
          "locationName":"SshKey"
        },
        "EniIp":{
          "shape":"IpAddress",
          "documentation":"<p>The IP address to assign to the HSM's ENI.</p>",
          "locationName":"EniIp"
        },
        "IamRoleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The ARN of an IAM role to enable the AWS CloudHSM service to allocate an ENI on your behalf.</p>",
          "locationName":"IamRoleArn"
        },
        "ExternalId":{
          "shape":"ExternalId",
          "documentation":"<p>The external ID from <b>IamRoleArn</b>, if present.</p>",
          "locationName":"ExternalId"
        },
        "SubscriptionType":{
          "shape":"SubscriptionType",
          "documentation":"<p>The subscription type.</p>",
          "locationName":"SubscriptionType"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "documentation":"<p>A user-defined token to ensure idempotence. Subsequent calls to this action with the same token will be ignored.</p>",
          "locationName":"ClientToken"
        },
        "SyslogIp":{
          "shape":"IpAddress",
          "documentation":"<p>The IP address for the syslog monitoring server.</p>",
          "locationName":"SyslogIp"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>CreateHsm</a> action. </p>",
      "locationName":"CreateHsmRequest"
    },
    "CreateHsmResponse":{
      "type":"structure",
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "documentation":"<p>The ARN of the HSM.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>CreateHsm</a> action.</p>"
    },
    "CreateLunaClientRequest":{
      "type":"structure",
      "required":["Certificate"],
      "members":{
        "Label":{
          "shape":"ClientLabel",
          "documentation":"<p>The label for the client.</p>"
        },
        "Certificate":{
          "shape":"Certificate",
          "documentation":"<p>The contents of a Base64-Encoded X.509 v3 certificate to be installed on the HSMs used by this client.</p>"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>CreateLunaClient</a> action.</p>"
    },
    "CreateLunaClientResponse":{
      "type":"structure",
      "members":{
        "ClientArn":{
          "shape":"ClientArn",
          "documentation":"<p>The ARN of the client.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>CreateLunaClient</a> action.</p>"
    },
    "DeleteHapgRequest":{
      "type":"structure",
      "required":["HapgArn"],
      "members":{
        "HapgArn":{
          "shape":"HapgArn",
          "documentation":"<p>The ARN of the high-availability partition group to delete.</p>"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>DeleteHapg</a> action.</p>"
    },
    "DeleteHapgResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{
          "shape":"String",
          "documentation":"<p>The status of the action.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>DeleteHapg</a> action.</p>"
    },
    "DeleteHsmRequest":{
      "type":"structure",
      "required":["HsmArn"],
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "documentation":"<p>The ARN of the HSM to delete.</p>",
          "locationName":"HsmArn"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>DeleteHsm</a> action. </p>",
      "locationName":"DeleteHsmRequest"
    },
    "DeleteHsmResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{
          "shape":"String",
          "documentation":"<p>The status of the action.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>DeleteHsm</a> action.</p>"
    },
    "DeleteLunaClientRequest":{
      "type":"structure",
      "required":["ClientArn"],
      "members":{
        "ClientArn":{
          "shape":"ClientArn",
          "documentation":"<p>The ARN of the client to delete.</p>"
        }
      }
    },
    "DeleteLunaClientResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{
          "shape":"String",
          "documentation":"<p>The status of the action.</p>"
        }
      }
    },
    "DescribeHapgRequest":{
      "type":"structure",
      "required":["HapgArn"],
      "members":{
        "HapgArn":{
          "shape":"HapgArn",
          "documentation":"<p>The ARN of the high-availability partition group to describe.</p>"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>DescribeHapg</a> action.</p>"
    },
    "DescribeHapgResponse":{
      "type":"structure",
      "members":{
        "HapgArn":{
          "shape":"HapgArn",
          "documentation":"<p>The ARN of the high-availability partition group.</p>"
        },
        "HapgSerial":{
          "shape":"String",
          "documentation":"<p>The serial number of the high-availability partition group.</p>"
        },
        "HsmsLastActionFailed":{"shape":"HsmList"},
        "HsmsPendingDeletion":{"shape":"HsmList"},
        "HsmsPendingRegistration":{"shape":"HsmList"},
        "Label":{
          "shape":"Label",
          "documentation":"<p>The label for the high-availability partition group.</p>"
        },
        "LastModifiedTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time the high-availability partition group was last modified.</p>"
        },
        "PartitionSerialList":{
          "shape":"PartitionSerialList",
          "documentation":"<p>The list of partition serial numbers that belong to the high-availability partition group.</p>"
        },
        "State":{
          "shape":"CloudHsmObjectState",
          "documentation":"<p>The state of the high-availability partition group.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>DescribeHapg</a> action.</p>"
    },
    "DescribeHsmRequest":{
      "type":"structure",
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "documentation":"<p>The ARN of the HSM. Either the <i>HsmArn</i> or the <i>SerialNumber</i> parameter must be specified.</p>"
        },
        "HsmSerialNumber":{
          "shape":"HsmSerialNumber",
          "documentation":"<p>The serial number of the HSM. Either the <i>HsmArn</i> or the <i>HsmSerialNumber</i> parameter must be specified.</p>"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>DescribeHsm</a> action. </p>"
    },
    "DescribeHsmResponse":{
      "type":"structure",
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "documentation":"<p>The ARN of the HSM.</p>"
        },
        "Status":{
          "shape":"HsmStatus",
          "documentation":"<p>The status of the HSM.</p>"
        },
        "StatusDetails":{
          "shape":"String",
          "documentation":"<p>Contains additional information about the status of the HSM.</p>"
        },
        "AvailabilityZone":{
          "shape":"AZ",
          "documentation":"<p>The Availability Zone that the HSM is in.</p>"
        },
        "EniId":{
          "shape":"EniId",
          "documentation":"<p>The identifier of the elastic network interface (ENI) attached to the HSM.</p>"
        },
        "EniIp":{
          "shape":"IpAddress",
          "documentation":"<p>The IP address assigned to the HSM's ENI.</p>"
        },
        "SubscriptionType":{
          "shape":"SubscriptionType",
          "documentation":"<p>The subscription type.</p>"
        },
        "SubscriptionStartDate":{
          "shape":"Timestamp",
          "documentation":"<p>The subscription start date.</p>"
        },
        "SubscriptionEndDate":{
          "shape":"Timestamp",
          "documentation":"<p>The subscription end date.</p>"
        },
        "VpcId":{
          "shape":"VpcId",
          "documentation":"<p>The identifier of the VPC that the HSM is in.</p>"
        },
        "SubnetId":{
          "shape":"SubnetId",
          "documentation":"<p>The identifier of the subnet the HSM is in.</p>"
        },
        "IamRoleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The ARN of the IAM role assigned to the HSM.</p>"
        },
        "SerialNumber":{
          "shape":"HsmSerialNumber",
          "documentation":"<p>The serial number of the HSM.</p>"
        },
        "VendorName":{
          "shape":"String",
          "documentation":"<p>The name of the HSM vendor.</p>"
        },
        "HsmType":{
          "shape":"String",
          "documentation":"<p>The HSM model type.</p>"
        },
        "SoftwareVersion":{
          "shape":"String",
          "documentation":"<p>The HSM software version.</p>"
        },
        "SshPublicKey":{
          "shape":"SshKey",
          "documentation":"<p>The public SSH key.</p>"
        },
        "SshKeyLastUpdated":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time the SSH key was last updated.</p>"
        },
        "ServerCertUri":{
          "shape":"String",
          "documentation":"<p>The URI of the certificate server.</p>"
        },
        "ServerCertLastUpdated":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time the server certificate was last updated.</p>"
        },
        "Partitions":{
          "shape":"PartitionList",
          "documentation":"<p>The list of partitions on the HSM.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>DescribeHsm</a> action.</p>"
    },
    "DescribeLunaClientRequest":{
      "type":"structure",
      "members":{
        "ClientArn":{
          "shape":"ClientArn",
          "documentation":"<p>The ARN of the client.</p>"
        },
        "CertificateFingerprint":{
          "shape":"CertificateFingerprint",
          "documentation":"<p>The certificate fingerprint.</p>"
        }
      }
    },
    "DescribeLunaClientResponse":{
      "type":"structure",
      "members":{
        "ClientArn":{
          "shape":"ClientArn",
          "documentation":"<p>The ARN of the client.</p>"
        },
        "Certificate":{
          "shape":"Certificate",
          "documentation":"<p>The certificate installed on the HSMs used by this client.</p>"
        },
        "CertificateFingerprint":{
          "shape":"CertificateFingerprint",
          "documentation":"<p>The certificate fingerprint.</p>"
        },
        "LastModifiedTimestamp":{
          "shape":"Timestamp",
          "documentation":"<p>The date and time the client was last modified.</p>"
        },
        "Label":{
          "shape":"Label",
          "documentation":"<p>The label of the client.</p>"
        }
      }
    },
    "EniId":{
      "type":"string",
      "pattern":"eni-[0-9a-f]{8}"
    },
    "ExternalId":{
      "type":"string",
      "pattern":"[\\w :+=./-]*"
    },
    "GetConfigRequest":{
      "type":"structure",
      "required":[
        "ClientArn",
        "ClientVersion",
        "HapgList"
      ],
      "members":{
        "ClientArn":{
          "shape":"ClientArn",
          "documentation":"<p>The ARN of the client.</p>"
        },
        "ClientVersion":{
          "shape":"ClientVersion",
          "documentation":"<p>The client version.</p>"
        },
        "HapgList":{
          "shape":"HapgList",
          "documentation":"<p>A list of ARNs that identify the high-availability partition groups that are associated with the client.</p>"
        }
      }
    },
    "GetConfigResponse":{
      "type":"structure",
      "members":{
        "ConfigType":{
          "shape":"String",
          "documentation":"<p>The type of credentials.</p>"
        },
        "ConfigFile":{
          "shape":"String",
          "documentation":"<p>The chrystoki.conf configuration file.</p>"
        },
        "ConfigCred":{
          "shape":"String",
          "documentation":"<p>The certificate file containing the server.pem files of the HSMs.</p>"
        }
      }
    },
    "HapgArn":{
      "type":"string",
      "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:hapg-[0-9a-f]{8}"
    },
    "HapgList":{
      "type":"list",
      "member":{"shape":"HapgArn"}
    },
    "HsmArn":{
      "type":"string",
      "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:hsm-[0-9a-f]{8}",
      "documentation":"<p>An ARN that identifies an HSM.</p>"
    },
    "HsmList":{
      "type":"list",
      "member":{"shape":"HsmArn"},
      "documentation":"<p>Contains a list of ARNs that identify the HSMs.</p>"
    },
    "HsmSerialNumber":{
      "type":"string",
      "pattern":"\\d{1,16}"
    },
    "HsmStatus":{
      "type":"string",
      "enum":[
        "PENDING",
        "RUNNING",
        "UPDATING",
        "SUSPENDED",
        "TERMINATING",
        "TERMINATED",
        "DEGRADED"
      ]
    },
    "IamRoleArn":{
      "type":"string",
      "pattern":"arn:aws(-iso)?:iam::[0-9]{12}:role/[a-zA-Z0-9_\\+=,\\.\\-@]{1,64}"
    },
    "InvalidRequestException":{
      "type":"structure",
      "members":{
      },
      "exception":true,
      "documentation":"<p>Indicates that one or more of the request parameters are not valid.</p>"
    },
    "IpAddress":{
      "type":"string",
      "pattern":"\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}"
    },
    "Label":{
      "type":"string",
      "pattern":"[a-zA-Z0-9_.-]{1,64}"
    },
    "ListAvailableZonesRequest":{
      "type":"structure",
      "members":{
      },
      "documentation":"<p>Contains the inputs for the <a>ListAvailableZones</a> action. </p>"
    },
    "ListAvailableZonesResponse":{
      "type":"structure",
      "members":{
        "AZList":{
          "shape":"AZList",
          "documentation":"<p>The list of Availability Zones that have available AWS CloudHSM capacity.</p>"
        }
      }
    },
    "ListHapgsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The <i>NextToken</i> value from a previous call to <a>ListHapgs</a>. Pass null if this is the first call.</p>"
        }
      }
    },
    "ListHapgsResponse":{
      "type":"structure",
      "required":["HapgList"],
      "members":{
        "HapgList":{
          "shape":"HapgList",
          "documentation":"<p>The list of high-availability partition groups.</p>"
        },
        "NextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If not null, more results are available. Pass this value to <a>ListHapgs</a> to retrieve the next set of items.</p>"
        }
      }
    },
    "ListHsmsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The <i>NextToken</i> value from a previous call to <a>ListHsms</a>. Pass null if this is the first call.</p>"
        }
      }
    },
    "ListHsmsResponse":{
      "type":"structure",
      "members":{
        "HsmList":{
          "shape":"HsmList",
          "documentation":"<p>The list of ARNs that identify the HSMs.</p>"
        },
        "NextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If not null, more results are available. Pass this value to <a>ListHsms</a> to retrieve the next set of items.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>ListHsms</a> action.</p>"
    },
    "ListLunaClientsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>The <i>NextToken</i> value from a previous call to <a>ListLunaClients</a>. Pass null if this is the first call.</p>"
        }
      }
    },
    "ListLunaClientsResponse":{
      "type":"structure",
      "required":["ClientList"],
      "members":{
        "ClientList":{
          "shape":"ClientList",
          "documentation":"<p>The list of clients.</p>"
        },
        "NextToken":{
          "shape":"PaginationToken",
          "documentation":"<p>If not null, more results are available. Pass this to <a>ListLunaClients</a> to retrieve the next set of items.</p>"
        }
      }
    },
    "ModifyHapgRequest":{
      "type":"structure",
      "required":["HapgArn"],
      "members":{
        "HapgArn":{
          "shape":"HapgArn",
          "documentation":"<p>The ARN of the high-availability partition group to modify.</p>"
        },
        "Label":{
          "shape":"Label",
          "documentation":"<p>The new label for the high-availability partition group.</p>"
        },
        "PartitionSerialList":{
          "shape":"PartitionSerialList",
          "documentation":"<p>The list of partition serial numbers to make members of the high-availability partition group.</p>"
        }
      }
    },
    "ModifyHapgResponse":{
      "type":"structure",
      "members":{
        "HapgArn":{
          "shape":"HapgArn",
          "documentation":"<p>The ARN of the high-availability partition group.</p>"
        }
      }
    },
    "ModifyHsmRequest":{
      "type":"structure",
      "required":["HsmArn"],
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "documentation":"<p>The ARN of the HSM to modify.</p>",
          "locationName":"HsmArn"
        },
        "SubnetId":{
          "shape":"SubnetId",
          "documentation":"<p>The new identifier of the subnet that the HSM is in.</p>",
          "locationName":"SubnetId"
        },
        "EniIp":{
          "shape":"IpAddress",
          "documentation":"<p>The new IP address for the elastic network interface attached to the HSM.</p>",
          "locationName":"EniIp"
        },
        "IamRoleArn":{
          "shape":"IamRoleArn",
          "documentation":"<p>The new IAM role ARN.</p>",
          "locationName":"IamRoleArn"
        },
        "ExternalId":{
          "shape":"ExternalId",
          "documentation":"<p>The new external ID.</p>",
          "locationName":"ExternalId"
        },
        "SyslogIp":{
          "shape":"IpAddress",
          "documentation":"<p>The new IP address for the syslog monitoring server.</p>",
          "locationName":"SyslogIp"
        }
      },
      "documentation":"<p>Contains the inputs for the <a>ModifyHsm</a> action. </p>",
      "locationName":"ModifyHsmRequest"
    },
    "ModifyHsmResponse":{
      "type":"structure",
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "documentation":"<p>The ARN of the HSM.</p>"
        }
      },
      "documentation":"<p>Contains the output of the <a>ModifyHsm</a> action.</p>"
    },
    "ModifyLunaClientRequest":{
      "type":"structure",
      "required":[
        "ClientArn",
        "Certificate"
      ],
      "members":{
        "ClientArn":{
          "shape":"ClientArn",
          "documentation":"<p>The ARN of the client.</p>"
        },
        "Certificate":{
          "shape":"Certificate",
          "documentation":"<p>The new certificate for the client. </p>"
        }
      }
    },
    "ModifyLunaClientResponse":{
      "type":"structure",
      "members":{
        "ClientArn":{
          "shape":"ClientArn",
          "documentation":"<p>The ARN of the client.</p>"
        }
      }
    },
    "PaginationToken":{
      "type":"string",
      "pattern":"[a-zA-Z0-9+/]*"
    },
    "PartitionArn":{
      "type":"string",
      "pattern":"arn:aws(-iso)?:cloudhsm:[a-zA-Z0-9\\-]*:[0-9]{12}:hsm-[0-9a-f]{8}/partition-[0-9]{6,12}"
    },
    "PartitionList":{
      "type":"list",
      "member":{"shape":"PartitionArn"}
    },
    "PartitionSerial":{
      "type":"string",
      "pattern":"\\d{9}"
    },
    "PartitionSerialList":{
      "type":"list",
      "member":{"shape":"PartitionSerial"}
    },
    "SshKey":{
      "type":"string",
      "pattern":"[a-zA-Z0-9+/= ._:\\\\@-]*"
    },
    "String":{
      "type":"string",
      "pattern":"[\\w :+=./\\\\-]*"
    },
    "SubnetId":{
      "type":"string",
      "pattern":"subnet-[0-9a-f]{8}"
    },
    "SubscriptionType":{
      "type":"string",
      "enum":["PRODUCTION"]
    },
    "Timestamp":{
      "type":"string",
      "pattern":"\\d*"
    },
    "VpcId":{
      "type":"string",
      "pattern":"vpc-[0-9a-f]{8}"
    }
  }
}
