pub struct Client { /* private fields */ }
Expand description
Client for Amazon Elastic Compute Cloud
Client for invoking operations on Amazon Elastic Compute Cloud. Each operation on Amazon Elastic Compute Cloud 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_ec2::Client::new(&config);
Occasionally, SDKs may have additional service-specific 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_ec2::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 AcceptAddressTransfer
operation has
a [Client::accept_address_transfer
], 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.accept_address_transfer()
.address("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.
Implementations§
Source§impl Client
impl Client
Sourcepub fn create_vpc_endpoint(&self) -> CreateVpcEndpointFluentBuilder
pub fn create_vpc_endpoint(&self) -> CreateVpcEndpointFluentBuilder
Constructs a fluent builder for the CreateVpcEndpoint
operation.
- The fluent builder is configurable:
dry_run(bool)
/set_dry_run(Option<bool>)
:
required: falseChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is
DryRunOperation
. Otherwise, it isUnauthorizedOperation
.vpc_endpoint_type(VpcEndpointType)
/set_vpc_endpoint_type(Option<VpcEndpointType>)
:
required: falseThe type of endpoint.
Default: Gateway
vpc_id(impl Into<String>)
/set_vpc_id(Option<String>)
:
required: trueThe ID of the VPC.
service_name(impl Into<String>)
/set_service_name(Option<String>)
:
required: trueThe name of the endpoint service.
policy_document(impl Into<String>)
/set_policy_document(Option<String>)
:
required: false(Interface and gateway endpoints) A policy to attach to the endpoint that controls access to the service. The policy must be in valid JSON format. If this parameter is not specified, we attach a default policy that allows full access to the service.
route_table_ids(impl Into<String>)
/set_route_table_ids(Option<Vec::<String>>)
:
required: false(Gateway endpoint) The route table IDs.
subnet_ids(impl Into<String>)
/set_subnet_ids(Option<Vec::<String>>)
:
required: false(Interface and Gateway Load Balancer endpoints) The IDs of the subnets in which to create endpoint network interfaces. For a Gateway Load Balancer endpoint, you can specify only one subnet.
security_group_ids(impl Into<String>)
/set_security_group_ids(Option<Vec::<String>>)
:
required: false(Interface endpoint) The IDs of the security groups to associate with the endpoint network interfaces. If this parameter is not specified, we use the default security group for the VPC.
ip_address_type(IpAddressType)
/set_ip_address_type(Option<IpAddressType>)
:
required: falseThe IP address type for the endpoint.
dns_options(DnsOptionsSpecification)
/set_dns_options(Option<DnsOptionsSpecification>)
:
required: falseThe DNS options for the endpoint.
client_token(impl Into<String>)
/set_client_token(Option<String>)
:
required: falseUnique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see How to ensure idempotency.
private_dns_enabled(bool)
/set_private_dns_enabled(Option<bool>)
:
required: false(Interface endpoint) Indicates whether to associate a private hosted zone with the specified VPC. The private hosted zone contains a record set for the default public DNS name for the service for the Region (for example,
kinesis.us-east-1.amazonaws.com
), which resolves to the private IP addresses of the endpoint network interfaces in the VPC. This enables you to make requests to the default public DNS name for the service instead of the public DNS names that are automatically generated by the VPC endpoint service.To use a private hosted zone, you must set the following VPC attributes to
true
:enableDnsHostnames
andenableDnsSupport
. UseModifyVpcAttribute
to set the VPC attributes.Default:
true
tag_specifications(TagSpecification)
/set_tag_specifications(Option<Vec::<TagSpecification>>)
:
required: falseThe tags to associate with the endpoint.
subnet_configurations(SubnetConfiguration)
/set_subnet_configurations(Option<Vec::<SubnetConfiguration>>)
:
required: falseThe subnet configurations for the endpoint.
- On success, responds with
CreateVpcEndpointOutput
with field(s):vpc_endpoint(Option<VpcEndpoint>)
:Information about the endpoint.
client_token(Option<String>)
:Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.
- On failure, responds with
SdkError<CreateVpcEndpointError>
Source§impl Client
impl Client
Sourcepub fn delete_vpc_endpoints(&self) -> DeleteVpcEndpointsFluentBuilder
pub fn delete_vpc_endpoints(&self) -> DeleteVpcEndpointsFluentBuilder
Constructs a fluent builder for the DeleteVpcEndpoints
operation.
- The fluent builder is configurable:
dry_run(bool)
/set_dry_run(Option<bool>)
:
required: falseChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is
DryRunOperation
. Otherwise, it isUnauthorizedOperation
.vpc_endpoint_ids(impl Into<String>)
/set_vpc_endpoint_ids(Option<Vec::<String>>)
:
required: trueThe IDs of the VPC endpoints.
- On success, responds with
DeleteVpcEndpointsOutput
with field(s):unsuccessful(Option<Vec::<UnsuccessfulItem>>)
:Information about the VPC endpoints that were not successfully deleted.
- On failure, responds with
SdkError<DeleteVpcEndpointsError>
Source§impl Client
impl Client
Sourcepub fn describe_subnets(&self) -> DescribeSubnetsFluentBuilder
pub fn describe_subnets(&self) -> DescribeSubnetsFluentBuilder
Constructs a fluent builder for the DescribeSubnets
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
filters(Filter)
/set_filters(Option<Vec::<Filter>>)
:
required: falseThe filters.
-
availability-zone
- The Availability Zone for the subnet. You can also useavailabilityZone
as the filter name. -
availability-zone-id
- The ID of the Availability Zone for the subnet. You can also useavailabilityZoneId
as the filter name. -
available-ip-address-count
- The number of IPv4 addresses in the subnet that are available. -
cidr-block
- The IPv4 CIDR block of the subnet. The CIDR block you specify must exactly match the subnet’s CIDR block for information to be returned for the subnet. You can also usecidr
orcidrBlock
as the filter names. -
customer-owned-ipv4-pool
- The customer-owned IPv4 address pool associated with the subnet. -
default-for-az
- Indicates whether this is the default subnet for the Availability Zone (true
|false
). You can also usedefaultForAz
as the filter name. -
enable-dns64
- Indicates whether DNS queries made to the Amazon-provided DNS Resolver in this subnet should return synthetic IPv6 addresses for IPv4-only destinations. -
enable-lni-at-device-index
- Indicates the device position for local network interfaces in this subnet. For example,1
indicates local network interfaces in this subnet are the secondary network interface (eth1). -
ipv6-cidr-block-association.ipv6-cidr-block
- An IPv6 CIDR block associated with the subnet. -
ipv6-cidr-block-association.association-id
- An association ID for an IPv6 CIDR block associated with the subnet. -
ipv6-cidr-block-association.state
- The state of an IPv6 CIDR block associated with the subnet. -
ipv6-native
- Indicates whether this is an IPv6 only subnet (true
|false
). -
map-customer-owned-ip-on-launch
- Indicates whether a network interface created in this subnet (including a network interface created byRunInstances
) receives a customer-owned IPv4 address. -
map-public-ip-on-launch
- Indicates whether instances launched in this subnet receive a public IPv4 address. -
outpost-arn
- The Amazon Resource Name (ARN) of the Outpost. -
owner-id
- The ID of the Amazon Web Services account that owns the subnet. -
private-dns-name-options-on-launch.hostname-type
- The type of hostname to assign to instances in the subnet at launch. For IPv4-only and dual-stack (IPv4 and IPv6) subnets, an instance DNS name can be based on the instance IPv4 address (ip-name) or the instance ID (resource-name). For IPv6 only subnets, an instance DNS name must be based on the instance ID (resource-name). -
private-dns-name-options-on-launch.enable-resource-name-dns-a-record
- Indicates whether to respond to DNS queries for instance hostnames with DNS A records. -
private-dns-name-options-on-launch.enable-resource-name-dns-aaaa-record
- Indicates whether to respond to DNS queries for instance hostnames with DNS AAAA records. -
state
- The state of the subnet (pending
|available
). -
subnet-arn
- The Amazon Resource Name (ARN) of the subnet. -
subnet-id
- The ID of the subnet. -
tag
:- The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner
and the valueTeamA
, specifytag:Owner
for the filter name andTeamA
for the filter value. -
tag-key
- The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. -
vpc-id
- The ID of the VPC for the subnet.
-
subnet_ids(impl Into<String>)
/set_subnet_ids(Option<Vec::<String>>)
:
required: falseThe IDs of the subnets.
Default: Describes all your subnets.
dry_run(bool)
/set_dry_run(Option<bool>)
:
required: falseChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is
DryRunOperation
. Otherwise, it isUnauthorizedOperation
.next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe token returned from a previous paginated request. Pagination continues from the end of the items returned by the previous request.
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of items to return for this request. To get the next page of items, make another request with the token returned in the output. For more information, see Pagination.
- On success, responds with
DescribeSubnetsOutput
with field(s):subnets(Option<Vec::<Subnet>>)
:Information about one or more subnets.
next_token(Option<String>)
:The token to include in another request to get the next page of items. This value is
null
when there are no more items to return.
- On failure, responds with
SdkError<DescribeSubnetsError>
Source§impl Client
impl Client
Sourcepub fn describe_vpc_endpoint_services(
&self,
) -> DescribeVpcEndpointServicesFluentBuilder
pub fn describe_vpc_endpoint_services( &self, ) -> DescribeVpcEndpointServicesFluentBuilder
Constructs a fluent builder for the DescribeVpcEndpointServices
operation.
- The fluent builder is configurable:
dry_run(bool)
/set_dry_run(Option<bool>)
:
required: falseChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is
DryRunOperation
. Otherwise, it isUnauthorizedOperation
.service_names(impl Into<String>)
/set_service_names(Option<Vec::<String>>)
:
required: falseThe service names.
filters(Filter)
/set_filters(Option<Vec::<Filter>>)
:
required: falseThe filters.
-
owner
- The ID or alias of the Amazon Web Services account that owns the service. -
service-name
- The name of the service. -
service-type
- The type of service (Interface
|Gateway
|GatewayLoadBalancer
). -
supported-ip-address-types
- The IP address type (ipv4
|ipv6
). -
tag
:- The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner
and the valueTeamA
, specifytag:Owner
for the filter name andTeamA
for the filter value. -
tag-key
- The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value.
-
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.
Constraint: If the value is greater than 1,000, we return only 1,000 items.
next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe token for the next set of items to return. (You received this token from a prior call.)
- On success, responds with
DescribeVpcEndpointServicesOutput
with field(s):service_names(Option<Vec::<String>>)
:The supported services.
service_details(Option<Vec::<ServiceDetail>>)
:Information about the service.
next_token(Option<String>)
:The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.
- On failure, responds with
SdkError<DescribeVpcEndpointServicesError>
Source§impl Client
impl Client
Sourcepub fn describe_vpc_endpoints(&self) -> DescribeVpcEndpointsFluentBuilder
pub fn describe_vpc_endpoints(&self) -> DescribeVpcEndpointsFluentBuilder
Constructs a fluent builder for the DescribeVpcEndpoints
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
dry_run(bool)
/set_dry_run(Option<bool>)
:
required: falseChecks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is
DryRunOperation
. Otherwise, it isUnauthorizedOperation
.vpc_endpoint_ids(impl Into<String>)
/set_vpc_endpoint_ids(Option<Vec::<String>>)
:
required: falseThe IDs of the VPC endpoints.
filters(Filter)
/set_filters(Option<Vec::<Filter>>)
:
required: falseThe filters.
-
ip-address-type
- The IP address type (ipv4
|ipv6
). -
service-name
- The name of the service. -
tag
:- The key/value combination of a tag assigned to the resource. Use the tag key in the filter name and the tag value as the filter value. For example, to find all resources that have a tag with the key Owner
and the valueTeamA
, specifytag:Owner
for the filter name andTeamA
for the filter value. -
tag-key
- The key of a tag assigned to the resource. Use this filter to find all resources assigned a tag with a specific key, regardless of the tag value. -
vpc-id
- The ID of the VPC in which the endpoint resides. -
vpc-endpoint-id
- The ID of the endpoint. -
vpc-endpoint-state
- The state of the endpoint (pendingAcceptance
|pending
|available
|deleting
|deleted
|rejected
|failed
). -
vpc-endpoint-type
- The type of VPC endpoint (Interface
|Gateway
|GatewayLoadBalancer
).
-
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of items to return for this request. The request returns a token that you can specify in a subsequent call to get the next set of results.
Constraint: If the value is greater than 1,000, we return only 1,000 items.
next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe token for the next set of items to return. (You received this token from a prior call.)
- On success, responds with
DescribeVpcEndpointsOutput
with field(s):vpc_endpoints(Option<Vec::<VpcEndpoint>>)
:Information about the endpoints.
next_token(Option<String>)
:The token to use when requesting the next set of items. If there are no additional items to return, the string is empty.
- On failure, responds with
SdkError<DescribeVpcEndpointsError>
Source§impl Client
impl Client
Sourcepub fn from_conf(conf: Config) -> Self
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
andtime_source
configured. - No
behavior_version
is provided.
The panic message for each of these will have instructions on how to resolve them.
Source§impl Client
impl Client
Sourcepub fn new(sdk_config: &SdkConfig) -> Self
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 thesleep_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 thehttp_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, setbehavior_version
on the Config or enable thebehavior-version-latest
Cargo feature.
Trait Implementations§
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> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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 moreSource§impl<T> Paint for Twhere
T: ?Sized,
impl<T> Paint for Twhere
T: ?Sized,
Source§fn fg(&self, value: Color) -> Painted<&T>
fn fg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the foreground set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like red()
and
green()
, which have the same functionality but are
pithier.
§Example
Set foreground color to white using fg()
:
use yansi::{Paint, Color};
painted.fg(Color::White);
Set foreground color to white using white()
.
use yansi::Paint;
painted.white();
Source§fn bright_black(&self) -> Painted<&T>
fn bright_black(&self) -> Painted<&T>
Source§fn bright_red(&self) -> Painted<&T>
fn bright_red(&self) -> Painted<&T>
Source§fn bright_green(&self) -> Painted<&T>
fn bright_green(&self) -> Painted<&T>
Source§fn bright_yellow(&self) -> Painted<&T>
fn bright_yellow(&self) -> Painted<&T>
Source§fn bright_blue(&self) -> Painted<&T>
fn bright_blue(&self) -> Painted<&T>
Source§fn bright_magenta(&self) -> Painted<&T>
fn bright_magenta(&self) -> Painted<&T>
Source§fn bright_cyan(&self) -> Painted<&T>
fn bright_cyan(&self) -> Painted<&T>
Source§fn bright_white(&self) -> Painted<&T>
fn bright_white(&self) -> Painted<&T>
Source§fn bg(&self, value: Color) -> Painted<&T>
fn bg(&self, value: Color) -> Painted<&T>
Returns a styled value derived from self
with the background set to
value
.
This method should be used rarely. Instead, prefer to use color-specific
builder methods like on_red()
and
on_green()
, which have the same functionality but
are pithier.
§Example
Set background color to red using fg()
:
use yansi::{Paint, Color};
painted.bg(Color::Red);
Set background color to red using on_red()
.
use yansi::Paint;
painted.on_red();
Source§fn on_primary(&self) -> Painted<&T>
fn on_primary(&self) -> Painted<&T>
Source§fn on_magenta(&self) -> Painted<&T>
fn on_magenta(&self) -> Painted<&T>
Source§fn on_bright_black(&self) -> Painted<&T>
fn on_bright_black(&self) -> Painted<&T>
Source§fn on_bright_red(&self) -> Painted<&T>
fn on_bright_red(&self) -> Painted<&T>
Source§fn on_bright_green(&self) -> Painted<&T>
fn on_bright_green(&self) -> Painted<&T>
Source§fn on_bright_yellow(&self) -> Painted<&T>
fn on_bright_yellow(&self) -> Painted<&T>
Source§fn on_bright_blue(&self) -> Painted<&T>
fn on_bright_blue(&self) -> Painted<&T>
Source§fn on_bright_magenta(&self) -> Painted<&T>
fn on_bright_magenta(&self) -> Painted<&T>
Source§fn on_bright_cyan(&self) -> Painted<&T>
fn on_bright_cyan(&self) -> Painted<&T>
Source§fn on_bright_white(&self) -> Painted<&T>
fn on_bright_white(&self) -> Painted<&T>
Source§fn attr(&self, value: Attribute) -> Painted<&T>
fn attr(&self, value: Attribute) -> Painted<&T>
Enables the styling Attribute
value
.
This method should be used rarely. Instead, prefer to use
attribute-specific builder methods like bold()
and
underline()
, which have the same functionality
but are pithier.
§Example
Make text bold using attr()
:
use yansi::{Paint, Attribute};
painted.attr(Attribute::Bold);
Make text bold using using bold()
.
use yansi::Paint;
painted.bold();
Source§fn rapid_blink(&self) -> Painted<&T>
fn rapid_blink(&self) -> Painted<&T>
Source§fn quirk(&self, value: Quirk) -> Painted<&T>
fn quirk(&self, value: Quirk) -> Painted<&T>
Enables the yansi
Quirk
value
.
This method should be used rarely. Instead, prefer to use quirk-specific
builder methods like mask()
and
wrap()
, which have the same functionality but are
pithier.
§Example
Enable wrapping using .quirk()
:
use yansi::{Paint, Quirk};
painted.quirk(Quirk::Wrap);
Enable wrapping using wrap()
.
use yansi::Paint;
painted.wrap();
Source§fn clear(&self) -> Painted<&T>
👎Deprecated since 1.0.1: renamed to resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.
fn clear(&self) -> Painted<&T>
resetting()
due to conflicts with Vec::clear()
.
The clear()
method will be removed in a future release.Source§fn whenever(&self, value: Condition) -> Painted<&T>
fn whenever(&self, value: Condition) -> Painted<&T>
Conditionally enable styling based on whether the Condition
value
applies. Replaces any previous condition.
See the crate level docs for more details.
§Example
Enable styling painted
only when both stdout
and stderr
are TTYs:
use yansi::{Paint, Condition};
painted.red().on_yellow().whenever(Condition::STDOUTERR_ARE_TTY);