All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.amazonaws.services.identitymanagement.model.Role Maven / Gradle / Ivy

Go to download

The AWS Java SDK for AWS IAM module holds the client classes that are used for communicating with AWS Identity and Access Management Service

The newest version!
/*
 * Copyright 2020-2025 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with
 * the License. A copy of the License is located at
 * 
 * http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
 * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions
 * and limitations under the License.
 */
package com.amazonaws.services.identitymanagement.model;

import java.io.Serializable;
import javax.annotation.Generated;

/**
 * 

* Contains information about an IAM role. This structure is returned as a response element in several API operations * that interact with roles. *

* * @see AWS API Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class Role implements Serializable, Cloneable { /** *

* The path to the role. For more information about paths, see IAM identifiers in the IAM * User Guide. *

*/ private String path; /** *

* The friendly name that identifies the role. *

*/ private String roleName; /** *

* The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the IAM * User Guide. *

*/ private String roleId; /** *

* The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in * policies, see IAM * identifiers in the IAM User Guide guide. *

*/ private String arn; /** *

* The date and time, in ISO 8601 date-time format, when the role was * created. *

*/ private java.util.Date createDate; /** *

* The policy that grants an entity permission to assume the role. *

*/ private String assumeRolePolicyDocument; /** *

* A description of the role that you provide. *

*/ private String description; /** *

* The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the * role can specify the duration using the optional DurationSeconds API parameter or * duration-seconds CLI parameter. *

*/ private Integer maxSessionDuration; /** *

* The ARN of the policy used to set the permissions boundary for the role. *

*

* For more information about permissions boundaries, see Permissions boundaries * for IAM identities in the IAM User Guide. *

*/ private AttachedPermissionsBoundary permissionsBoundary; /** *

* A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the IAM User * Guide. *

*/ private com.amazonaws.internal.SdkInternalList tags; /** *

* Contains information about the last time that an IAM role was used. This includes the date and time and the * Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be * shorter if your Region began supporting these features within the last year. The role might have been used more * than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide. *

*/ private RoleLastUsed roleLastUsed; /** *

* The path to the role. For more information about paths, see IAM identifiers in the IAM * User Guide. *

* * @param path * The path to the role. For more information about paths, see IAM identifiers in the * IAM User Guide. */ public void setPath(String path) { this.path = path; } /** *

* The path to the role. For more information about paths, see IAM identifiers in the IAM * User Guide. *

* * @return The path to the role. For more information about paths, see IAM identifiers in the * IAM User Guide. */ public String getPath() { return this.path; } /** *

* The path to the role. For more information about paths, see IAM identifiers in the IAM * User Guide. *

* * @param path * The path to the role. For more information about paths, see IAM identifiers in the * IAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withPath(String path) { setPath(path); return this; } /** *

* The friendly name that identifies the role. *

* * @param roleName * The friendly name that identifies the role. */ public void setRoleName(String roleName) { this.roleName = roleName; } /** *

* The friendly name that identifies the role. *

* * @return The friendly name that identifies the role. */ public String getRoleName() { return this.roleName; } /** *

* The friendly name that identifies the role. *

* * @param roleName * The friendly name that identifies the role. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withRoleName(String roleName) { setRoleName(roleName); return this; } /** *

* The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the IAM * User Guide. *

* * @param roleId * The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the * IAM User Guide. */ public void setRoleId(String roleId) { this.roleId = roleId; } /** *

* The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the IAM * User Guide. *

* * @return The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the * IAM User Guide. */ public String getRoleId() { return this.roleId; } /** *

* The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the IAM * User Guide. *

* * @param roleId * The stable and unique string identifying the role. For more information about IDs, see IAM identifiers in the * IAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withRoleId(String roleId) { setRoleId(roleId); return this; } /** *

* The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in * policies, see IAM * identifiers in the IAM User Guide guide. *

* * @param arn * The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in * policies, see IAM * identifiers in the IAM User Guide guide. */ public void setArn(String arn) { this.arn = arn; } /** *

* The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in * policies, see IAM * identifiers in the IAM User Guide guide. *

* * @return The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them * in policies, see IAM * identifiers in the IAM User Guide guide. */ public String getArn() { return this.arn; } /** *

* The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in * policies, see IAM * identifiers in the IAM User Guide guide. *

* * @param arn * The Amazon Resource Name (ARN) specifying the role. For more information about ARNs and how to use them in * policies, see IAM * identifiers in the IAM User Guide guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withArn(String arn) { setArn(arn); return this; } /** *

* The date and time, in ISO 8601 date-time format, when the role was * created. *

* * @param createDate * The date and time, in ISO 8601 date-time format, when the * role was created. */ public void setCreateDate(java.util.Date createDate) { this.createDate = createDate; } /** *

* The date and time, in ISO 8601 date-time format, when the role was * created. *

* * @return The date and time, in ISO 8601 date-time format, when the * role was created. */ public java.util.Date getCreateDate() { return this.createDate; } /** *

* The date and time, in ISO 8601 date-time format, when the role was * created. *

* * @param createDate * The date and time, in ISO 8601 date-time format, when the * role was created. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withCreateDate(java.util.Date createDate) { setCreateDate(createDate); return this; } /** *

* The policy that grants an entity permission to assume the role. *

* * @param assumeRolePolicyDocument * The policy that grants an entity permission to assume the role. */ public void setAssumeRolePolicyDocument(String assumeRolePolicyDocument) { this.assumeRolePolicyDocument = assumeRolePolicyDocument; } /** *

* The policy that grants an entity permission to assume the role. *

* * @return The policy that grants an entity permission to assume the role. */ public String getAssumeRolePolicyDocument() { return this.assumeRolePolicyDocument; } /** *

* The policy that grants an entity permission to assume the role. *

* * @param assumeRolePolicyDocument * The policy that grants an entity permission to assume the role. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withAssumeRolePolicyDocument(String assumeRolePolicyDocument) { setAssumeRolePolicyDocument(assumeRolePolicyDocument); return this; } /** *

* A description of the role that you provide. *

* * @param description * A description of the role that you provide. */ public void setDescription(String description) { this.description = description; } /** *

* A description of the role that you provide. *

* * @return A description of the role that you provide. */ public String getDescription() { return this.description; } /** *

* A description of the role that you provide. *

* * @param description * A description of the role that you provide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withDescription(String description) { setDescription(description); return this; } /** *

* The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the * role can specify the duration using the optional DurationSeconds API parameter or * duration-seconds CLI parameter. *

* * @param maxSessionDuration * The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to * assume the role can specify the duration using the optional DurationSeconds API parameter or * duration-seconds CLI parameter. */ public void setMaxSessionDuration(Integer maxSessionDuration) { this.maxSessionDuration = maxSessionDuration; } /** *

* The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the * role can specify the duration using the optional DurationSeconds API parameter or * duration-seconds CLI parameter. *

* * @return The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to * assume the role can specify the duration using the optional DurationSeconds API parameter or * duration-seconds CLI parameter. */ public Integer getMaxSessionDuration() { return this.maxSessionDuration; } /** *

* The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to assume the * role can specify the duration using the optional DurationSeconds API parameter or * duration-seconds CLI parameter. *

* * @param maxSessionDuration * The maximum session duration (in seconds) for the specified role. Anyone who uses the CLI, or API to * assume the role can specify the duration using the optional DurationSeconds API parameter or * duration-seconds CLI parameter. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withMaxSessionDuration(Integer maxSessionDuration) { setMaxSessionDuration(maxSessionDuration); return this; } /** *

* The ARN of the policy used to set the permissions boundary for the role. *

*

* For more information about permissions boundaries, see Permissions boundaries * for IAM identities in the IAM User Guide. *

* * @param permissionsBoundary * The ARN of the policy used to set the permissions boundary for the role.

*

* For more information about permissions boundaries, see Permissions * boundaries for IAM identities in the IAM User Guide. */ public void setPermissionsBoundary(AttachedPermissionsBoundary permissionsBoundary) { this.permissionsBoundary = permissionsBoundary; } /** *

* The ARN of the policy used to set the permissions boundary for the role. *

*

* For more information about permissions boundaries, see Permissions boundaries * for IAM identities in the IAM User Guide. *

* * @return The ARN of the policy used to set the permissions boundary for the role.

*

* For more information about permissions boundaries, see Permissions * boundaries for IAM identities in the IAM User Guide. */ public AttachedPermissionsBoundary getPermissionsBoundary() { return this.permissionsBoundary; } /** *

* The ARN of the policy used to set the permissions boundary for the role. *

*

* For more information about permissions boundaries, see Permissions boundaries * for IAM identities in the IAM User Guide. *

* * @param permissionsBoundary * The ARN of the policy used to set the permissions boundary for the role.

*

* For more information about permissions boundaries, see Permissions * boundaries for IAM identities in the IAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withPermissionsBoundary(AttachedPermissionsBoundary permissionsBoundary) { setPermissionsBoundary(permissionsBoundary); return this; } /** *

* A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the IAM User * Guide. *

* * @return A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the * IAM User Guide. */ public java.util.List getTags() { if (tags == null) { tags = new com.amazonaws.internal.SdkInternalList(); } return tags; } /** *

* A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the IAM User * Guide. *

* * @param tags * A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the * IAM User Guide. */ public void setTags(java.util.Collection tags) { if (tags == null) { this.tags = null; return; } this.tags = new com.amazonaws.internal.SdkInternalList(tags); } /** *

* A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the IAM User * Guide. *

*

* NOTE: This method appends the values to the existing list (if any). Use * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the * existing values. *

* * @param tags * A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the * IAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withTags(Tag... tags) { if (this.tags == null) { setTags(new com.amazonaws.internal.SdkInternalList(tags.length)); } for (Tag ele : tags) { this.tags.add(ele); } return this; } /** *

* A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the IAM User * Guide. *

* * @param tags * A list of tags that are attached to the role. For more information about tagging, see Tagging IAM resources in the * IAM User Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withTags(java.util.Collection tags) { setTags(tags); return this; } /** *

* Contains information about the last time that an IAM role was used. This includes the date and time and the * Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be * shorter if your Region began supporting these features within the last year. The role might have been used more * than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide. *

* * @param roleLastUsed * Contains information about the last time that an IAM role was used. This includes the date and time and * the Region in which the role was last used. Activity is only reported for the trailing 400 days. This * period can be shorter if your Region began supporting these features within the last year. The role might * have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide. */ public void setRoleLastUsed(RoleLastUsed roleLastUsed) { this.roleLastUsed = roleLastUsed; } /** *

* Contains information about the last time that an IAM role was used. This includes the date and time and the * Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be * shorter if your Region began supporting these features within the last year. The role might have been used more * than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide. *

* * @return Contains information about the last time that an IAM role was used. This includes the date and time and * the Region in which the role was last used. Activity is only reported for the trailing 400 days. This * period can be shorter if your Region began supporting these features within the last year. The role might * have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide. */ public RoleLastUsed getRoleLastUsed() { return this.roleLastUsed; } /** *

* Contains information about the last time that an IAM role was used. This includes the date and time and the * Region in which the role was last used. Activity is only reported for the trailing 400 days. This period can be * shorter if your Region began supporting these features within the last year. The role might have been used more * than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide. *

* * @param roleLastUsed * Contains information about the last time that an IAM role was used. This includes the date and time and * the Region in which the role was last used. Activity is only reported for the trailing 400 days. This * period can be shorter if your Region began supporting these features within the last year. The role might * have been used more than 400 days ago. For more information, see Regions where data is tracked in the IAM user Guide. * @return Returns a reference to this object so that method calls can be chained together. */ public Role withRoleLastUsed(RoleLastUsed roleLastUsed) { setRoleLastUsed(roleLastUsed); return this; } /** * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be * redacted from this string using a placeholder value. * * @return A string representation of this object. * * @see java.lang.Object#toString() */ @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append("{"); if (getPath() != null) sb.append("Path: ").append(getPath()).append(","); if (getRoleName() != null) sb.append("RoleName: ").append(getRoleName()).append(","); if (getRoleId() != null) sb.append("RoleId: ").append(getRoleId()).append(","); if (getArn() != null) sb.append("Arn: ").append(getArn()).append(","); if (getCreateDate() != null) sb.append("CreateDate: ").append(getCreateDate()).append(","); if (getAssumeRolePolicyDocument() != null) sb.append("AssumeRolePolicyDocument: ").append(getAssumeRolePolicyDocument()).append(","); if (getDescription() != null) sb.append("Description: ").append(getDescription()).append(","); if (getMaxSessionDuration() != null) sb.append("MaxSessionDuration: ").append(getMaxSessionDuration()).append(","); if (getPermissionsBoundary() != null) sb.append("PermissionsBoundary: ").append(getPermissionsBoundary()).append(","); if (getTags() != null) sb.append("Tags: ").append(getTags()).append(","); if (getRoleLastUsed() != null) sb.append("RoleLastUsed: ").append(getRoleLastUsed()); sb.append("}"); return sb.toString(); } @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (obj instanceof Role == false) return false; Role other = (Role) obj; if (other.getPath() == null ^ this.getPath() == null) return false; if (other.getPath() != null && other.getPath().equals(this.getPath()) == false) return false; if (other.getRoleName() == null ^ this.getRoleName() == null) return false; if (other.getRoleName() != null && other.getRoleName().equals(this.getRoleName()) == false) return false; if (other.getRoleId() == null ^ this.getRoleId() == null) return false; if (other.getRoleId() != null && other.getRoleId().equals(this.getRoleId()) == false) return false; if (other.getArn() == null ^ this.getArn() == null) return false; if (other.getArn() != null && other.getArn().equals(this.getArn()) == false) return false; if (other.getCreateDate() == null ^ this.getCreateDate() == null) return false; if (other.getCreateDate() != null && other.getCreateDate().equals(this.getCreateDate()) == false) return false; if (other.getAssumeRolePolicyDocument() == null ^ this.getAssumeRolePolicyDocument() == null) return false; if (other.getAssumeRolePolicyDocument() != null && other.getAssumeRolePolicyDocument().equals(this.getAssumeRolePolicyDocument()) == false) return false; if (other.getDescription() == null ^ this.getDescription() == null) return false; if (other.getDescription() != null && other.getDescription().equals(this.getDescription()) == false) return false; if (other.getMaxSessionDuration() == null ^ this.getMaxSessionDuration() == null) return false; if (other.getMaxSessionDuration() != null && other.getMaxSessionDuration().equals(this.getMaxSessionDuration()) == false) return false; if (other.getPermissionsBoundary() == null ^ this.getPermissionsBoundary() == null) return false; if (other.getPermissionsBoundary() != null && other.getPermissionsBoundary().equals(this.getPermissionsBoundary()) == false) return false; if (other.getTags() == null ^ this.getTags() == null) return false; if (other.getTags() != null && other.getTags().equals(this.getTags()) == false) return false; if (other.getRoleLastUsed() == null ^ this.getRoleLastUsed() == null) return false; if (other.getRoleLastUsed() != null && other.getRoleLastUsed().equals(this.getRoleLastUsed()) == false) return false; return true; } @Override public int hashCode() { final int prime = 31; int hashCode = 1; hashCode = prime * hashCode + ((getPath() == null) ? 0 : getPath().hashCode()); hashCode = prime * hashCode + ((getRoleName() == null) ? 0 : getRoleName().hashCode()); hashCode = prime * hashCode + ((getRoleId() == null) ? 0 : getRoleId().hashCode()); hashCode = prime * hashCode + ((getArn() == null) ? 0 : getArn().hashCode()); hashCode = prime * hashCode + ((getCreateDate() == null) ? 0 : getCreateDate().hashCode()); hashCode = prime * hashCode + ((getAssumeRolePolicyDocument() == null) ? 0 : getAssumeRolePolicyDocument().hashCode()); hashCode = prime * hashCode + ((getDescription() == null) ? 0 : getDescription().hashCode()); hashCode = prime * hashCode + ((getMaxSessionDuration() == null) ? 0 : getMaxSessionDuration().hashCode()); hashCode = prime * hashCode + ((getPermissionsBoundary() == null) ? 0 : getPermissionsBoundary().hashCode()); hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode()); hashCode = prime * hashCode + ((getRoleLastUsed() == null) ? 0 : getRoleLastUsed().hashCode()); return hashCode; } @Override public Role clone() { try { return (Role) super.clone(); } catch (CloneNotSupportedException e) { throw new IllegalStateException("Got a CloneNotSupportedException from Object.clone() " + "even though we're Cloneable!", e); } } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy