pub struct Client { /* private fields */ }
Expand description
Client for AWS Control Catalog
Client for invoking operations on AWS Control Catalog. Each operation on AWS Control Catalog 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_controlcatalog::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 Builder
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_controlcatalog::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 GetControl
operation has
a Client::get_control
, 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.get_control()
.control_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.
Implementations§
Source§impl Client
impl Client
Sourcepub fn get_control(&self) -> GetControlFluentBuilder
pub fn get_control(&self) -> GetControlFluentBuilder
Constructs a fluent builder for the GetControl
operation.
- The fluent builder is configurable:
control_arn(impl Into<String>)
/set_control_arn(Option<String>)
:
required: trueThe Amazon Resource Name (ARN) of the control. It has one of the following formats:
Global format
arn:{PARTITION}:controlcatalog:::control/{CONTROL_CATALOG_OPAQUE_ID}
Or Regional format
arn:{PARTITION}:controltower:{REGION}::control/{CONTROL_TOWER_OPAQUE_ID}
Here is a more general pattern that covers Amazon Web Services Control Tower and Control Catalog ARNs:
^arn:(aws(?:[-a-z])?):(controlcatalog|controltower):[a-zA-Z0-9-]::control/[0-9a-zA-Z_\-]+$
- On success, responds with
GetControlOutput
with field(s):arn(String)
:The Amazon Resource Name (ARN) of the control.
aliases(Option<Vec::<String>>)
:A list of alternative identifiers for the control. These are human-readable designators, such as
SH.S3.1
. Several aliases can refer to the same control across different Amazon Web Services services or compliance frameworks.name(String)
:The display name of the control.
description(String)
:A description of what the control does.
behavior(ControlBehavior)
:A term that identifies the control’s functional behavior. One of
Preventive
,Detective
,Proactive
severity(Option<ControlSeverity>)
:An enumerated type, with the following possible values:
region_configuration(Option<RegionConfiguration>)
:Returns information about the control, including the scope of the control, if enabled, and the Regions in which the control is available for deployment. For more information about scope, see Global services.
If you are applying controls through an Amazon Web Services Control Tower landing zone environment, remember that the values returned in the
RegionConfiguration
API operation are not related to the governed Regions in your landing zone. For example, if you are governing RegionsA
,B
,andC
while the control is available in RegionsA
,B
, C,
andD
, you’d see a response withDeployableRegions
ofA
,B
,C
, andD
for a control withREGIONAL
scope, even though you may not intend to deploy the control in RegionD
, because you do not govern it through your landing zone.implementation(Option<ImplementationDetails>)
:Returns information about the control, as an
ImplementationDetails
object that shows the underlying implementation type for a control.parameters(Option<Vec::<ControlParameter>>)
:Returns an array of
ControlParameter
objects that specify the parameters a control supports. An empty list is returned for controls that don’t support parameters.create_time(Option<DateTime>)
:A timestamp that notes the time when the control was released (start of its life) as a governance capability in Amazon Web Services.
governed_resources(Option<Vec::<String>>)
:A list of Amazon Web Services resource types that are governed by this control. This information helps you understand which controls can govern certain types of resources, and conversely, which resources are affected when the control is implemented. The resources are represented as Amazon Web Services CloudFormation resource types. If
GovernedResources
cannot be represented by available CloudFormation resource types, it’s returned as an empty list.
- On failure, responds with
SdkError<GetControlError>
Source§impl Client
impl Client
Sourcepub fn list_common_controls(&self) -> ListCommonControlsFluentBuilder
pub fn list_common_controls(&self) -> ListCommonControlsFluentBuilder
Constructs a fluent builder for the ListCommonControls
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of results on a page or for an API request call.
next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe pagination token that’s used to fetch the next set of results.
common_control_filter(CommonControlFilter)
/set_common_control_filter(Option<CommonControlFilter>)
:
required: falseAn optional filter that narrows the results to a specific objective.
This filter allows you to specify one objective ARN at a time. Passing multiple ARNs in the
CommonControlFilter
isn’t supported.
- On success, responds with
ListCommonControlsOutput
with field(s):common_controls(Vec::<CommonControlSummary>)
:The list of common controls that the
ListCommonControls
API returns.next_token(Option<String>)
:The pagination token that’s used to fetch the next set of results.
- On failure, responds with
SdkError<ListCommonControlsError>
Source§impl Client
impl Client
Sourcepub fn list_control_mappings(&self) -> ListControlMappingsFluentBuilder
pub fn list_control_mappings(&self) -> ListControlMappingsFluentBuilder
Constructs a fluent builder for the ListControlMappings
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe pagination token that’s used to fetch the next set of results.
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of results on a page or for an API request call.
filter(ControlMappingFilter)
/set_filter(Option<ControlMappingFilter>)
:
required: falseAn optional filter that narrows the results to specific control mappings based on control ARNs, common control ARNs, or mapping types.
- On success, responds with
ListControlMappingsOutput
with field(s):control_mappings(Vec::<ControlMapping>)
:The list of control mappings that the ListControlMappings API returns.
next_token(Option<String>)
:The pagination token that’s used to fetch the next set of results.
- On failure, responds with
SdkError<ListControlMappingsError>
Source§impl Client
impl Client
Sourcepub fn list_controls(&self) -> ListControlsFluentBuilder
pub fn list_controls(&self) -> ListControlsFluentBuilder
Constructs a fluent builder for the ListControls
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe pagination token that’s used to fetch the next set of results.
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of results on a page or for an API request call.
filter(ControlFilter)
/set_filter(Option<ControlFilter>)
:
required: falseAn optional filter that narrows the results to controls with specific implementation types or identifiers. If you don’t provide a filter, the operation returns all available controls.
- On success, responds with
ListControlsOutput
with field(s):controls(Vec::<ControlSummary>)
:Returns a list of controls, given as structures of type controlSummary.
next_token(Option<String>)
:The pagination token that’s used to fetch the next set of results.
- On failure, responds with
SdkError<ListControlsError>
Source§impl Client
impl Client
Sourcepub fn list_domains(&self) -> ListDomainsFluentBuilder
pub fn list_domains(&self) -> ListDomainsFluentBuilder
Constructs a fluent builder for the ListDomains
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of results on a page or for an API request call.
next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe pagination token that’s used to fetch the next set of results.
- On success, responds with
ListDomainsOutput
with field(s):domains(Vec::<DomainSummary>)
:The list of domains that the
ListDomains
API returns.next_token(Option<String>)
:The pagination token that’s used to fetch the next set of results.
- On failure, responds with
SdkError<ListDomainsError>
Source§impl Client
impl Client
Sourcepub fn list_objectives(&self) -> ListObjectivesFluentBuilder
pub fn list_objectives(&self) -> ListObjectivesFluentBuilder
Constructs a fluent builder for the ListObjectives
operation.
This operation supports pagination; See into_paginator()
.
- The fluent builder is configurable:
max_results(i32)
/set_max_results(Option<i32>)
:
required: falseThe maximum number of results on a page or for an API request call.
next_token(impl Into<String>)
/set_next_token(Option<String>)
:
required: falseThe pagination token that’s used to fetch the next set of results.
objective_filter(ObjectiveFilter)
/set_objective_filter(Option<ObjectiveFilter>)
:
required: falseAn optional filter that narrows the results to a specific domain.
This filter allows you to specify one domain ARN at a time. Passing multiple ARNs in the
ObjectiveFilter
isn’t supported.
- On success, responds with
ListObjectivesOutput
with field(s):objectives(Vec::<ObjectiveSummary>)
:The list of objectives that the
ListObjectives
API returns.next_token(Option<String>)
:The pagination token that’s used to fetch the next set of results.
- On failure, responds with
SdkError<ListObjectivesError>
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);