Struct aws_sdk_acm::client::Client

source ·
pub struct Client { /* private fields */ }
Expand description

Client for AWS Certificate Manager

Client for invoking operations on AWS Certificate Manager. Each operation on AWS Certificate Manager is a method on this this struct. .send() MUST be invoked on the generated operations to dispatch the request to the service.

§Constructing a Client

A Config is required to construct a client. For most use cases, the aws-config crate should be used to automatically resolve this config using aws_config::load_from_env(), since this will resolve an SdkConfig which can be shared across multiple different AWS SDK clients. This config resolution process can be customized by calling aws_config::from_env() instead, which returns a ConfigLoader that uses the builder pattern to customize the default config.

In the simplest case, creating a client looks as follows:

let config = aws_config::load_from_env().await;
let client = aws_sdk_acm::Client::new(&config);

Occasionally, SDKs may have additional service-specific values that can be set on the Config that is absent from SdkConfig, or slightly different settings for a specific client may be desired. The Config struct implements From<&SdkConfig>, so setting these specific settings can be done as follows:

let sdk_config = ::aws_config::load_from_env().await;
let config = aws_sdk_acm::config::Builder::from(&sdk_config)
    .some_service_specific_setting("value")
    .build();

See the aws-config docs and Config for more information on customizing configuration.

Note: Client construction is expensive due to connection thread pool initialization, and should be done once at application start-up.

§Using the Client

A client has a function for every operation that can be performed by the service. For example, the AddTagsToCertificate operation has a Client::add_tags_to_certificate, function which returns a builder for that operation. The fluent builder ultimately has a send() function that returns an async future that returns a result, as illustrated below:

let result = client.add_tags_to_certificate()
    .certificate_arn("example")
    .send()
    .await;

The underlying HTTP requests that get made by this can be modified with the customize_operation function on the fluent builder. See the customize module for more information.

§Waiters

This client provides wait_until methods behind the Waiters trait. To use them, simply import the trait, and then call one of the wait_until methods. This will return a waiter fluent builder that takes various parameters, which are documented on the builder type. Once parameters have been provided, the wait method can be called to initiate waiting.

For example, if there was a wait_until_thing method, it could look like:

let result = client.wait_until_thing()
    .thing_id("someId")
    .wait(Duration::from_secs(120))
    .await;

Implementations§

source§

impl Client

source

pub fn add_tags_to_certificate(&self) -> AddTagsToCertificateFluentBuilder

Constructs a fluent builder for the AddTagsToCertificate operation.

source§

impl Client

source

pub fn delete_certificate(&self) -> DeleteCertificateFluentBuilder

Constructs a fluent builder for the DeleteCertificate operation.

source§

impl Client

source

pub fn describe_certificate(&self) -> DescribeCertificateFluentBuilder

Constructs a fluent builder for the DescribeCertificate operation.

source§

impl Client

source

pub fn export_certificate(&self) -> ExportCertificateFluentBuilder

Constructs a fluent builder for the ExportCertificate operation.

source§

impl Client

source

pub fn get_account_configuration(&self) -> GetAccountConfigurationFluentBuilder

Constructs a fluent builder for the GetAccountConfiguration operation.

source§

impl Client

source

pub fn get_certificate(&self) -> GetCertificateFluentBuilder

Constructs a fluent builder for the GetCertificate operation.

source§

impl Client

source

pub fn import_certificate(&self) -> ImportCertificateFluentBuilder

Constructs a fluent builder for the ImportCertificate operation.

source§

impl Client

source

pub fn list_certificates(&self) -> ListCertificatesFluentBuilder

Constructs a fluent builder for the ListCertificates operation. This operation supports pagination; See into_paginator().

source§

impl Client

source

pub fn list_tags_for_certificate(&self) -> ListTagsForCertificateFluentBuilder

Constructs a fluent builder for the ListTagsForCertificate operation.

source§

impl Client

source

pub fn put_account_configuration(&self) -> PutAccountConfigurationFluentBuilder

Constructs a fluent builder for the PutAccountConfiguration operation.

source§

impl Client

source

pub fn remove_tags_from_certificate( &self ) -> RemoveTagsFromCertificateFluentBuilder

Constructs a fluent builder for the RemoveTagsFromCertificate operation.

source§

impl Client

source

pub fn renew_certificate(&self) -> RenewCertificateFluentBuilder

Constructs a fluent builder for the RenewCertificate operation.

source§

impl Client

source

pub fn request_certificate(&self) -> RequestCertificateFluentBuilder

Constructs a fluent builder for the RequestCertificate operation.

  • The fluent builder is configurable:
    • domain_name(impl Into<String>) / set_domain_name(Option<String>):
      required: true

      Fully qualified domain name (FQDN), such as www.example.com, that you want to secure with an ACM certificate. Use an asterisk (*) to create a wildcard certificate that protects several sites in the same domain. For example, *.example.com protects www.example.com, site.example.com, and images.example.com.

      In compliance with RFC 5280, the length of the domain name (technically, the Common Name) that you provide cannot exceed 64 octets (characters), including periods. To add a longer domain name, specify it in the Subject Alternative Name field, which supports names up to 253 octets in length.


    • validation_method(ValidationMethod) / set_validation_method(Option<ValidationMethod>):
      required: false

      The method you want to use if you are requesting a public certificate to validate that you own or control domain. You can validate with DNS or validate with email. We recommend that you use DNS validation.


    • subject_alternative_names(impl Into<String>) / set_subject_alternative_names(Option<Vec::<String>>):
      required: false

      Additional FQDNs to be included in the Subject Alternative Name extension of the ACM certificate. For example, add the name www.example.net to a certificate for which the DomainName field is www.example.com if users can reach your site by using either name. The maximum number of domain names that you can add to an ACM certificate is 100. However, the initial quota is 10 domain names. If you need more than 10 names, you must request a quota increase. For more information, see Quotas.

      The maximum length of a SAN DNS name is 253 octets. The name is made up of multiple labels separated by periods. No label can be longer than 63 octets. Consider the following examples:

      • (63 octets).(63 octets).(63 octets).(61 octets) is legal because the total length is 253 octets (63+1+63+1+63+1+61) and no label exceeds 63 octets.

      • (64 octets).(63 octets).(63 octets).(61 octets) is not legal because the total length exceeds 253 octets (64+1+63+1+63+1+61) and the first label exceeds 63 octets.

      • (63 octets).(63 octets).(63 octets).(62 octets) is not legal because the total length of the DNS name (63+1+63+1+63+1+62) exceeds 253 octets.


    • idempotency_token(impl Into<String>) / set_idempotency_token(Option<String>):
      required: false

      Customer chosen string that can be used to distinguish between calls to RequestCertificate. Idempotency tokens time out after one hour. Therefore, if you call RequestCertificate multiple times with the same idempotency token within one hour, ACM recognizes that you are requesting only one certificate and will issue only one. If you change the idempotency token for each call, ACM recognizes that you are requesting multiple certificates.


    • domain_validation_options(DomainValidationOption) / set_domain_validation_options(Option<Vec::<DomainValidationOption>>):
      required: false

      The domain name that you want ACM to use to send you emails so that you can validate domain ownership.


    • options(CertificateOptions) / set_options(Option<CertificateOptions>):
      required: false

      Currently, you can use this parameter to specify whether to add the certificate to a certificate transparency log. Certificate transparency makes it possible to detect SSL/TLS certificates that have been mistakenly or maliciously issued. Certificates that have not been logged typically produce an error message in a browser. For more information, see Opting Out of Certificate Transparency Logging.


    • certificate_authority_arn(impl Into<String>) / set_certificate_authority_arn(Option<String>):
      required: false

      The Amazon Resource Name (ARN) of the private certificate authority (CA) that will be used to issue the certificate. If you do not provide an ARN and you are trying to request a private certificate, ACM will attempt to issue a public certificate. For more information about private CAs, see the Amazon Web Services Private Certificate Authority user guide. The ARN must have the following form:

      arn:aws:acm-pca:region:account:certificate-authority/12345678-1234-1234-1234-123456789012


    • tags(Tag) / set_tags(Option<Vec::<Tag>>):
      required: false

      One or more resource tags to associate with the certificate.


    • key_algorithm(KeyAlgorithm) / set_key_algorithm(Option<KeyAlgorithm>):
      required: false

      Specifies the algorithm of the public and private key pair that your certificate uses to encrypt data. RSA is the default key algorithm for ACM certificates. Elliptic Curve Digital Signature Algorithm (ECDSA) keys are smaller, offering security comparable to RSA keys but with greater computing efficiency. However, ECDSA is not supported by all network clients. Some AWS services may require RSA keys, or only support ECDSA keys of a particular size, while others allow the use of either RSA and ECDSA keys to ensure that compatibility is not broken. Check the requirements for the AWS service where you plan to deploy your certificate.

      Default: RSA_2048


  • On success, responds with RequestCertificateOutput with field(s):
    • certificate_arn(Option<String>):

      String that contains the ARN of the issued certificate. This must be of the form:

      arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012

  • On failure, responds with SdkError<RequestCertificateError>
