Trait aws_sdk_servicecatalog::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

source§

impl RuntimePlugin for CannedResponseDeserializer

source§

impl RuntimePlugin for CannedRequestSerializer

Implementors§

source§

impl RuntimePlugin for AcceptPortfolioShare

source§

impl RuntimePlugin for AssociateBudgetWithResource

source§

impl RuntimePlugin for AssociatePrincipalWithPortfolio

source§

impl RuntimePlugin for AssociateProductWithPortfolio

source§

impl RuntimePlugin for AssociateServiceActionWithProvisioningArtifact

source§

impl RuntimePlugin for AssociateTagOptionWithResource

source§

impl RuntimePlugin for BatchAssociateServiceActionWithProvisioningArtifact

source§

impl RuntimePlugin for BatchDisassociateServiceActionFromProvisioningArtifact

source§

impl RuntimePlugin for CopyProduct

source§

impl RuntimePlugin for CreateConstraint

source§

impl RuntimePlugin for CreatePortfolio

source§

impl RuntimePlugin for CreatePortfolioShare

source§

impl RuntimePlugin for CreateProduct

source§

impl RuntimePlugin for CreateProvisionedProductPlan

source§

impl RuntimePlugin for CreateProvisioningArtifact

source§

impl RuntimePlugin for CreateServiceAction

source§

impl RuntimePlugin for CreateTagOption

source§

impl RuntimePlugin for DeleteConstraint

source§

impl RuntimePlugin for DeletePortfolio

source§

impl RuntimePlugin for DeletePortfolioShare

source§

impl RuntimePlugin for DeleteProduct

source§

impl RuntimePlugin for DeleteProvisionedProductPlan

source§

impl RuntimePlugin for DeleteProvisioningArtifact

source§

impl RuntimePlugin for DeleteServiceAction

source§

impl RuntimePlugin for DeleteTagOption

source§

impl RuntimePlugin for DescribeConstraint

source§

impl RuntimePlugin for DescribeCopyProductStatus

source§

impl RuntimePlugin for DescribePortfolio

source§

impl RuntimePlugin for DescribePortfolioShareStatus

source§

impl RuntimePlugin for DescribePortfolioShares

source§

impl RuntimePlugin for DescribeProduct

source§

impl RuntimePlugin for DescribeProductAsAdmin

source§

impl RuntimePlugin for DescribeProductView

source§

impl RuntimePlugin for DescribeProvisionedProduct

source§

impl RuntimePlugin for DescribeProvisionedProductPlan

source§

impl RuntimePlugin for DescribeProvisioningArtifact

source§

impl RuntimePlugin for DescribeProvisioningParameters

source§

impl RuntimePlugin for DescribeRecord

source§

impl RuntimePlugin for DescribeServiceAction

source§

impl RuntimePlugin for DescribeServiceActionExecutionParameters

source§

impl RuntimePlugin for DescribeTagOption

source§

impl RuntimePlugin for DisableAWSOrganizationsAccess

source§

impl RuntimePlugin for DisassociateBudgetFromResource

source§

impl RuntimePlugin for DisassociatePrincipalFromPortfolio

source§

impl RuntimePlugin for DisassociateProductFromPortfolio

source§

impl RuntimePlugin for DisassociateServiceActionFromProvisioningArtifact

source§

impl RuntimePlugin for DisassociateTagOptionFromResource

source§

impl RuntimePlugin for EnableAWSOrganizationsAccess

source§

impl RuntimePlugin for ExecuteProvisionedProductPlan

source§

impl RuntimePlugin for ExecuteProvisionedProductServiceAction

source§

impl RuntimePlugin for GetAWSOrganizationsAccessStatus

source§

impl RuntimePlugin for GetProvisionedProductOutputs

source§

impl RuntimePlugin for ImportAsProvisionedProduct

source§

impl RuntimePlugin for ListAcceptedPortfolioShares

source§

impl RuntimePlugin for ListBudgetsForResource

source§

impl RuntimePlugin for ListConstraintsForPortfolio

source§

impl RuntimePlugin for ListLaunchPaths

source§

impl RuntimePlugin for ListOrganizationPortfolioAccess

source§

impl RuntimePlugin for ListPortfolioAccess

source§

impl RuntimePlugin for ListPortfolios

source§

impl RuntimePlugin for ListPortfoliosForProduct

source§

impl RuntimePlugin for ListPrincipalsForPortfolio

source§

impl RuntimePlugin for ListProvisionedProductPlans

source§

impl RuntimePlugin for ListProvisioningArtifacts

source§

impl RuntimePlugin for ListProvisioningArtifactsForServiceAction

source§

impl RuntimePlugin for ListRecordHistory

source§

impl RuntimePlugin for ListResourcesForTagOption

source§

impl RuntimePlugin for ListServiceActions

source§

impl RuntimePlugin for ListServiceActionsForProvisioningArtifact

source§

impl RuntimePlugin for ListStackInstancesForProvisionedProduct

source§

impl RuntimePlugin for ListTagOptions

source§

impl RuntimePlugin for NotifyProvisionProductEngineWorkflowResult

source§

impl RuntimePlugin for NotifyTerminateProvisionedProductEngineWorkflowResult

source§

impl RuntimePlugin for NotifyUpdateProvisionedProductEngineWorkflowResult

source§

impl RuntimePlugin for ProvisionProduct

source§

impl RuntimePlugin for RejectPortfolioShare

source§

impl RuntimePlugin for ScanProvisionedProducts

source§

impl RuntimePlugin for SearchProducts

source§

impl RuntimePlugin for SearchProductsAsAdmin

source§

impl RuntimePlugin for SearchProvisionedProducts

source§

impl RuntimePlugin for TerminateProvisionedProduct

source§

impl RuntimePlugin for UpdateConstraint

source§

impl RuntimePlugin for UpdatePortfolio

source§

impl RuntimePlugin for UpdatePortfolioShare

source§

impl RuntimePlugin for UpdateProduct

source§

impl RuntimePlugin for UpdateProvisionedProduct

source§

impl RuntimePlugin for UpdateProvisionedProductProperties

source§

impl RuntimePlugin for UpdateProvisioningArtifact

source§

impl RuntimePlugin for UpdateServiceAction

source§

impl RuntimePlugin for UpdateTagOption

source§

impl RuntimePlugin for StaticRuntimePlugin

source§

impl RuntimePlugin for SharedRuntimePlugin