def main()

in site/usecase-7/code/create-certs.py [0:0]


def main():
    
    try:
        #boto3 Setups
        client = boto3.client('acm-pca')
        acmClient = boto3.client('acm')
        
        #Variables
        domainNames = ['hr.testdomain.com', 'dev.testdomain.com', 'prod.testdomain.com', 'finance.testdomain.com', 'intra.testdomain.com']
        numCerts = len(domainNames)
        #Get Subordinate CA information
        response = client.list_certificate_authorities(
            MaxResults=20
        )
        max = len(response['CertificateAuthorities'])
        for x in range(0, max):
            if response['CertificateAuthorities'][x]['Status'] == 'ACTIVE' and response['CertificateAuthorities'][x]['Type'] == 'SUBORDINATE':
                SubArn = str(response['CertificateAuthorities'][x]['Arn'])
        
        #Get Subordinate CA CSR
        csr = client.get_certificate_authority_csr(
            CertificateAuthorityArn=SubArn
        )
            
        #Generate private end entity certificates
        for x in range(0, numCerts):
            response = acmClient.request_certificate(
                DomainName=domainNames[x],
                IdempotencyToken= str(x),
                Options={
                    'CertificateTransparencyLoggingPreference': 'ENABLED'
                },
                CertificateAuthorityArn=SubArn
            )
            tagResponse = acmClient.add_tags_to_certificate(
                CertificateArn=response['CertificateArn'],
                Tags=[
                    {
                        'Key': 'project',
                        'Value': 'applicationV1'
                    },
                ]
            )
            print(response['CertificateArn'])
        print('Certificates created. Navigate to ACM Console.')
    except:
        print("Unexpected error:", sys.exc_info()[0])
        raise