Struct aws_sdk_verifiedpermissions::client::Client

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

Client for Amazon Verified Permissions

Client for invoking operations on Amazon Verified Permissions. Each operation on Amazon Verified Permissions 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_verifiedpermissions::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_verifiedpermissions::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.

Implementations§

source§

impl Client

source

pub fn batch_is_authorized(&self) -> BatchIsAuthorizedFluentBuilder

Constructs a fluent builder for the BatchIsAuthorized operation.

source§

impl Client

source

pub fn batch_is_authorized_with_token( &self ) -> BatchIsAuthorizedWithTokenFluentBuilder

Constructs a fluent builder for the BatchIsAuthorizedWithToken operation.

source§

impl Client

source

pub fn create_identity_source(&self) -> CreateIdentitySourceFluentBuilder

Constructs a fluent builder for the CreateIdentitySource operation.

source§

impl Client

source

pub fn create_policy(&self) -> CreatePolicyFluentBuilder

Constructs a fluent builder for the CreatePolicy operation.

  • The fluent builder is configurable:
    • client_token(impl Into<String>) / set_client_token(Option<String>):
      required: false

      Specifies a unique, case-sensitive ID that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value..

      If you don’t provide this value, then Amazon Web Services generates a random one for you.

      If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an ConflictException error.

      Verified Permissions recognizes a ClientToken for eight hours. After eight hours, the next request with the same parameters performs the operation again regardless of the value of ClientToken.


    • policy_store_id(impl Into<String>) / set_policy_store_id(Option<String>):
      required: true

      Specifies the PolicyStoreId of the policy store you want to store the policy in.


    • definition(PolicyDefinition) / set_definition(Option<PolicyDefinition>):
      required: true

      A structure that specifies the policy type and content to use for the new policy. You must include either a static or a templateLinked element. The policy content must be written in the Cedar policy language.


  • On success, responds with CreatePolicyOutput with field(s):
  • On failure, responds with SdkError<CreatePolicyError>
source§

impl Client

source

pub fn create_policy_store(&self) -> CreatePolicyStoreFluentBuilder

Constructs a fluent builder for the CreatePolicyStore operation.

  • The fluent builder is configurable:
    • client_token(impl Into<String>) / set_client_token(Option<String>):
      required: false

      Specifies a unique, case-sensitive ID that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value..

      If you don’t provide this value, then Amazon Web Services generates a random one for you.

      If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an ConflictException error.

      Verified Permissions recognizes a ClientToken for eight hours. After eight hours, the next request with the same parameters performs the operation again regardless of the value of ClientToken.


    • validation_settings(ValidationSettings) / set_validation_settings(Option<ValidationSettings>):
      required: true

      Specifies the validation setting for this policy store.

      Currently, the only valid and required value is Mode.

      We recommend that you turn on STRICT mode only after you define a schema. If a schema doesn’t exist, then STRICT mode causes any policy to fail validation, and Verified Permissions rejects the policy. You can turn off validation by using the UpdatePolicyStore. Then, when you have a schema defined, use UpdatePolicyStore again to turn validation back on.


    • description(impl Into<String>) / set_description(Option<String>):
      required: false

      Descriptive text that you can provide to help with identification of the current policy store.


  • On success, responds with CreatePolicyStoreOutput with field(s):
  • On failure, responds with SdkError<CreatePolicyStoreError>
source§

impl Client

source

pub fn create_policy_template(&self) -> CreatePolicyTemplateFluentBuilder

Constructs a fluent builder for the CreatePolicyTemplate operation.

source§

impl Client

source

pub fn delete_identity_source(&self) -> DeleteIdentitySourceFluentBuilder

Constructs a fluent builder for the DeleteIdentitySource operation.

source§

impl Client

source

pub fn delete_policy(&self) -> DeletePolicyFluentBuilder

Constructs a fluent builder for the DeletePolicy operation.

source§

impl Client

source

pub fn delete_policy_store(&self) -> DeletePolicyStoreFluentBuilder

Constructs a fluent builder for the DeletePolicyStore operation.

source§

impl Client

source

pub fn delete_policy_template(&self) -> DeletePolicyTemplateFluentBuilder

Constructs a fluent builder for the DeletePolicyTemplate operation.

source§

impl Client

source

pub fn get_identity_source(&self) -> GetIdentitySourceFluentBuilder

Constructs a fluent builder for the GetIdentitySource operation.

source§

impl Client

source

pub fn get_policy(&self) -> GetPolicyFluentBuilder

Constructs a fluent builder for the GetPolicy operation.

source§

impl Client

