Trait aws_sdk_s3::config::RuntimePlugin

source ·
pub trait RuntimePlugin:
    Debug
    + Send
    + Sync {
    // Provided methods
    fn order(&self) -> Order { ... }
    fn config(&self) -> Option<FrozenLayer> { ... }
    fn runtime_components(
        &self,
        current_components: &RuntimeComponentsBuilder,
    ) -> Cow<'_, RuntimeComponentsBuilder> { ... }
}
Expand description

Runtime plugin trait

A RuntimePlugin is the unit of configuration for augmenting the client with new behavior.

Runtime plugins can register interceptors, set runtime components, and modify configuration.

Provided Methods§

source

fn order(&self) -> Order

Runtime plugin ordering.

There are two runtime plugin “levels” that run in the following order:

  1. Service runtime plugins - runtime plugins that pertain to the entire service.
  2. Operation runtime plugins - runtime plugins relevant only to a single operation.

This function is used to determine runtime plugin order within those levels. So regardless of this Order value, service runtime plugins will still always execute before operation runtime plugins. However, Defaults service runtime plugins will run before Overrides service runtime plugins.

source

fn config(&self) -> Option<FrozenLayer>

Optionally returns additional config that should be added to the ConfigBag.

As a best practice, a frozen layer should be stored on the runtime plugin instance as a member, and then cloned upon return since that clone is cheap. Constructing a new Layer and freezing it will require a lot of allocations.

source

fn runtime_components( &self, current_components: &RuntimeComponentsBuilder, ) -> Cow<'_, RuntimeComponentsBuilder>

Returns a RuntimeComponentsBuilder to incorporate into the final runtime components.

The order of runtime plugins determines which runtime components “win”. Components set by later runtime plugins will override those set by earlier runtime plugins.

If no runtime component changes are desired, just return an empty builder.

This method returns a Cow for flexibility. Some implementers may want to store the components builder as a member and return a reference to it, while others may need to create the builder every call. If possible, returning a reference is preferred for performance.

Components configured by previous runtime plugins are in the current_components argument, and can be used to create nested/wrapped components, such as a connector calling into an inner (customer provided) connector.

Implementations on Foreign Types§

source§

impl RuntimePlugin for NoAuthRuntimePlugin

source§

impl RuntimePlugin for EnforceContentLengthRuntimePlugin

Implementors§

source§

impl RuntimePlugin for StaticRuntimePlugin

source§

impl RuntimePlugin for AbortMultipartUpload

source§

impl RuntimePlugin for CompleteMultipartUpload

source§

impl RuntimePlugin for CopyObject

source§

impl RuntimePlugin for CreateBucket

source§

impl RuntimePlugin for CreateMultipartUpload

source§

impl RuntimePlugin for CreateSession

source§

impl RuntimePlugin for DeleteBucket

source§

impl RuntimePlugin for DeleteBucketAnalyticsConfiguration

source§

impl RuntimePlugin for DeleteBucketCors

source§

impl RuntimePlugin for DeleteBucketEncryption

source§

impl RuntimePlugin for DeleteBucketIntelligentTieringConfiguration

source§

impl RuntimePlugin for DeleteBucketInventoryConfiguration

source§

impl RuntimePlugin for DeleteBucketLifecycle

source§

impl RuntimePlugin for DeleteBucketMetricsConfiguration

source§

impl RuntimePlugin for DeleteBucketOwnershipControls

source§

impl RuntimePlugin for DeleteBucketPolicy

source§

impl RuntimePlugin for DeleteBucketReplication

source§

impl RuntimePlugin for DeleteBucketTagging

source§

impl RuntimePlugin for DeleteBucketWebsite

source§

impl RuntimePlugin for DeleteObject

source§

impl RuntimePlugin for DeleteObjectTagging

source§

impl RuntimePlugin for DeleteObjects

source§

impl RuntimePlugin for DeletePublicAccessBlock

source§

impl RuntimePlugin for GetBucketAccelerateConfiguration

source§

impl RuntimePlugin for GetBucketAcl

source§

impl RuntimePlugin for GetBucketAnalyticsConfiguration

source§

impl RuntimePlugin for GetBucketCors

source§

impl RuntimePlugin for GetBucketEncryption

source§

