{
  "version":"2.0",
  "metadata":{
    "apiVersion":"2014-05-30",
    "endpointPrefix":"cloudhsm",
    "jsonVersion":"1.1",
    "protocol":"json",
    "serviceAbbreviation":"CloudHSM",
    "serviceFullName":"Amazon CloudHSM",
    "signatureVersion":"v4",
    "targetPrefix":"CloudHsmFrontendService"
  },
  "operations":{
    "AddTagsToResource":{
      "name":"AddTagsToResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"AddTagsToResourceRequest"},
      "output":{"shape":"AddTagsToResourceResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "CreateHapg":{
      "name":"CreateHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateHapgRequest"},
      "output":{"shape":"CreateHapgResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "CreateHsm":{
      "name":"CreateHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateHsmRequest"},
      "output":{"shape":"CreateHsmResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "CreateLunaClient":{
      "name":"CreateLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"CreateLunaClientRequest"},
      "output":{"shape":"CreateLunaClientResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "DeleteHapg":{
      "name":"DeleteHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteHapgRequest"},
      "output":{"shape":"DeleteHapgResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "DeleteHsm":{
      "name":"DeleteHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteHsmRequest"},
      "output":{"shape":"DeleteHsmResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "DeleteLunaClient":{
      "name":"DeleteLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DeleteLunaClientRequest"},
      "output":{"shape":"DeleteLunaClientResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "DescribeHapg":{
      "name":"DescribeHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeHapgRequest"},
      "output":{"shape":"DescribeHapgResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "DescribeHsm":{
      "name":"DescribeHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeHsmRequest"},
      "output":{"shape":"DescribeHsmResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "DescribeLunaClient":{
      "name":"DescribeLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"DescribeLunaClientRequest"},
      "output":{"shape":"DescribeLunaClientResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "GetConfig":{
      "name":"GetConfig",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"GetConfigRequest"},
      "output":{"shape":"GetConfigResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ListAvailableZones":{
      "name":"ListAvailableZones",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListAvailableZonesRequest"},
      "output":{"shape":"ListAvailableZonesResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ListHapgs":{
      "name":"ListHapgs",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListHapgsRequest"},
      "output":{"shape":"ListHapgsResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ListHsms":{
      "name":"ListHsms",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListHsmsRequest"},
      "output":{"shape":"ListHsmsResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ListLunaClients":{
      "name":"ListLunaClients",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListLunaClientsRequest"},
      "output":{"shape":"ListLunaClientsResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ListTagsForResource":{
      "name":"ListTagsForResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ListTagsForResourceRequest"},
      "output":{"shape":"ListTagsForResourceResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ModifyHapg":{
      "name":"ModifyHapg",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ModifyHapgRequest"},
      "output":{"shape":"ModifyHapgResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ModifyHsm":{
      "name":"ModifyHsm",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ModifyHsmRequest"},
      "output":{"shape":"ModifyHsmResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    },
    "ModifyLunaClient":{
      "name":"ModifyLunaClient",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"ModifyLunaClientRequest"},
      "output":{"shape":"ModifyLunaClientResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"}
      ]
    },
    "RemoveTagsFromResource":{
      "name":"RemoveTagsFromResource",
      "http":{
        "method":"POST",
        "requestUri":"/"
      },
      "input":{"shape":"RemoveTagsFromResourceRequest"},
      "output":{"shape":"RemoveTagsFromResourceResponse"},
      "errors":[
        {"shape":"CloudHsmServiceException"},
        {"shape":"CloudHsmInternalException"},
        {"shape":"InvalidRequestException"}
      ]
    }
  },
  "shapes":{
    "AZ":{
      "type":"string",
      "pattern":"[a-zA-Z0-9\\-]*"
    },
    "AZList":{
      "type":"list",
      "member":{"shape":"AZ"}
    },
    "AddTagsToResourceRequest":{
      "type":"structure",
      "required":[
        "ResourceArn",
        "TagList"
      ],
      "members":{
        "ResourceArn":{"shape":"String"},
        "TagList":{"shape":"TagList"}
      }
    },
    "AddTagsToResourceResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{"shape":"String"}
      }
    },
    "Boolean":{"type":"boolean"},
    "Certificate":{
      "type":"string",
      "max":2400,
      "min":600,
      "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
    },
    "CloudHsmObjectState":{
      "type":"string",
      "enum":[
        "READY",
        "UPDATING",
        "DEGRADED"
      ]
    },
    "CloudHsmServiceException":{
      "type":"structure",
      "members":{
        "message":{"shape":"String"},
        "retryable":{"shape":"Boolean"}
      },
      "exception":true
    },
    "CreateHapgRequest":{
      "type":"structure",
      "required":["Label"],
      "members":{
        "Label":{"shape":"Label"}
      }
    },
    "CreateHapgResponse":{
      "type":"structure",
      "members":{
        "HapgArn":{"shape":"HapgArn"}
      }
    },
    "CreateHsmRequest":{
      "type":"structure",
      "required":[
        "SubnetId",
        "SshKey",
        "IamRoleArn",
        "SubscriptionType"
      ],
      "members":{
        "SubnetId":{
          "shape":"SubnetId",
          "locationName":"SubnetId"
        },
        "SshKey":{
          "shape":"SshKey",
          "locationName":"SshKey"
        },
        "EniIp":{
          "shape":"IpAddress",
          "locationName":"EniIp"
        },
        "IamRoleArn":{
          "shape":"IamRoleArn",
          "locationName":"IamRoleArn"
        },
        "ExternalId":{
          "shape":"ExternalId",
          "locationName":"ExternalId"
        },
        "SubscriptionType":{
          "shape":"SubscriptionType",
          "locationName":"SubscriptionType"
        },
        "ClientToken":{
          "shape":"ClientToken",
          "locationName":"ClientToken"
        },
        "SyslogIp":{
          "shape":"IpAddress",
          "locationName":"SyslogIp"
        }
      },
      "locationName":"CreateHsmRequest"
    },
    "CreateHsmResponse":{
      "type":"structure",
      "members":{
        "HsmArn":{"shape":"HsmArn"}
      }
    },
    "CreateLunaClientRequest":{
      "type":"structure",
      "required":["Certificate"],
      "members":{
        "Label":{"shape":"ClientLabel"},
        "Certificate":{"shape":"Certificate"}
      }
    },
    "CreateLunaClientResponse":{
      "type":"structure",
      "members":{
        "ClientArn":{"shape":"ClientArn"}
      }
    },
    "DeleteHapgRequest":{
      "type":"structure",
      "required":["HapgArn"],
      "members":{
        "HapgArn":{"shape":"HapgArn"}
      }
    },
    "DeleteHapgResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{"shape":"String"}
      }
    },
    "DeleteHsmRequest":{
      "type":"structure",
      "required":["HsmArn"],
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "locationName":"HsmArn"
        }
      },
      "locationName":"DeleteHsmRequest"
    },
    "DeleteHsmResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{"shape":"String"}
      }
    },
    "DeleteLunaClientRequest":{
      "type":"structure",
      "required":["ClientArn"],
      "members":{
        "ClientArn":{"shape":"ClientArn"}
      }
    },
    "DeleteLunaClientResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{"shape":"String"}
      }
    },
    "DescribeHapgRequest":{
      "type":"structure",
      "required":["HapgArn"],
      "members":{
        "HapgArn":{"shape":"HapgArn"}
      }
    },
    "DescribeHapgResponse":{
      "type":"structure",
      "members":{
        "HapgArn":{"shape":"HapgArn"},
        "HapgSerial":{"shape":"String"},
        "HsmsLastActionFailed":{"shape":"HsmList"},
        "HsmsPendingDeletion":{"shape":"HsmList"},
        "HsmsPendingRegistration":{"shape":"HsmList"},
        "Label":{"shape":"Label"},
        "LastModifiedTimestamp":{"shape":"Timestamp"},
        "PartitionSerialList":{"shape":"PartitionSerialList"},
        "State":{"shape":"CloudHsmObjectState"}
      }
    },
    "DescribeHsmRequest":{
      "type":"structure",
      "members":{
        "HsmArn":{"shape":"HsmArn"},
        "HsmSerialNumber":{"shape":"HsmSerialNumber"}
      }
    },
    "DescribeHsmResponse":{
      "type":"structure",
      "members":{
        "HsmArn":{"shape":"HsmArn"},
        "Status":{"shape":"HsmStatus"},
        "StatusDetails":{"shape":"String"},
        "AvailabilityZone":{"shape":"AZ"},
        "EniId":{"shape":"EniId"},
        "EniIp":{"shape":"IpAddress"},
        "SubscriptionType":{"shape":"SubscriptionType"},
        "SubscriptionStartDate":{"shape":"Timestamp"},
        "SubscriptionEndDate":{"shape":"Timestamp"},
        "VpcId":{"shape":"VpcId"},
        "SubnetId":{"shape":"SubnetId"},
        "IamRoleArn":{"shape":"IamRoleArn"},
        "SerialNumber":{"shape":"HsmSerialNumber"},
        "VendorName":{"shape":"String"},
        "HsmType":{"shape":"String"},
        "SoftwareVersion":{"shape":"String"},
        "SshPublicKey":{"shape":"SshKey"},
        "SshKeyLastUpdated":{"shape":"Timestamp"},
        "ServerCertUri":{"shape":"String"},
        "ServerCertLastUpdated":{"shape":"Timestamp"},
        "Partitions":{"shape":"PartitionList"}
      }
    },
    "DescribeLunaClientRequest":{
      "type":"structure",
      "members":{
        "ClientArn":{"shape":"ClientArn"},
        "CertificateFingerprint":{"shape":"CertificateFingerprint"}
      }
    },
    "DescribeLunaClientResponse":{
      "type":"structure",
      "members":{
        "ClientArn":{"shape":"ClientArn"},
        "Certificate":{"shape":"Certificate"},
        "CertificateFingerprint":{"shape":"CertificateFingerprint"},
        "LastModifiedTimestamp":{"shape":"Timestamp"},
        "Label":{"shape":"Label"}
      }
    },
    "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"},
        "ClientVersion":{"shape":"ClientVersion"},
        "HapgList":{"shape":"HapgList"}
      }
    },
    "GetConfigResponse":{
      "type":"structure",
      "members":{
        "ConfigType":{"shape":"String"},
        "ConfigFile":{"shape":"String"},
        "ConfigCred":{"shape":"String"}
      }
    },
    "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}"
    },
    "HsmList":{
      "type":"list",
      "member":{"shape":"HsmArn"}
    },
    "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
    },
    "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":{
      }
    },
    "ListAvailableZonesResponse":{
      "type":"structure",
      "members":{
        "AZList":{"shape":"AZList"}
      }
    },
    "ListHapgsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{"shape":"PaginationToken"}
      }
    },
    "ListHapgsResponse":{
      "type":"structure",
      "required":["HapgList"],
      "members":{
        "HapgList":{"shape":"HapgList"},
        "NextToken":{"shape":"PaginationToken"}
      }
    },
    "ListHsmsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{"shape":"PaginationToken"}
      }
    },
    "ListHsmsResponse":{
      "type":"structure",
      "members":{
        "HsmList":{"shape":"HsmList"},
        "NextToken":{"shape":"PaginationToken"}
      }
    },
    "ListLunaClientsRequest":{
      "type":"structure",
      "members":{
        "NextToken":{"shape":"PaginationToken"}
      }
    },
    "ListLunaClientsResponse":{
      "type":"structure",
      "required":["ClientList"],
      "members":{
        "ClientList":{"shape":"ClientList"},
        "NextToken":{"shape":"PaginationToken"}
      }
    },
    "ListTagsForResourceRequest":{
      "type":"structure",
      "required":["ResourceArn"],
      "members":{
        "ResourceArn":{"shape":"String"}
      }
    },
    "ListTagsForResourceResponse":{
      "type":"structure",
      "required":["TagList"],
      "members":{
        "TagList":{"shape":"TagList"}
      }
    },
    "ModifyHapgRequest":{
      "type":"structure",
      "required":["HapgArn"],
      "members":{
        "HapgArn":{"shape":"HapgArn"},
        "Label":{"shape":"Label"},
        "PartitionSerialList":{"shape":"PartitionSerialList"}
      }
    },
    "ModifyHapgResponse":{
      "type":"structure",
      "members":{
        "HapgArn":{"shape":"HapgArn"}
      }
    },
    "ModifyHsmRequest":{
      "type":"structure",
      "required":["HsmArn"],
      "members":{
        "HsmArn":{
          "shape":"HsmArn",
          "locationName":"HsmArn"
        },
        "SubnetId":{
          "shape":"SubnetId",
          "locationName":"SubnetId"
        },
        "EniIp":{
          "shape":"IpAddress",
          "locationName":"EniIp"
        },
        "IamRoleArn":{
          "shape":"IamRoleArn",
          "locationName":"IamRoleArn"
        },
        "ExternalId":{
          "shape":"ExternalId",
          "locationName":"ExternalId"
        },
        "SyslogIp":{
          "shape":"IpAddress",
          "locationName":"SyslogIp"
        }
      },
      "locationName":"ModifyHsmRequest"
    },
    "ModifyHsmResponse":{
      "type":"structure",
      "members":{
        "HsmArn":{"shape":"HsmArn"}
      }
    },
    "ModifyLunaClientRequest":{
      "type":"structure",
      "required":[
        "ClientArn",
        "Certificate"
      ],
      "members":{
        "ClientArn":{"shape":"ClientArn"},
        "Certificate":{"shape":"Certificate"}
      }
    },
    "ModifyLunaClientResponse":{
      "type":"structure",
      "members":{
        "ClientArn":{"shape":"ClientArn"}
      }
    },
    "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{6,12}"
    },
    "PartitionSerialList":{
      "type":"list",
      "member":{"shape":"PartitionSerial"}
    },
    "RemoveTagsFromResourceRequest":{
      "type":"structure",
      "required":[
        "ResourceArn",
        "TagKeyList"
      ],
      "members":{
        "ResourceArn":{"shape":"String"},
        "TagKeyList":{"shape":"TagKeyList"}
      }
    },
    "RemoveTagsFromResourceResponse":{
      "type":"structure",
      "required":["Status"],
      "members":{
        "Status":{"shape":"String"}
      }
    },
    "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"]
    },
    "Tag":{
      "type":"structure",
      "required":[
        "Key",
        "Value"
      ],
      "members":{
        "Key":{"shape":"TagKey"},
        "Value":{"shape":"TagValue"}
      }
    },
    "TagKey":{
      "type":"string",
      "max":128,
      "min":1
    },
    "TagKeyList":{
      "type":"list",
      "member":{"shape":"TagKey"}
    },
    "TagList":{
      "type":"list",
      "member":{"shape":"Tag"}
    },
    "TagValue":{
      "type":"string",
      "max":256,
      "min":0
    },
    "Timestamp":{
      "type":"string",
      "pattern":"\\d*"
    },
    "VpcId":{
      "type":"string",
      "pattern":"vpc-[0-9a-f]{8}"
    }
  }
}