source

pub fn get_policy_store(&self) -> GetPolicyStoreFluentBuilder

Constructs a fluent builder for the GetPolicyStore operation.

source§

impl Client

source

pub fn get_policy_template(&self) -> GetPolicyTemplateFluentBuilder

Constructs a fluent builder for the GetPolicyTemplate operation.

source§

impl Client

source

pub fn get_schema(&self) -> GetSchemaFluentBuilder

Constructs a fluent builder for the GetSchema operation.

source§

impl Client

source

pub fn is_authorized(&self) -> IsAuthorizedFluentBuilder

Constructs a fluent builder for the IsAuthorized operation.

source§

impl Client

source

pub fn is_authorized_with_token(&self) -> IsAuthorizedWithTokenFluentBuilder

Constructs a fluent builder for the IsAuthorizedWithToken operation.

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

      Specifies the ID of the policy store. Policies in this policy store will be used to make an authorization decision for the input.


    • identity_token(impl Into<String>) / set_identity_token(Option<String>):
      required: false

      Specifies an identity token for the principal to be authorized. This token is provided to you by the identity provider (IdP) associated with the specified identity source. You must specify either an accessToken, an identityToken, or both.

      Must be an ID token. Verified Permissions returns an error if the token_use claim in the submitted token isn’t id.


    • access_token(impl Into<String>) / set_access_token(Option<String>):
      required: false

      Specifies an access token for the principal to be authorized. This token is provided to you by the identity provider (IdP) associated with the specified identity source. You must specify either an accessToken, an identityToken, or both.

      Must be an access token. Verified Permissions returns an error if the token_use claim in the submitted token isn’t access.


    • action(ActionIdentifier) / set_action(Option<ActionIdentifier>):
      required: false

      Specifies the requested action to be authorized. Is the specified principal authorized to perform this action on the specified resource.


    • resource(EntityIdentifier) / set_resource(Option<EntityIdentifier>):
      required: false

      Specifies the resource for which the authorization decision is made. For example, is the principal allowed to perform the action on the resource?


    • context(ContextDefinition) / set_context(Option<ContextDefinition>):
      required: false

      Specifies additional context that can be used to make more granular authorization decisions.


    • entities(EntitiesDefinition) / set_entities(Option<EntitiesDefinition>):
      required: false

      Specifies the list of resources and their associated attributes that Verified Permissions can examine when evaluating the policies.

      You can’t include principals in this parameter, only resource and action entities. This parameter can’t include any entities of a type that matches the user or group entity types that you defined in your identity source.

      • The IsAuthorizedWithToken operation takes principal attributes from only the identityToken or accessToken passed to the operation.

      • For action entities, you can include only their Identifier and EntityType.


  • On success, responds with IsAuthorizedWithTokenOutput with field(s):
    • decision(Decision):

      An authorization decision that indicates if the authorization request should be allowed or denied.

    • determining_policies(Vec::<DeterminingPolicyItem>):

      The list of determining policies used to make the authorization decision. For example, if there are multiple matching policies, where at least one is a forbid policy, then because forbid always overrides permit the forbid policies are the determining policies. If all matching policies are permit policies, then those policies are the determining policies. When no policies match and the response is the default DENY, there are no determining policies.

    • errors(Vec::<EvaluationErrorItem>):

      Errors that occurred while making an authorization decision. For example, a policy references an entity or entity attribute that does not exist in the slice.

    • principal(Option<EntityIdentifier>):

      The identifier of the principal in the ID or access token.

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

impl Client

source

pub fn list_identity_sources(&self) -> ListIdentitySourcesFluentBuilder

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

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

      Specifies the ID of the policy store that contains the identity sources that you want to list.


    • next_token(impl Into<String>) / set_next_token(Option<String>):
      required: false

      Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call’s NextToken response to request the next page of results.


    • max_results(i32) / set_max_results(Option<i32>):
      required: false

      Specifies the total number of results that you want included in each response. If additional items exist beyond the number you specify, the NextToken response element is returned with a value (not null). Include the specified value as the NextToken request parameter in the next call to the operation to get the next set of results. Note that the service might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

      If you do not specify this parameter, the operation defaults to 10 identity sources per response. You can specify a maximum of 50 identity sources per response.


    • filters(IdentitySourceFilter) / set_filters(Option<Vec::<IdentitySourceFilter>>):
      required: false

      Specifies characteristics of an identity source that you can use to limit the output to matching identity sources.


  • On success, responds with ListIdentitySourcesOutput with field(s):
    • next_token(Option<String>):

      If present, this value indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. This indicates that this is the last page of results.

    • identity_sources(Vec::<IdentitySourceItem>):

      The list of identity sources stored in the specified policy store.

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

impl Client

source

pub fn list_policies(&self) -> ListPoliciesFluentBuilder

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

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

      Specifies the ID of the policy store you want to list policies from.


    • next_token(impl Into<String>) / set_next_token(Option<String>):
      required: false

      Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call’s NextToken response to request the next page of results.


    • max_results(i32) / set_max_results(Option<i32>):
      required: false

      Specifies the total number of results that you want included in each response. If additional items exist beyond the number you specify, the NextToken response element is returned with a value (not null). Include the specified value as the NextToken request parameter in the next call to the operation to get the next set of results. Note that the service might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

      If you do not specify this parameter, the operation defaults to 10 policies per response. You can specify a maximum of 50 policies per response.


    • filter(PolicyFilter) / set_filter(Option<PolicyFilter>):
      required: false

      Specifies a filter that limits the response to only policies that match the specified criteria. For example, you list only the policies that reference a specified principal.


  • On success, responds with ListPoliciesOutput with field(s):
    • next_token(Option<String>):

      If present, this value indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. This indicates that this is the last page of results.

    • policies(Vec::<PolicyItem>):

      Lists all policies that are available in the specified policy store.

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

impl Client

source

pub fn list_policy_stores(&self) -> ListPolicyStoresFluentBuilder

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

  • The fluent builder is configurable:
    • next_token(impl Into<String>) / set_next_token(Option<String>):
      required: false

      Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call’s NextToken response to request the next page of results.


    • max_results(i32) / set_max_results(Option<i32>):
      required: false

      Specifies the total number of results that you want included in each response. If additional items exist beyond the number you specify, the NextToken response element is returned with a value (not null). Include the specified value as the NextToken request parameter in the next call to the operation to get the next set of results. Note that the service might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

      If you do not specify this parameter, the operation defaults to 10 policy stores per response. You can specify a maximum of 50 policy stores per response.


  • On success, responds with ListPolicyStoresOutput with field(s):
    • next_token(Option<String>):

      If present, this value indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. This indicates that this is the last page of results.

    • policy_stores(Vec::<PolicyStoreItem>):

      The list of policy stores in the account.

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

impl Client

source

pub fn list_policy_templates(&self) -> ListPolicyTemplatesFluentBuilder

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

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

      Specifies the ID of the policy store that contains the policy templates you want to list.


    • next_token(impl Into<String>) / set_next_token(Option<String>):
      required: false

      Specifies that you want to receive the next page of results. Valid only if you received a NextToken response in the previous request. If you did, it indicates that more output is available. Set this parameter to the value provided by the previous call’s NextToken response to request the next page of results.


    • max_results(i32) / set_max_results(Option<i32>):
      required: false

      Specifies the total number of results that you want included in each response. If additional items exist beyond the number you specify, the NextToken response element is returned with a value (not null). Include the specified value as the NextToken request parameter in the next call to the operation to get the next set of results. Note that the service might return fewer results than the maximum even when there are more results available. You should check NextToken after every operation to ensure that you receive all of the results.

      If you do not specify this parameter, the operation defaults to 10 policy templates per response. You can specify a maximum of 50 policy templates per response.


  • On success, responds with ListPolicyTemplatesOutput with field(s):
    • next_token(Option<String>):

      If present, this value indicates that more output is available than is included in the current response. Use this value in the NextToken request parameter in a subsequent call to the operation to get the next part of the output. You should repeat this until the NextToken response element comes back as null. This indicates that this is the last page of results.

    • policy_templates(Vec::<PolicyTemplateItem>):

      The list of the policy templates in the specified policy store.

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

impl Client

source

pub fn put_schema(&self) -> PutSchemaFluentBuilder

Constructs a fluent builder for the PutSchema operation.

source§

impl Client

source

pub fn update_identity_source(&self) -> UpdateIdentitySourceFluentBuilder

Constructs a fluent builder for the UpdateIdentitySource operation.

source§

impl Client

source

pub fn update_policy(&self) -> UpdatePolicyFluentBuilder

Constructs a fluent builder for the UpdatePolicy operation.

source§

impl Client

source

pub fn update_policy_store(&self) -> UpdatePolicyStoreFluentBuilder

Constructs a fluent builder for the UpdatePolicyStore operation.

source§

impl Client

source

pub fn update_policy_template(&self) -> UpdatePolicyTemplateFluentBuilder

Constructs a fluent builder for the UpdatePolicyTemplate 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

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