Trait 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 PayloadSigningOverrideRuntimePlugin

Source§

impl RuntimePlugin for NoAuthRuntimePlugin

Source§

impl RuntimePlugin for EnforceContentLengthRuntimePlugin

Source§

impl RuntimePlugin for MetricsRuntimePlugin

Source§

impl RuntimePlugin for CannedResponseDeserializer

Source§

impl RuntimePlugin for CannedRequestSerializer

Implementors§

Source§

impl RuntimePlugin for AssociateAlias

Source§

impl RuntimePlugin for AssociateDistributionTenantWebACL

Source§

impl RuntimePlugin for AssociateDistributionWebACL

Source§

impl RuntimePlugin for CopyDistribution

Source§

impl RuntimePlugin for CreateAnycastIpList

Source§

impl RuntimePlugin for CreateCachePolicy

Source§

impl RuntimePlugin for CreateCloudFrontOriginAccessIdentity

Source§

impl RuntimePlugin for CreateConnectionGroup

Source§

impl RuntimePlugin for CreateContinuousDeploymentPolicy

Source§

impl RuntimePlugin for CreateDistribution

Source§

impl RuntimePlugin for CreateDistributionTenant

Source§

impl RuntimePlugin for CreateDistributionWithTags

Source§

impl RuntimePlugin for CreateFieldLevelEncryptionConfig

Source§

impl RuntimePlugin for CreateFieldLevelEncryptionProfile

Source§

impl RuntimePlugin for CreateFunction

Source§

impl RuntimePlugin for CreateInvalidation

Source§

impl RuntimePlugin for CreateInvalidationForDistributionTenant

Source§

impl RuntimePlugin for CreateKeyGroup

Source§

impl RuntimePlugin for CreateKeyValueStore

Source§

impl RuntimePlugin for CreateMonitoringSubscription

Source§

impl RuntimePlugin for CreateOriginAccessControl

Source§

impl RuntimePlugin for CreateOriginRequestPolicy

Source§

impl RuntimePlugin for CreatePublicKey

Source§

impl RuntimePlugin for CreateRealtimeLogConfig

Source§

impl RuntimePlugin for CreateResponseHeadersPolicy

Source§

impl RuntimePlugin for CreateStreamingDistribution

Source§

impl RuntimePlugin for CreateStreamingDistributionWithTags

Source§

impl RuntimePlugin for CreateVpcOrigin

Source§

impl RuntimePlugin for DeleteAnycastIpList

Source§

impl RuntimePlugin for DeleteCachePolicy

Source§

impl RuntimePlugin for DeleteCloudFrontOriginAccessIdentity

Source§

impl RuntimePlugin for DeleteConnectionGroup

Source§

impl RuntimePlugin for DeleteContinuousDeploymentPolicy

Source§

impl RuntimePlugin for DeleteDistribution

Source§

impl RuntimePlugin for DeleteDistributionTenant

Source§

impl RuntimePlugin for DeleteFieldLevelEncryptionConfig

Source§

impl RuntimePlugin for DeleteFieldLevelEncryptionProfile

Source§

impl RuntimePlugin for DeleteFunction

Source§

impl RuntimePlugin for DeleteKeyGroup

Source§

impl RuntimePlugin for DeleteKeyValueStore

Source§

impl RuntimePlugin for DeleteMonitoringSubscription

Source§

impl RuntimePlugin for DeleteOriginAccessControl

Source§

impl RuntimePlugin for DeleteOriginRequestPolicy

Source§

impl RuntimePlugin for DeletePublicKey

Source§

impl RuntimePlugin for DeleteRealtimeLogConfig

Source§

impl RuntimePlugin for DeleteResponseHeadersPolicy

Source§

impl RuntimePlugin for DeleteStreamingDistribution

Source§

impl RuntimePlugin for DeleteVpcOrigin

Source§

impl RuntimePlugin for DescribeFunction

Source§

impl RuntimePlugin for DescribeKeyValueStore

Source§

impl RuntimePlugin for DisassociateDistributionTenantWebACL

Source§

impl RuntimePlugin for DisassociateDistributionWebACL

Source§

impl RuntimePlugin for GetAnycastIpList

Source§

impl RuntimePlugin for GetCachePolicy

Source§

impl RuntimePlugin for GetCachePolicyConfig

Source§

impl RuntimePlugin for GetCloudFrontOriginAccessIdentity

Source§

impl RuntimePlugin for GetCloudFrontOriginAccessIdentityConfig

Source§

impl RuntimePlugin for GetConnectionGroup

Source§

impl RuntimePlugin for GetConnectionGroupByRoutingEndpoint

Source§

impl RuntimePlugin for GetContinuousDeploymentPolicy

Source§

impl RuntimePlugin for GetContinuousDeploymentPolicyConfig

Source§

impl RuntimePlugin for GetDistribution

Source§

impl RuntimePlugin for GetDistributionConfig

Source§

impl RuntimePlugin for GetDistributionTenant

Source§

impl RuntimePlugin for GetDistributionTenantByDomain

Source§

impl RuntimePlugin for GetFieldLevelEncryption

Source§

impl RuntimePlugin for GetFieldLevelEncryptionConfig

Source§

impl RuntimePlugin for GetFieldLevelEncryptionProfile

Source§

impl RuntimePlugin for GetFieldLevelEncryptionProfileConfig

Source§

impl RuntimePlugin for GetFunction

Source§

impl RuntimePlugin for GetInvalidation

