software.amazon.awssdk.services.organizations.DefaultOrganizationsClient Maven / Gradle / Ivy
Show all versions of organizations Show documentation
/*
* 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;
import java.util.Collections;
import java.util.List;
import java.util.function.Consumer;
import software.amazon.awssdk.annotations.Generated;
import software.amazon.awssdk.annotations.SdkInternalApi;
import software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler;
import software.amazon.awssdk.awscore.exception.AwsServiceException;
import software.amazon.awssdk.awscore.internal.AwsProtocolMetadata;
import software.amazon.awssdk.awscore.internal.AwsServiceProtocol;
import software.amazon.awssdk.awscore.retry.AwsRetryStrategy;
import software.amazon.awssdk.core.RequestOverrideConfiguration;
import software.amazon.awssdk.core.SdkPlugin;
import software.amazon.awssdk.core.SdkRequest;
import software.amazon.awssdk.core.client.config.ClientOverrideConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientConfiguration;
import software.amazon.awssdk.core.client.config.SdkClientOption;
import software.amazon.awssdk.core.client.handler.ClientExecutionParams;
import software.amazon.awssdk.core.client.handler.SyncClientHandler;
import software.amazon.awssdk.core.exception.SdkClientException;
import software.amazon.awssdk.core.http.HttpResponseHandler;
import software.amazon.awssdk.core.metrics.CoreMetric;
import software.amazon.awssdk.core.retry.RetryMode;
import software.amazon.awssdk.metrics.MetricCollector;
import software.amazon.awssdk.metrics.MetricPublisher;
import software.amazon.awssdk.metrics.NoOpMetricCollector;
import software.amazon.awssdk.protocols.core.ExceptionMetadata;
import software.amazon.awssdk.protocols.json.AwsJsonProtocol;
import software.amazon.awssdk.protocols.json.AwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.BaseAwsJsonProtocolFactory;
import software.amazon.awssdk.protocols.json.JsonOperationMetadata;
import software.amazon.awssdk.retries.api.RetryStrategy;
import software.amazon.awssdk.services.organizations.internal.OrganizationsServiceClientConfigurationBuilder;
import software.amazon.awssdk.services.organizations.model.AcceptHandshakeRequest;
import software.amazon.awssdk.services.organizations.model.AcceptHandshakeResponse;
import software.amazon.awssdk.services.organizations.model.AccessDeniedException;
import software.amazon.awssdk.services.organizations.model.AccessDeniedForDependencyException;
import software.amazon.awssdk.services.organizations.model.AccountAlreadyClosedException;
import software.amazon.awssdk.services.organizations.model.AccountAlreadyRegisteredException;
import software.amazon.awssdk.services.organizations.model.AccountNotFoundException;
import software.amazon.awssdk.services.organizations.model.AccountNotRegisteredException;
import software.amazon.awssdk.services.organizations.model.AccountOwnerNotVerifiedException;
import software.amazon.awssdk.services.organizations.model.AlreadyInOrganizationException;
import software.amazon.awssdk.services.organizations.model.AttachPolicyRequest;
import software.amazon.awssdk.services.organizations.model.AttachPolicyResponse;
import software.amazon.awssdk.services.organizations.model.AwsOrganizationsNotInUseException;
import software.amazon.awssdk.services.organizations.model.CancelHandshakeRequest;
import software.amazon.awssdk.services.organizations.model.CancelHandshakeResponse;
import software.amazon.awssdk.services.organizations.model.ChildNotFoundException;
import software.amazon.awssdk.services.organizations.model.CloseAccountRequest;
import software.amazon.awssdk.services.organizations.model.CloseAccountResponse;
import software.amazon.awssdk.services.organizations.model.ConcurrentModificationException;
import software.amazon.awssdk.services.organizations.model.ConflictException;
import software.amazon.awssdk.services.organizations.model.ConstraintViolationException;
import software.amazon.awssdk.services.organizations.model.CreateAccountRequest;
import software.amazon.awssdk.services.organizations.model.CreateAccountResponse;
import software.amazon.awssdk.services.organizations.model.CreateAccountStatusNotFoundException;
import software.amazon.awssdk.services.organizations.model.CreateGovCloudAccountRequest;
import software.amazon.awssdk.services.organizations.model.CreateGovCloudAccountResponse;
import software.amazon.awssdk.services.organizations.model.CreateOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.CreateOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.CreateOrganizationalUnitRequest;
import software.amazon.awssdk.services.organizations.model.CreateOrganizationalUnitResponse;
import software.amazon.awssdk.services.organizations.model.CreatePolicyRequest;
import software.amazon.awssdk.services.organizations.model.CreatePolicyResponse;
import software.amazon.awssdk.services.organizations.model.DeclineHandshakeRequest;
import software.amazon.awssdk.services.organizations.model.DeclineHandshakeResponse;
import software.amazon.awssdk.services.organizations.model.DeleteOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.DeleteOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.DeleteOrganizationalUnitRequest;
import software.amazon.awssdk.services.organizations.model.DeleteOrganizationalUnitResponse;
import software.amazon.awssdk.services.organizations.model.DeletePolicyRequest;
import software.amazon.awssdk.services.organizations.model.DeletePolicyResponse;
import software.amazon.awssdk.services.organizations.model.DeleteResourcePolicyRequest;
import software.amazon.awssdk.services.organizations.model.DeleteResourcePolicyResponse;
import software.amazon.awssdk.services.organizations.model.DeregisterDelegatedAdministratorRequest;
import software.amazon.awssdk.services.organizations.model.DeregisterDelegatedAdministratorResponse;
import software.amazon.awssdk.services.organizations.model.DescribeAccountRequest;
import software.amazon.awssdk.services.organizations.model.DescribeAccountResponse;
import software.amazon.awssdk.services.organizations.model.DescribeCreateAccountStatusRequest;
import software.amazon.awssdk.services.organizations.model.DescribeCreateAccountStatusResponse;
import software.amazon.awssdk.services.organizations.model.DescribeEffectivePolicyRequest;
import software.amazon.awssdk.services.organizations.model.DescribeEffectivePolicyResponse;
import software.amazon.awssdk.services.organizations.model.DescribeHandshakeRequest;
import software.amazon.awssdk.services.organizations.model.DescribeHandshakeResponse;
import software.amazon.awssdk.services.organizations.model.DescribeOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.DescribeOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.DescribeOrganizationalUnitRequest;
import software.amazon.awssdk.services.organizations.model.DescribeOrganizationalUnitResponse;
import software.amazon.awssdk.services.organizations.model.DescribePolicyRequest;
import software.amazon.awssdk.services.organizations.model.DescribePolicyResponse;
import software.amazon.awssdk.services.organizations.model.DescribeResourcePolicyRequest;
import software.amazon.awssdk.services.organizations.model.DescribeResourcePolicyResponse;
import software.amazon.awssdk.services.organizations.model.DestinationParentNotFoundException;
import software.amazon.awssdk.services.organizations.model.DetachPolicyRequest;
import software.amazon.awssdk.services.organizations.model.DetachPolicyResponse;
import software.amazon.awssdk.services.organizations.model.DisableAwsServiceAccessRequest;
import software.amazon.awssdk.services.organizations.model.DisableAwsServiceAccessResponse;
import software.amazon.awssdk.services.organizations.model.DisablePolicyTypeRequest;
import software.amazon.awssdk.services.organizations.model.DisablePolicyTypeResponse;
import software.amazon.awssdk.services.organizations.model.DuplicateAccountException;
import software.amazon.awssdk.services.organizations.model.DuplicateHandshakeException;
import software.amazon.awssdk.services.organizations.model.DuplicateOrganizationalUnitException;
import software.amazon.awssdk.services.organizations.model.DuplicatePolicyAttachmentException;
import software.amazon.awssdk.services.organizations.model.DuplicatePolicyException;
import software.amazon.awssdk.services.organizations.model.EffectivePolicyNotFoundException;
import software.amazon.awssdk.services.organizations.model.EnableAllFeaturesRequest;
import software.amazon.awssdk.services.organizations.model.EnableAllFeaturesResponse;
import software.amazon.awssdk.services.organizations.model.EnableAwsServiceAccessRequest;
import software.amazon.awssdk.services.organizations.model.EnableAwsServiceAccessResponse;
import software.amazon.awssdk.services.organizations.model.EnablePolicyTypeRequest;
import software.amazon.awssdk.services.organizations.model.EnablePolicyTypeResponse;
import software.amazon.awssdk.services.organizations.model.FinalizingOrganizationException;
import software.amazon.awssdk.services.organizations.model.HandshakeAlreadyInStateException;
import software.amazon.awssdk.services.organizations.model.HandshakeConstraintViolationException;
import software.amazon.awssdk.services.organizations.model.HandshakeNotFoundException;
import software.amazon.awssdk.services.organizations.model.InvalidHandshakeTransitionException;
import software.amazon.awssdk.services.organizations.model.InvalidInputException;
import software.amazon.awssdk.services.organizations.model.InviteAccountToOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.InviteAccountToOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.LeaveOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.LeaveOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.ListAccountsForParentRequest;
import software.amazon.awssdk.services.organizations.model.ListAccountsForParentResponse;
import software.amazon.awssdk.services.organizations.model.ListAccountsRequest;
import software.amazon.awssdk.services.organizations.model.ListAccountsResponse;
import software.amazon.awssdk.services.organizations.model.ListAwsServiceAccessForOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.ListAwsServiceAccessForOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.ListChildrenRequest;
import software.amazon.awssdk.services.organizations.model.ListChildrenResponse;
import software.amazon.awssdk.services.organizations.model.ListCreateAccountStatusRequest;
import software.amazon.awssdk.services.organizations.model.ListCreateAccountStatusResponse;
import software.amazon.awssdk.services.organizations.model.ListDelegatedAdministratorsRequest;
import software.amazon.awssdk.services.organizations.model.ListDelegatedAdministratorsResponse;
import software.amazon.awssdk.services.organizations.model.ListDelegatedServicesForAccountRequest;
import software.amazon.awssdk.services.organizations.model.ListDelegatedServicesForAccountResponse;
import software.amazon.awssdk.services.organizations.model.ListHandshakesForAccountRequest;
import software.amazon.awssdk.services.organizations.model.ListHandshakesForAccountResponse;
import software.amazon.awssdk.services.organizations.model.ListHandshakesForOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.ListHandshakesForOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.ListOrganizationalUnitsForParentRequest;
import software.amazon.awssdk.services.organizations.model.ListOrganizationalUnitsForParentResponse;
import software.amazon.awssdk.services.organizations.model.ListParentsRequest;
import software.amazon.awssdk.services.organizations.model.ListParentsResponse;
import software.amazon.awssdk.services.organizations.model.ListPoliciesForTargetRequest;
import software.amazon.awssdk.services.organizations.model.ListPoliciesForTargetResponse;
import software.amazon.awssdk.services.organizations.model.ListPoliciesRequest;
import software.amazon.awssdk.services.organizations.model.ListPoliciesResponse;
import software.amazon.awssdk.services.organizations.model.ListRootsRequest;
import software.amazon.awssdk.services.organizations.model.ListRootsResponse;
import software.amazon.awssdk.services.organizations.model.ListTagsForResourceRequest;
import software.amazon.awssdk.services.organizations.model.ListTagsForResourceResponse;
import software.amazon.awssdk.services.organizations.model.ListTargetsForPolicyRequest;
import software.amazon.awssdk.services.organizations.model.ListTargetsForPolicyResponse;
import software.amazon.awssdk.services.organizations.model.MalformedPolicyDocumentException;
import software.amazon.awssdk.services.organizations.model.MasterCannotLeaveOrganizationException;
import software.amazon.awssdk.services.organizations.model.MoveAccountRequest;
import software.amazon.awssdk.services.organizations.model.MoveAccountResponse;
import software.amazon.awssdk.services.organizations.model.OrganizationNotEmptyException;
import software.amazon.awssdk.services.organizations.model.OrganizationalUnitNotEmptyException;
import software.amazon.awssdk.services.organizations.model.OrganizationalUnitNotFoundException;
import software.amazon.awssdk.services.organizations.model.OrganizationsException;
import software.amazon.awssdk.services.organizations.model.ParentNotFoundException;
import software.amazon.awssdk.services.organizations.model.PolicyChangesInProgressException;
import software.amazon.awssdk.services.organizations.model.PolicyInUseException;
import software.amazon.awssdk.services.organizations.model.PolicyNotAttachedException;
import software.amazon.awssdk.services.organizations.model.PolicyNotFoundException;
import software.amazon.awssdk.services.organizations.model.PolicyTypeAlreadyEnabledException;
import software.amazon.awssdk.services.organizations.model.PolicyTypeNotAvailableForOrganizationException;
import software.amazon.awssdk.services.organizations.model.PolicyTypeNotEnabledException;
import software.amazon.awssdk.services.organizations.model.PutResourcePolicyRequest;
import software.amazon.awssdk.services.organizations.model.PutResourcePolicyResponse;
import software.amazon.awssdk.services.organizations.model.RegisterDelegatedAdministratorRequest;
import software.amazon.awssdk.services.organizations.model.RegisterDelegatedAdministratorResponse;
import software.amazon.awssdk.services.organizations.model.RemoveAccountFromOrganizationRequest;
import software.amazon.awssdk.services.organizations.model.RemoveAccountFromOrganizationResponse;
import software.amazon.awssdk.services.organizations.model.ResourcePolicyNotFoundException;
import software.amazon.awssdk.services.organizations.model.RootNotFoundException;
import software.amazon.awssdk.services.organizations.model.ServiceException;
import software.amazon.awssdk.services.organizations.model.SourceParentNotFoundException;
import software.amazon.awssdk.services.organizations.model.TagResourceRequest;
import software.amazon.awssdk.services.organizations.model.TagResourceResponse;
import software.amazon.awssdk.services.organizations.model.TargetNotFoundException;
import software.amazon.awssdk.services.organizations.model.TooManyRequestsException;
import software.amazon.awssdk.services.organizations.model.UnsupportedApiEndpointException;
import software.amazon.awssdk.services.organizations.model.UntagResourceRequest;
import software.amazon.awssdk.services.organizations.model.UntagResourceResponse;
import software.amazon.awssdk.services.organizations.model.UpdateOrganizationalUnitRequest;
import software.amazon.awssdk.services.organizations.model.UpdateOrganizationalUnitResponse;
import software.amazon.awssdk.services.organizations.model.UpdatePolicyRequest;
import software.amazon.awssdk.services.organizations.model.UpdatePolicyResponse;
import software.amazon.awssdk.services.organizations.transform.AcceptHandshakeRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.AttachPolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.CancelHandshakeRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.CloseAccountRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.CreateAccountRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.CreateGovCloudAccountRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.CreateOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.CreateOrganizationalUnitRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.CreatePolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DeclineHandshakeRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DeleteOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DeleteOrganizationalUnitRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DeletePolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DeleteResourcePolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DeregisterDelegatedAdministratorRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribeAccountRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribeCreateAccountStatusRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribeEffectivePolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribeHandshakeRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribeOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribeOrganizationalUnitRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribePolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DescribeResourcePolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DetachPolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DisableAwsServiceAccessRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.DisablePolicyTypeRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.EnableAllFeaturesRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.EnableAwsServiceAccessRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.EnablePolicyTypeRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.InviteAccountToOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.LeaveOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListAccountsForParentRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListAccountsRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListAwsServiceAccessForOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListChildrenRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListCreateAccountStatusRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListDelegatedAdministratorsRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListDelegatedServicesForAccountRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListHandshakesForAccountRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListHandshakesForOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListOrganizationalUnitsForParentRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListParentsRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListPoliciesForTargetRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListPoliciesRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListRootsRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListTagsForResourceRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.ListTargetsForPolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.MoveAccountRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.PutResourcePolicyRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.RegisterDelegatedAdministratorRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.RemoveAccountFromOrganizationRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.TagResourceRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.UntagResourceRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.UpdateOrganizationalUnitRequestMarshaller;
import software.amazon.awssdk.services.organizations.transform.UpdatePolicyRequestMarshaller;
import software.amazon.awssdk.utils.Logger;
/**
* Internal implementation of {@link OrganizationsClient}.
*
* @see OrganizationsClient#builder()
*/
@Generated("software.amazon.awssdk:codegen")
@SdkInternalApi
final class DefaultOrganizationsClient implements OrganizationsClient {
private static final Logger log = Logger.loggerFor(DefaultOrganizationsClient.class);
private static final AwsProtocolMetadata protocolMetadata = AwsProtocolMetadata.builder()
.serviceProtocol(AwsServiceProtocol.AWS_JSON).build();
private final SyncClientHandler clientHandler;
private final AwsJsonProtocolFactory protocolFactory;
private final SdkClientConfiguration clientConfiguration;
protected DefaultOrganizationsClient(SdkClientConfiguration clientConfiguration) {
this.clientHandler = new AwsSyncClientHandler(clientConfiguration);
this.clientConfiguration = clientConfiguration.toBuilder().option(SdkClientOption.SDK_CLIENT, this).build();
this.protocolFactory = init(AwsJsonProtocolFactory.builder()).build();
}
/**
*
* Sends a response to the originator of a handshake agreeing to the action proposed by the handshake request.
*
*
* You can only call this operation by the following principals when they also have the relevant IAM permissions:
*
*
* -
*
* Invitation to join or Approve all features request handshakes: only a principal from the member
* account.
*
*
* The user who calls the API for an invitation to join must have the organizations:AcceptHandshake
* permission. If you enabled all features in the organization, the user must also have the
* iam:CreateServiceLinkedRole
permission so that Organizations can create the required service-linked
* role named AWSServiceRoleForOrganizations
. For more information, see Organizations and service-linked roles in the Organizations User Guide.
*
*
* -
*
* Enable all features final confirmation handshake: only a principal from the management account.
*
*
* For more information about invitations, see Inviting an
* Amazon Web Services account to join your organization in the Organizations User Guide. For more
* information about requests to enable all features in the organization, see Enabling all features in your organization in the Organizations User Guide.
*
*
*
*
* After you accept a handshake, it continues to appear in the results of relevant APIs for only 30 days. After
* that, it's deleted.
*
*
* @param acceptHandshakeRequest
* @return Result of the AcceptHandshake operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws HandshakeConstraintViolationException
* The requested operation would violate the constraint identified in the reason code.
*
* Some of the reasons in the following list might not be applicable to this specific API or operation:
*
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. Note that deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception immediately after creating the organization, wait one hour and try again. If
* after an hour it continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* ALREADY_IN_AN_ORGANIZATION: The handshake request is invalid because the invited account is already a
* member of an organization.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES: You can't issue new invitations to join an organization while
* it's in the process of enabling all features. You can resume inviting accounts after you finalize the
* process when all accounts have agreed to the change.
*
*
* -
*
* ORGANIZATION_ALREADY_HAS_ALL_FEATURES: The handshake request is invalid because the organization has
* already enabled all features.
*
*
* -
*
* ORGANIZATION_IS_ALREADY_PENDING_ALL_FEATURES_MIGRATION: The handshake request is invalid because the
* organization has already started the process to enable all features.
*
*
* -
*
* ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD: The request failed because the account is from a different
* marketplace than the accounts in the organization. For example, accounts with India addresses must be
* associated with the AISPL marketplace. All accounts in an organization must be from the same marketplace.
*
*
* -
*
* ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED: You attempted to change the membership of an account
* too quickly after its previous change.
*
*
* -
*
* PAYMENT_INSTRUMENT_REQUIRED: You can't complete the operation with an account that doesn't have a payment
* instrument, such as a credit card, associated with it.
*
*
* @throws HandshakeNotFoundException
* We can't find a handshake with the HandshakeId
that you specified.
* @throws InvalidHandshakeTransitionException
* You can't perform the operation on the handshake in its current state. For example, you can't cancel a
* handshake that was already accepted or accept a handshake that was already declined.
* @throws HandshakeAlreadyInStateException
* The specified handshake is already in the requested state. For example, you can't accept a handshake that
* was already accepted.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws AccessDeniedForDependencyException
* The operation that you attempted requires you to have the iam:CreateServiceLinkedRole
for
* organizations.amazonaws.com
permission so that Organizations can create the required
* service-linked role. You don't have that permission.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.AcceptHandshake
* @see AWS
* API Documentation
*/
@Override
public AcceptHandshakeResponse acceptHandshake(AcceptHandshakeRequest acceptHandshakeRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, HandshakeConstraintViolationException, HandshakeNotFoundException,
InvalidHandshakeTransitionException, HandshakeAlreadyInStateException, InvalidInputException,
ConcurrentModificationException, ServiceException, TooManyRequestsException, AccessDeniedForDependencyException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
AcceptHandshakeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(acceptHandshakeRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, acceptHandshakeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AcceptHandshake");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("AcceptHandshake").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(acceptHandshakeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new AcceptHandshakeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Attaches a policy to a root, an organizational unit (OU), or an individual account. How the policy affects
* accounts depends on the type of policy. Refer to the Organizations User Guide for information about each
* policy type:
*
*
* -
*
*
* -
*
*
* -
*
*
* BACKUP_POLICY
*
*
* -
*
*
* TAG_POLICY
*
*
* -
*
*
* CHATBOT_POLICY
*
*
* -
*
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param attachPolicyRequest
* @return Result of the AttachPolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws DuplicatePolicyAttachmentException
* The selected policy is already attached to the specified target.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws PolicyNotFoundException
* We can't find a policy with the PolicyId
that you specified.
* @throws PolicyTypeNotEnabledException
* The specified policy type isn't currently enabled in this root. You can't attach policies of the
* specified type to entities in a root until you enable that type in the root. For more information, see Enabling all features in your organization in the Organizations User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TargetNotFoundException
* We can't find a root, OU, account, or policy with the TargetId
that you specified.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws PolicyChangesInProgressException
* Changes to the effective policy are in progress, and its contents can't be returned. Try the operation
* again later.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.AttachPolicy
* @see AWS
* API Documentation
*/
@Override
public AttachPolicyResponse attachPolicy(AttachPolicyRequest attachPolicyRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, ConstraintViolationException,
DuplicatePolicyAttachmentException, InvalidInputException, PolicyNotFoundException, PolicyTypeNotEnabledException,
ServiceException, TargetNotFoundException, TooManyRequestsException, UnsupportedApiEndpointException,
PolicyChangesInProgressException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
AttachPolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(attachPolicyRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, attachPolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "AttachPolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("AttachPolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(attachPolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new AttachPolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Cancels a handshake. Canceling a handshake sets the handshake state to CANCELED
.
*
*
* This operation can be called only from the account that originated the handshake. The recipient of the handshake
* can't cancel it, but can use DeclineHandshake instead. After a handshake is canceled, the recipient can no
* longer respond to that handshake.
*
*
* After you cancel a handshake, it continues to appear in the results of relevant APIs for only 30 days. After
* that, it's deleted.
*
*
* @param cancelHandshakeRequest
* @return Result of the CancelHandshake operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws HandshakeNotFoundException
* We can't find a handshake with the HandshakeId
that you specified.
* @throws InvalidHandshakeTransitionException
* You can't perform the operation on the handshake in its current state. For example, you can't cancel a
* handshake that was already accepted or accept a handshake that was already declined.
* @throws HandshakeAlreadyInStateException
* The specified handshake is already in the requested state. For example, you can't accept a handshake that
* was already accepted.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.CancelHandshake
* @see AWS
* API Documentation
*/
@Override
public CancelHandshakeResponse cancelHandshake(CancelHandshakeRequest cancelHandshakeRequest) throws AccessDeniedException,
ConcurrentModificationException, HandshakeNotFoundException, InvalidHandshakeTransitionException,
HandshakeAlreadyInStateException, InvalidInputException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CancelHandshakeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(cancelHandshakeRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, cancelHandshakeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CancelHandshake");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CancelHandshake").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(cancelHandshakeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CancelHandshakeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Closes an Amazon Web Services member account within an organization. You can close an account when all
* features are enabled . You can't close the management account with this API. This is an asynchronous request
* that Amazon Web Services performs in the background. Because CloseAccount
operates asynchronously,
* it can return a successful completion message even though account closure might still be in progress. You need to
* wait a few minutes before the account is fully closed. To check the status of the request, do one of the
* following:
*
*
* -
*
* Use the AccountId
that you sent in the CloseAccount
request to provide as a parameter
* to the DescribeAccount operation.
*
*
* While the close account request is in progress, Account status will indicate PENDING_CLOSURE. When the close
* account request completes, the status will change to SUSPENDED.
*
*
* -
*
* Check the CloudTrail log for the CloseAccountResult
event that gets published after the account
* closes successfully. For information on using CloudTrail with Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.
*
*
*
*
*
* -
*
* You can close only 10% of member accounts, between 10 and 1000, within a rolling 30 day period. This quota is not
* bound by a calendar month, but starts when you close an account. After you reach this limit, you can't close
* additional accounts. For more information, see Closing a
* member account in your organization and Quotas for
* Organizations in the Organizations User Guide.
*
*
* -
*
* To reinstate a closed account, contact Amazon Web Services Support within the 90-day grace period while the
* account is in SUSPENDED status.
*
*
* -
*
* If the Amazon Web Services account you attempt to close is linked to an Amazon Web Services GovCloud (US)
* account, the CloseAccount
request will close both accounts. To learn important pre-closure details,
* see Closing an
* Amazon Web Services GovCloud (US) account in the Amazon Web Services GovCloud User Guide.
*
*
*
*
*
* @param closeAccountRequest
* @return Result of the CloseAccount operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AccountAlreadyClosedException
* You attempted to close an account that is already closed.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConflictException
* The request failed because it conflicts with the current state of the specified resource.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.CloseAccount
* @see AWS
* API Documentation
*/
@Override
public CloseAccountResponse closeAccount(CloseAccountRequest closeAccountRequest) throws AccessDeniedException,
AccountAlreadyClosedException, AccountNotFoundException, AwsOrganizationsNotInUseException,
ConcurrentModificationException, ConflictException, ConstraintViolationException, InvalidInputException,
ServiceException, TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CloseAccountResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(closeAccountRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, closeAccountRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CloseAccount");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CloseAccount").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(closeAccountRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CloseAccountRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Creates an Amazon Web Services account that is automatically a member of the organization whose credentials made
* the request. This is an asynchronous request that Amazon Web Services performs in the background. Because
* CreateAccount
operates asynchronously, it can return a successful completion message even though
* account initialization might still be in progress. You might need to wait a few minutes before you can
* successfully access the account. To check the status of the request, do one of the following:
*
*
* -
*
* Use the Id
value of the CreateAccountStatus
response element from this operation to
* provide as a parameter to the DescribeCreateAccountStatus operation.
*
*
* -
*
* Check the CloudTrail log for the CreateAccountResult
event. For information on using CloudTrail with
* Organizations, see Logging and monitoring in Organizations in the Organizations User Guide.
*
*
*
*
* The user who calls the API to create an account must have the organizations:CreateAccount
* permission. If you enabled all features in the organization, Organizations creates the required service-linked
* role named AWSServiceRoleForOrganizations
. For more information, see Organizations and service-linked roles in the Organizations User Guide.
*
*
* If the request includes tags, then the requester must have the organizations:TagResource
permission.
*
*
* Organizations preconfigures the new member account with a role (named OrganizationAccountAccessRole
* by default) that grants users in the management account administrator permissions in the new member account.
* Principals in the management account can assume the role. Organizations clones the company name and address
* information for the new account from the organization's management account.
*
*
* This operation can be called only from the organization's management account.
*
*
* For more information about creating accounts, see Creating a
* member account in your organization in the Organizations User Guide.
*
*
*
* -
*
* When you create an account in an organization using the Organizations console, API, or CLI commands, the
* information required for the account to operate as a standalone account, such as a payment method is not
* automatically collected. If you must remove an account from your organization later, you can do so only after you
* provide the missing information. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.
*
*
* -
*
* If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.
*
*
* -
*
* If you get an exception that indicates that the operation failed because your organization is still initializing,
* wait one hour and then try again. If the error persists, contact Amazon Web Services Support.
*
*
* -
*
* It isn't recommended to use CreateAccount
to create multiple temporary accounts, and using the
* CreateAccount
API to close accounts is subject to a 30-day usage quota. For information on the
* requirements and process for closing an account, see Closing a
* member account in your organization in the Organizations User Guide.
*
*
*
*
*
* When you create a member account with this operation, you can choose whether to create the account with the
* IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that
* have appropriate permissions can view billing information for the account. If you disable it, only the account
* root user can access billing information. For information about how to disable this switch for an account, see Granting
* access to your billing information and tools.
*
*
*
* @param createAccountRequest
* @return Result of the CreateAccount operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws FinalizingOrganizationException
* Organizations couldn't perform the operation because your organization hasn't finished initializing. This
* can take up to an hour. Try again later. If after one hour you continue to receive this error, contact Amazon Web Services Support.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.CreateAccount
* @see AWS
* API Documentation
*/
@Override
public CreateAccountResponse createAccount(CreateAccountRequest createAccountRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, ConstraintViolationException,
InvalidInputException, FinalizingOrganizationException, ServiceException, TooManyRequestsException,
UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreateAccountResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createAccountRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createAccountRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateAccount");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateAccount").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createAccountRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateAccountRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* This action is available if all of the following are true:
*
*
* -
*
* You're authorized to create accounts in the Amazon Web Services GovCloud (US) Region. For more information on the
* Amazon Web Services GovCloud (US) Region, see the Amazon Web Services GovCloud
* User Guide.
*
*
* -
*
* You already have an account in the Amazon Web Services GovCloud (US) Region that is paired with a management
* account of an organization in the commercial Region.
*
*
* -
*
* You call this action from the management account of your organization in the commercial Region.
*
*
* -
*
* You have the organizations:CreateGovCloudAccount
permission.
*
*
*
*
* Organizations automatically creates the required service-linked role named
* AWSServiceRoleForOrganizations
. For more information, see Organizations and service-linked roles in the Organizations User Guide.
*
*
* Amazon Web Services automatically enables CloudTrail for Amazon Web Services GovCloud (US) accounts, but you
* should also do the following:
*
*
* -
*
* Verify that CloudTrail is enabled to store logs.
*
*
* -
*
* Create an Amazon S3 bucket for CloudTrail log storage.
*
*
* For more information, see Verifying CloudTrail Is
* Enabled in the Amazon Web Services GovCloud User Guide.
*
*
*
*
* If the request includes tags, then the requester must have the organizations:TagResource
permission.
* The tags are attached to the commercial account associated with the GovCloud account, rather than the GovCloud
* account itself. To add tags to the GovCloud account, call the TagResource operation in the GovCloud Region
* after the new GovCloud account exists.
*
*
* You call this action from the management account of your organization in the commercial Region to create a
* standalone Amazon Web Services account in the Amazon Web Services GovCloud (US) Region. After the account is
* created, the management account of an organization in the Amazon Web Services GovCloud (US) Region can invite it
* to that organization. For more information on inviting standalone accounts in the Amazon Web Services GovCloud
* (US) to join an organization, see Organizations in
* the Amazon Web Services GovCloud User Guide.
*
*
* Calling CreateGovCloudAccount
is an asynchronous request that Amazon Web Services performs in the
* background. Because CreateGovCloudAccount
operates asynchronously, it can return a successful
* completion message even though account initialization might still be in progress. You might need to wait a few
* minutes before you can successfully access the account. To check the status of the request, do one of the
* following:
*
*
* -
*
* Use the OperationId
response element from this operation to provide as a parameter to the
* DescribeCreateAccountStatus operation.
*
*
* -
*
* Check the CloudTrail log for the CreateAccountResult
event. For information on using CloudTrail with
* Organizations, see Logging
* and monitoring in Organizations in the Organizations User Guide.
*
*
*
*
*
* When you call the CreateGovCloudAccount
action, you create two accounts: a standalone account in the
* Amazon Web Services GovCloud (US) Region and an associated account in the commercial Region for billing and
* support purposes. The account in the commercial Region is automatically a member of the organization whose
* credentials made the request. Both accounts are associated with the same email address.
*
*
* A role is created in the new account in the commercial Region that allows the management account in the
* organization in the commercial Region to assume it. An Amazon Web Services GovCloud (US) account is then created
* and associated with the commercial account that you just created. A role is also created in the new Amazon Web
* Services GovCloud (US) account that can be assumed by the Amazon Web Services GovCloud (US) account that is
* associated with the management account of the commercial organization. For more information and to view a diagram
* that explains how account access works, see Organizations in
* the Amazon Web Services GovCloud User Guide.
*
*
* For more information about creating accounts, see Creating a
* member account in your organization in the Organizations User Guide.
*
*
*
* -
*
* When you create an account in an organization using the Organizations console, API, or CLI commands, the
* information required for the account to operate as a standalone account is not automatically collected.
* This includes a payment method and signing the end user license agreement (EULA). If you must remove an account
* from your organization later, you can do so only after you provide the missing information. For more information,
* see
* Considerations before removing an account from an organization in the Organizations User Guide.
*
*
* -
*
* If you get an exception that indicates that you exceeded your account limits for the organization, contact Amazon Web Services Support.
*
*
* -
*
* If you get an exception that indicates that the operation failed because your organization is still initializing,
* wait one hour and then try again. If the error persists, contact Amazon Web Services Support.
*
*
* -
*
* Using CreateGovCloudAccount
to create multiple temporary accounts isn't recommended. You can only
* close an account from the Amazon Web Services Billing and Cost Management console, and you must be signed in as
* the root user. For information on the requirements and process for closing an account, see Closing a
* member account in your organization in the Organizations User Guide.
*
*
*
*
*
* When you create a member account with this operation, you can choose whether to create the account with the
* IAM User and Role Access to Billing Information switch enabled. If you enable it, IAM users and roles that
* have appropriate permissions can view billing information for the account. If you disable it, only the account
* root user can access billing information. For information about how to disable this switch for an account, see Granting access to your
* billing information and tools.
*
*
*
* @param createGovCloudAccountRequest
* @return Result of the CreateGovCloudAccount operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws FinalizingOrganizationException
* Organizations couldn't perform the operation because your organization hasn't finished initializing. This
* can take up to an hour. Try again later. If after one hour you continue to receive this error, contact Amazon Web Services Support.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.CreateGovCloudAccount
* @see AWS API Documentation
*/
@Override
public CreateGovCloudAccountResponse createGovCloudAccount(CreateGovCloudAccountRequest createGovCloudAccountRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
ConstraintViolationException, InvalidInputException, FinalizingOrganizationException, ServiceException,
TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateGovCloudAccountResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createGovCloudAccountRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createGovCloudAccountRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateGovCloudAccount");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateGovCloudAccount").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createGovCloudAccountRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateGovCloudAccountRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Creates an Amazon Web Services organization. The account whose user is calling the
* CreateOrganization
operation automatically becomes the management account of the new organization.
*
*
* This operation must be called using credentials from the account that is to become the new organization's
* management account. The principal must also have the relevant IAM permissions.
*
*
* By default (or if you set the FeatureSet
parameter to ALL
), the new organization is
* created with all features enabled and service control policies automatically enabled in the root. If you instead
* choose to create the organization supporting only the consolidated billing features by setting the
* FeatureSet
parameter to CONSOLIDATED_BILLING
, no policy types are enabled by default
* and you can't use organization policies.
*
*
* @param createOrganizationRequest
* @return Result of the CreateOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AlreadyInOrganizationException
* This account is already a member of an organization. An account can belong to only one organization at a
* time.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws AccessDeniedForDependencyException
* The operation that you attempted requires you to have the iam:CreateServiceLinkedRole
for
* organizations.amazonaws.com
permission so that Organizations can create the required
* service-linked role. You don't have that permission.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.CreateOrganization
* @see AWS API Documentation
*/
@Override
public CreateOrganizationResponse createOrganization(CreateOrganizationRequest createOrganizationRequest)
throws AccessDeniedException, AlreadyInOrganizationException, ConcurrentModificationException,
ConstraintViolationException, InvalidInputException, ServiceException, TooManyRequestsException,
AccessDeniedForDependencyException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createOrganizationRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateOrganization");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreateOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Creates an organizational unit (OU) within a root or parent OU. An OU is a container for accounts that enables
* you to organize your accounts to apply policies according to your business requirements. The number of levels
* deep that you can nest OUs is dependent upon the policy types enabled for that root. For service control
* policies, the limit is five.
*
*
* For more information about OUs, see Managing organizational
* units (OUs) in the Organizations User Guide.
*
*
* If the request includes tags, then the requester must have the organizations:TagResource
permission.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param createOrganizationalUnitRequest
* @return Result of the CreateOrganizationalUnit operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws DuplicateOrganizationalUnitException
* An OU with the same name already exists.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ParentNotFoundException
* We can't find a root or OU with the ParentId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.CreateOrganizationalUnit
* @see AWS API Documentation
*/
@Override
public CreateOrganizationalUnitResponse createOrganizationalUnit(
CreateOrganizationalUnitRequest createOrganizationalUnitRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, ConstraintViolationException,
DuplicateOrganizationalUnitException, InvalidInputException, ParentNotFoundException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, CreateOrganizationalUnitResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createOrganizationalUnitRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createOrganizationalUnitRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreateOrganizationalUnit");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("CreateOrganizationalUnit").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createOrganizationalUnitRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreateOrganizationalUnitRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Creates a policy of a specified type that you can attach to a root, an organizational unit (OU), or an individual
* Amazon Web Services account.
*
*
* For more information about policies and their use, see Managing
* Organizations policies.
*
*
* If the request includes tags, then the requester must have the organizations:TagResource
permission.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param createPolicyRequest
* @return Result of the CreatePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws DuplicatePolicyException
* A policy with the same name already exists.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws MalformedPolicyDocumentException
* The provided policy document doesn't meet the requirements of the specified policy type. For example, the
* syntax might be incorrect. For details about service control policy syntax, see SCP syntax in the Organizations User Guide.
* @throws PolicyTypeNotAvailableForOrganizationException
* You can't use the specified policy type with the feature set currently enabled for this organization. For
* example, you can enable SCPs only after you enable all features in the organization. For more
* information, see Managing Organizations policiesin the Organizations User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.CreatePolicy
* @see AWS
* API Documentation
*/
@Override
public CreatePolicyResponse createPolicy(CreatePolicyRequest createPolicyRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, ConstraintViolationException,
DuplicatePolicyException, InvalidInputException, MalformedPolicyDocumentException,
PolicyTypeNotAvailableForOrganizationException, ServiceException, TooManyRequestsException,
UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
CreatePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(createPolicyRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, createPolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "CreatePolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("CreatePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(createPolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new CreatePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Declines a handshake request. This sets the handshake state to DECLINED
and effectively deactivates
* the request.
*
*
* This operation can be called only from the account that received the handshake. The originator of the handshake
* can use CancelHandshake instead. The originator can't reactivate a declined request, but can reinitiate
* the process with a new handshake request.
*
*
* After you decline a handshake, it continues to appear in the results of relevant APIs for only 30 days. After
* that, it's deleted.
*
*
* @param declineHandshakeRequest
* @return Result of the DeclineHandshake operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws HandshakeNotFoundException
* We can't find a handshake with the HandshakeId
that you specified.
* @throws InvalidHandshakeTransitionException
* You can't perform the operation on the handshake in its current state. For example, you can't cancel a
* handshake that was already accepted or accept a handshake that was already declined.
* @throws HandshakeAlreadyInStateException
* The specified handshake is already in the requested state. For example, you can't accept a handshake that
* was already accepted.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DeclineHandshake
* @see AWS API Documentation
*/
@Override
public DeclineHandshakeResponse declineHandshake(DeclineHandshakeRequest declineHandshakeRequest)
throws AccessDeniedException, ConcurrentModificationException, HandshakeNotFoundException,
InvalidHandshakeTransitionException, HandshakeAlreadyInStateException, InvalidInputException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeclineHandshakeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(declineHandshakeRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, declineHandshakeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeclineHandshake");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeclineHandshake").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(declineHandshakeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeclineHandshakeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Deletes the organization. You can delete an organization only by using credentials from the management account.
* The organization must be empty of member accounts.
*
*
* @param deleteOrganizationRequest
* @return Result of the DeleteOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws OrganizationNotEmptyException
* The organization isn't empty. To delete an organization, you must first remove all accounts except the
* management account.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DeleteOrganization
* @see AWS API Documentation
*/
@Override
public DeleteOrganizationResponse deleteOrganization(DeleteOrganizationRequest deleteOrganizationRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
InvalidInputException, OrganizationNotEmptyException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteOrganizationRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteOrganization");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Deletes an organizational unit (OU) from a root or another OU. You must first remove all accounts and child OUs
* from the OU that you want to delete.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param deleteOrganizationalUnitRequest
* @return Result of the DeleteOrganizationalUnit operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws OrganizationalUnitNotEmptyException
* The specified OU is not empty. Move all accounts to another root or to other OUs, remove all child OUs,
* and try the operation again.
* @throws OrganizationalUnitNotFoundException
* We can't find an OU with the OrganizationalUnitId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DeleteOrganizationalUnit
* @see AWS API Documentation
*/
@Override
public DeleteOrganizationalUnitResponse deleteOrganizationalUnit(
DeleteOrganizationalUnitRequest deleteOrganizationalUnitRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, InvalidInputException,
OrganizationalUnitNotEmptyException, OrganizationalUnitNotFoundException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteOrganizationalUnitResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteOrganizationalUnitRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteOrganizationalUnitRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteOrganizationalUnit");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeleteOrganizationalUnit").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteOrganizationalUnitRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteOrganizationalUnitRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Deletes the specified policy from your organization. Before you perform this operation, you must first detach the
* policy from all organizational units (OUs), roots, and accounts.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param deletePolicyRequest
* @return Result of the DeletePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws PolicyInUseException
* The policy is attached to one or more entities. You must detach it from all roots, OUs, and accounts
* before performing this operation.
* @throws PolicyNotFoundException
* We can't find a policy with the PolicyId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DeletePolicy
* @see AWS
* API Documentation
*/
@Override
public DeletePolicyResponse deletePolicy(DeletePolicyRequest deletePolicyRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, InvalidInputException, PolicyInUseException,
PolicyNotFoundException, ServiceException, TooManyRequestsException, UnsupportedApiEndpointException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DeletePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deletePolicyRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deletePolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeletePolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeletePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deletePolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeletePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Deletes the resource policy from your organization.
*
*
* You can only call this operation from the organization's management account.
*
*
* @param deleteResourcePolicyRequest
* @return Result of the DeleteResourcePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
*
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ResourcePolicyNotFoundException
* We can't find a resource policy request with the parameter that you specified.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DeleteResourcePolicy
* @see AWS API Documentation
*/
@Override
public DeleteResourcePolicyResponse deleteResourcePolicy(DeleteResourcePolicyRequest deleteResourcePolicyRequest)
throws AccessDeniedException, ServiceException, UnsupportedApiEndpointException, TooManyRequestsException,
ConcurrentModificationException, ConstraintViolationException, AwsOrganizationsNotInUseException,
ResourcePolicyNotFoundException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeleteResourcePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deleteResourcePolicyRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, deleteResourcePolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeleteResourcePolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DeleteResourcePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deleteResourcePolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeleteResourcePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Removes the specified member Amazon Web Services account as a delegated administrator for the specified Amazon
* Web Services service.
*
*
*
* Deregistering a delegated administrator can have unintended impacts on the functionality of the enabled Amazon
* Web Services service. See the documentation for the enabled service before you deregister a delegated
* administrator so that you understand any potential impacts.
*
*
*
* You can run this action only for Amazon Web Services services that support this feature. For a current list of
* services that support it, see the column Supports Delegated Administrator in the table at Amazon Web
* Services Services that you can use with Organizations in the Organizations User Guide.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param deregisterDelegatedAdministratorRequest
* @return Result of the DeregisterDelegatedAdministrator operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws AccountNotRegisteredException
* The specified account is not a delegated administrator for this Amazon Web Services service.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DeregisterDelegatedAdministrator
* @see AWS API Documentation
*/
@Override
public DeregisterDelegatedAdministratorResponse deregisterDelegatedAdministrator(
DeregisterDelegatedAdministratorRequest deregisterDelegatedAdministratorRequest) throws AccessDeniedException,
AccountNotFoundException, AccountNotRegisteredException, AwsOrganizationsNotInUseException,
ConcurrentModificationException, ConstraintViolationException, InvalidInputException, TooManyRequestsException,
ServiceException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DeregisterDelegatedAdministratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(deregisterDelegatedAdministratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
deregisterDelegatedAdministratorRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DeregisterDelegatedAdministrator");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DeregisterDelegatedAdministrator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(deregisterDelegatedAdministratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DeregisterDelegatedAdministratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves Organizations-related information about the specified account.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param describeAccountRequest
* @return Result of the DescribeAccount operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribeAccount
* @see AWS
* API Documentation
*/
@Override
public DescribeAccountResponse describeAccount(DescribeAccountRequest describeAccountRequest) throws AccessDeniedException,
AccountNotFoundException, AwsOrganizationsNotInUseException, InvalidInputException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DescribeAccountResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeAccountRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeAccountRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeAccount");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeAccount").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeAccountRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeAccountRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves the current status of an asynchronous request to create an account.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param describeCreateAccountStatusRequest
* @return Result of the DescribeCreateAccountStatus operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws CreateAccountStatusNotFoundException
* We can't find an create account request with the CreateAccountRequestId
that you specified.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribeCreateAccountStatus
* @see AWS API Documentation
*/
@Override
public DescribeCreateAccountStatusResponse describeCreateAccountStatus(
DescribeCreateAccountStatusRequest describeCreateAccountStatusRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, CreateAccountStatusNotFoundException, InvalidInputException, ServiceException,
TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeCreateAccountStatusResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeCreateAccountStatusRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeCreateAccountStatusRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeCreateAccountStatus");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeCreateAccountStatus").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeCreateAccountStatusRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeCreateAccountStatusRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns the contents of the effective policy for specified policy type and account. The effective policy is the
* aggregation of any policies of the specified type that the account inherits, plus any policy of that type that is
* directly attached to the account.
*
*
* This operation applies only to policy types other than service control policies (SCPs).
*
*
* For more information about policy inheritance, see Understanding management policy inheritance in the Organizations User Guide.
*
*
* This operation can be called from any account in the organization.
*
*
* @param describeEffectivePolicyRequest
* @return Result of the DescribeEffectivePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws TargetNotFoundException
* We can't find a root, OU, account, or policy with the TargetId
that you specified.
* @throws EffectivePolicyNotFoundException
* If you ran this action on the management account, this policy type is not enabled. If you ran the action
* on a member account, the account doesn't have an effective policy of this type. Contact the administrator
* of your organization about attaching a policy of this type to the account.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
*
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribeEffectivePolicy
* @see AWS API Documentation
*/
@Override
public DescribeEffectivePolicyResponse describeEffectivePolicy(DescribeEffectivePolicyRequest describeEffectivePolicyRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConstraintViolationException, ServiceException,
TooManyRequestsException, TargetNotFoundException, EffectivePolicyNotFoundException, InvalidInputException,
UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeEffectivePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeEffectivePolicyRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeEffectivePolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeEffectivePolicy");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeEffectivePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeEffectivePolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeEffectivePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves information about a previously requested handshake. The handshake ID comes from the response to the
* original InviteAccountToOrganization operation that generated the handshake.
*
*
* You can access handshakes that are ACCEPTED
, DECLINED
, or CANCELED
for
* only 30 days after they change to that state. They're then deleted and no longer accessible.
*
*
* This operation can be called from any account in the organization.
*
*
* @param describeHandshakeRequest
* @return Result of the DescribeHandshake operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws HandshakeNotFoundException
* We can't find a handshake with the HandshakeId
that you specified.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribeHandshake
* @see AWS API Documentation
*/
@Override
public DescribeHandshakeResponse describeHandshake(DescribeHandshakeRequest describeHandshakeRequest)
throws AccessDeniedException, ConcurrentModificationException, HandshakeNotFoundException, InvalidInputException,
ServiceException, TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DescribeHandshakeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeHandshakeRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeHandshakeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeHandshake");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeHandshake").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeHandshakeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeHandshakeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves information about the organization that the user's account belongs to.
*
*
* This operation can be called from any account in the organization.
*
*
*
* Even if a policy type is shown as available in the organization, you can disable it separately at the root level
* with DisablePolicyType. Use ListRoots to see the status of policy types for a specified root.
*
*
*
* @param describeOrganizationRequest
* @return Result of the DescribeOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribeOrganization
* @see AWS API Documentation
*/
@Override
public DescribeOrganizationResponse describeOrganization(DescribeOrganizationRequest describeOrganizationRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeOrganizationRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeOrganization");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribeOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves information about an organizational unit (OU).
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param describeOrganizationalUnitRequest
* @return Result of the DescribeOrganizationalUnit operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws OrganizationalUnitNotFoundException
* We can't find an OU with the OrganizationalUnitId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribeOrganizationalUnit
* @see AWS API Documentation
*/
@Override
public DescribeOrganizationalUnitResponse describeOrganizationalUnit(
DescribeOrganizationalUnitRequest describeOrganizationalUnitRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, InvalidInputException, OrganizationalUnitNotFoundException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeOrganizationalUnitResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeOrganizationalUnitRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeOrganizationalUnitRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeOrganizationalUnit");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeOrganizationalUnit").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeOrganizationalUnitRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeOrganizationalUnitRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves information about a policy.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param describePolicyRequest
* @return Result of the DescribePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws PolicyNotFoundException
* We can't find a policy with the PolicyId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribePolicy
* @see AWS
* API Documentation
*/
@Override
public DescribePolicyResponse describePolicy(DescribePolicyRequest describePolicyRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, InvalidInputException, PolicyNotFoundException, ServiceException,
TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DescribePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describePolicyRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describePolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribePolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DescribePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describePolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves information about a resource policy.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param describeResourcePolicyRequest
* @return Result of the DescribeResourcePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ResourcePolicyNotFoundException
* We can't find a resource policy request with the parameter that you specified.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
*
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DescribeResourcePolicy
* @see AWS API Documentation
*/
@Override
public DescribeResourcePolicyResponse describeResourcePolicy(DescribeResourcePolicyRequest describeResourcePolicyRequest)
throws AccessDeniedException, ServiceException, UnsupportedApiEndpointException, TooManyRequestsException,
AwsOrganizationsNotInUseException, ResourcePolicyNotFoundException, ConstraintViolationException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DescribeResourcePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(describeResourcePolicyRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, describeResourcePolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DescribeResourcePolicy");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DescribeResourcePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(describeResourcePolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DescribeResourcePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Detaches a policy from a target root, organizational unit (OU), or account.
*
*
*
* If the policy being detached is a service control policy (SCP), the changes to permissions for Identity and
* Access Management (IAM) users and roles in affected accounts are immediate.
*
*
*
* Every root, OU, and account must have at least one SCP attached. If you want to replace the default
* FullAWSAccess
policy with an SCP that limits the permissions that can be delegated, you must attach
* the replacement SCP before you can remove the default SCP. This is the authorization strategy of an
* "allow list". If you instead attach a second SCP and leave the FullAWSAccess
SCP still
* attached, and specify "Effect": "Deny"
in the second SCP to override the
* "Effect": "Allow"
in the FullAWSAccess
policy (or any other attached SCP), you're using
* the authorization strategy of a
* "deny list".
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param detachPolicyRequest
* @return Result of the DetachPolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws PolicyNotAttachedException
* The policy isn't attached to the specified target in the specified root.
* @throws PolicyNotFoundException
* We can't find a policy with the PolicyId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TargetNotFoundException
* We can't find a root, OU, account, or policy with the TargetId
that you specified.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws PolicyChangesInProgressException
* Changes to the effective policy are in progress, and its contents can't be returned. Try the operation
* again later.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DetachPolicy
* @see AWS
* API Documentation
*/
@Override
public DetachPolicyResponse detachPolicy(DetachPolicyRequest detachPolicyRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, ConstraintViolationException,
InvalidInputException, PolicyNotAttachedException, PolicyNotFoundException, ServiceException,
TargetNotFoundException, TooManyRequestsException, UnsupportedApiEndpointException, PolicyChangesInProgressException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DetachPolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(detachPolicyRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, detachPolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DetachPolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DetachPolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(detachPolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DetachPolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Disables the integration of an Amazon Web Services service (the service that is specified by
* ServicePrincipal
) with Organizations. When you disable integration, the specified service no longer
* can create a service-linked role
* in new accounts in your organization. This means the service can't perform operations on your behalf on
* any new accounts in your organization. The service can still perform operations in older accounts until the
* service completes its clean-up from Organizations.
*
*
*
* We strongly recommend that you don't use this command to disable integration between
* Organizations and the specified Amazon Web Services service. Instead, use the console or commands that are
* provided by the specified service. This lets the trusted service perform any required initialization when
* enabling trusted access, such as creating any required resources and any required clean up of resources when
* disabling trusted access.
*
*
* For information about how to disable trusted service access to your organization using the trusted service, see
* the Learn more link under the Supports Trusted Access column at Amazon Web
* Services services that you can use with Organizations. on this page.
*
*
* If you disable access by using this command, it causes the following actions to occur:
*
*
* -
*
* The service can no longer create a service-linked role in the accounts in your organization. This means that the
* service can't perform operations on your behalf on any new accounts in your organization. The service can still
* perform operations in older accounts until the service completes its clean-up from Organizations.
*
*
* -
*
* The service can no longer perform tasks in the member accounts in the organization, unless those operations are
* explicitly permitted by the IAM policies that are attached to your roles. This includes any data aggregation from
* the member accounts to the management account, or to a delegated administrator account, where relevant.
*
*
* -
*
* Some services detect this and clean up any remaining data or resources related to the integration, while other
* services stop accessing the organization but leave any historical data and configuration in place to support a
* possible re-enabling of the integration.
*
*
*
*
* Using the other service's console or commands to disable the integration ensures that the other service is aware
* that it can clean up any resources that are required only for the integration. How the service cleans up its
* resources in the organization's accounts depends on that service. For more information, see the documentation for
* the other Amazon Web Services service.
*
*
*
* After you perform the DisableAWSServiceAccess
operation, the specified service can no longer perform
* operations in your organization's accounts
*
*
* For more information about integrating other services with Organizations, including the list of services that
* work with Organizations, see Using
* Organizations with other Amazon Web Services services in the Organizations User Guide.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param disableAwsServiceAccessRequest
* @return Result of the DisableAWSServiceAccess operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DisableAWSServiceAccess
* @see AWS API Documentation
*/
@Override
public DisableAwsServiceAccessResponse disableAWSServiceAccess(DisableAwsServiceAccessRequest disableAwsServiceAccessRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
ConstraintViolationException, InvalidInputException, ServiceException, TooManyRequestsException,
UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, DisableAwsServiceAccessResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(disableAwsServiceAccessRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, disableAwsServiceAccessRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DisableAWSServiceAccess");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("DisableAWSServiceAccess").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(disableAwsServiceAccessRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DisableAwsServiceAccessRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Disables an organizational policy type in a root. A policy of a certain type can be attached to entities in a
* root only if that type is enabled in the root. After you perform this operation, you no longer can attach
* policies of the specified type to that root or to any organizational unit (OU) or account in that root. You can
* undo this by using the EnablePolicyType operation.
*
*
* This is an asynchronous request that Amazon Web Services performs in the background. If you disable a policy type
* for a root, it still appears enabled for the organization if all
* features are enabled for the organization. Amazon Web Services recommends that you first use ListRoots
* to see the status of policy types for a specified root, and then use this operation.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* To view the status of available policy types in the organization, use DescribeOrganization.
*
*
* @param disablePolicyTypeRequest
* @return Result of the DisablePolicyType operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws PolicyTypeNotEnabledException
* The specified policy type isn't currently enabled in this root. You can't attach policies of the
* specified type to entities in a root until you enable that type in the root. For more information, see Enabling all features in your organization in the Organizations User Guide.
* @throws RootNotFoundException
* We can't find a root with the RootId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws PolicyChangesInProgressException
* Changes to the effective policy are in progress, and its contents can't be returned. Try the operation
* again later.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.DisablePolicyType
* @see AWS API Documentation
*/
@Override
public DisablePolicyTypeResponse disablePolicyType(DisablePolicyTypeRequest disablePolicyTypeRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
ConstraintViolationException, InvalidInputException, PolicyTypeNotEnabledException, RootNotFoundException,
ServiceException, TooManyRequestsException, UnsupportedApiEndpointException, PolicyChangesInProgressException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
DisablePolicyTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(disablePolicyTypeRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, disablePolicyTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "DisablePolicyType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("DisablePolicyType").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(disablePolicyTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new DisablePolicyTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Provides an Amazon Web Services service (the service that is specified by ServicePrincipal
) with
* permissions to view the structure of an organization, create a service-linked role
* in all the accounts in the organization, and allow the service to perform operations on behalf of the
* organization and its accounts. Establishing these permissions can be a first step in enabling the integration of
* an Amazon Web Services service with Organizations.
*
*
*
* We recommend that you enable integration between Organizations and the specified Amazon Web Services service by
* using the console or commands that are provided by the specified service. Doing so ensures that the service is
* aware that it can create the resources that are required for the integration. How the service creates those
* resources in the organization's accounts depends on that service. For more information, see the documentation for
* the other Amazon Web Services service.
*
*
*
* For more information about enabling services to integrate with Organizations, see Using
* Organizations with other Amazon Web Services services in the Organizations User Guide.
*
*
* You can only call this operation from the organization's management account and only if the organization has enabled
* all features.
*
*
* @param enableAwsServiceAccessRequest
* @return Result of the EnableAWSServiceAccess operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.EnableAWSServiceAccess
* @see AWS API Documentation
*/
@Override
public EnableAwsServiceAccessResponse enableAWSServiceAccess(EnableAwsServiceAccessRequest enableAwsServiceAccessRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
ConstraintViolationException, InvalidInputException, ServiceException, TooManyRequestsException,
UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, EnableAwsServiceAccessResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(enableAwsServiceAccessRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, enableAwsServiceAccessRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "EnableAWSServiceAccess");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("EnableAWSServiceAccess").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(enableAwsServiceAccessRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new EnableAwsServiceAccessRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Enables all features in an organization. This enables the use of organization policies that can restrict the
* services and actions that can be called in each account. Until you enable all features, you have access only to
* consolidated billing, and you can't use any of the advanced account administration features that Organizations
* supports. For more information, see Enabling all features in your organization in the Organizations User Guide.
*
*
*
* This operation is required only for organizations that were created explicitly with only the consolidated billing
* features enabled. Calling this operation sends a handshake to every invited account in the organization. The
* feature set change can be finalized and the additional features enabled only after all administrators in the
* invited accounts approve the change by accepting the handshake.
*
*
*
* After you enable all features, you can separately enable or disable individual policy types in a root using
* EnablePolicyType and DisablePolicyType. To see the status of policy types in a root, use
* ListRoots.
*
*
* After all invited member accounts accept the handshake, you finalize the feature set change by accepting the
* handshake that contains "Action": "ENABLE_ALL_FEATURES"
. This completes the change.
*
*
* After you enable all features in your organization, the management account in the organization can apply policies
* on all member accounts. These policies can restrict what users and even administrators in those accounts can do.
* The management account can apply policies that prevent accounts from leaving the organization. Ensure that your
* account administrators are aware of this.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param enableAllFeaturesRequest
* @return Result of the EnableAllFeatures operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws HandshakeConstraintViolationException
* The requested operation would violate the constraint identified in the reason code.
*
* Some of the reasons in the following list might not be applicable to this specific API or operation:
*
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. Note that deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception immediately after creating the organization, wait one hour and try again. If
* after an hour it continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* ALREADY_IN_AN_ORGANIZATION: The handshake request is invalid because the invited account is already a
* member of an organization.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES: You can't issue new invitations to join an organization while
* it's in the process of enabling all features. You can resume inviting accounts after you finalize the
* process when all accounts have agreed to the change.
*
*
* -
*
* ORGANIZATION_ALREADY_HAS_ALL_FEATURES: The handshake request is invalid because the organization has
* already enabled all features.
*
*
* -
*
* ORGANIZATION_IS_ALREADY_PENDING_ALL_FEATURES_MIGRATION: The handshake request is invalid because the
* organization has already started the process to enable all features.
*
*
* -
*
* ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD: The request failed because the account is from a different
* marketplace than the accounts in the organization. For example, accounts with India addresses must be
* associated with the AISPL marketplace. All accounts in an organization must be from the same marketplace.
*
*
* -
*
* ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED: You attempted to change the membership of an account
* too quickly after its previous change.
*
*
* -
*
* PAYMENT_INSTRUMENT_REQUIRED: You can't complete the operation with an account that doesn't have a payment
* instrument, such as a credit card, associated with it.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.EnableAllFeatures
* @see AWS API Documentation
*/
@Override
public EnableAllFeaturesResponse enableAllFeatures(EnableAllFeaturesRequest enableAllFeaturesRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
HandshakeConstraintViolationException, InvalidInputException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
EnableAllFeaturesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(enableAllFeaturesRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, enableAllFeaturesRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "EnableAllFeatures");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("EnableAllFeatures").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(enableAllFeaturesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new EnableAllFeaturesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Enables a policy type in a root. After you enable a policy type in a root, you can attach policies of that type
* to the root, any organizational unit (OU), or account in that root. You can undo this by using the
* DisablePolicyType operation.
*
*
* This is an asynchronous request that Amazon Web Services performs in the background. Amazon Web Services
* recommends that you first use ListRoots to see the status of policy types for a specified root, and then
* use this operation.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* You can enable a policy type in a root only if that policy type is available in the organization. To view the
* status of available policy types in the organization, use DescribeOrganization.
*
*
* @param enablePolicyTypeRequest
* @return Result of the EnablePolicyType operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws PolicyTypeAlreadyEnabledException
* The specified policy type is already enabled in the specified root.
* @throws RootNotFoundException
* We can't find a root with the RootId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws PolicyTypeNotAvailableForOrganizationException
* You can't use the specified policy type with the feature set currently enabled for this organization. For
* example, you can enable SCPs only after you enable all features in the organization. For more
* information, see Managing Organizations policiesin the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws PolicyChangesInProgressException
* Changes to the effective policy are in progress, and its contents can't be returned. Try the operation
* again later.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.EnablePolicyType
* @see AWS API Documentation
*/
@Override
public EnablePolicyTypeResponse enablePolicyType(EnablePolicyTypeRequest enablePolicyTypeRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
ConstraintViolationException, InvalidInputException, PolicyTypeAlreadyEnabledException, RootNotFoundException,
ServiceException, TooManyRequestsException, PolicyTypeNotAvailableForOrganizationException,
UnsupportedApiEndpointException, PolicyChangesInProgressException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
EnablePolicyTypeResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(enablePolicyTypeRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, enablePolicyTypeRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "EnablePolicyType");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("EnablePolicyType").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(enablePolicyTypeRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new EnablePolicyTypeRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Sends an invitation to another account to join your organization as a member account. Organizations sends email
* on your behalf to the email address that is associated with the other account's owner. The invitation is
* implemented as a Handshake whose details are in the response.
*
*
*
* -
*
* You can invite Amazon Web Services accounts only from the same seller as the management account. For example, if
* your organization's management account was created by Amazon Internet Services Pvt. Ltd (AISPL), an Amazon Web
* Services seller in India, you can invite only other AISPL accounts to your organization. You can't combine
* accounts from AISPL and Amazon Web Services or from any other Amazon Web Services seller. For more information,
* see
* Consolidated billing in India.
*
*
* -
*
* If you receive an exception that indicates that you exceeded your account limits for the organization or that the
* operation failed because your organization is still initializing, wait one hour and then try again. If the error
* persists after an hour, contact Amazon Web Services
* Support.
*
*
*
*
*
* If the request includes tags, then the requester must have the organizations:TagResource
permission.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param inviteAccountToOrganizationRequest
* @return Result of the InviteAccountToOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws AccountOwnerNotVerifiedException
* You can't invite an existing account to your organization until you verify that you own the email address
* associated with the management account. For more information, see Email address verification in the Organizations User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws HandshakeConstraintViolationException
* The requested operation would violate the constraint identified in the reason code.
*
* Some of the reasons in the following list might not be applicable to this specific API or operation:
*
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. Note that deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception immediately after creating the organization, wait one hour and try again. If
* after an hour it continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* ALREADY_IN_AN_ORGANIZATION: The handshake request is invalid because the invited account is already a
* member of an organization.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVITE_DISABLED_DURING_ENABLE_ALL_FEATURES: You can't issue new invitations to join an organization while
* it's in the process of enabling all features. You can resume inviting accounts after you finalize the
* process when all accounts have agreed to the change.
*
*
* -
*
* ORGANIZATION_ALREADY_HAS_ALL_FEATURES: The handshake request is invalid because the organization has
* already enabled all features.
*
*
* -
*
* ORGANIZATION_IS_ALREADY_PENDING_ALL_FEATURES_MIGRATION: The handshake request is invalid because the
* organization has already started the process to enable all features.
*
*
* -
*
* ORGANIZATION_FROM_DIFFERENT_SELLER_OF_RECORD: The request failed because the account is from a different
* marketplace than the accounts in the organization. For example, accounts with India addresses must be
* associated with the AISPL marketplace. All accounts in an organization must be from the same marketplace.
*
*
* -
*
* ORGANIZATION_MEMBERSHIP_CHANGE_RATE_LIMIT_EXCEEDED: You attempted to change the membership of an account
* too quickly after its previous change.
*
*
* -
*
* PAYMENT_INSTRUMENT_REQUIRED: You can't complete the operation with an account that doesn't have a payment
* instrument, such as a credit card, associated with it.
*
*
* @throws DuplicateHandshakeException
* A handshake with the same action and target already exists. For example, if you invited an account to
* join your organization, the invited account might already have a pending invitation from this
* organization. If you intend to resend an invitation to an account, ensure that existing handshakes that
* might be considered duplicates are canceled or declined.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws FinalizingOrganizationException
* Organizations couldn't perform the operation because your organization hasn't finished initializing. This
* can take up to an hour. Try again later. If after one hour you continue to receive this error, contact Amazon Web Services Support.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.InviteAccountToOrganization
* @see AWS API Documentation
*/
@Override
public InviteAccountToOrganizationResponse inviteAccountToOrganization(
InviteAccountToOrganizationRequest inviteAccountToOrganizationRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, AccountOwnerNotVerifiedException, ConcurrentModificationException,
HandshakeConstraintViolationException, DuplicateHandshakeException, ConstraintViolationException,
InvalidInputException, FinalizingOrganizationException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, InviteAccountToOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(inviteAccountToOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, inviteAccountToOrganizationRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "InviteAccountToOrganization");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("InviteAccountToOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(inviteAccountToOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new InviteAccountToOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Removes a member account from its parent organization. This version of the operation is performed by the account
* that wants to leave. To remove a member account as a user in the management account, use
* RemoveAccountFromOrganization instead.
*
*
* This operation can be called only from a member account in the organization.
*
*
*
* -
*
* The management account in an organization with all features enabled can set service control policies (SCPs) that
* can restrict what administrators of member accounts can do. This includes preventing them from successfully
* calling LeaveOrganization
and leaving the organization.
*
*
* -
*
* You can leave an organization as a member account only if the account is configured with the information required
* to operate as a standalone account. When you create an account in an organization using the Organizations
* console, API, or CLI commands, the information required of standalone accounts is not automatically
* collected. For each account that you want to make standalone, you must perform the following steps. If any of the
* steps are already completed for this account, that step doesn't appear.
*
*
* -
*
* Choose a support plan
*
*
* -
*
* Provide and verify the required contact information
*
*
* -
*
* Provide a current payment method
*
*
*
*
* Amazon Web Services uses the payment method to charge for any billable (not free tier) Amazon Web Services
* activity that occurs while the account isn't attached to an organization. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.
*
*
* -
*
* The account that you want to leave must not be a delegated administrator account for any Amazon Web Services
* service enabled for your organization. If the account is a delegated administrator, you must first change the
* delegated administrator account to another account that is remaining in the organization.
*
*
* -
*
* You can leave an organization only after you enable IAM user access to billing in your account. 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.
*
*
* -
*
* After the account leaves the organization, all tags that were attached to the account object in the organization
* are deleted. Amazon Web Services accounts outside of an organization do not support tags.
*
*
* -
*
* A newly created account has a waiting period before it can be removed from its organization. You must wait until
* at least seven days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* -
*
* If you are using an organization principal to call LeaveOrganization
across multiple accounts, you
* can only do this up to 5 accounts per second in a single organization.
*
*
*
*
*
* @param leaveOrganizationRequest
* @return Result of the LeaveOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws MasterCannotLeaveOrganizationException
* You can't remove a management account from an organization. If you want the management account to become
* a member account in another organization, you must first delete the current organization of the
* management account.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.LeaveOrganization
* @see AWS API Documentation
*/
@Override
public LeaveOrganizationResponse leaveOrganization(LeaveOrganizationRequest leaveOrganizationRequest)
throws AccessDeniedException, AccountNotFoundException, AwsOrganizationsNotInUseException,
ConcurrentModificationException, ConstraintViolationException, InvalidInputException,
MasterCannotLeaveOrganizationException, ServiceException, TooManyRequestsException, AwsServiceException,
SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
LeaveOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(leaveOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, leaveOrganizationRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "LeaveOrganization");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("LeaveOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(leaveOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new LeaveOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Returns a list of the Amazon Web Services services that you enabled to integrate with your organization. After a
* service on this list creates the resources that it requires for the integration, it can perform operations on
* your organization and its accounts.
*
*
* For more information about integrating other services with Organizations, including the list of services that
* currently work with Organizations, see Using
* Organizations with other Amazon Web Services services in the Organizations User Guide.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listAwsServiceAccessForOrganizationRequest
* @return Result of the ListAWSServiceAccessForOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListAWSServiceAccessForOrganization
* @see AWS API Documentation
*/
@Override
public ListAwsServiceAccessForOrganizationResponse listAWSServiceAccessForOrganization(
ListAwsServiceAccessForOrganizationRequest listAwsServiceAccessForOrganizationRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConstraintViolationException, InvalidInputException, ServiceException,
TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListAwsServiceAccessForOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listAwsServiceAccessForOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listAwsServiceAccessForOrganizationRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListAWSServiceAccessForOrganization");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListAWSServiceAccessForOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listAwsServiceAccessForOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListAwsServiceAccessForOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists all the accounts in the organization. To request only the accounts in a specified root or organizational
* unit (OU), use the ListAccountsForParent operation instead.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listAccountsRequest
* @return Result of the ListAccounts operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListAccounts
* @see AWS
* API Documentation
*/
@Override
public ListAccountsResponse listAccounts(ListAccountsRequest listAccountsRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, InvalidInputException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListAccountsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listAccountsRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listAccountsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListAccounts");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListAccounts").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listAccountsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListAccountsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the accounts in an organization that are contained by the specified target root or organizational unit
* (OU). If you specify the root, you get a list of all the accounts that aren't in any OU. If you specify an OU,
* you get a list of all the accounts in only that OU and not in any child OUs. To get a list of all accounts in the
* organization, use the ListAccounts operation.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listAccountsForParentRequest
* @return Result of the ListAccountsForParent operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ParentNotFoundException
* We can't find a root or OU with the ParentId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListAccountsForParent
* @see AWS API Documentation
*/
@Override
public ListAccountsForParentResponse listAccountsForParent(ListAccountsForParentRequest listAccountsForParentRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, InvalidInputException, ParentNotFoundException,
ServiceException, TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListAccountsForParentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listAccountsForParentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listAccountsForParentRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListAccountsForParent");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListAccountsForParent").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listAccountsForParentRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListAccountsForParentRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists all of the organizational units (OUs) or accounts that are contained in the specified parent OU or root.
* This operation, along with ListParents enables you to traverse the tree structure that makes up this root.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listChildrenRequest
* @return Result of the ListChildren operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ParentNotFoundException
* We can't find a root or OU with the ParentId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListChildren
* @see AWS
* API Documentation
*/
@Override
public ListChildrenResponse listChildren(ListChildrenRequest listChildrenRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, InvalidInputException, ParentNotFoundException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListChildrenResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listChildrenRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listChildrenRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListChildren");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListChildren").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listChildrenRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListChildrenRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the account creation requests that match the specified status that is currently being tracked for the
* organization.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listCreateAccountStatusRequest
* @return Result of the ListCreateAccountStatus operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListCreateAccountStatus
* @see AWS API Documentation
*/
@Override
public ListCreateAccountStatusResponse listCreateAccountStatus(ListCreateAccountStatusRequest listCreateAccountStatusRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, InvalidInputException, ServiceException,
TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListCreateAccountStatusResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listCreateAccountStatusRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listCreateAccountStatusRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListCreateAccountStatus");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListCreateAccountStatus").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listCreateAccountStatusRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListCreateAccountStatusRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the Amazon Web Services accounts that are designated as delegated administrators in this organization.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listDelegatedAdministratorsRequest
* @return Result of the ListDelegatedAdministrators operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListDelegatedAdministrators
* @see AWS API Documentation
*/
@Override
public ListDelegatedAdministratorsResponse listDelegatedAdministrators(
ListDelegatedAdministratorsRequest listDelegatedAdministratorsRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConstraintViolationException, InvalidInputException, TooManyRequestsException,
ServiceException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListDelegatedAdministratorsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listDelegatedAdministratorsRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listDelegatedAdministratorsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListDelegatedAdministrators");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListDelegatedAdministrators").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listDelegatedAdministratorsRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListDelegatedAdministratorsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* List the Amazon Web Services services for which the specified account is a delegated administrator.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listDelegatedServicesForAccountRequest
* @return Result of the ListDelegatedServicesForAccount operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws AccountNotRegisteredException
* The specified account is not a delegated administrator for this Amazon Web Services service.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListDelegatedServicesForAccount
* @see AWS API Documentation
*/
@Override
public ListDelegatedServicesForAccountResponse listDelegatedServicesForAccount(
ListDelegatedServicesForAccountRequest listDelegatedServicesForAccountRequest) throws AccessDeniedException,
AccountNotFoundException, AccountNotRegisteredException, AwsOrganizationsNotInUseException,
ConstraintViolationException, InvalidInputException, TooManyRequestsException, ServiceException,
UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListDelegatedServicesForAccountResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listDelegatedServicesForAccountRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listDelegatedServicesForAccountRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListDelegatedServicesForAccount");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListDelegatedServicesForAccount").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listDelegatedServicesForAccountRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListDelegatedServicesForAccountRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the current handshakes that are associated with the account of the requesting user.
*
*
* Handshakes that are ACCEPTED
, DECLINED
, CANCELED
, or EXPIRED
* appear in the results of this API for only 30 days after changing to that state. After that, they're deleted and
* no longer accessible.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called from any account in the organization.
*
*
* @param listHandshakesForAccountRequest
* @return Result of the ListHandshakesForAccount operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListHandshakesForAccount
* @see AWS API Documentation
*/
@Override
public ListHandshakesForAccountResponse listHandshakesForAccount(
ListHandshakesForAccountRequest listHandshakesForAccountRequest) throws AccessDeniedException,
ConcurrentModificationException, InvalidInputException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListHandshakesForAccountResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listHandshakesForAccountRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listHandshakesForAccountRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListHandshakesForAccount");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListHandshakesForAccount").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listHandshakesForAccountRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListHandshakesForAccountRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the handshakes that are associated with the organization that the requesting user is part of. The
* ListHandshakesForOrganization
operation returns a list of handshake structures. Each structure
* contains details and status about a handshake.
*
*
* Handshakes that are ACCEPTED
, DECLINED
, CANCELED
, or EXPIRED
* appear in the results of this API for only 30 days after changing to that state. After that, they're deleted and
* no longer accessible.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listHandshakesForOrganizationRequest
* @return Result of the ListHandshakesForOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListHandshakesForOrganization
* @see AWS API Documentation
*/
@Override
public ListHandshakesForOrganizationResponse listHandshakesForOrganization(
ListHandshakesForOrganizationRequest listHandshakesForOrganizationRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, InvalidInputException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListHandshakesForOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listHandshakesForOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listHandshakesForOrganizationRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListHandshakesForOrganization");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListHandshakesForOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listHandshakesForOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListHandshakesForOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the organizational units (OUs) in a parent organizational unit or root.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listOrganizationalUnitsForParentRequest
* @return Result of the ListOrganizationalUnitsForParent operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ParentNotFoundException
* We can't find a root or OU with the ParentId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListOrganizationalUnitsForParent
* @see AWS API Documentation
*/
@Override
public ListOrganizationalUnitsForParentResponse listOrganizationalUnitsForParent(
ListOrganizationalUnitsForParentRequest listOrganizationalUnitsForParentRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, InvalidInputException, ParentNotFoundException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListOrganizationalUnitsForParentResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listOrganizationalUnitsForParentRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
listOrganizationalUnitsForParentRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListOrganizationalUnitsForParent");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("ListOrganizationalUnitsForParent").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listOrganizationalUnitsForParentRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListOrganizationalUnitsForParentRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the root or organizational units (OUs) that serve as the immediate parent of the specified child OU or
* account. This operation, along with ListChildren enables you to traverse the tree structure that makes up
* this root.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
*
* In the current release, a child can have only a single parent.
*
*
*
* @param listParentsRequest
* @return Result of the ListParents operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ChildNotFoundException
* We can't find an organizational unit (OU) or Amazon Web Services account with the ChildId
* that you specified.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListParents
* @see AWS API
* Documentation
*/
@Override
public ListParentsResponse listParents(ListParentsRequest listParentsRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ChildNotFoundException, InvalidInputException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListParentsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listParentsRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listParentsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListParents");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListParents").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration)
.withInput(listParentsRequest).withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListParentsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Retrieves the list of all policies in an organization of a specified type.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listPoliciesRequest
* @return Result of the ListPolicies operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListPolicies
* @see AWS
* API Documentation
*/
@Override
public ListPoliciesResponse listPolicies(ListPoliciesRequest listPoliciesRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, InvalidInputException, ServiceException, TooManyRequestsException,
UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListPoliciesResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listPoliciesRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listPoliciesRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListPolicies");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListPolicies").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listPoliciesRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListPoliciesRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the policies that are directly attached to the specified target root, organizational unit (OU), or account.
* You must specify the policy type that you want included in the returned list.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listPoliciesForTargetRequest
* @return Result of the ListPoliciesForTarget operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TargetNotFoundException
* We can't find a root, OU, account, or policy with the TargetId
that you specified.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListPoliciesForTarget
* @see AWS API Documentation
*/
@Override
public ListPoliciesForTargetResponse listPoliciesForTarget(ListPoliciesForTargetRequest listPoliciesForTargetRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, InvalidInputException, ServiceException,
TargetNotFoundException, TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException,
SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListPoliciesForTargetResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listPoliciesForTargetRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listPoliciesForTargetRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListPoliciesForTarget");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListPoliciesForTarget").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listPoliciesForTargetRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListPoliciesForTargetRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists the roots that are defined in the current organization.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
*
* Policy types can be enabled and disabled in roots. This is distinct from whether they're available in the
* organization. When you enable all features, you make policy types available for use in that organization.
* Individual policy types can then be enabled and disabled in a root. To see the availability of a policy type in
* an organization, use DescribeOrganization.
*
*
*
* @param listRootsRequest
* @return Result of the ListRoots operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListRoots
* @see AWS API
* Documentation
*/
@Override
public ListRootsResponse listRoots(ListRootsRequest listRootsRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, InvalidInputException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
ListRootsResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listRootsRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listRootsRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListRoots");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListRoots").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration)
.withInput(listRootsRequest).withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListRootsRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists tags that are attached to the specified resource.
*
*
* You can attach tags to the following resources in Organizations.
*
*
* -
*
* Amazon Web Services account
*
*
* -
*
* Organization root
*
*
* -
*
* Organizational unit (OU)
*
*
* -
*
* Policy (any type)
*
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listTagsForResourceRequest
* @return Result of the ListTagsForResource operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws TargetNotFoundException
* We can't find a root, OU, account, or policy with the TargetId
that you specified.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListTagsForResource
* @see AWS API Documentation
*/
@Override
public ListTagsForResourceResponse listTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, TargetNotFoundException, InvalidInputException,
ServiceException, TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListTagsForResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTagsForResourceRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listTagsForResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTagsForResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListTagsForResource").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listTagsForResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListTagsForResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Lists all the roots, organizational units (OUs), and accounts that the specified policy is attached to.
*
*
*
* Always check the NextToken
response parameter for a null
value when calling a
* List*
operation. These operations can occasionally return an empty set of results even when there
* are more results available. The NextToken
response parameter value is null
only
* when there are no more results to display.
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param listTargetsForPolicyRequest
* @return Result of the ListTargetsForPolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws PolicyNotFoundException
* We can't find a policy with the PolicyId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.ListTargetsForPolicy
* @see AWS API Documentation
*/
@Override
public ListTargetsForPolicyResponse listTargetsForPolicy(ListTargetsForPolicyRequest listTargetsForPolicyRequest)
throws AccessDeniedException, AwsOrganizationsNotInUseException, InvalidInputException, PolicyNotFoundException,
ServiceException, TooManyRequestsException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException,
OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, ListTargetsForPolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(listTargetsForPolicyRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, listTargetsForPolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "ListTargetsForPolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("ListTargetsForPolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(listTargetsForPolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new ListTargetsForPolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Moves an account from its current source parent root or organizational unit (OU) to the specified destination
* parent root or OU.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param moveAccountRequest
* @return Result of the MoveAccount operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws SourceParentNotFoundException
* We can't find a source root or OU with the ParentId
that you specified.
* @throws DestinationParentNotFoundException
* We can't find the destination container (a root or OU) with the ParentId
that you specified.
* @throws DuplicateAccountException
* That account is already present in the specified destination.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.MoveAccount
* @see AWS API
* Documentation
*/
@Override
public MoveAccountResponse moveAccount(MoveAccountRequest moveAccountRequest) throws AccessDeniedException,
InvalidInputException, SourceParentNotFoundException, DestinationParentNotFoundException, DuplicateAccountException,
AccountNotFoundException, TooManyRequestsException, ConcurrentModificationException,
AwsOrganizationsNotInUseException, ServiceException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
MoveAccountResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(moveAccountRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, moveAccountRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "MoveAccount");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("MoveAccount").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration)
.withInput(moveAccountRequest).withMetricCollector(apiCallMetricCollector)
.withMarshaller(new MoveAccountRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Creates or updates a resource policy.
*
*
* You can only call this operation from the organization's management account.
*
*
* @param putResourcePolicyRequest
* @return Result of the PutResourcePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
*
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.PutResourcePolicy
* @see AWS API Documentation
*/
@Override
public PutResourcePolicyResponse putResourcePolicy(PutResourcePolicyRequest putResourcePolicyRequest)
throws AccessDeniedException, ServiceException, UnsupportedApiEndpointException, TooManyRequestsException,
ConcurrentModificationException, InvalidInputException, ConstraintViolationException,
AwsOrganizationsNotInUseException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
PutResourcePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(putResourcePolicyRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, putResourcePolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "PutResourcePolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("PutResourcePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(putResourcePolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new PutResourcePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Enables the specified member account to administer the Organizations features of the specified Amazon Web
* Services service. It grants read-only access to Organizations service data. The account still requires IAM
* permissions to access and administer the Amazon Web Services service.
*
*
* You can run this action only for Amazon Web Services services that support this feature. For a current list of
* services that support it, see the column Supports Delegated Administrator in the table at Amazon Web
* Services Services that you can use with Organizations in the Organizations User Guide.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param registerDelegatedAdministratorRequest
* @return Result of the RegisterDelegatedAdministrator operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AccountAlreadyRegisteredException
* The specified account is already a delegated administrator for this Amazon Web Services service.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.RegisterDelegatedAdministrator
* @see AWS API Documentation
*/
@Override
public RegisterDelegatedAdministratorResponse registerDelegatedAdministrator(
RegisterDelegatedAdministratorRequest registerDelegatedAdministratorRequest) throws AccessDeniedException,
AccountAlreadyRegisteredException, AccountNotFoundException, AwsOrganizationsNotInUseException,
ConcurrentModificationException, ConstraintViolationException, InvalidInputException, TooManyRequestsException,
ServiceException, UnsupportedApiEndpointException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RegisterDelegatedAdministratorResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(registerDelegatedAdministratorRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
registerDelegatedAdministratorRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RegisterDelegatedAdministrator");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RegisterDelegatedAdministrator").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(registerDelegatedAdministratorRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RegisterDelegatedAdministratorRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Removes the specified account from the organization.
*
*
* The removed account becomes a standalone account that isn't a member of any organization. It's no longer subject
* to any policies and is responsible for its own bill payments. The organization's management account is no longer
* charged for any expenses accrued by the member account after it's removed from the organization.
*
*
* This operation can be called only from the organization's management account. Member accounts can remove
* themselves with LeaveOrganization instead.
*
*
*
* -
*
* You can remove an account from your organization only if the account is configured with the information required
* to operate as a standalone account. When you create an account in an organization using the Organizations
* console, API, or CLI commands, the information required of standalone accounts is not automatically
* collected. For more information, see Considerations before removing an account from an organization in the Organizations User Guide.
*
*
* -
*
* The account that you want to leave must not be a delegated administrator account for any Amazon Web Services
* service enabled for your organization. If the account is a delegated administrator, you must first change the
* delegated administrator account to another account that is remaining in the organization.
*
*
* -
*
* After the account leaves the organization, all tags that were attached to the account object in the organization
* are deleted. Amazon Web Services accounts outside of an organization do not support tags.
*
*
*
*
*
* @param removeAccountFromOrganizationRequest
* @return Result of the RemoveAccountFromOrganization operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AccountNotFoundException
* We can't find an Amazon Web Services account with the AccountId
that you specified, or the
* account whose credentials you used to make this request isn't a member of an organization.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws MasterCannotLeaveOrganizationException
* You can't remove a management account from an organization. If you want the management account to become
* a member account in another organization, you must first delete the current organization of the
* management account.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.RemoveAccountFromOrganization
* @see AWS API Documentation
*/
@Override
public RemoveAccountFromOrganizationResponse removeAccountFromOrganization(
RemoveAccountFromOrganizationRequest removeAccountFromOrganizationRequest) throws AccessDeniedException,
AccountNotFoundException, AwsOrganizationsNotInUseException, ConcurrentModificationException,
ConstraintViolationException, InvalidInputException, MasterCannotLeaveOrganizationException, ServiceException,
TooManyRequestsException, AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, RemoveAccountFromOrganizationResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(removeAccountFromOrganizationRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration,
removeAccountFromOrganizationRequest.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "RemoveAccountFromOrganization");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("RemoveAccountFromOrganization").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(removeAccountFromOrganizationRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new RemoveAccountFromOrganizationRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Adds one or more tags to the specified resource.
*
*
* Currently, you can attach tags to the following resources in Organizations.
*
*
* -
*
* Amazon Web Services account
*
*
* -
*
* Organization root
*
*
* -
*
* Organizational unit (OU)
*
*
* -
*
* Policy (any type)
*
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param tagResourceRequest
* @return Result of the TagResource operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws TargetNotFoundException
* We can't find a root, OU, account, or policy with the TargetId
that you specified.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.TagResource
* @see AWS API
* Documentation
*/
@Override
public TagResourceResponse tagResource(TagResourceRequest tagResourceRequest) throws AccessDeniedException,
ConcurrentModificationException, AwsOrganizationsNotInUseException, TargetNotFoundException,
ConstraintViolationException, InvalidInputException, ServiceException, TooManyRequestsException, AwsServiceException,
SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
TagResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(tagResourceRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, tagResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "TagResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("TagResource").withProtocolMetadata(protocolMetadata).withResponseHandler(responseHandler)
.withErrorResponseHandler(errorResponseHandler).withRequestConfiguration(clientConfiguration)
.withInput(tagResourceRequest).withMetricCollector(apiCallMetricCollector)
.withMarshaller(new TagResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Removes any tags with the specified keys from the specified resource.
*
*
* You can attach tags to the following resources in Organizations.
*
*
* -
*
* Amazon Web Services account
*
*
* -
*
* Organization root
*
*
* -
*
* Organizational unit (OU)
*
*
* -
*
* Policy (any type)
*
*
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param untagResourceRequest
* @return Result of the UntagResource operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws TargetNotFoundException
* We can't find a root, OU, account, or policy with the TargetId
that you specified.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.UntagResource
* @see AWS
* API Documentation
*/
@Override
public UntagResourceResponse untagResource(UntagResourceRequest untagResourceRequest) throws AccessDeniedException,
ConcurrentModificationException, AwsOrganizationsNotInUseException, TargetNotFoundException,
ConstraintViolationException, InvalidInputException, ServiceException, TooManyRequestsException, AwsServiceException,
SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UntagResourceResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(untagResourceRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, untagResourceRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UntagResource");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UntagResource").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(untagResourceRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UntagResourceRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Renames the specified organizational unit (OU). The ID and ARN don't change. The child OUs and accounts remain in
* place, and any attached policies of the OU remain attached.
*
*
* This operation can be called only from the organization's management account.
*
*
* @param updateOrganizationalUnitRequest
* @return Result of the UpdateOrganizationalUnit operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws DuplicateOrganizationalUnitException
* An OU with the same name already exists.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws OrganizationalUnitNotFoundException
* We can't find an OU with the OrganizationalUnitId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.UpdateOrganizationalUnit
* @see AWS API Documentation
*/
@Override
public UpdateOrganizationalUnitResponse updateOrganizationalUnit(
UpdateOrganizationalUnitRequest updateOrganizationalUnitRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, DuplicateOrganizationalUnitException,
InvalidInputException, OrganizationalUnitNotFoundException, ServiceException, TooManyRequestsException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(
operationMetadata, UpdateOrganizationalUnitResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updateOrganizationalUnitRequest,
this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updateOrganizationalUnitRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdateOrganizationalUnit");
return clientHandler
.execute(new ClientExecutionParams()
.withOperationName("UpdateOrganizationalUnit").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updateOrganizationalUnitRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdateOrganizationalUnitRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
/**
*
* Updates an existing policy with a new name, description, or content. If you don't supply any parameter, that
* value remains unchanged. You can't change a policy's type.
*
*
* This operation can be called only from the organization's management account or by a member account that is a
* delegated administrator for an Amazon Web Services service.
*
*
* @param updatePolicyRequest
* @return Result of the UpdatePolicy operation returned by the service.
* @throws AccessDeniedException
* You don't have permissions to perform the requested operation. The user or role that is making the
* request must have at least one IAM permissions policy attached that grants the required permissions. For
* more information, see Access
* Management in the IAM User Guide.
* @throws AwsOrganizationsNotInUseException
* Your account isn't a member of an organization. To make this request, you must use the credentials of an
* account that belongs to an organization.
* @throws ConcurrentModificationException
* The target of the operation is currently being modified by a different request. Try again later.
* @throws ConstraintViolationException
* Performing this operation violates a minimum or maximum value limit. For example, attempting to remove
* the last service control policy (SCP) from an OU or root, inviting or creating too many accounts to the
* organization, or attaching too many policies to an account, OU, or root. This exception includes a reason
* that contains additional information about the violated limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_ORGANIZATION: You attempted to remove the management account from the organization.
* You can't remove the management account. Instead, after you remove all member accounts, delete the
* organization itself.
*
*
* -
*
* ACCOUNT_CANNOT_LEAVE_WITHOUT_PHONE_VERIFICATION: You attempted to remove an account from the organization
* that doesn't yet have enough information to exist as a standalone account. This account requires you to
* first complete phone verification. Follow the steps at Removing a member account from your organization in the Organizations User Guide.
*
*
* -
*
* ACCOUNT_CREATION_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can create
* in one day.
*
*
* -
*
* ACCOUNT_CREATION_NOT_COMPLETE: Your account setup isn't complete or your account isn't fully active. You
* must complete the account setup before you create an organization.
*
*
* -
*
* ACCOUNT_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the limit on the number of accounts in an
* organization. If you need more accounts, contact Amazon Web Services Support to request an
* increase in your limit.
*
*
* Or the number of invitations that you tried to send would cause you to exceed the limit of accounts in
* your organization. Send fewer invitations or contact Amazon Web Services Support to request an increase
* in the number of accounts.
*
*
*
* Deleted and closed accounts still count toward your limit.
*
*
*
* If you get this exception when running a command immediately after creating the organization, wait one
* hour and try again. After an hour, if the command continues to fail with this error, contact Amazon Web Services Support.
*
*
* -
*
* CANNOT_REGISTER_SUSPENDED_ACCOUNT_AS_DELEGATED_ADMINISTRATOR: You cannot register a suspended account as
* a delegated administrator.
*
*
* -
*
* CANNOT_REGISTER_MASTER_AS_DELEGATED_ADMINISTRATOR: You attempted to register the management account of
* the organization as a delegated administrator for an Amazon Web Services service integrated with
* Organizations. You can designate only a member account as a delegated administrator.
*
*
* -
*
* CANNOT_CLOSE_MANAGEMENT_ACCOUNT: You attempted to close the management account. To close the management
* account for the organization, you must first either remove or close all member accounts in the
* organization. Follow standard account closure process using root credentials.
*
*
* -
*
* CANNOT_REMOVE_DELEGATED_ADMINISTRATOR_FROM_ORG: You attempted to remove an account that is registered as
* a delegated administrator for a service integrated with your organization. To complete this operation,
* you must first deregister this account as a delegated administrator.
*
*
* -
*
* CLOSE_ACCOUNT_QUOTA_EXCEEDED: You have exceeded close account quota for the past 30 days.
*
*
* -
*
* CLOSE_ACCOUNT_REQUESTS_LIMIT_EXCEEDED: You attempted to exceed the number of accounts that you can close
* at a time.
*
*
* -
*
* CREATE_ORGANIZATION_IN_BILLING_MODE_UNSUPPORTED_REGION: To create an organization in the specified
* region, you must enable all features mode.
*
*
* -
*
* DELEGATED_ADMINISTRATOR_EXISTS_FOR_THIS_SERVICE: You attempted to register an Amazon Web Services account
* as a delegated administrator for an Amazon Web Services service that already has a delegated
* administrator. To complete this operation, you must first deregister any existing delegated
* administrators for this service.
*
*
* -
*
* EMAIL_VERIFICATION_CODE_EXPIRED: The email verification code is only valid for a limited period of time.
* You must resubmit the request and generate a new verfication code.
*
*
* -
*
* HANDSHAKE_RATE_LIMIT_EXCEEDED: You attempted to exceed the number of handshakes that you can send in one
* day.
*
*
* -
*
* INVALID_PAYMENT_INSTRUMENT: You cannot remove an account because no supported payment method is
* associated with the account. Amazon Web Services does not support cards issued by financial institutions
* in Russia or Belarus. For more information, see Managing your
* Amazon Web Services payments.
*
*
* -
*
* MASTER_ACCOUNT_ADDRESS_DOES_NOT_MATCH_MARKETPLACE: To create an account in this organization, you first
* must migrate the organization's management account to the marketplace that corresponds to the management
* account's address. All accounts in an organization must be associated with the same marketplace.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_BUSINESS_LICENSE: Applies only to the Amazon Web Services Regions in China. To
* create an organization, the master must have a valid business license. For more information, contact
* customer support.
*
*
* -
*
* MASTER_ACCOUNT_MISSING_CONTACT_INFO: To complete this operation, you must first provide a valid contact
* address and phone number for the management account. Then try the operation again.
*
*
* -
*
* MASTER_ACCOUNT_NOT_GOVCLOUD_ENABLED: To complete this operation, the management account must have an
* associated account in the Amazon Web Services GovCloud (US-West) Region. For more information, see Organizations
* in the Amazon Web Services GovCloud User Guide.
*
*
* -
*
* MASTER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To create an organization with this management account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MAX_DELEGATED_ADMINISTRATORS_FOR_SERVICE_LIMIT_EXCEEDED: You attempted to register more delegated
* administrators than allowed for the service principal.
*
*
* -
*
* MAX_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to exceed the number of policies of a certain
* type that can be attached to an entity at one time.
*
*
* -
*
* MAX_TAG_LIMIT_EXCEEDED: You have exceeded the number of tags allowed on this resource.
*
*
* -
*
* MEMBER_ACCOUNT_PAYMENT_INSTRUMENT_REQUIRED: To complete this operation with this member account, you
* first must associate a valid payment instrument, such as a credit card, with the account. For more
* information, see Considerations before removing an account from an organization in the Organizations User
* Guide.
*
*
* -
*
* MIN_POLICY_TYPE_ATTACHMENT_LIMIT_EXCEEDED: You attempted to detach a policy from an entity that would
* cause the entity to have fewer than the minimum number of policies of a certain type required.
*
*
* -
*
* ORGANIZATION_NOT_IN_ALL_FEATURES_MODE: You attempted to perform an operation that requires the
* organization to be configured to support all features. An organization that supports only consolidated
* billing features can't perform this operation.
*
*
* -
*
* OU_DEPTH_LIMIT_EXCEEDED: You attempted to create an OU tree that is too many levels deep.
*
*
* -
*
* OU_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of OUs that you can have in an organization.
*
*
* -
*
* POLICY_CONTENT_LIMIT_EXCEEDED: You attempted to create a policy that is larger than the maximum size.
*
*
* -
*
* POLICY_NUMBER_LIMIT_EXCEEDED: You attempted to exceed the number of policies that you can have in an
* organization.
*
*
* -
*
* SERVICE_ACCESS_NOT_ENABLED: You attempted to register a delegated administrator before you enabled
* service access. Call the EnableAWSServiceAccess
API first.
*
*
* -
*
* TAG_POLICY_VIOLATION: You attempted to create or update a resource with tags that are not compliant with
* the tag policy requirements for this account.
*
*
* -
*
* WAIT_PERIOD_ACTIVE: After you create an Amazon Web Services account, you must wait until at least seven
* days after the account was created. Invited accounts aren't subject to this waiting period.
*
*
* @throws DuplicatePolicyException
* A policy with the same name already exists.
* @throws InvalidInputException
* The requested operation failed because you provided invalid values for one or more of the request
* parameters. This exception includes a reason that contains additional information about the violated
* limit:
*
* Some of the reasons in the following list might not be applicable to this specific API or operation.
*
*
*
* -
*
* DUPLICATE_TAG_KEY: Tag keys must be unique among the tags attached to the same entity.
*
*
* -
*
* IMMUTABLE_POLICY: You specified a policy that is managed by Amazon Web Services and can't be modified.
*
*
* -
*
* INPUT_REQUIRED: You must include a value for all required parameters.
*
*
* -
*
* INVALID_EMAIL_ADDRESS_TARGET: You specified an invalid email address for the invited account owner.
*
*
* -
*
* INVALID_ENUM: You specified an invalid value.
*
*
* -
*
* INVALID_ENUM_POLICY_TYPE: You specified an invalid policy type string.
*
*
* -
*
* INVALID_FULL_NAME_TARGET: You specified a full name that contains invalid characters.
*
*
* -
*
* INVALID_LIST_MEMBER: You provided a list to a parameter that contains at least one invalid value.
*
*
* -
*
* INVALID_PAGINATION_TOKEN: Get the value for the NextToken
parameter from the response to a
* previous call of the operation.
*
*
* -
*
* INVALID_PARTY_TYPE_TARGET: You specified the wrong type of entity (account, organization, or email) as a
* party.
*
*
* -
*
* INVALID_PATTERN: You provided a value that doesn't match the required pattern.
*
*
* -
*
* INVALID_PATTERN_TARGET_ID: You specified a policy target ID that doesn't match the required pattern.
*
*
* -
*
* INVALID_PRINCIPAL: You specified an invalid principal element in the policy.
*
*
* -
*
* INVALID_ROLE_NAME: You provided a role name that isn't valid. A role name can't begin with the reserved
* prefix AWSServiceRoleFor
.
*
*
* -
*
* INVALID_SYNTAX_ORGANIZATION_ARN: You specified an invalid Amazon Resource Name (ARN) for the
* organization.
*
*
* -
*
* INVALID_SYNTAX_POLICY_ID: You specified an invalid policy ID.
*
*
* -
*
* INVALID_SYSTEM_TAGS_PARAMETER: You specified a tag key that is a system tag. You can’t add, edit, or
* delete system tag keys because they're reserved for Amazon Web Services use. System tags don’t count
* against your tags per resource limit.
*
*
* -
*
* MAX_FILTER_LIMIT_EXCEEDED: You can specify only one filter parameter for the operation.
*
*
* -
*
* MAX_LENGTH_EXCEEDED: You provided a string parameter that is longer than allowed.
*
*
* -
*
* MAX_VALUE_EXCEEDED: You provided a numeric parameter that has a larger value than allowed.
*
*
* -
*
* MIN_LENGTH_EXCEEDED: You provided a string parameter that is shorter than allowed.
*
*
* -
*
* MIN_VALUE_EXCEEDED: You provided a numeric parameter that has a smaller value than allowed.
*
*
* -
*
* MOVING_ACCOUNT_BETWEEN_DIFFERENT_ROOTS: You can move an account only between entities in the same root.
*
*
* -
*
* NON_DETACHABLE_POLICY: You can't detach this Amazon Web Services Managed Policy.
*
*
* -
*
* TARGET_NOT_SUPPORTED: You can't perform the specified operation on that target entity.
*
*
* -
*
* UNRECOGNIZED_SERVICE_PRINCIPAL: You specified a service principal that isn't recognized.
*
*
* @throws MalformedPolicyDocumentException
* The provided policy document doesn't meet the requirements of the specified policy type. For example, the
* syntax might be incorrect. For details about service control policy syntax, see SCP syntax in the Organizations User Guide.
* @throws PolicyNotFoundException
* We can't find a policy with the PolicyId
that you specified.
* @throws ServiceException
* Organizations can't complete your request because of an internal service error. Try again later.
* @throws TooManyRequestsException
* You have sent too many requests in too short a period of time. The quota helps protect against
* denial-of-service attacks. Try again later.
*
* For information about quotas that affect Organizations, see Quotas for
* Organizations in the Organizations User Guide.
* @throws UnsupportedApiEndpointException
* This action isn't available in the current Amazon Web Services Region.
* @throws PolicyChangesInProgressException
* Changes to the effective policy are in progress, and its contents can't be returned. Try the operation
* again later.
* @throws SdkException
* Base class for all exceptions that can be thrown by the SDK (both service and client). Can be used for
* catch all scenarios.
* @throws SdkClientException
* If any client side error occurs such as an IO related failure, failure to get credentials, etc.
* @throws OrganizationsException
* Base class for all service exceptions. Unknown exceptions will be thrown as an instance of this type.
* @sample OrganizationsClient.UpdatePolicy
* @see AWS
* API Documentation
*/
@Override
public UpdatePolicyResponse updatePolicy(UpdatePolicyRequest updatePolicyRequest) throws AccessDeniedException,
AwsOrganizationsNotInUseException, ConcurrentModificationException, ConstraintViolationException,
DuplicatePolicyException, InvalidInputException, MalformedPolicyDocumentException, PolicyNotFoundException,
ServiceException, TooManyRequestsException, UnsupportedApiEndpointException, PolicyChangesInProgressException,
AwsServiceException, SdkClientException, OrganizationsException {
JsonOperationMetadata operationMetadata = JsonOperationMetadata.builder().hasStreamingSuccessResponse(false)
.isPayloadJson(true).build();
HttpResponseHandler responseHandler = protocolFactory.createResponseHandler(operationMetadata,
UpdatePolicyResponse::builder);
HttpResponseHandler errorResponseHandler = createErrorResponseHandler(protocolFactory,
operationMetadata);
SdkClientConfiguration clientConfiguration = updateSdkClientConfiguration(updatePolicyRequest, this.clientConfiguration);
List metricPublishers = resolveMetricPublishers(clientConfiguration, updatePolicyRequest
.overrideConfiguration().orElse(null));
MetricCollector apiCallMetricCollector = metricPublishers.isEmpty() ? NoOpMetricCollector.create() : MetricCollector
.create("ApiCall");
try {
apiCallMetricCollector.reportMetric(CoreMetric.SERVICE_ID, "Organizations");
apiCallMetricCollector.reportMetric(CoreMetric.OPERATION_NAME, "UpdatePolicy");
return clientHandler.execute(new ClientExecutionParams()
.withOperationName("UpdatePolicy").withProtocolMetadata(protocolMetadata)
.withResponseHandler(responseHandler).withErrorResponseHandler(errorResponseHandler)
.withRequestConfiguration(clientConfiguration).withInput(updatePolicyRequest)
.withMetricCollector(apiCallMetricCollector)
.withMarshaller(new UpdatePolicyRequestMarshaller(protocolFactory)));
} finally {
metricPublishers.forEach(p -> p.publish(apiCallMetricCollector.collect()));
}
}
@Override
public final String serviceName() {
return SERVICE_NAME;
}
private static List resolveMetricPublishers(SdkClientConfiguration clientConfiguration,
RequestOverrideConfiguration requestOverrideConfiguration) {
List publishers = null;
if (requestOverrideConfiguration != null) {
publishers = requestOverrideConfiguration.metricPublishers();
}
if (publishers == null || publishers.isEmpty()) {
publishers = clientConfiguration.option(SdkClientOption.METRIC_PUBLISHERS);
}
if (publishers == null) {
publishers = Collections.emptyList();
}
return publishers;
}
private HttpResponseHandler createErrorResponseHandler(BaseAwsJsonProtocolFactory protocolFactory,
JsonOperationMetadata operationMetadata) {
return protocolFactory.createErrorResponseHandler(operationMetadata);
}
private void updateRetryStrategyClientConfiguration(SdkClientConfiguration.Builder configuration) {
ClientOverrideConfiguration.Builder builder = configuration.asOverrideConfigurationBuilder();
RetryMode retryMode = builder.retryMode();
if (retryMode != null) {
configuration.option(SdkClientOption.RETRY_STRATEGY, AwsRetryStrategy.forRetryMode(retryMode));
} else {
Consumer> configurator = builder.retryStrategyConfigurator();
if (configurator != null) {
RetryStrategy.Builder, ?> defaultBuilder = AwsRetryStrategy.defaultRetryStrategy().toBuilder();
configurator.accept(defaultBuilder);
configuration.option(SdkClientOption.RETRY_STRATEGY, defaultBuilder.build());
} else {
RetryStrategy retryStrategy = builder.retryStrategy();
if (retryStrategy != null) {
configuration.option(SdkClientOption.RETRY_STRATEGY, retryStrategy);
}
}
}
configuration.option(SdkClientOption.CONFIGURED_RETRY_MODE, null);
configuration.option(SdkClientOption.CONFIGURED_RETRY_STRATEGY, null);
configuration.option(SdkClientOption.CONFIGURED_RETRY_CONFIGURATOR, null);
}
private SdkClientConfiguration updateSdkClientConfiguration(SdkRequest request, SdkClientConfiguration clientConfiguration) {
List plugins = request.overrideConfiguration().map(c -> c.plugins()).orElse(Collections.emptyList());
SdkClientConfiguration.Builder configuration = clientConfiguration.toBuilder();
if (plugins.isEmpty()) {
return configuration.build();
}
OrganizationsServiceClientConfigurationBuilder serviceConfigBuilder = new OrganizationsServiceClientConfigurationBuilder(
configuration);
for (SdkPlugin plugin : plugins) {
plugin.configureClient(serviceConfigBuilder);
}
updateRetryStrategyClientConfiguration(configuration);
return configuration.build();
}
private > T init(T builder) {
return builder
.clientConfiguration(clientConfiguration)
.defaultServiceExceptionSupplier(OrganizationsException::builder)
.protocol(AwsJsonProtocol.AWS_JSON)
.protocolVersion("1.1")
.registerModeledException(
ExceptionMetadata.builder().errorCode("ConcurrentModificationException")
.exceptionBuilderSupplier(ConcurrentModificationException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("HandshakeNotFoundException")
.exceptionBuilderSupplier(HandshakeNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DuplicateAccountException")
.exceptionBuilderSupplier(DuplicateAccountException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("MalformedPolicyDocumentException")
.exceptionBuilderSupplier(MalformedPolicyDocumentException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DuplicatePolicyException")
.exceptionBuilderSupplier(DuplicatePolicyException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ChildNotFoundException")
.exceptionBuilderSupplier(ChildNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccountOwnerNotVerifiedException")
.exceptionBuilderSupplier(AccountOwnerNotVerifiedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("UnsupportedAPIEndpointException")
.exceptionBuilderSupplier(UnsupportedApiEndpointException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PolicyNotFoundException")
.exceptionBuilderSupplier(PolicyNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccessDeniedForDependencyException")
.exceptionBuilderSupplier(AccessDeniedForDependencyException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PolicyChangesInProgressException")
.exceptionBuilderSupplier(PolicyChangesInProgressException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccountAlreadyRegisteredException")
.exceptionBuilderSupplier(AccountAlreadyRegisteredException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ConstraintViolationException")
.exceptionBuilderSupplier(ConstraintViolationException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AWSOrganizationsNotInUseException")
.exceptionBuilderSupplier(AwsOrganizationsNotInUseException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("EffectivePolicyNotFoundException")
.exceptionBuilderSupplier(EffectivePolicyNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccountNotRegisteredException")
.exceptionBuilderSupplier(AccountNotRegisteredException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccountAlreadyClosedException")
.exceptionBuilderSupplier(AccountAlreadyClosedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ParentNotFoundException")
.exceptionBuilderSupplier(ParentNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ResourcePolicyNotFoundException")
.exceptionBuilderSupplier(ResourcePolicyNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("HandshakeConstraintViolationException")
.exceptionBuilderSupplier(HandshakeConstraintViolationException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PolicyInUseException")
.exceptionBuilderSupplier(PolicyInUseException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PolicyTypeNotAvailableForOrganizationException")
.exceptionBuilderSupplier(PolicyTypeNotAvailableForOrganizationException::builder)
.httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DuplicateHandshakeException")
.exceptionBuilderSupplier(DuplicateHandshakeException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("HandshakeAlreadyInStateException")
.exceptionBuilderSupplier(HandshakeAlreadyInStateException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ServiceException")
.exceptionBuilderSupplier(ServiceException::builder).httpStatusCode(500).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("RootNotFoundException")
.exceptionBuilderSupplier(RootNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("OrganizationNotEmptyException")
.exceptionBuilderSupplier(OrganizationNotEmptyException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("OrganizationalUnitNotFoundException")
.exceptionBuilderSupplier(OrganizationalUnitNotFoundException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PolicyTypeAlreadyEnabledException")
.exceptionBuilderSupplier(PolicyTypeAlreadyEnabledException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccessDeniedException")
.exceptionBuilderSupplier(AccessDeniedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DuplicatePolicyAttachmentException")
.exceptionBuilderSupplier(DuplicatePolicyAttachmentException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("ConflictException")
.exceptionBuilderSupplier(ConflictException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("MasterCannotLeaveOrganizationException")
.exceptionBuilderSupplier(MasterCannotLeaveOrganizationException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DestinationParentNotFoundException")
.exceptionBuilderSupplier(DestinationParentNotFoundException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PolicyTypeNotEnabledException")
.exceptionBuilderSupplier(PolicyTypeNotEnabledException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("InvalidInputException")
.exceptionBuilderSupplier(InvalidInputException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("TargetNotFoundException")
.exceptionBuilderSupplier(TargetNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("CreateAccountStatusNotFoundException")
.exceptionBuilderSupplier(CreateAccountStatusNotFoundException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("PolicyNotAttachedException")
.exceptionBuilderSupplier(PolicyNotAttachedException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AlreadyInOrganizationException")
.exceptionBuilderSupplier(AlreadyInOrganizationException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("AccountNotFoundException")
.exceptionBuilderSupplier(AccountNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("SourceParentNotFoundException")
.exceptionBuilderSupplier(SourceParentNotFoundException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("DuplicateOrganizationalUnitException")
.exceptionBuilderSupplier(DuplicateOrganizationalUnitException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("InvalidHandshakeTransitionException")
.exceptionBuilderSupplier(InvalidHandshakeTransitionException::builder).httpStatusCode(400)
.build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("TooManyRequestsException")
.exceptionBuilderSupplier(TooManyRequestsException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("FinalizingOrganizationException")
.exceptionBuilderSupplier(FinalizingOrganizationException::builder).httpStatusCode(400).build())
.registerModeledException(
ExceptionMetadata.builder().errorCode("OrganizationalUnitNotEmptyException")
.exceptionBuilderSupplier(OrganizationalUnitNotEmptyException::builder).httpStatusCode(400)
.build());
}
@Override
public final OrganizationsServiceClientConfiguration serviceClientConfiguration() {
return new OrganizationsServiceClientConfigurationBuilder(this.clientConfiguration.toBuilder()).build();
}
@Override
public void close() {
clientHandler.close();
}
}