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 AddTagsToResource

Source§

impl RuntimePlugin for AuthorizeCacheSecurityGroupIngress

Source§

impl RuntimePlugin for BatchApplyUpdateAction

Source§

impl RuntimePlugin for BatchStopUpdateAction

Source§

impl RuntimePlugin for CompleteMigration

Source§

impl RuntimePlugin for CopyServerlessCacheSnapshot

Source§

impl RuntimePlugin for CopySnapshot

Source§

impl RuntimePlugin for CreateCacheCluster

Source§

impl RuntimePlugin for CreateCacheParameterGroup

Source§

impl RuntimePlugin for CreateCacheSecurityGroup

Source§

impl RuntimePlugin for CreateCacheSubnetGroup

Source§

impl RuntimePlugin for CreateGlobalReplicationGroup

Source§

impl RuntimePlugin for CreateReplicationGroup

Source§

impl RuntimePlugin for CreateServerlessCache

Source§

impl RuntimePlugin for CreateServerlessCacheSnapshot

Source§

impl RuntimePlugin for CreateSnapshot

Source§

impl RuntimePlugin for CreateUser

Source§

impl RuntimePlugin for CreateUserGroup

Source§

impl RuntimePlugin for DecreaseNodeGroupsInGlobalReplicationGroup

Source§

impl RuntimePlugin for DecreaseReplicaCount

Source§

impl RuntimePlugin for DeleteCacheCluster

Source§

impl RuntimePlugin for DeleteCacheParameterGroup

Source§

impl RuntimePlugin for DeleteCacheSecurityGroup

Source§

impl RuntimePlugin for DeleteCacheSubnetGroup

Source§

impl RuntimePlugin for DeleteGlobalReplicationGroup

Source§

impl RuntimePlugin for DeleteReplicationGroup

Source§

impl RuntimePlugin for DeleteServerlessCache

Source§

impl RuntimePlugin for DeleteServerlessCacheSnapshot

Source§

impl RuntimePlugin for DeleteSnapshot

Source§

impl RuntimePlugin for DeleteUser

Source§

impl RuntimePlugin for DeleteUserGroup

Source§

impl RuntimePlugin for DescribeCacheClusters

Source§

impl RuntimePlugin for DescribeCacheEngineVersions

Source§

impl RuntimePlugin for DescribeCacheParameterGroups

Source§

impl RuntimePlugin for DescribeCacheParameters

Source§

impl RuntimePlugin for DescribeCacheSecurityGroups

Source§

impl RuntimePlugin for DescribeCacheSubnetGroups

Source§

impl RuntimePlugin for DescribeEngineDefaultParameters

Source§

impl RuntimePlugin for DescribeEvents

Source§

impl RuntimePlugin for DescribeGlobalReplicationGroups

Source§

impl RuntimePlugin for DescribeReplicationGroups

Source§

impl RuntimePlugin for DescribeReservedCacheNodes

Source§

impl RuntimePlugin for DescribeReservedCacheNodesOfferings

Source§

impl RuntimePlugin for DescribeServerlessCacheSnapshots

Source§

impl RuntimePlugin for DescribeServerlessCaches

Source§

impl RuntimePlugin for DescribeServiceUpdates

Source§

impl RuntimePlugin for DescribeSnapshots

Source§

impl RuntimePlugin for DescribeUpdateActions

Source§

impl RuntimePlugin for DescribeUserGroups

Source§

impl RuntimePlugin for DescribeUsers

Source§

impl RuntimePlugin for DisassociateGlobalReplicationGroup

Source§

impl RuntimePlugin for ExportServerlessCacheSnapshot

Source§

impl RuntimePlugin for FailoverGlobalReplicationGroup

Source§

impl RuntimePlugin for IncreaseNodeGroupsInGlobalReplicationGroup

Source§

impl RuntimePlugin for IncreaseReplicaCount

Source§

impl RuntimePlugin for ListAllowedNodeTypeModifications

Source§

impl RuntimePlugin for ListTagsForResource

Source§

impl RuntimePlugin for ModifyCacheCluster

Source§

impl RuntimePlugin for ModifyCacheParameterGroup

Source§

impl RuntimePlugin for ModifyCacheSubnetGroup

Source§

impl RuntimePlugin for ModifyGlobalReplicationGroup

Source§

impl RuntimePlugin for ModifyReplicationGroup

Source§

impl RuntimePlugin for ModifyReplicationGroupShardConfiguration

Source§

impl RuntimePlugin for ModifyServerlessCache

Source§

impl RuntimePlugin for ModifyUser

Source§

impl RuntimePlugin for ModifyUserGroup

Source§

impl RuntimePlugin for PurchaseReservedCacheNodesOffering

Source§

impl RuntimePlugin for RebalanceSlotsInGlobalReplicationGroup

Source§

impl RuntimePlugin for RebootCacheCluster

Source§

impl RuntimePlugin for RemoveTagsFromResource

Source§

impl RuntimePlugin for ResetCacheParameterGroup

Source§

impl RuntimePlugin for RevokeCacheSecurityGroupIngress

Source§

impl RuntimePlugin for StartMigration

Source§

impl RuntimePlugin for TestFailover

Source§

impl RuntimePlugin for TestMigration

Source§

impl RuntimePlugin for StaticRuntimePlugin

Source§

impl RuntimePlugin for SharedRuntimePlugin