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

software.amazon.awssdk.services.organizations.model.CreateGovCloudAccountRequest Maven / Gradle / Ivy

/*
 * Copyright 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 software.amazon.awssdk.services.organizations.model;

import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.BiConsumer;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.awscore.AwsRequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkField;
import software.amazon.awssdk.core.SdkPojo;
import software.amazon.awssdk.core.protocol.MarshallLocation;
import software.amazon.awssdk.core.protocol.MarshallingType;
import software.amazon.awssdk.core.traits.ListTrait;
import software.amazon.awssdk.core.traits.LocationTrait;
import software.amazon.awssdk.core.util.DefaultSdkAutoConstructList;
import software.amazon.awssdk.core.util.SdkAutoConstructList;
import software.amazon.awssdk.utils.ToString;
import software.amazon.awssdk.utils.builder.CopyableBuilder;
import software.amazon.awssdk.utils.builder.ToCopyableBuilder;

/**
 */
@Generated("software.amazon.awssdk:codegen")
public final class CreateGovCloudAccountRequest extends OrganizationsRequest implements
        ToCopyableBuilder {
    private static final SdkField EMAIL_FIELD = SdkField. builder(MarshallingType.STRING).memberName("Email")
            .getter(getter(CreateGovCloudAccountRequest::email)).setter(setter(Builder::email))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Email").build()).build();

    private static final SdkField ACCOUNT_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("AccountName").getter(getter(CreateGovCloudAccountRequest::accountName))
            .setter(setter(Builder::accountName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("AccountName").build()).build();

    private static final SdkField ROLE_NAME_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("RoleName").getter(getter(CreateGovCloudAccountRequest::roleName)).setter(setter(Builder::roleName))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("RoleName").build()).build();

    private static final SdkField IAM_USER_ACCESS_TO_BILLING_FIELD = SdkField. builder(MarshallingType.STRING)
            .memberName("IamUserAccessToBilling").getter(getter(CreateGovCloudAccountRequest::iamUserAccessToBillingAsString))
            .setter(setter(Builder::iamUserAccessToBilling))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("IamUserAccessToBilling").build())
            .build();

    private static final SdkField> TAGS_FIELD = SdkField
            .> builder(MarshallingType.LIST)
            .memberName("Tags")
            .getter(getter(CreateGovCloudAccountRequest::tags))
            .setter(setter(Builder::tags))
            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD).locationName("Tags").build(),
                    ListTrait
                            .builder()
                            .memberLocationName(null)
                            .memberFieldInfo(
                                    SdkField. builder(MarshallingType.SDK_POJO)
                                            .constructor(Tag::builder)
                                            .traits(LocationTrait.builder().location(MarshallLocation.PAYLOAD)
                                                    .locationName("member").build()).build()).build()).build();

    private static final List> SDK_FIELDS = Collections.unmodifiableList(Arrays.asList(EMAIL_FIELD,
            ACCOUNT_NAME_FIELD, ROLE_NAME_FIELD, IAM_USER_ACCESS_TO_BILLING_FIELD, TAGS_FIELD));

    private static final Map> SDK_NAME_TO_FIELD = memberNameToFieldInitializer();

    private final String email;

    private final String accountName;

    private final String roleName;

    private final String iamUserAccessToBilling;

    private final List tags;

    private CreateGovCloudAccountRequest(BuilderImpl builder) {
        super(builder);
        this.email = builder.email;
        this.accountName = builder.accountName;
        this.roleName = builder.roleName;
        this.iamUserAccessToBilling = builder.iamUserAccessToBilling;
        this.tags = builder.tags;
    }

    /**
     * 

* Specifies the email address of the owner to assign to the new member account in the commercial Region. This email * address must not already be associated with another Amazon Web Services account. You must use a valid email * address to complete account creation. *

*

* The rules for a valid email address: *

*
    *
  • *

    * The address must be a minimum of 6 and a maximum of 64 characters long. *

    *
  • *
  • *

    * All characters must be 7-bit ASCII characters. *

    *
  • *
  • *

    * There must be one and only one @ symbol, which separates the local name from the domain name. *

    *
  • *
  • *

    * The local name can't contain any of the following characters: *

    *

    * whitespace, " ' ( ) < > [ ] : ; , \ | % & *

    *
  • *
  • *

    * The local name can't begin with a dot (.) *

    *
  • *
  • *

    * The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) *

    *
  • *
  • *

    * The domain name can't begin or end with a hyphen (-) or dot (.) *

    *
  • *
  • *

    * The domain name must contain at least one dot *

    *
  • *
*

* You can't access the root user of the account or remove an account that was created with an invalid email * address. Like all request parameters for CreateGovCloudAccount, the request for the email address * for the Amazon Web Services GovCloud (US) account originates from the commercial Region, not from the Amazon Web * Services GovCloud (US) Region. *

* * @return Specifies the email address of the owner to assign to the new member account in the commercial Region. * This email address must not already be associated with another Amazon Web Services account. You must use * a valid email address to complete account creation.

*

* The rules for a valid email address: *

*
    *
  • *

    * The address must be a minimum of 6 and a maximum of 64 characters long. *

    *
  • *
  • *

    * All characters must be 7-bit ASCII characters. *

    *
  • *
  • *

    * There must be one and only one @ symbol, which separates the local name from the domain name. *

    *
  • *
  • *

    * The local name can't contain any of the following characters: *

    *

    * whitespace, " ' ( ) < > [ ] : ; , \ | % & *

    *
  • *
  • *

    * The local name can't begin with a dot (.) *

    *
  • *
  • *

    * The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) *

    *
  • *
  • *

    * The domain name can't begin or end with a hyphen (-) or dot (.) *

    *
  • *
  • *

    * The domain name must contain at least one dot *

    *
  • *
*

* You can't access the root user of the account or remove an account that was created with an invalid email * address. Like all request parameters for CreateGovCloudAccount, the request for the email * address for the Amazon Web Services GovCloud (US) account originates from the commercial Region, not from * the Amazon Web Services GovCloud (US) Region. */ public final String email() { return email; } /** *

* The friendly name of the member account. *

*

* The account name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) You can't separate * characters with a dash (–). *

* * @return The friendly name of the member account.

*

* The account name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) You can't * separate characters with a dash (–). */ public final String accountName() { return accountName; } /** *

* (Optional) *

*

* The name of an IAM role that Organizations automatically preconfigures in the new member accounts in both the * Amazon Web Services GovCloud (US) Region and in the commercial Region. This role trusts the management account, * allowing users in the management account to assume the role, as permitted by the management account * administrator. The role has administrator permissions in the new member account. *

*

* If you don't specify this parameter, the role name defaults to OrganizationAccountAccessRole. *

*

* For more information about how to use this role to access the member account, see the following links: *

* *

* The regex pattern that is used to validate this parameter. The * pattern can include uppercase letters, lowercase letters, digits with no spaces, and any of the following * characters: =,.@- *

* * @return (Optional)

*

* The name of an IAM role that Organizations automatically preconfigures in the new member accounts in both * the Amazon Web Services GovCloud (US) Region and in the commercial Region. This role trusts the * management account, allowing users in the management account to assume the role, as permitted by the * management account administrator. The role has administrator permissions in the new member account. *

*

* If you don't specify this parameter, the role name defaults to OrganizationAccountAccessRole * . *

*

* For more information about how to use this role to access the member account, see the following links: *

* *

* The regex pattern that is used to validate this parameter. * The pattern can include uppercase letters, lowercase letters, digits with no spaces, and any of the * following characters: =,.@- */ public final String roleName() { return roleName; } /** *

* If set to ALLOW, the new linked account in the commercial Region enables IAM users to access account * billing information if they have the required permissions. If set to DENY, only the root user * of the new account can access account billing information. For more information, see About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing and Cost * Management User Guide. *

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles with the * required permissions can access billing information for the new account. *

*

* If the service returns an enum value that is not available in the current SDK version, * {@link #iamUserAccessToBilling} will return {@link IAMUserAccessToBilling#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #iamUserAccessToBillingAsString}. *

* * @return If set to ALLOW, the new linked account in the commercial Region enables IAM users to access * account billing information if they have the required permissions. If set to DENY, * only the root user of the new account can access account billing information. For more information, see * About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing * and Cost Management User Guide.

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles * with the required permissions can access billing information for the new account. * @see IAMUserAccessToBilling */ public final IAMUserAccessToBilling iamUserAccessToBilling() { return IAMUserAccessToBilling.fromValue(iamUserAccessToBilling); } /** *

* If set to ALLOW, the new linked account in the commercial Region enables IAM users to access account * billing information if they have the required permissions. If set to DENY, only the root user * of the new account can access account billing information. For more information, see About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing and Cost * Management User Guide. *

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles with the * required permissions can access billing information for the new account. *

*

* If the service returns an enum value that is not available in the current SDK version, * {@link #iamUserAccessToBilling} will return {@link IAMUserAccessToBilling#UNKNOWN_TO_SDK_VERSION}. The raw value * returned by the service is available from {@link #iamUserAccessToBillingAsString}. *

* * @return If set to ALLOW, the new linked account in the commercial Region enables IAM users to access * account billing information if they have the required permissions. If set to DENY, * only the root user of the new account can access account billing information. For more information, see * About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing * and Cost Management User Guide.

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles * with the required permissions can access billing information for the new account. * @see IAMUserAccessToBilling */ public final String iamUserAccessToBillingAsString() { return iamUserAccessToBilling; } /** * For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that * the value is non-empty (for which, you should check the {@code isEmpty()} method on the property). This is useful * because the SDK will never return a null collection or map, but you may need to differentiate between the service * returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true * if a value for the property was specified in the request builder, and false if a value was not specified. */ public final boolean hasTags() { return tags != null && !(tags instanceof SdkAutoConstructList); } /** *

* A list of tags that you want to attach to the newly created account. These tags are attached to the commercial * account associated with the GovCloud account, and not to the GovCloud account itself. To add tags to the actual * GovCloud account, call the TagResource operation in the GovCloud region after the new GovCloud account * exists. *

*

* For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty string, * but you can't set it to null. For more information about tagging, see Tagging Organizations * resources in the Organizations User Guide. *

* *

* If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an account, then the * entire request fails and the account is not created. *

*
*

* Attempts to modify the collection returned by this method will result in an UnsupportedOperationException. *

*

* This method will never return null. If you would like to know whether the service returned this field (so that * you can differentiate between null and empty), you can use the {@link #hasTags} method. *

* * @return A list of tags that you want to attach to the newly created account. These tags are attached to the * commercial account associated with the GovCloud account, and not to the GovCloud account itself. To add * tags to the actual GovCloud account, call the TagResource operation in the GovCloud region after * the new GovCloud account exists.

*

* For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty * string, but you can't set it to null. For more information about tagging, see Tagging Organizations * resources in the Organizations User Guide. *

* *

* If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an account, * then the entire request fails and the account is not created. *

*/ public final List tags() { return tags; } @Override public Builder toBuilder() { return new BuilderImpl(this); } public static Builder builder() { return new BuilderImpl(); } public static Class serializableBuilderClass() { return BuilderImpl.class; } @Override public final int hashCode() { int hashCode = 1; hashCode = 31 * hashCode + super.hashCode(); hashCode = 31 * hashCode + Objects.hashCode(email()); hashCode = 31 * hashCode + Objects.hashCode(accountName()); hashCode = 31 * hashCode + Objects.hashCode(roleName()); hashCode = 31 * hashCode + Objects.hashCode(iamUserAccessToBillingAsString()); hashCode = 31 * hashCode + Objects.hashCode(hasTags() ? tags() : null); return hashCode; } @Override public final boolean equals(Object obj) { return super.equals(obj) && equalsBySdkFields(obj); } @Override public final boolean equalsBySdkFields(Object obj) { if (this == obj) { return true; } if (obj == null) { return false; } if (!(obj instanceof CreateGovCloudAccountRequest)) { return false; } CreateGovCloudAccountRequest other = (CreateGovCloudAccountRequest) obj; return Objects.equals(email(), other.email()) && Objects.equals(accountName(), other.accountName()) && Objects.equals(roleName(), other.roleName()) && Objects.equals(iamUserAccessToBillingAsString(), other.iamUserAccessToBillingAsString()) && hasTags() == other.hasTags() && Objects.equals(tags(), other.tags()); } /** * 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. */ @Override public final String toString() { return ToString.builder("CreateGovCloudAccountRequest") .add("Email", email() == null ? null : "*** Sensitive Data Redacted ***") .add("AccountName", accountName() == null ? null : "*** Sensitive Data Redacted ***").add("RoleName", roleName()) .add("IamUserAccessToBilling", iamUserAccessToBillingAsString()).add("Tags", hasTags() ? tags() : null).build(); } public final Optional getValueForField(String fieldName, Class clazz) { switch (fieldName) { case "Email": return Optional.ofNullable(clazz.cast(email())); case "AccountName": return Optional.ofNullable(clazz.cast(accountName())); case "RoleName": return Optional.ofNullable(clazz.cast(roleName())); case "IamUserAccessToBilling": return Optional.ofNullable(clazz.cast(iamUserAccessToBillingAsString())); case "Tags": return Optional.ofNullable(clazz.cast(tags())); default: return Optional.empty(); } } @Override public final List> sdkFields() { return SDK_FIELDS; } @Override public final Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } private static Map> memberNameToFieldInitializer() { Map> map = new HashMap<>(); map.put("Email", EMAIL_FIELD); map.put("AccountName", ACCOUNT_NAME_FIELD); map.put("RoleName", ROLE_NAME_FIELD); map.put("IamUserAccessToBilling", IAM_USER_ACCESS_TO_BILLING_FIELD); map.put("Tags", TAGS_FIELD); return Collections.unmodifiableMap(map); } private static Function getter(Function g) { return obj -> g.apply((CreateGovCloudAccountRequest) obj); } private static BiConsumer setter(BiConsumer s) { return (obj, val) -> s.accept((Builder) obj, val); } public interface Builder extends OrganizationsRequest.Builder, SdkPojo, CopyableBuilder { /** *

* Specifies the email address of the owner to assign to the new member account in the commercial Region. This * email address must not already be associated with another Amazon Web Services account. You must use a valid * email address to complete account creation. *

*

* The rules for a valid email address: *

*
    *
  • *

    * The address must be a minimum of 6 and a maximum of 64 characters long. *

    *
  • *
  • *

    * All characters must be 7-bit ASCII characters. *

    *
  • *
  • *

    * There must be one and only one @ symbol, which separates the local name from the domain name. *

    *
  • *
  • *

    * The local name can't contain any of the following characters: *

    *

    * whitespace, " ' ( ) < > [ ] : ; , \ | % & *

    *
  • *
  • *

    * The local name can't begin with a dot (.) *

    *
  • *
  • *

    * The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) *

    *
  • *
  • *

    * The domain name can't begin or end with a hyphen (-) or dot (.) *

    *
  • *
  • *

    * The domain name must contain at least one dot *

    *
  • *
*

* You can't access the root user of the account or remove an account that was created with an invalid email * address. Like all request parameters for CreateGovCloudAccount, the request for the email * address for the Amazon Web Services GovCloud (US) account originates from the commercial Region, not from the * Amazon Web Services GovCloud (US) Region. *

* * @param email * Specifies the email address of the owner to assign to the new member account in the commercial Region. * This email address must not already be associated with another Amazon Web Services account. You must * use a valid email address to complete account creation.

*

* The rules for a valid email address: *

*
    *
  • *

    * The address must be a minimum of 6 and a maximum of 64 characters long. *

    *
  • *
  • *

    * All characters must be 7-bit ASCII characters. *

    *
  • *
  • *

    * There must be one and only one @ symbol, which separates the local name from the domain name. *

    *
  • *
  • *

    * The local name can't contain any of the following characters: *

    *

    * whitespace, " ' ( ) < > [ ] : ; , \ | % & *

    *
  • *
  • *

    * The local name can't begin with a dot (.) *

    *
  • *
  • *

    * The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) *

    *
  • *
  • *

    * The domain name can't begin or end with a hyphen (-) or dot (.) *

    *
  • *
  • *

    * The domain name must contain at least one dot *

    *
  • *
*

* You can't access the root user of the account or remove an account that was created with an invalid * email address. Like all request parameters for CreateGovCloudAccount, the request for the * email address for the Amazon Web Services GovCloud (US) account originates from the commercial Region, * not from the Amazon Web Services GovCloud (US) Region. * @return Returns a reference to this object so that method calls can be chained together. */ Builder email(String email); /** *

* The friendly name of the member account. *

*

* The account name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) You can't * separate characters with a dash (–). *

* * @param accountName * The friendly name of the member account.

*

* The account name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), or dot (.) You * can't separate characters with a dash (–). * @return Returns a reference to this object so that method calls can be chained together. */ Builder accountName(String accountName); /** *

* (Optional) *

*

* The name of an IAM role that Organizations automatically preconfigures in the new member accounts in both the * Amazon Web Services GovCloud (US) Region and in the commercial Region. This role trusts the management * account, allowing users in the management account to assume the role, as permitted by the management account * administrator. The role has administrator permissions in the new member account. *

*

* If you don't specify this parameter, the role name defaults to OrganizationAccountAccessRole. *

*

* For more information about how to use this role to access the member account, see the following links: *

* *

* The regex pattern that is used to validate this parameter. The * pattern can include uppercase letters, lowercase letters, digits with no spaces, and any of the following * characters: =,.@- *

* * @param roleName * (Optional)

*

* The name of an IAM role that Organizations automatically preconfigures in the new member accounts in * both the Amazon Web Services GovCloud (US) Region and in the commercial Region. This role trusts the * management account, allowing users in the management account to assume the role, as permitted by the * management account administrator. The role has administrator permissions in the new member account. *

*

* If you don't specify this parameter, the role name defaults to * OrganizationAccountAccessRole. *

*

* For more information about how to use this role to access the member account, see the following links: *

* *

* The regex pattern that is used to validate this * parameter. The pattern can include uppercase letters, lowercase letters, digits with no spaces, and * any of the following characters: =,.@- * @return Returns a reference to this object so that method calls can be chained together. */ Builder roleName(String roleName); /** *

* If set to ALLOW, the new linked account in the commercial Region enables IAM users to access * account billing information if they have the required permissions. If set to DENY, only * the root user of the new account can access account billing information. For more information, see About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing and * Cost Management User Guide. *

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles with * the required permissions can access billing information for the new account. *

* * @param iamUserAccessToBilling * If set to ALLOW, the new linked account in the commercial Region enables IAM users to * access account billing information if they have the required permissions. If set to * DENY, only the root user of the new account can access account billing information. For * more information, see About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing * and Cost Management User Guide.

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles * with the required permissions can access billing information for the new account. * @see IAMUserAccessToBilling * @return Returns a reference to this object so that method calls can be chained together. * @see IAMUserAccessToBilling */ Builder iamUserAccessToBilling(String iamUserAccessToBilling); /** *

* If set to ALLOW, the new linked account in the commercial Region enables IAM users to access * account billing information if they have the required permissions. If set to DENY, only * the root user of the new account can access account billing information. For more information, see About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing and * Cost Management User Guide. *

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles with * the required permissions can access billing information for the new account. *

* * @param iamUserAccessToBilling * If set to ALLOW, the new linked account in the commercial Region enables IAM users to * access account billing information if they have the required permissions. If set to * DENY, only the root user of the new account can access account billing information. For * more information, see About IAM access to the Billing and Cost Management console in the Amazon Web Services Billing * and Cost Management User Guide.

*

* If you don't specify this parameter, the value defaults to ALLOW, and IAM users and roles * with the required permissions can access billing information for the new account. * @see IAMUserAccessToBilling * @return Returns a reference to this object so that method calls can be chained together. * @see IAMUserAccessToBilling */ Builder iamUserAccessToBilling(IAMUserAccessToBilling iamUserAccessToBilling); /** *

* A list of tags that you want to attach to the newly created account. These tags are attached to the * commercial account associated with the GovCloud account, and not to the GovCloud account itself. To add tags * to the actual GovCloud account, call the TagResource operation in the GovCloud region after the new * GovCloud account exists. *

*

* For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty * string, but you can't set it to null. For more information about tagging, see Tagging Organizations * resources in the Organizations User Guide. *

* *

* If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an account, then * the entire request fails and the account is not created. *

*
* * @param tags * A list of tags that you want to attach to the newly created account. These tags are attached to the * commercial account associated with the GovCloud account, and not to the GovCloud account itself. To * add tags to the actual GovCloud account, call the TagResource operation in the GovCloud region * after the new GovCloud account exists.

*

* For each tag in the list, you must specify both a tag key and a value. You can set the value to an * empty string, but you can't set it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide. *

* *

* If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an * account, then the entire request fails and the account is not created. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Collection tags); /** *

* A list of tags that you want to attach to the newly created account. These tags are attached to the * commercial account associated with the GovCloud account, and not to the GovCloud account itself. To add tags * to the actual GovCloud account, call the TagResource operation in the GovCloud region after the new * GovCloud account exists. *

*

* For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty * string, but you can't set it to null. For more information about tagging, see Tagging Organizations * resources in the Organizations User Guide. *

* *

* If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an account, then * the entire request fails and the account is not created. *

*
* * @param tags * A list of tags that you want to attach to the newly created account. These tags are attached to the * commercial account associated with the GovCloud account, and not to the GovCloud account itself. To * add tags to the actual GovCloud account, call the TagResource operation in the GovCloud region * after the new GovCloud account exists.

*

* For each tag in the list, you must specify both a tag key and a value. You can set the value to an * empty string, but you can't set it to null. For more information about tagging, see Tagging * Organizations resources in the Organizations User Guide. *

* *

* If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an * account, then the entire request fails and the account is not created. *

* @return Returns a reference to this object so that method calls can be chained together. */ Builder tags(Tag... tags); /** *

* A list of tags that you want to attach to the newly created account. These tags are attached to the * commercial account associated with the GovCloud account, and not to the GovCloud account itself. To add tags * to the actual GovCloud account, call the TagResource operation in the GovCloud region after the new * GovCloud account exists. *

*

* For each tag in the list, you must specify both a tag key and a value. You can set the value to an empty * string, but you can't set it to null. For more information about tagging, see Tagging Organizations * resources in the Organizations User Guide. *

* *

* If any one of the tags is not valid or if you exceed the maximum allowed number of tags for an account, then * the entire request fails and the account is not created. *

*
This is a convenience method that creates an instance of the * {@link software.amazon.awssdk.services.organizations.model.Tag.Builder} avoiding the need to create one * manually via {@link software.amazon.awssdk.services.organizations.model.Tag#builder()}. * *

* When the {@link Consumer} completes, * {@link software.amazon.awssdk.services.organizations.model.Tag.Builder#build()} is called immediately and its * result is passed to {@link #tags(List)}. * * @param tags * a consumer that will call methods on * {@link software.amazon.awssdk.services.organizations.model.Tag.Builder} * @return Returns a reference to this object so that method calls can be chained together. * @see #tags(java.util.Collection) */ Builder tags(Consumer... tags); @Override Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration); @Override Builder overrideConfiguration(Consumer builderConsumer); } static final class BuilderImpl extends OrganizationsRequest.BuilderImpl implements Builder { private String email; private String accountName; private String roleName; private String iamUserAccessToBilling; private List tags = DefaultSdkAutoConstructList.getInstance(); private BuilderImpl() { } private BuilderImpl(CreateGovCloudAccountRequest model) { super(model); email(model.email); accountName(model.accountName); roleName(model.roleName); iamUserAccessToBilling(model.iamUserAccessToBilling); tags(model.tags); } public final String getEmail() { return email; } public final void setEmail(String email) { this.email = email; } @Override public final Builder email(String email) { this.email = email; return this; } public final String getAccountName() { return accountName; } public final void setAccountName(String accountName) { this.accountName = accountName; } @Override public final Builder accountName(String accountName) { this.accountName = accountName; return this; } public final String getRoleName() { return roleName; } public final void setRoleName(String roleName) { this.roleName = roleName; } @Override public final Builder roleName(String roleName) { this.roleName = roleName; return this; } public final String getIamUserAccessToBilling() { return iamUserAccessToBilling; } public final void setIamUserAccessToBilling(String iamUserAccessToBilling) { this.iamUserAccessToBilling = iamUserAccessToBilling; } @Override public final Builder iamUserAccessToBilling(String iamUserAccessToBilling) { this.iamUserAccessToBilling = iamUserAccessToBilling; return this; } @Override public final Builder iamUserAccessToBilling(IAMUserAccessToBilling iamUserAccessToBilling) { this.iamUserAccessToBilling(iamUserAccessToBilling == null ? null : iamUserAccessToBilling.toString()); return this; } public final List getTags() { List result = TagsCopier.copyToBuilder(this.tags); if (result instanceof SdkAutoConstructList) { return null; } return result; } public final void setTags(Collection tags) { this.tags = TagsCopier.copyFromBuilder(tags); } @Override public final Builder tags(Collection tags) { this.tags = TagsCopier.copy(tags); return this; } @Override @SafeVarargs public final Builder tags(Tag... tags) { tags(Arrays.asList(tags)); return this; } @Override @SafeVarargs public final Builder tags(Consumer... tags) { tags(Stream.of(tags).map(c -> Tag.builder().applyMutation(c).build()).collect(Collectors.toList())); return this; } @Override public Builder overrideConfiguration(AwsRequestOverrideConfiguration overrideConfiguration) { super.overrideConfiguration(overrideConfiguration); return this; } @Override public Builder overrideConfiguration(Consumer builderConsumer) { super.overrideConfiguration(builderConsumer); return this; } @Override public CreateGovCloudAccountRequest build() { return new CreateGovCloudAccountRequest(this); } @Override public List> sdkFields() { return SDK_FIELDS; } @Override public Map> sdkFieldNameToField() { return SDK_NAME_TO_FIELD; } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy