@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api AWS CloudHSM V2
@version 2017-04-28
@auth AWS SigV4
@endpoints 18
@toc root(18)

@endpoint POST /
@required {DestinationRegion: str, BackupId: str}
@optional {TagList: [Tag]}
@returns(200) {DestinationBackup: DestinationBackup?{CreateTimestamp: str(timestamp)?, SourceRegion: str?, SourceBackup: str?, SourceCluster: str?}}

@endpoint POST /
@required {HsmType: str, SubnetIds: [str]}
@optional {BackupRetentionPolicy: BackupRetentionPolicy, SourceBackupId: str, TagList: [Tag], Mode: str}
@returns(200) {Cluster: Cluster?{BackupPolicy: str?, BackupRetentionPolicy: BackupRetentionPolicy?{Type: str?, Value: str?}, ClusterId: str?, CreateTimestamp: str(timestamp)?, Hsms: [Hsm]?, HsmType: str?, PreCoPassword: str?, SecurityGroup: str?, SourceBackupId: str?, State: str?, StateMessage: str?, SubnetMapping: map<str,str>?, VpcId: str?, Certificates: Certificates?{ClusterCsr: str?, HsmCertificate: str?, AwsHardwareCertificate: str?, ManufacturerHardwareCertificate: str?, ClusterCertificate: str?}, TagList: [Tag]?, Mode: str?}}

@endpoint POST /
@required {ClusterId: str, AvailabilityZone: str}
@optional {IpAddress: str}
@returns(200) {Hsm: Hsm?{AvailabilityZone: str?, ClusterId: str?, SubnetId: str?, EniId: str?, EniIp: str?, HsmId: str, State: str?, StateMessage: str?}}

@endpoint POST /
@required {BackupId: str}
@returns(200) {Backup: Backup?{BackupId: str, BackupArn: str?, BackupState: str?, ClusterId: str?, CreateTimestamp: str(timestamp)?, CopyTimestamp: str(timestamp)?, NeverExpires: bool?, SourceRegion: str?, SourceBackup: str?, SourceCluster: str?, DeleteTimestamp: str(timestamp)?, TagList: [Tag]?, HsmType: str?, Mode: str?}}

@endpoint POST /
@required {ClusterId: str}
@returns(200) {Cluster: Cluster?{BackupPolicy: str?, BackupRetentionPolicy: BackupRetentionPolicy?{Type: str?, Value: str?}, ClusterId: str?, CreateTimestamp: str(timestamp)?, Hsms: [Hsm]?, HsmType: str?, PreCoPassword: str?, SecurityGroup: str?, SourceBackupId: str?, State: str?, StateMessage: str?, SubnetMapping: map<str,str>?, VpcId: str?, Certificates: Certificates?{ClusterCsr: str?, HsmCertificate: str?, AwsHardwareCertificate: str?, ManufacturerHardwareCertificate: str?, ClusterCertificate: str?}, TagList: [Tag]?, Mode: str?}}

@endpoint POST /
@required {ClusterId: str}
@optional {HsmId: str, EniId: str, EniIp: str}
@returns(200) {HsmId: str?}

@endpoint POST /
@optional {ResourceArn: str}
@returns(200) {ResourceArn: str?, Policy: str?}

@endpoint POST /
@optional {NextToken: str, MaxResults: int, Filters: map<str,[str]>, Shared: bool, SortAscending: bool}
@returns(200) {Backups: [Backup]?, NextToken: str?}

@endpoint POST /
@optional {Filters: map<str,[str]>, NextToken: str, MaxResults: int}
@returns(200) {Clusters: [Cluster]?, NextToken: str?}

@endpoint POST /
@optional {ResourceArn: str}
@returns(200) {Policy: str?}

@endpoint POST /
@required {ClusterId: str, SignedCert: str, TrustAnchor: str}
@returns(200) {State: str?, StateMessage: str?}

@endpoint POST /
@required {ResourceId: str}
@optional {NextToken: str, MaxResults: int}
@returns(200) {TagList: [Tag], NextToken: str?}

@endpoint POST /
@required {BackupId: str, NeverExpires: bool}
@returns(200) {Backup: Backup?{BackupId: str, BackupArn: str?, BackupState: str?, ClusterId: str?, CreateTimestamp: str(timestamp)?, CopyTimestamp: str(timestamp)?, NeverExpires: bool?, SourceRegion: str?, SourceBackup: str?, SourceCluster: str?, DeleteTimestamp: str(timestamp)?, TagList: [Tag]?, HsmType: str?, Mode: str?}}

@endpoint POST /
@required {BackupRetentionPolicy: BackupRetentionPolicy, ClusterId: str}
@returns(200) {Cluster: Cluster?{BackupPolicy: str?, BackupRetentionPolicy: BackupRetentionPolicy?{Type: str?, Value: str?}, ClusterId: str?, CreateTimestamp: str(timestamp)?, Hsms: [Hsm]?, HsmType: str?, PreCoPassword: str?, SecurityGroup: str?, SourceBackupId: str?, State: str?, StateMessage: str?, SubnetMapping: map<str,str>?, VpcId: str?, Certificates: Certificates?{ClusterCsr: str?, HsmCertificate: str?, AwsHardwareCertificate: str?, ManufacturerHardwareCertificate: str?, ClusterCertificate: str?}, TagList: [Tag]?, Mode: str?}}

@endpoint POST /
@optional {ResourceArn: str, Policy: str}
@returns(200) {ResourceArn: str?, Policy: str?}

@endpoint POST /
@required {BackupId: str}
@returns(200) {Backup: Backup?{BackupId: str, BackupArn: str?, BackupState: str?, ClusterId: str?, CreateTimestamp: str(timestamp)?, CopyTimestamp: str(timestamp)?, NeverExpires: bool?, SourceRegion: str?, SourceBackup: str?, SourceCluster: str?, DeleteTimestamp: str(timestamp)?, TagList: [Tag]?, HsmType: str?, Mode: str?}}

@endpoint POST /
@required {ResourceId: str, TagList: [Tag]}

@endpoint POST /
@required {ResourceId: str, TagKeyList: [str]}

@end
