create_organizational_unit

create_organizational_unit(**kwargs)

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 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.

See also: AWS API Documentation

Request Syntax

response = client.create_organizational_unit(
    ParentId='string',
    Name='string',
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
Parameters
  • ParentId (string) --

    [REQUIRED]

    The unique identifier (ID) of the parent root or OU that you want to create the new OU in.

    The regex pattern for a parent ID string requires one of the following:

    • Root - A string that begins with "r-" followed by from 4 to 32 lowercase letters or digits.
    • Organizational unit (OU) - A string that begins with "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that the OU is in). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.
  • Name (string) --

    [REQUIRED]

    The friendly name to assign to the new OU.

  • Tags (list) --

    A list of tags that you want to attach to the newly created OU. 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.

    Note

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

    • (dict) --

      A custom key-value pair associated with a resource within your organization.

      You can attach tags to any of the following organization resources.

      • Amazon Web Services account
      • Organizational unit (OU)
      • Organization root
      • Policy
      • Key (string) -- [REQUIRED]

        The key identifier, or name, of the tag.

      • Value (string) -- [REQUIRED]

        The string value that's associated with the key of the tag. You can set the value of a tag to an empty string, but you can't set the value of a tag to null.

Return type

dict

Returns

Response Syntax

{
    'OrganizationalUnit': {
        'Id': 'string',
        'Arn': 'string',
        'Name': 'string'
    }
}

Response Structure

  • (dict) --

    • OrganizationalUnit (dict) --

      A structure that contains details about the newly created OU.

      • Id (string) --

        The unique identifier (ID) associated with this OU.

        The regex pattern for an organizational unit ID string requires "ou-" followed by from 4 to 32 lowercase letters or digits (the ID of the root that contains the OU). This string is followed by a second "-" dash and from 8 to 32 additional lowercase letters or digits.

      • Arn (string) --

        The Amazon Resource Name (ARN) of this OU.

        For more information about ARNs in Organizations, see ARN Formats Supported by Organizations in the Amazon Web Services Service Authorization Reference .

      • Name (string) --

        The friendly name of this OU.

        The regex pattern that is used to validate this parameter is a string of any of the characters in the ASCII character range.

Exceptions

  • Organizations.Client.exceptions.AccessDeniedException
  • Organizations.Client.exceptions.AWSOrganizationsNotInUseException
  • Organizations.Client.exceptions.ConcurrentModificationException
  • Organizations.Client.exceptions.ConstraintViolationException
  • Organizations.Client.exceptions.DuplicateOrganizationalUnitException
  • Organizations.Client.exceptions.InvalidInputException
  • Organizations.Client.exceptions.ParentNotFoundException
  • Organizations.Client.exceptions.ServiceException
  • Organizations.Client.exceptions.TooManyRequestsException

Examples

The following example shows how to create an OU that is named AccountingOU. The new OU is directly under the root.:

response = client.create_organizational_unit(
    Name='AccountingOU',
    ParentId='r-examplerootid111',
)

print(response)

Expected Output:

{
    'OrganizationalUnit': {
        'Arn': 'arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111',
        'Id': 'ou-examplerootid111-exampleouid111',
        'Name': 'AccountingOU',
    },
    'ResponseMetadata': {
        '...': '...',
    },
}