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 BatchCreateTopicReviewedAnswer

Source§

impl RuntimePlugin for BatchDeleteTopicReviewedAnswer

Source§

impl RuntimePlugin for CancelIngestion

Source§

impl RuntimePlugin for CreateAccountCustomization

Source§

impl RuntimePlugin for CreateAccountSubscription

Source§

impl RuntimePlugin for CreateAnalysis

Source§

impl RuntimePlugin for CreateBrand

Source§

impl RuntimePlugin for CreateCustomPermissions

Source§

impl RuntimePlugin for CreateDashboard

Source§

impl RuntimePlugin for CreateDataSet

Source§

impl RuntimePlugin for CreateDataSource

Source§

impl RuntimePlugin for CreateFolder

Source§

impl RuntimePlugin for CreateFolderMembership

Source§

impl RuntimePlugin for CreateGroup

Source§

impl RuntimePlugin for CreateGroupMembership

Source§

impl RuntimePlugin for CreateIAMPolicyAssignment

Source§

impl RuntimePlugin for CreateIngestion

Source§

impl RuntimePlugin for CreateNamespace

Source§

impl RuntimePlugin for CreateRefreshSchedule

Source§

impl RuntimePlugin for CreateRoleMembership

Source§

impl RuntimePlugin for CreateTemplate

Source§

impl RuntimePlugin for CreateTemplateAlias

Source§

impl RuntimePlugin for CreateTheme

Source§

impl RuntimePlugin for CreateThemeAlias

Source§

impl RuntimePlugin for CreateTopic

Source§

impl RuntimePlugin for CreateTopicRefreshSchedule

Source§

impl RuntimePlugin for CreateVPCConnection

Source§

impl RuntimePlugin for DeleteAccountCustomization

Source§

impl RuntimePlugin for DeleteAccountSubscription

Source§

impl RuntimePlugin for DeleteAnalysis

Source§

impl RuntimePlugin for DeleteBrand

Source§

impl RuntimePlugin for DeleteBrandAssignment

Source§

impl RuntimePlugin for DeleteCustomPermissions

Source§

impl RuntimePlugin for DeleteDashboard

Source§

impl RuntimePlugin for DeleteDataSet

Source§

impl RuntimePlugin for DeleteDataSetRefreshProperties

Source§

impl RuntimePlugin for DeleteDataSource

Source§

impl RuntimePlugin for DeleteDefaultQBusinessApplication

Source§

impl RuntimePlugin for DeleteFolder

Source§

impl RuntimePlugin for DeleteFolderMembership

Source§

impl RuntimePlugin for DeleteGroup

Source§

impl RuntimePlugin for DeleteGroupMembership

Source§

impl RuntimePlugin for DeleteIAMPolicyAssignment

Source§

impl RuntimePlugin for DeleteIdentityPropagationConfig

Source§

impl RuntimePlugin for DeleteNamespace

Source§

impl RuntimePlugin for DeleteRefreshSchedule

Source§

impl RuntimePlugin for DeleteRoleCustomPermission

Source§

impl RuntimePlugin for DeleteRoleMembership

Source§

impl RuntimePlugin for DeleteTemplate

Source§

impl RuntimePlugin for DeleteTemplateAlias

Source§

impl RuntimePlugin for DeleteTheme

Source§

impl RuntimePlugin for DeleteThemeAlias

Source§

impl RuntimePlugin for DeleteTopic

Source§

impl RuntimePlugin for DeleteTopicRefreshSchedule

Source§

impl RuntimePlugin for DeleteUser

Source§

impl RuntimePlugin for DeleteUserByPrincipalId

Source§

impl RuntimePlugin for DeleteUserCustomPermission

Source§

impl RuntimePlugin for DeleteVPCConnection

Source§

impl RuntimePlugin for DescribeAccountCustomization

Source§

impl RuntimePlugin for DescribeAccountSettings

Source§

impl RuntimePlugin for DescribeAccountSubscription

Source§

impl RuntimePlugin for DescribeAnalysis

Source§

impl RuntimePlugin for DescribeAnalysisDefinition

Source§

impl RuntimePlugin for DescribeAnalysisPermissions

Source§

impl RuntimePlugin for DescribeAssetBundleExportJob

Source§

impl RuntimePlugin for DescribeAssetBundleImportJob

Source§

impl RuntimePlugin for DescribeBrand

Source§

impl RuntimePlugin for DescribeBrandAssignment

Source§

impl RuntimePlugin for DescribeBrandPublishedVersion

Source§

impl RuntimePlugin for DescribeCustomPermissions

Source§

impl RuntimePlugin for DescribeDashboard

Source§

impl RuntimePlugin for DescribeDashboardDefinition

Source§

impl RuntimePlugin for DescribeDashboardPermissions

Source§

impl RuntimePlugin for DescribeDashboardSnapshotJob

Source§

impl RuntimePlugin for DescribeDashboardSnapshotJobResult

Source§

impl RuntimePlugin for DescribeDashboardsQAConfiguration

Source§

impl RuntimePlugin for DescribeDataSet

Source§

impl RuntimePlugin for DescribeDataSetPermissions

Source§

impl RuntimePlugin for DescribeDataSetRefreshProperties

Source§

impl RuntimePlugin for DescribeDataSource

Source§

impl RuntimePlugin for DescribeDataSourcePermissions

Source§

impl RuntimePlugin for DescribeDefaultQBusinessApplication

Source§

impl RuntimePlugin for DescribeFolder

Source§

impl RuntimePlugin for DescribeFolderPermissions

Source§

impl RuntimePlugin for DescribeFolderResolvedPermissions

Source§

impl RuntimePlugin for DescribeGroup

Source§

impl RuntimePlugin for DescribeGroupMembership

Source§

impl RuntimePlugin for DescribeIAMPolicyAssignment

Source§

impl RuntimePlugin for DescribeIngestion

Source§

impl RuntimePlugin for DescribeIpRestriction

Source§

impl RuntimePlugin for DescribeKeyRegistration

Source§

impl RuntimePlugin for DescribeNamespace

Source§

impl RuntimePlugin for DescribeQPersonalizationConfiguration

Source§

impl RuntimePlugin for DescribeQuickSightQSearchConfiguration

Source§

impl RuntimePlugin for DescribeRefreshSchedule

Source§

impl RuntimePlugin for DescribeRoleCustomPermission

Source§

impl RuntimePlugin for DescribeTemplate

Source§

impl RuntimePlugin for DescribeTemplateAlias

Source§

impl RuntimePlugin for DescribeTemplateDefinition

Source§

impl RuntimePlugin for DescribeTemplatePermissions

Source§

impl RuntimePlugin for DescribeTheme

Source§

impl RuntimePlugin for DescribeThemeAlias

Source§

impl RuntimePlugin for DescribeThemePermissions

Source§

impl RuntimePlugin for DescribeTopic

Source§

impl RuntimePlugin for DescribeTopicPermissions

Source§

impl RuntimePlugin for DescribeTopicRefresh

Source§

impl RuntimePlugin for DescribeTopicRefreshSchedule

Source§

impl RuntimePlugin for DescribeUser

Source§

impl RuntimePlugin for DescribeVPCConnection

Source§

impl RuntimePlugin for GenerateEmbedUrlForAnonymousUser

Source§

impl RuntimePlugin for GenerateEmbedUrlForRegisteredUser

Source§

impl RuntimePlugin for GenerateEmbedUrlForRegisteredUserWithIdentity

Source§

impl RuntimePlugin for GetDashboardEmbedUrl

Source§

impl RuntimePlugin for GetSessionEmbedUrl

Source§

impl RuntimePlugin for ListAnalyses

Source§

impl RuntimePlugin for ListAssetBundleExportJobs

Source§

impl RuntimePlugin for ListAssetBundleImportJobs

Source§

impl RuntimePlugin for ListBrands

Source§

impl RuntimePlugin for ListCustomPermissions

Source§

impl RuntimePlugin for ListDashboardVersions

Source§

impl RuntimePlugin for ListDashboards

Source§

impl RuntimePlugin for ListDataSets

Source§

impl RuntimePlugin for ListDataSources

Source§

impl RuntimePlugin for ListFolderMembers

Source§

impl RuntimePlugin for ListFolders

Source§

impl RuntimePlugin for ListFoldersForResource

Source§

impl RuntimePlugin for ListGroupMemberships

Source§

impl RuntimePlugin for ListGroups

Source§

impl RuntimePlugin for ListIAMPolicyAssignments

Source§

impl RuntimePlugin for ListIAMPolicyAssignmentsForUser

Source§

impl RuntimePlugin for ListIdentityPropagationConfigs

Source§

impl RuntimePlugin for ListIngestions

Source§

impl RuntimePlugin for ListNamespaces

Source§

impl RuntimePlugin for ListRefreshSchedules

Source§

impl RuntimePlugin for ListRoleMemberships

Source§

impl RuntimePlugin for ListTagsForResource

Source§

impl RuntimePlugin for ListTemplateAliases

Source§

impl RuntimePlugin for ListTemplateVersions

Source§

impl RuntimePlugin for ListTemplates

Source§

impl RuntimePlugin for ListThemeAliases

Source§

impl RuntimePlugin for ListThemeVersions

Source§

impl RuntimePlugin for ListThemes

Source§

impl RuntimePlugin for ListTopicRefreshSchedules

Source§

impl RuntimePlugin for ListTopicReviewedAnswers

Source§

impl RuntimePlugin for ListTopics

Source§

impl RuntimePlugin for ListUserGroups

Source§

impl RuntimePlugin for ListUsers

Source§

impl RuntimePlugin for ListVPCConnections

Source§

impl RuntimePlugin for PredictQAResults

Source§

impl RuntimePlugin for PutDataSetRefreshProperties

Source§

impl RuntimePlugin for RegisterUser

Source§

impl RuntimePlugin for RestoreAnalysis

Source§

impl RuntimePlugin for SearchAnalyses

Source§

impl RuntimePlugin for SearchDashboards

Source§

impl RuntimePlugin for SearchDataSets

Source§

impl RuntimePlugin for SearchDataSources

Source§

impl RuntimePlugin for SearchFolders

Source§

impl RuntimePlugin for SearchGroups

Source§

impl RuntimePlugin for SearchTopics

Source§

impl RuntimePlugin for StartAssetBundleExportJob

Source§

impl RuntimePlugin for StartAssetBundleImportJob

Source§

impl RuntimePlugin for StartDashboardSnapshotJob

Source§

impl RuntimePlugin for StartDashboardSnapshotJobSchedule

Source§

impl RuntimePlugin for TagResource

Source§

impl RuntimePlugin for UntagResource

Source§

impl RuntimePlugin for UpdateAccountCustomization

Source§

impl RuntimePlugin for UpdateAccountSettings

Source§

impl RuntimePlugin for UpdateAnalysis

Source§

impl RuntimePlugin for UpdateAnalysisPermissions

Source§

impl RuntimePlugin for UpdateApplicationWithTokenExchangeGrant

Source§

impl RuntimePlugin for UpdateBrand

Source§

impl RuntimePlugin for UpdateBrandAssignment

Source§

impl RuntimePlugin for UpdateBrandPublishedVersion

Source§

impl RuntimePlugin for UpdateCustomPermissions

Source§

impl RuntimePlugin for UpdateDashboard

Source§

impl RuntimePlugin for UpdateDashboardPermissions

Source§

impl RuntimePlugin for UpdateDashboardPublishedVersion

Source§

impl RuntimePlugin for UpdateDashboardsQAConfiguration

Source§

impl RuntimePlugin for UpdateDataSet

Source§

impl RuntimePlugin for UpdateDataSetPermissions

Source§

impl RuntimePlugin for UpdateDataSource

Source§

impl RuntimePlugin for UpdateDataSourcePermissions

Source§

impl RuntimePlugin for UpdateDefaultQBusinessApplication

Source§

impl RuntimePlugin for UpdateFolder

Source§

impl RuntimePlugin for UpdateFolderPermissions

Source§

impl RuntimePlugin for UpdateGroup

Source§

impl RuntimePlugin for UpdateIAMPolicyAssignment

Source§

impl RuntimePlugin for UpdateIdentityPropagationConfig

Source§

impl RuntimePlugin for UpdateIpRestriction

Source§

impl RuntimePlugin for UpdateKeyRegistration

Source§

impl RuntimePlugin for UpdatePublicSharingSettings

Source§

impl RuntimePlugin for UpdateQPersonalizationConfiguration

Source§

impl RuntimePlugin for UpdateQuickSightQSearchConfiguration

Source§

impl RuntimePlugin for UpdateRefreshSchedule

Source§

impl RuntimePlugin for UpdateRoleCustomPermission

Source§

impl RuntimePlugin for UpdateSPICECapacityConfiguration

Source§

impl RuntimePlugin for UpdateTemplate

Source§

impl RuntimePlugin for UpdateTemplateAlias

Source§

impl RuntimePlugin for UpdateTemplatePermissions

Source§

impl RuntimePlugin for UpdateTheme

Source§

impl RuntimePlugin for UpdateThemeAlias

Source§

impl RuntimePlugin for UpdateThemePermissions

Source§

impl RuntimePlugin for UpdateTopic

Source§

impl RuntimePlugin for UpdateTopicPermissions

Source§

impl RuntimePlugin for UpdateTopicRefreshSchedule

Source§

impl RuntimePlugin for UpdateUser

Source§

impl RuntimePlugin for UpdateUserCustomPermission

Source§

impl RuntimePlugin for UpdateVPCConnection

Source§

impl RuntimePlugin for StaticRuntimePlugin

Source§

impl RuntimePlugin for SharedRuntimePlugin