import { ResourceBase } from '../resource' ; import { Value , List } from '../dataTypes' ; export class Extensions { CertificatePolicies ? : List < PolicyInformation > ; ExtendedKeyUsage ? : List < ExtendedKeyUsage > ; KeyUsage ? : KeyUsage ; SubjectAlternativeNames ? : List < GeneralName > ; 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 PolicyInformation { CertPolicyId ! : Value < string > ; PolicyQualifiers ? : List < PolicyQualifierInfo > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class PolicyQualifierInfo { PolicyQualifierId ! : Value < string > ; Qualifier ! : Qualifier ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class Qualifier { CpsUri ! : 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 class ApiPassthrough { Extensions ? : Extensions ; Subject ? : Subject ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class EdiPartyName { PartyName ! : Value < string > ; NameAssigner ! : 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 Validity { Value ! : Value < number > ; Type ! : Value < string > ; constructor ( properties ) { Object . assign ( this , properties ) ; } } export class ExtendedKeyUsage { ExtendedKeyUsageType ? : Value < string > ; ExtendedKeyUsageObjectIdentifier ? : Value < string > ; 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 interface CertificateProperties { ApiPassthrough ? : ApiPassthrough ; CertificateAuthorityArn : Value < string > ; CertificateSigningRequest : Value < string > ; SigningAlgorithm : Value < string > ; TemplateArn ? : Value < string > ; Validity : Validity ; ValidityNotBefore ? : Validity ; } export default class Certificate extends ResourceBase < CertificateProperties > { static Extensions = Extensions ; static Subject = Subject ; static PolicyInformation = PolicyInformation ; static PolicyQualifierInfo = PolicyQualifierInfo ; static Qualifier = Qualifier ; static GeneralName = GeneralName ; static ApiPassthrough = ApiPassthrough ; static EdiPartyName = EdiPartyName ; static OtherName = OtherName ; static Validity = Validity ; static ExtendedKeyUsage = ExtendedKeyUsage ; static KeyUsage = KeyUsage ; constructor ( properties ) { super ( 'AWS::ACMPCA::Certificate' , properties ) ; } }