impl RuntimePlugin for GetBucketIntelligentTieringConfiguration

source§

impl RuntimePlugin for GetBucketInventoryConfiguration

source§

impl RuntimePlugin for GetBucketLifecycleConfiguration

source§

impl RuntimePlugin for GetBucketLocation

source§

impl RuntimePlugin for GetBucketLogging

source§

impl RuntimePlugin for GetBucketMetricsConfiguration

source§

impl RuntimePlugin for GetBucketNotificationConfiguration

source§

impl RuntimePlugin for GetBucketOwnershipControls

source§

impl RuntimePlugin for GetBucketPolicy

source§

impl RuntimePlugin for GetBucketPolicyStatus

source§

impl RuntimePlugin for GetBucketReplication

source§

impl RuntimePlugin for GetBucketRequestPayment

source§

impl RuntimePlugin for GetBucketTagging

source§

impl RuntimePlugin for GetBucketVersioning

source§

impl RuntimePlugin for GetBucketWebsite

source§

impl RuntimePlugin for GetObject

source§

impl RuntimePlugin for GetObjectAcl

source§

impl RuntimePlugin for GetObjectAttributes

source§

impl RuntimePlugin for GetObjectLegalHold

source§

impl RuntimePlugin for GetObjectLockConfiguration

source§

impl RuntimePlugin for GetObjectRetention

source§

impl RuntimePlugin for GetObjectTagging

source§

impl RuntimePlugin for GetObjectTorrent

source§

impl RuntimePlugin for GetPublicAccessBlock

source§

impl RuntimePlugin for HeadBucket

source§

impl RuntimePlugin for HeadObject

source§

impl RuntimePlugin for ListBucketAnalyticsConfigurations

source§

impl RuntimePlugin for ListBucketIntelligentTieringConfigurations

source§

impl RuntimePlugin for ListBucketInventoryConfigurations

source§

impl RuntimePlugin for ListBucketMetricsConfigurations

source§

impl RuntimePlugin for ListBuckets

source§

impl RuntimePlugin for ListDirectoryBuckets

source§

impl RuntimePlugin for ListMultipartUploads

source§

impl RuntimePlugin for ListObjectVersions

source§

impl RuntimePlugin for ListObjects

source§

impl RuntimePlugin for ListObjectsV2

source§

impl RuntimePlugin for ListParts

source§

impl RuntimePlugin for PutBucketAccelerateConfiguration

source§

impl RuntimePlugin for PutBucketAcl

source§

impl RuntimePlugin for PutBucketAnalyticsConfiguration

source§

impl RuntimePlugin for PutBucketCors

source§

impl RuntimePlugin for PutBucketEncryption

source§

impl RuntimePlugin for PutBucketIntelligentTieringConfiguration

source§

impl RuntimePlugin for PutBucketInventoryConfiguration

source§

impl RuntimePlugin for PutBucketLifecycleConfiguration

source§

impl RuntimePlugin for PutBucketLogging

source§

impl RuntimePlugin for PutBucketMetricsConfiguration

source§

impl RuntimePlugin for PutBucketNotificationConfiguration

source§

impl RuntimePlugin for PutBucketOwnershipControls

source§

impl RuntimePlugin for PutBucketPolicy

source§

impl RuntimePlugin for PutBucketReplication

source§

impl RuntimePlugin for PutBucketRequestPayment

source§

impl RuntimePlugin for PutBucketTagging

source§

impl RuntimePlugin for PutBucketVersioning

source§

impl RuntimePlugin for PutBucketWebsite

source§

impl RuntimePlugin for PutObject

source§

impl RuntimePlugin for PutObjectAcl

source§

impl RuntimePlugin for PutObjectLegalHold

source§

impl RuntimePlugin for PutObjectLockConfiguration

source§

impl RuntimePlugin for PutObjectRetention

source§

impl RuntimePlugin for PutObjectTagging

source§

impl RuntimePlugin for PutPublicAccessBlock

source§

impl RuntimePlugin for RestoreObject

source§

impl RuntimePlugin for SelectObjectContent

source§

impl RuntimePlugin for UploadPart

source§

impl RuntimePlugin for UploadPartCopy

source§

impl RuntimePlugin for WriteGetObjectResponse

source§

impl RuntimePlugin for SharedRuntimePlugin