RuntimePlugin

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 AllocateStaticIp

Source§

impl RuntimePlugin for AttachCertificateToDistribution

Source§

impl RuntimePlugin for AttachDisk

Source§

impl RuntimePlugin for AttachInstancesToLoadBalancer

Source§

impl RuntimePlugin for AttachLoadBalancerTlsCertificate

Source§

impl RuntimePlugin for AttachStaticIp

Source§

impl RuntimePlugin for CloseInstancePublicPorts

Source§

impl RuntimePlugin for CopySnapshot

Source§

impl RuntimePlugin for CreateBucket

Source§

impl RuntimePlugin for CreateBucketAccessKey

Source§

impl RuntimePlugin for CreateCertificate

Source§

impl RuntimePlugin for CreateCloudFormationStack

Source§

impl RuntimePlugin for CreateContactMethod

Source§

impl RuntimePlugin for CreateContainerService

Source§

impl RuntimePlugin for CreateContainerServiceDeployment

Source§

impl RuntimePlugin for CreateContainerServiceRegistryLogin

Source§

impl RuntimePlugin for CreateDisk

Source§

impl RuntimePlugin for CreateDiskFromSnapshot

Source§

impl RuntimePlugin for CreateDiskSnapshot

Source§

impl RuntimePlugin for CreateDistribution

Source§

impl RuntimePlugin for CreateDomain

Source§

impl RuntimePlugin for CreateDomainEntry

Source§

impl RuntimePlugin for CreateGUISessionAccessDetails

Source§

impl RuntimePlugin for CreateInstanceSnapshot

Source§

impl RuntimePlugin for CreateInstances

Source§

impl RuntimePlugin for CreateInstancesFromSnapshot

Source§

impl RuntimePlugin for CreateKeyPair

Source§

impl RuntimePlugin for CreateLoadBalancer

Source§

impl RuntimePlugin for CreateLoadBalancerTlsCertificate

Source§

impl RuntimePlugin for CreateRelationalDatabase

Source§

impl RuntimePlugin for CreateRelationalDatabaseFromSnapshot

Source§

impl RuntimePlugin for CreateRelationalDatabaseSnapshot

Source§

impl RuntimePlugin for DeleteAlarm

Source§

impl RuntimePlugin for DeleteAutoSnapshot

Source§

impl RuntimePlugin for DeleteBucket

Source§

impl RuntimePlugin for DeleteBucketAccessKey

Source§

impl RuntimePlugin for DeleteCertificate

Source§

impl RuntimePlugin for DeleteContactMethod

Source§

impl RuntimePlugin for DeleteContainerImage

Source§

impl RuntimePlugin for DeleteContainerService

Source§

impl RuntimePlugin for DeleteDisk

Source§

impl RuntimePlugin for DeleteDiskSnapshot

Source§

impl RuntimePlugin for DeleteDistribution

Source§

impl RuntimePlugin for DeleteDomain

Source§

impl RuntimePlugin for DeleteDomainEntry

Source§

impl RuntimePlugin for DeleteInstance

Source§

impl RuntimePlugin for DeleteInstanceSnapshot

Source§

impl RuntimePlugin for DeleteKeyPair

Source§

impl RuntimePlugin for DeleteKnownHostKeys

Source§

impl RuntimePlugin for DeleteLoadBalancer

Source§

impl RuntimePlugin for DeleteLoadBalancerTlsCertificate

Source§

impl RuntimePlugin for DeleteRelationalDatabase

Source§

impl RuntimePlugin for DeleteRelationalDatabaseSnapshot

Source§

impl RuntimePlugin for DetachCertificateFromDistribution

Source§

impl RuntimePlugin for DetachDisk

Source§

impl RuntimePlugin for DetachInstancesFromLoadBalancer

Source§

impl RuntimePlugin for DetachStaticIp

Source§

impl RuntimePlugin for DisableAddOn

Source§

impl RuntimePlugin for DownloadDefaultKeyPair

Source§

impl RuntimePlugin for EnableAddOn

Source§

impl RuntimePlugin for ExportSnapshot

Source§

impl RuntimePlugin for GetActiveNames

Source§

impl RuntimePlugin for GetAlarms

Source§

impl RuntimePlugin for GetAutoSnapshots

Source§

impl RuntimePlugin for GetBlueprints

Source§

impl RuntimePlugin for GetBucketAccessKeys

Source§

impl RuntimePlugin for GetBucketBundles

Source§

impl RuntimePlugin for GetBucketMetricData

Source§

impl RuntimePlugin for GetBuckets

Source§

impl RuntimePlugin for GetBundles

Source§

impl RuntimePlugin for GetCertificates

Source§

impl RuntimePlugin for GetCloudFormationStackRecords

Source§

impl RuntimePlugin for GetContactMethods

Source§

impl RuntimePlugin for GetContainerAPIMetadata

Source§

impl RuntimePlugin for GetContainerImages

Source§

impl RuntimePlugin for GetContainerLog

Source§

impl RuntimePlugin for GetContainerServiceDeployments

Source§

impl RuntimePlugin for GetContainerServiceMetricData

Source§

impl RuntimePlugin for GetContainerServicePowers

Source§

impl RuntimePlugin for GetContainerServices

Source§

impl RuntimePlugin for GetCostEstimate

Source§

