Interface TraitService

All Known Implementing Classes:
AbstractResourceLifecycleTrait.Provider, AbstractTrait.Provider, ActionNameTrait.Provider, ActionPermissionDescriptionTrait.Provider, AddedDefaultTrait.Provider, AnnotationTrait.Provider, ApiKeyRequiredTrait.Provider, ApiKeySourceTrait.Provider, ApiTlsPolicyTrait.Provider, ArnReferenceTrait.Provider, ArnTrait.Provider, AuthDefinitionTrait.Provider, AuthorizersTrait.Provider, AuthorizerTrait.Provider, AuthTrait.Provider, AwsChunkedTrait.Provider, AwsJson1_0Trait.Provider, AwsJson1_1Trait.Provider, AwsQueryCompatibleTrait.Provider, AwsQueryErrorTrait.Provider, AwsQueryTrait.Provider, BoxTrait.Provider, CfnAdditionalIdentifierTrait.Provider, CfnDefaultValueTrait.Provider, CfnExcludePropertyTrait.Provider, CfnMutabilityTrait.Provider, CfnNameTrait.Provider, CfnResourceTrait.Provider, ClientContextParamsTrait.Provider, ClientDiscoveredEndpointTrait.Provider, ClientEndpointDiscoveryIdTrait.Provider, ClientEndpointDiscoveryTrait.Provider, ClientOptionalTrait.Provider, CognitoUserPoolsScopesTrait.Provider, CognitoUserPoolsTrait.Provider, ConditionKeysTrait.Provider, ConditionKeyValueTrait.Provider, ConditionsTrait.Provider, ContextParamTrait.Provider, ControlPlaneTrait.Provider, CorsTrait.Provider, CreatesResourcesTrait.Provider, DataPlaneTrait.Provider, DataTrait.Provider, DefaultTrait.Provider, DefineConditionKeysTrait.Provider, DeletesResourcesTrait.Provider, DeprecatedTrait.Provider, DisableConditionKeyInferenceTrait.Provider, DocumentationTrait.Provider, DualStackOnlyEndpointsTrait.Provider, Ec2QueryNameTrait.Provider, Ec2QueryTrait.Provider, EndpointBddTrait.Provider, EndpointConfigurationTrait.Provider, EndpointModifierTrait.Provider, EndpointRuleSetTrait.Provider, EndpointTestsTrait.Provider, EndpointTrait.Provider, EnumTrait.Provider, EnumValueTrait.Provider, ErrorTrait.Provider, EventHeaderTrait.Provider, EventPayloadTrait.Provider, EventStreamTestsTrait.Provider, ExamplesTrait.Provider, ExternalDocumentationTrait.Provider, GatewayResponsesTrait.Provider, HostLabelTrait.Provider, HttpApiKeyAuthTrait.Provider, HttpBasicAuthTrait.Provider, HttpBearerAuthTrait.Provider, HttpChecksumRequiredTrait.Provider, HttpChecksumTrait.Provider, HttpDigestAuthTrait.Provider, HttpErrorTrait.Provider, HttpHeaderTrait.Provider, HttpLabelTrait.Provider, HttpMalformedRequestTestsTrait.Provider, HttpPayloadTrait.Provider, HttpPrefixHeadersTrait.Provider, HttpQueryParamsTrait.Provider, HttpQueryTrait.Provider, HttpRequestTestsTrait.Provider, HttpResponseCodeTrait.Provider, HttpResponseTestsTrait.Provider, HttpTrait.Provider, IamActionTrait.Provider, IamResourceTrait.Provider, IdempotencyTokenTrait.Provider, IdempotentTrait.Provider, IdRefTrait.Provider, InputTrait.Provider, IntegrationTrait.Provider, InternalTrait.Provider, JsonNameTrait.Provider, LengthTrait.Provider, LongPollTrait.Provider, MediaTypeTrait.Provider, MetadataTrait.Provider, MinimumCompressionSizeTrait.Provider, MixinTrait.Provider, MockIntegrationTrait.Provider, MqttJsonTrait.Provider, NestedPropertiesTrait.Provider, NoReplaceTrait.Provider, NotPropertyTrait.Provider, OperationContextParamsTrait.Provider, OptionalAuthTrait.Provider, OutputTrait.Provider, PaginatedTrait.Provider, PatternTrait.Provider, PrivateTrait.Provider, PropertyTrait.Provider, ProtocolDefinitionTrait.Provider, PublishTrait.Provider, PutsResourcesTrait.Provider, RangeTrait.Provider, ReadonlyTrait.Provider, ReadsResourcesTrait.Provider, RecommendedTrait.Provider, ReferencesTrait.Provider, RequestCompressionTrait.Provider, RequestValidatorTrait.Provider, RequiredActionsTrait.Provider, RequiredTrait.Provider, RequiresLengthTrait.Provider, ResourceIdentifierTrait.Provider, ResourcePolicyTrait.Provider, RestJson1Trait.Provider, RestXmlTrait.Provider, RetryableTrait.Provider, Rpcv2CborTrait.Provider, Rpcv2JsonTrait.Provider, RuleBasedEndpointsTrait.Provider, S3UnwrappedXmlOutputTrait.Provider, SensitiveTrait.Provider, ServiceResolvedConditionKeysTrait.Provider, ServiceTrait.Provider, SigV4ATrait.Provider, SigV4Trait.Provider, SinceTrait.Provider, SmokeTestsTrait.Provider, SparseTrait.Provider, SpecificationExtensionTrait.Provider, StandardPartitionalEndpointsTrait.Provider, StandardRegionalEndpointsTrait.Provider, StaticContextParamsTrait.Provider, StreamingTrait.Provider, StringListTrait.Provider, StringTrait.Provider, SubscribeTrait.Provider, SupportedPrincipalTypesTrait.Provider, SuppressTrait.Provider, TagEnabledTrait.Provider, TaggableTrait.Provider, TagsTrait.Provider, TimestampFormatTrait.Provider, TitleTrait.Provider, TopicLabelTrait.Provider, TraitDefinition.Provider, TraitValidatorsTrait.Provider, UniqueItemsTrait.Provider, UnitTypeTrait.Provider, UnsignedPayloadTrait.Provider, UnstableFeaturesTrait.Provider, UnstableTrait.Provider, UpdatesResourcesTrait.Provider, WaitableTrait.Provider, XmlAttributeTrait.Provider, XmlFlattenedTrait.Provider, XmlNamespaceTrait.Provider, XmlNameTrait.Provider

public interface TraitService
Creates traits from Node values.

This is the interface used to create traits when loading a model. If a trait implementation does not have a corresponding TraitService, the concrete class for the trait will not be used in code, and instead a DynamicTrait trait will be used.

  • Method Details

    • getShapeId

      ShapeId getShapeId()
      Returns:
      Gets the shape ID of the trait that this provider created.
    • createTrait

      Trait createTrait(ShapeId target, Node value)
      Creates the trait from a node value.
      Parameters:
      target - The shape targeted by the trait.
      value - The value of the trait.
      Returns:
      Returns the created trait.
    • createTrait

      default Trait createTrait(ShapeId target, Node value, ClassLoader classLoader)
      Creates the trait from a node value, providing the classloader that was used to discover trait providers.

      Most providers ignore the classloader; the default implementation delegates to createTrait(ShapeId, Node). Providers whose trait value references components discovered through their own SPIs (for example endpoint rule-set functions contributed by an EndpointRuleSetExtension) can override this to resolve those components from classLoader rather than the classloader that loaded the provider. This matters when the model is assembled with a caller-supplied classloader (see Model.assembler(ClassLoader)) whose closure contains extensions that are not visible to the provider's own classloader.

      Parameters:
      target - The shape targeted by the trait.
      value - The value of the trait.
      classLoader - The classloader used to discover trait providers, or null if unknown.
      Returns:
      Returns the created trait.