Interface IamPolicyWriter

All Superinterfaces:
ToCopyableBuilder<IamPolicyWriter.Builder,IamPolicyWriter>
All Known Implementing Classes:
DefaultIamPolicyWriter

@ThreadSafe public interface IamPolicyWriter extends ToCopyableBuilder<IamPolicyWriter.Builder,IamPolicyWriter>
The IamPolicyReader converts an IamPolicy into JSON.

Usage Examples

Create a new IAM identity policy that allows a role to write items to an Amazon DynamoDB table.
// IamClient requires a dependency on software.amazon.awssdk:iam
try (IamClient iam = IamClient.builder().region(Region.AWS_GLOBAL).build()) {
    IamPolicy policy =
        IamPolicy.builder()
                 .addStatement(IamStatement.builder()
                                           .effect(IamEffect.ALLOW)
                                           .addAction("dynamodb:PutItem")
                                           .addResource("arn:aws:dynamodb:us-east-2:123456789012:table/books")
                                           .build())
                 .build();

    IamPolicyWriter writer = IamPolicyWriter.create();
    iam.createPolicy(r -> r.policyName("AllowWriteBookMetadata")
                           .policyDocument(writer.writeToString(policy)));
}
Create and use a writer that pretty-prints the IAM policy JSON:
IamPolicyWriter prettyWriter =
    IamPolicyWriter.builder()
                   .prettyPrint(true)
                   .build();
IamPolicy policy =
    IamPolicy.builder()
             .addStatement(IamStatement.builder()
                                       .effect(IamEffect.ALLOW)
                                       .addAction("dynamodb:PutItem")
                                       .addResource("arn:aws:dynamodb:us-east-2:123456789012:table/books")
                                       .build())
             .build();
System.out.println("Policy:\n" + policy.toJson(prettyWriter));
See Also:
  • Method Details

    • create

      static IamPolicyWriter create()
      Create a new IamPolicyReader.

      This method is inexpensive, allowing the creation of writers wherever they are needed.

    • builder

      static IamPolicyWriter.Builder builder()
      Create a IamPolicyWriter.Builder for an IamPolicyWriter.
    • writeToString

      String writeToString(IamPolicy policy)
      Write a policy to a String.

      This does not validate that the provided policy is correct or valid.

    • writeToBytes

      byte[] writeToBytes(IamPolicy policy)
      Write a policy to a byte array.

      This does not validate that the provided policy is correct or valid.