AWS::Organizations::OrganizationalUnit - AWS CloudFormation

AWS::Organizations::OrganizationalUnit

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

Syntax

To declare this entity in your AWS CloudFormation template, use the following syntax:

JSON

{ "Type" : "AWS::Organizations::OrganizationalUnit", "Properties" : { "Name" : String, "ParentId" : String, "Tags" : [ Tag, ... ] } }

YAML

Type: AWS::Organizations::OrganizationalUnit Properties: Name: String ParentId: String Tags: - Tag

Properties

Name

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.

Required: Yes

Type: String

Pattern: [\s\S]*

Minimum: 1

Maximum: 128

Update requires: No interruption

ParentId

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

Important

To update the ParentId parameter value, you must first remove all accounts attached to the organizational unit (OU). OUs can't be moved within the organization with accounts still attached.

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.

Required: Yes

Type: String

Pattern: ^(r-[0-9a-z]{4,32})|(ou-[0-9a-z]{4,32}-[a-z0-9]{8,32})$

Maximum: 100

Update requires: Replacement

Tags

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 AWS Organizations resources in the AWS 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.

Required: No

Type: Array of Tag

Update requires: No interruption

Return values

Ref

When you pass the logical ID of this resource to the intrinsic Ref function, Ref returns the Id. For example: ou-examplerootid111-exampleouid111.

Note

When creating child OUs, we recommend that you use the Ref function instead of Fn::GetAtt. For example, in the properties for the child OU, use ParentId: !Ref ParentOU, instead of ParentId: !GetAtt 'ParentOU.Id'.

For more information about using the Ref function, see Ref.

Fn::GetAtt

The Fn::GetAtt intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the Fn::GetAtt intrinsic function, see Fn::GetAtt.

Arn

The Amazon Resource Name (ARN) of this OU. For example: arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111.

Id

The unique identifier (ID) associated with this OU. For example: ou-examplerootid111-exampleouid111.

Examples

Specify an OU under the root

This example illustrates how to specify an OU using AWS::Organizations::OrganizationalUnit directly under the root.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS CloudFormation Organizations Template Example", "Parameters": { "OrganizationRootId": { "Type": "String" } }, "Resources": { "TestTemplateOU": { "Type": "AWS::Organizations::OrganizationalUnit", "Properties": { "Name": "TestTemplateOU", "ParentId": { "Ref": "OrganizationRootId" } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Description: AWS CloudFormation Organizations Template Example Parameters: OrganizationRootId: Type: String Resources: TestTemplateOU: Type: 'AWS::Organizations::OrganizationalUnit' Properties: Name: TestTemplateOU ParentId: !Ref OrganizationRootId

Specify an OU under a parent OU

This example illustrates how to specify a nested OU using AWS::Organizations::OrganizationalUnit by referencing another OU.

JSON

{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS CloudFormation Nested OU Template Example", "Parameters": { "OrganizationRootId": { "Type": "String" } }, "Resources": { "ParentOU": { "Type": "AWS::Organizations::OrganizationalUnit", "Properties": { "Name": "ParentOU", "ParentId": { "Ref": "OrganizationRootId" } } }, "ChildOU": { "Type": "AWS::Organizations::OrganizationalUnit", "Properties": { "Name": "ChildOU", "ParentId": { "Ref": "ParentOU" } } } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Description: AWS CloudFormation Nested OU Template Example Parameters: OrganizationRootId: Type: String Resources: ParentOU: Type: 'AWS::Organizations::OrganizationalUnit' Properties: Name: ParentOU ParentId: !Ref OrganizationRootId ChildOU: Type: 'AWS::Organizations::OrganizationalUnit' Properties: Name: ChildOU ParentId: !Ref ParentOU

See also