source§

impl Client

source

pub fn resend_validation_email(&self) -> ResendValidationEmailFluentBuilder

Constructs a fluent builder for the ResendValidationEmail operation.

  • The fluent builder is configurable:
    • certificate_arn(impl Into<String>) / set_certificate_arn(Option<String>):
      required: true

      String that contains the ARN of the requested certificate. The certificate ARN is generated and returned by the RequestCertificate action as soon as the request is made. By default, using this parameter causes email to be sent to all top-level domains you specified in the certificate request. The ARN must be of the form:

      arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012


    • domain(impl Into<String>) / set_domain(Option<String>):
      required: true

      The fully qualified domain name (FQDN) of the certificate that needs to be validated.


    • validation_domain(impl Into<String>) / set_validation_domain(Option<String>):
      required: true

      The base validation domain that will act as the suffix of the email addresses that are used to send the emails. This must be the same as the Domain value or a superdomain of the Domain value. For example, if you requested a certificate for site.subdomain.example.com and specify a ValidationDomain of subdomain.example.com, ACM sends email to the domain registrant, technical contact, and administrative contact in WHOIS and the following five addresses:

      • admin@subdomain.example.com

      • administrator@subdomain.example.com

      • hostmaster@subdomain.example.com

      • postmaster@subdomain.example.com

      • webmaster@subdomain.example.com


  • On success, responds with ResendValidationEmailOutput
  • On failure, responds with SdkError<ResendValidationEmailError>
source§

impl Client

source

pub fn update_certificate_options( &self ) -> UpdateCertificateOptionsFluentBuilder

Constructs a fluent builder for the UpdateCertificateOptions operation.

source§

impl Client

source

pub fn from_conf(conf: Config) -> Self

Creates a new client from the service Config.

§Panics

This method will panic in the following cases:

  • Retries or timeouts are enabled without a sleep_impl configured.
  • Identity caching is enabled without a sleep_impl and time_source configured.
  • No behavior_version is provided.

The panic message for each of these will have instructions on how to resolve them.

source

pub fn config(&self) -> &Config

Returns the client’s configuration.

source§

impl Client

source

pub fn new(sdk_config: &SdkConfig) -> Self

Creates a new client from an SDK Config.

§Panics
  • This method will panic if the sdk_config is missing an async sleep implementation. If you experience this panic, set the sleep_impl on the Config passed into this function to fix it.
  • This method will panic if the sdk_config is missing an HTTP connector. If you experience this panic, set the http_connector on the Config passed into this function to fix it.
  • This method will panic if no BehaviorVersion is provided. If you experience this panic, set behavior_version on the Config or enable the behavior-version-latest Cargo feature.

Trait Implementations§

source§

impl Clone for Client

source§

fn clone(&self) -> Client

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for Client

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Waiters for Client

Auto Trait Implementations§

§

impl Freeze for Client

§

impl !RefUnwindSafe for Client

§

impl Send for Client

§

impl Sync for Client

§

impl Unpin for Client

§

impl !UnwindSafe for Client

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
source§

impl<Unshared, Shared> IntoShared<Shared> for Unshared
where Shared: FromUnshared<Unshared>,

source§

fn into_shared(self) -> Shared

Creates a shared type from an unshared type.
source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more