import { ResourceBase , ResourceTag } from '../resource' ; import { Value , List } from '../dataTypes' ; export class RevocationConfiguration { CrlConfiguration ? : CrlConfiguration ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class KeyUsage { DigitalSignature ? : Value < boolean > ; NonRepudiation ? : Value < boolean > ; KeyEncipherment ? : Value < boolean > ; DataEncipherment ? : Value < boolean > ; KeyAgreement ? : Value < boolean > ; KeyCertSign ? : Value < boolean > ; CRLSign ? : Value < boolean > ; EncipherOnly ? : Value < boolean > ; DecipherOnly ? : Value < boolean > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CsrExtensions { KeyUsage ? : KeyUsage ; SubjectInformationAccess ? : List < AccessDescription > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AccessDescription { AccessMethod ! : AccessMethod ; AccessLocation ! : GeneralName ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EdiPartyName { PartyName ! : Value < string > ; NameAssigner ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Subject { Country ? : Value < string > ; Organization ? : Value < string > ; OrganizationalUnit ? : Value < string > ; DistinguishedNameQualifier ? : Value < string > ; State ? : Value < string > ; CommonName ? : Value < string > ; SerialNumber ? : Value < string > ; Locality ? : Value < string > ; Title ? : Value < string > ; Surname ? : Value < string > ; GivenName ? : Value < string > ; Initials ? : Value < string > ; Pseudonym ? : Value < string > ; GenerationQualifier ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class AccessMethod { CustomObjectIdentifier ? : Value < string > ; AccessMethodType ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class OtherName { TypeId ! : Value < string > ; Value ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class CrlConfiguration { Enabled ? : Value < boolean > ; ExpirationInDays ? : Value < number > ; CustomCname ? : Value < string > ; S3BucketName ? : Value < string > ; S3ObjectAcl ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class GeneralName { OtherName ? : OtherName ; Rfc822Name ? : Value < string > ; DnsName ? : Value < string > ; DirectoryName ? : Subject ; EdiPartyName ? : EdiPartyName ; UniformResourceIdentifier ? : Value < string > ; IpAddress ? : Value < string > ; RegisteredId ? : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export interface CertificateAuthorityProperties { Type : Value < string > ; KeyAlgorithm : Value < string > ; SigningAlgorithm : Value < string > ; Subject : Subject ; RevocationConfiguration ? : RevocationConfiguration ; Tags ? : List < ResourceTag > ; CsrExtensions ? : CsrExtensions ; KeyStorageSecurityStandard ? : Value < string > ; } export default class CertificateAuthority extends ResourceBase < CertificateAuthorityProperties > { static RevocationConfiguration = RevocationConfiguration ; static KeyUsage = KeyUsage ; static CsrExtensions = CsrExtensions ; static AccessDescription = AccessDescription ; static EdiPartyName = EdiPartyName ; static Subject = Subject ; static AccessMethod = AccessMethod ; static OtherName = OtherName ; static CrlConfiguration = CrlConfiguration ; static GeneralName = GeneralName ; constructor ( properties ) { super ( 'AWS::ACMPCA::CertificateAuthority' , properties ) ; } }