impl RuntimePlugin for GetDisk

Source§

impl RuntimePlugin for GetDiskSnapshot

Source§

impl RuntimePlugin for GetDiskSnapshots

Source§

impl RuntimePlugin for GetDisks

Source§

impl RuntimePlugin for GetDistributionBundles

Source§

impl RuntimePlugin for GetDistributionLatestCacheReset

Source§

impl RuntimePlugin for GetDistributionMetricData

Source§

impl RuntimePlugin for GetDistributions

Source§

impl RuntimePlugin for GetDomain

Source§

impl RuntimePlugin for GetDomains

Source§

impl RuntimePlugin for GetExportSnapshotRecords

Source§

impl RuntimePlugin for GetInstance

Source§

impl RuntimePlugin for GetInstanceAccessDetails

Source§

impl RuntimePlugin for GetInstanceMetricData

Source§

impl RuntimePlugin for GetInstancePortStates

Source§

impl RuntimePlugin for GetInstanceSnapshot

Source§

impl RuntimePlugin for GetInstanceSnapshots

Source§

impl RuntimePlugin for GetInstanceState

Source§

impl RuntimePlugin for GetInstances

Source§

impl RuntimePlugin for GetKeyPair

Source§

impl RuntimePlugin for GetKeyPairs

Source§

impl RuntimePlugin for GetLoadBalancer

Source§

impl RuntimePlugin for GetLoadBalancerMetricData

Source§

impl RuntimePlugin for GetLoadBalancerTlsCertificates

Source§

impl RuntimePlugin for GetLoadBalancerTlsPolicies

Source§

impl RuntimePlugin for GetLoadBalancers

Source§

impl RuntimePlugin for GetOperation

Source§

impl RuntimePlugin for GetOperations

Source§

impl RuntimePlugin for GetOperationsForResource

Source§

impl RuntimePlugin for GetRegions

Source§

impl RuntimePlugin for GetRelationalDatabase

Source§

impl RuntimePlugin for GetRelationalDatabaseBlueprints

Source§

impl RuntimePlugin for GetRelationalDatabaseBundles

Source§

impl RuntimePlugin for GetRelationalDatabaseEvents

Source§

impl RuntimePlugin for GetRelationalDatabaseLogEvents

Source§

impl RuntimePlugin for GetRelationalDatabaseLogStreams

Source§

impl RuntimePlugin for GetRelationalDatabaseMasterUserPassword

Source§

impl RuntimePlugin for GetRelationalDatabaseMetricData

Source§

impl RuntimePlugin for GetRelationalDatabaseParameters

Source§

impl RuntimePlugin for GetRelationalDatabaseSnapshot

Source§

impl RuntimePlugin for GetRelationalDatabaseSnapshots

Source§

impl RuntimePlugin for GetRelationalDatabases

Source§

impl RuntimePlugin for GetSetupHistory

Source§

impl RuntimePlugin for GetStaticIp

Source§

impl RuntimePlugin for GetStaticIps

Source§

impl RuntimePlugin for ImportKeyPair

Source§

impl RuntimePlugin for IsVpcPeered

Source§

impl RuntimePlugin for OpenInstancePublicPorts

Source§

impl RuntimePlugin for PeerVpc

Source§

impl RuntimePlugin for PutAlarm

Source§

impl RuntimePlugin for PutInstancePublicPorts

Source§

impl RuntimePlugin for RebootInstance

Source§

impl RuntimePlugin for RebootRelationalDatabase

Source§

impl RuntimePlugin for RegisterContainerImage

Source§

impl RuntimePlugin for ReleaseStaticIp

Source§

impl RuntimePlugin for ResetDistributionCache

Source§

impl RuntimePlugin for SendContactMethodVerification

Source§

impl RuntimePlugin for SetIpAddressType

Source§

impl RuntimePlugin for SetResourceAccessForBucket

Source§

impl RuntimePlugin for SetupInstanceHttps

Source§

impl RuntimePlugin for StartGUISession

Source§

impl RuntimePlugin for StartInstance

Source§

impl RuntimePlugin for StartRelationalDatabase

Source§

impl RuntimePlugin for StopGUISession

Source§

impl RuntimePlugin for StopInstance

Source§

impl RuntimePlugin for StopRelationalDatabase

Source§

impl RuntimePlugin for TagResource

Source§

impl RuntimePlugin for TestAlarm

Source§

impl RuntimePlugin for UnpeerVpc

Source§

impl RuntimePlugin for UntagResource

Source§

impl RuntimePlugin for UpdateBucket

Source§

impl RuntimePlugin for UpdateBucketBundle

Source§

impl RuntimePlugin for UpdateContainerService

Source§

impl RuntimePlugin for UpdateDistribution

Source§

impl RuntimePlugin for UpdateDistributionBundle

Source§

impl RuntimePlugin for UpdateDomainEntry

Source§

impl RuntimePlugin for UpdateInstanceMetadataOptions

Source§

impl RuntimePlugin for UpdateLoadBalancerAttribute

Source§

impl RuntimePlugin for UpdateRelationalDatabase

Source§

impl RuntimePlugin for UpdateRelationalDatabaseParameters

Source§

impl RuntimePlugin for StaticRuntimePlugin

Source§

impl RuntimePlugin for SharedRuntimePlugin