/* * 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. */ /* * Do not modify this file. This file is generated from the organizations-2016-11-28.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Organizations.Model { /// /// Container for the parameters to the CreateAccount operation. /// 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: /// /// /// /// 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 /// an Amazon Web Services 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. /// /// /// public partial class CreateAccountRequest : AmazonOrganizationsRequest { private string _accountName; private string _email; private IAMUserAccessToBilling _iamUserAccessToBilling; private string _roleName; private List _tags = new List(); /// /// Gets and sets the property AccountName. /// /// The friendly name of the member account. /// /// [AWSProperty(Required=true, Sensitive=true, Min=1, Max=50)] public string AccountName { get { return this._accountName; } set { this._accountName = value; } } // Check to see if AccountName property is set internal bool IsSetAccountName() { return this._accountName != null; } /// /// Gets and sets the property Email. /// /// The email address of the owner to assign to the new member account. This email address /// must not already be associated with another Amazon Web Services account. You must /// use a valid email address to complete account creation. /// /// /// /// The rules for a valid email address: /// ///
  • /// /// The address must be a minimum of 6 and a maximum of 64 characters long. /// ///
  • /// /// All characters must be 7-bit ASCII characters. /// ///
  • /// /// There must be one and only one @ symbol, which separates the local name from the domain /// name. /// ///
  • /// /// The local name can't contain any of the following characters: /// /// /// /// whitespace, " ' ( ) < > [ ] : ; , \ | % & /// ///
  • /// /// The local name can't begin with a dot (.) /// ///
  • /// /// The domain name can consist of only the characters [a-z],[A-Z],[0-9], hyphen (-), /// or dot (.) /// ///
  • /// /// The domain name can't begin or end with a hyphen (-) or dot (.) /// ///
  • /// /// The domain name must contain at least one dot /// ///
/// /// You can't access the root user of the account or remove an account that was created /// with an invalid email address. /// ///
[AWSProperty(Required=true, Sensitive=true, Min=6, Max=64)] public string Email { get { return this._email; } set { this._email = value; } } // Check to see if Email property is set internal bool IsSetEmail() { return this._email != null; } /// /// Gets and sets the property IamUserAccessToBilling. /// /// If set to ALLOW, the new account enables IAM users to access account /// billing information if they have the required permissions. If set to DENY, /// only the root user of the new account can access account billing information. For /// more information, see Activating /// Access to the Billing and Cost Management Console in the Amazon Web Services /// Billing and Cost Management User Guide. /// /// /// /// If you don't specify this parameter, the value defaults to ALLOW, and /// IAM users and roles with the required permissions can access billing information for /// the new account. /// /// public IAMUserAccessToBilling IamUserAccessToBilling { get { return this._iamUserAccessToBilling; } set { this._iamUserAccessToBilling = value; } } // Check to see if IamUserAccessToBilling property is set internal bool IsSetIamUserAccessToBilling() { return this._iamUserAccessToBilling != null; } /// /// Gets and sets the property RoleName. /// /// The name of an IAM role that Organizations automatically preconfigures in the new /// member account. This role trusts the management account, allowing users in the management /// account to assume the role, as permitted by the management account administrator. /// The role has administrator permissions in the new member account. /// /// /// /// If you don't specify this parameter, the role name defaults to OrganizationAccountAccessRole. /// /// /// /// For more information about how to use this role to access the member account, see /// the following links: /// /// /// /// The regex pattern that is used to validate /// this parameter. The pattern can include uppercase letters, lowercase letters, digits /// with no spaces, and any of the following characters: =,.@- /// /// [AWSProperty(Max=64)] public string RoleName { get { return this._roleName; } set { this._roleName = value; } } // Check to see if RoleName property is set internal bool IsSetRoleName() { return this._roleName != null; } /// /// Gets and sets the property Tags. /// /// A list of tags that you want to attach to the newly created account. For each tag /// in the list, you must specify both a tag key and a value. You can set the value to /// an empty string, but you can't set it to null. For more information about /// tagging, see Tagging /// Organizations resources in the Organizations User Guide. /// /// /// /// If any one of the tags is not valid or if you exceed the maximum allowed number of /// tags for an account, then the entire request fails and the account is not created. /// /// /// public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } } }