Class IamActionTrait

java.lang.Object
software.amazon.smithy.model.traits.AbstractTrait
software.amazon.smithy.aws.iam.traits.IamActionTrait
All Implemented Interfaces:
FromSourceLocation, ToNode, ToShapeId, Trait, ToSmithyBuilder<IamActionTrait>

public final class IamActionTrait extends AbstractTrait implements ToSmithyBuilder<IamActionTrait>
Indicates properties of a Smithy operation as an IAM action.
  • Field Details

    • ID

      public static final ShapeId ID
  • Method Details

    • getName

      public Optional<String> getName()
      Get the AWS IAM resource name.
      Returns:
      Returns the name.
    • resolveActionName

      public static String resolveActionName(OperationShape operation)
      Resolves the IAM action name for the given operation. Uses the following resolution order:
      1. Value of the @iamAction trait's name property
      2. Value of the @actionName trait
      3. The operation's name
      Parameters:
      operation - the operation to resolve a name for.
      Returns:
      The resolved action name.
    • getDocumentation

      public Optional<String> getDocumentation()
      Gets the description of what granting the user permission to invoke an operation would entail.
      Returns:
      Returns the documentation.
    • resolveActionDocumentation

      public static String resolveActionDocumentation(OperationShape operation)
      Resolves the IAM action documentation for the given operation. Uses the following resolution order:
      1. Value of the @iamAction trait's documentation property
      2. Value of the @actionPermissionDescription trait
      3. Value of the @documentation trait
      Parameters:
      operation - the operation to resolve documentation for.
      Returns:
      The resolved action documentation.
    • getRelativeDocumentation

      public Optional<String> getRelativeDocumentation()
      Gets the relative URL path for the action within a set of IAM-related documentation.
      Returns:
      Returns the relative URL path to documentation.
    • getRequiredActions

      public List<String> getRequiredActions()
      Gets other actions that the invoker must be authorized to perform when executing the targeted operation.
      Returns:
      Returns the list of required actions.
    • resolveRequiredActions

      public static List<String> resolveRequiredActions(OperationShape operation)
      Resolves the IAM action required actions for the given operation. Uses the following resolution order:
      1. Value of the @iamAction trait's requiredActions property
      2. Value of the @requiredActions trait
      3. An empty list.
      Parameters:
      operation - the operation to resolve required actions for.
      Returns:
      The resolved required actions.
    • getResources

      public Optional<ActionResources> getResources()
      Gets the resources an IAM action can be authorized against.
      Returns:
      Returns the action's resources.
    • getCreatesResources

      public List<String> getCreatesResources()
      Gets the resources that performing this IAM action will create.
      Returns:
      Returns the resources created by the action.
    • builder

      public static IamActionTrait.Builder builder()
    • createNode

      protected Node createNode()
      Description copied from class: AbstractTrait
      The result of toNode is used for hashCodes and equality. Subclasses must implement createNode to turn the trait into a Node. This is then cached for subsequent retrievals.
      Specified by:
      createNode in class AbstractTrait
      Returns:
      Returns the trait as a node.
    • toBuilder

      public SmithyBuilder<IamActionTrait> toBuilder()
      Description copied from interface: ToSmithyBuilder
      Take this object and create a builder that contains all of the current property values of this object.
      Specified by:
      toBuilder in interface ToSmithyBuilder<IamActionTrait>
      Returns:
      a builder for type T