Source§

impl RuntimePlugin for GetInvalidationForDistributionTenant

Source§

impl RuntimePlugin for GetKeyGroup

Source§

impl RuntimePlugin for GetKeyGroupConfig

Source§

impl RuntimePlugin for GetManagedCertificateDetails

Source§

impl RuntimePlugin for GetMonitoringSubscription

Source§

impl RuntimePlugin for GetOriginAccessControl

Source§

impl RuntimePlugin for GetOriginAccessControlConfig

Source§

impl RuntimePlugin for GetOriginRequestPolicy

Source§

impl RuntimePlugin for GetOriginRequestPolicyConfig

Source§

impl RuntimePlugin for GetPublicKey

Source§

impl RuntimePlugin for GetPublicKeyConfig

Source§

impl RuntimePlugin for GetRealtimeLogConfig

Source§

impl RuntimePlugin for GetResponseHeadersPolicy

Source§

impl RuntimePlugin for GetResponseHeadersPolicyConfig

Source§

impl RuntimePlugin for GetStreamingDistribution

Source§

impl RuntimePlugin for GetStreamingDistributionConfig

Source§

impl RuntimePlugin for GetVpcOrigin

Source§

impl RuntimePlugin for ListAnycastIpLists

Source§

impl RuntimePlugin for ListCachePolicies

Source§

impl RuntimePlugin for ListCloudFrontOriginAccessIdentities

Source§

impl RuntimePlugin for ListConflictingAliases

Source§

impl RuntimePlugin for ListConnectionGroups

Source§

impl RuntimePlugin for ListContinuousDeploymentPolicies

Source§

impl RuntimePlugin for ListDistributionTenants

Source§

impl RuntimePlugin for ListDistributionTenantsByCustomization

Source§

impl RuntimePlugin for ListDistributions

Source§

impl RuntimePlugin for ListDistributionsByAnycastIpListId

Source§

impl RuntimePlugin for ListDistributionsByCachePolicyId

Source§

impl RuntimePlugin for ListDistributionsByConnectionMode

Source§

impl RuntimePlugin for ListDistributionsByKeyGroup

Source§

impl RuntimePlugin for ListDistributionsByOriginRequestPolicyId

Source§

impl RuntimePlugin for ListDistributionsByRealtimeLogConfig

Source§

impl RuntimePlugin for ListDistributionsByResponseHeadersPolicyId

Source§

impl RuntimePlugin for ListDistributionsByVpcOriginId

Source§

impl RuntimePlugin for ListDistributionsByWebACLId

Source§

impl RuntimePlugin for ListDomainConflicts

Source§

impl RuntimePlugin for ListFieldLevelEncryptionConfigs

Source§

impl RuntimePlugin for ListFieldLevelEncryptionProfiles

Source§

impl RuntimePlugin for ListFunctions

Source§

impl RuntimePlugin for ListInvalidations

Source§

impl RuntimePlugin for ListInvalidationsForDistributionTenant

Source§

impl RuntimePlugin for ListKeyGroups

Source§

impl RuntimePlugin for ListKeyValueStores

Source§

impl RuntimePlugin for ListOriginAccessControls

Source§

impl RuntimePlugin for ListOriginRequestPolicies

Source§

impl RuntimePlugin for ListPublicKeys

Source§

impl RuntimePlugin for ListRealtimeLogConfigs

Source§

impl RuntimePlugin for ListResponseHeadersPolicies

Source§

impl RuntimePlugin for ListStreamingDistributions

Source§

impl RuntimePlugin for ListTagsForResource

Source§

impl RuntimePlugin for ListVpcOrigins

Source§

impl RuntimePlugin for PublishFunction

Source§

impl RuntimePlugin for TagResource

Source§

impl RuntimePlugin for TestFunction

Source§

impl RuntimePlugin for UntagResource

Source§

impl RuntimePlugin for UpdateCachePolicy

Source§

impl RuntimePlugin for UpdateCloudFrontOriginAccessIdentity

Source§

impl RuntimePlugin for UpdateConnectionGroup

Source§

impl RuntimePlugin for UpdateContinuousDeploymentPolicy

Source§

impl RuntimePlugin for UpdateDistribution

Source§

impl RuntimePlugin for UpdateDistributionTenant

Source§

impl RuntimePlugin for UpdateDistributionWithStagingConfig

Source§

impl RuntimePlugin for UpdateDomainAssociation

Source§

impl RuntimePlugin for UpdateFieldLevelEncryptionConfig

Source§

impl RuntimePlugin for UpdateFieldLevelEncryptionProfile

Source§

impl RuntimePlugin for UpdateFunction

Source§

impl RuntimePlugin for UpdateKeyGroup

Source§

impl RuntimePlugin for UpdateKeyValueStore

Source§

impl RuntimePlugin for UpdateOriginAccessControl

Source§

impl RuntimePlugin for UpdateOriginRequestPolicy

Source§

impl RuntimePlugin for UpdatePublicKey

Source§

impl RuntimePlugin for UpdateRealtimeLogConfig

Source§

impl RuntimePlugin for UpdateResponseHeadersPolicy

Source§

impl RuntimePlugin for UpdateStreamingDistribution

Source§

impl RuntimePlugin for UpdateVpcOrigin

Source§

impl RuntimePlugin for VerifyDnsConfiguration

Source§

impl RuntimePlugin for StaticRuntimePlugin

Source§

impl RuntimePlugin for SharedRuntimePlugin