int main()

in cpp/example_code/acm/acm_basic_operations.cpp [1198:1461]


int main(int argc, char* argv[])
{
    const char* PROGRAM_NAME = "run_acm_basic_operations";

    if (argc == 1 || (strcmp(argv[1], "--help") == 0))
    {
        PrintUsage(PROGRAM_NAME);

        return 1;
    }

    Aws::SDKOptions options;
    Aws::InitAPI(options);
    {
        if (strcmp(argv[1], "--add-tag") == 0)
        {
            if (argc != 6)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --add-tag <certificate ARN> <tag key> <tag value> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME << 
                    " --add-tag arn:aws:acm:us-east-1:111111111111:certificate/62a108dc-0b56-49a9-a258-dc022EXAMPLE my-key my-value us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::AddTagToCertificate(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/62a108dc-0b56-49a9-a258-dc022EXAMPLE".
                argv[3],  // For example, "my-key".
                argv[4],  // For example, "my-value".
                argv[5])) // For example, "us-east-1".
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--delete") == 0)
        {
            if (argc != 4)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --delete <certificate ARN> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME << 
                    " --delete arn:aws:acm:us-east-1:111111111111:certificate/d431cfe8-e627-45fb-9d6a-4410fEXAMPLE us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::DeleteCertificate(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/d431cfe8-e627-45fb-9d6a-4410fEXAMPLE".
                argv[3])) // For example, "us-east-1".
            {
                return 1;
            }
        }        
        else if (strcmp(argv[1], "--describe") == 0)
        {
            if (argc != 4)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --describe <certificate ARN> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME <<
                    " --describe arn:aws:acm:us-east-1:111111111111:certificate/62a108dc-0b56-49a9-a258-dc022EXAMPLE us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::DescribeCertificate(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/62a108dc-0b56-49a9-a258-dc022EXAMPLE".
                argv[3])) // For example, "us-east-1".
            {
                return 1;
            }
        }        
        else if (strcmp(argv[1], "--export") == 0)
        {
            if (argc != 4)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --export <certificate ARN> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME <<
                    " --export arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::ExportCertificate(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
                argv[3])) // For example, "us-east-1".
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--get") == 0)
        {
            if (argc != 4)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --get <certificate ARN> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME <<
                    " --get arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::GetCertificate(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
                argv[3])) // For example, "us-east-1". 
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--import") == 0)
        {
            if (argc != 7)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --import <certificate file> <private key file> <certificate chain file> <region> [certificate ARN]" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME << " --import Certificate.txt decrypted_private_key.txt Certificate_chain.txt us-east-1 arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE" << std::endl;

                return 1;
            }
            
            if (!AwsDoc::ACM::ImportCertificate(
                argv[2],  // For example, "Certificate.txt".
                argv[3],  // For example, "decrypted_private_key.txt". 
                argv[4],  // For example, "Certificate_chain.txt".
                argv[5],  // For example, "us-east-1". 
                argv[6])) // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--list") == 0)
        {
            if (argc != 3)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --list <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME <<
                    " --list us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::ListCertificates(
                argv[2])) // For example, "us-east-1". 
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--list-tags") == 0)
        {
            if (argc != 4)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --list-tags <certificate ARN> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME <<
                    " --list-tags arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::ListTagsForCertificate(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
                argv[3])) // For example, "us-east-1". 
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--remove-tag") == 0)
        {
            if (argc != 5)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --remove-tag  <certificate ARN> <tag key> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME <<
                    " --remove-tag arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE my-key us-east-1" << std::endl; 
                
                return 1;
            }

            if (!AwsDoc::ACM::RemoveTagFromCertificate(
                    argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
                    argv[3],  // For example, "my-key". 
                    argv[4])) // For example, "us-east-1". 
                {
                    return 1;
                }
        }
        else if (strcmp(argv[1], "--renew") == 0)
        {
            if (argc != 4)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --renew <certificate ARN> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME <<
                    " --renew arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE us-east-1" << std::endl;

                return 1;
            }
        
            if (!AwsDoc::ACM::RenewCertificate(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
                argv[3])) // For example, "us-east-1". 
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--request") == 0)
        {
            if (argc != 5)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --request <domain name> <idempotency token> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME << " --request www.example.com 54321 us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::RequestCertificate(
                argv[2],  // For example, "www.example.com".
                argv[3],  // For example, "54321".
                argv[4])) // For example, "us-east-1".
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--resend") == 0)
        {
            if (argc != 6)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --resend <certificate ARN> <domain name> <validation domain name> <region>" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME << " --resend arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE www.example.com www.example.com us-east-1" << std::endl;

                return 1;
            }

            if (!AwsDoc::ACM::ResendValidationEmail(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
                argv[3],  // For example, "www.example.com".
                argv[4],  // For example, "www.example.com".
                argv[5])) // For example, "us-east-1".
            {
                return 1;
            }
        }
        else if (strcmp(argv[1], "--update") == 0)
        {
            if (argc != 5)
            {
                std::cout << "Usage: " << PROGRAM_NAME << " --update <certificate ARN> <region> [logging-enabled | logging-disabled]" << std::endl;
                std::cout << "Example: " << PROGRAM_NAME << " --update arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE us-east-1 logging-enabled" << std::endl;

                return 1;
            }
            
            if (!AwsDoc::ACM::UpdateCertificateOption(
                argv[2],  // For example, "arn:aws:acm:us-east-1:111111111111:certificate/9301d141-c7f8-4b02-9fb7-78eb2EXAMPLE".
                argv[3],  // For example, "us-east-1".
                argv[4])) // For example, "logging-enabled". 
            {
                return 1;
            }
        }
        else
        {
            PrintUsage(PROGRAM_NAME);

            return 1;
        }
    }
    Aws::ShutdownAPI(options);
    
    return 0;
}