import type { MetadataBearer as __MetadataBearer } from "@smithy/types"; import type { CreateOrganizationalUnitRequest, CreateOrganizationalUnitResponse } from "../models/models_0"; /** * @public */ export type { __MetadataBearer }; /** * @public * * The input for {@link CreateOrganizationalUnitCommand}. */ export interface CreateOrganizationalUnitCommandInput extends CreateOrganizationalUnitRequest { } /** * @public * * The output of {@link CreateOrganizationalUnitCommand}. */ export interface CreateOrganizationalUnitCommandOutput extends CreateOrganizationalUnitResponse, __MetadataBearer { } declare const CreateOrganizationalUnitCommand_base: { new (input: CreateOrganizationalUnitCommandInput): import("@smithy/core/client").CommandImpl; new (input: CreateOrganizationalUnitCommandInput): import("@smithy/core/client").CommandImpl; getEndpointParameterInstructions(): import("@smithy/types").EndpointParameterInstructions; }; /** *

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.

*

You can only call this operation from the management account.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript * import { OrganizationsClient, CreateOrganizationalUnitCommand } from "@aws-sdk/client-organizations"; // ES Modules import * // const { OrganizationsClient, CreateOrganizationalUnitCommand } = require("@aws-sdk/client-organizations"); // CommonJS import * // import type { OrganizationsClientConfig } from "@aws-sdk/client-organizations"; * const config = {}; // type is OrganizationsClientConfig * const client = new OrganizationsClient(config); * const input = { // CreateOrganizationalUnitRequest * ParentId: "STRING_VALUE", // required * Name: "STRING_VALUE", // required * Tags: [ // Tags * { // Tag * Key: "STRING_VALUE", // required * Value: "STRING_VALUE", // required * }, * ], * }; * const command = new CreateOrganizationalUnitCommand(input); * const response = await client.send(command); * // { // CreateOrganizationalUnitResponse * // OrganizationalUnit: { // OrganizationalUnit * // Id: "STRING_VALUE", * // Arn: "STRING_VALUE", * // Name: "STRING_VALUE", * // Path: "STRING_VALUE", * // }, * // }; * * ``` * * @param CreateOrganizationalUnitCommandInput - {@link CreateOrganizationalUnitCommandInput} * @returns {@link CreateOrganizationalUnitCommandOutput} * @see {@link CreateOrganizationalUnitCommandInput} for command's `input` shape. * @see {@link CreateOrganizationalUnitCommandOutput} for command's `response` shape. * @see {@link OrganizationsClientResolvedConfig | config} for OrganizationsClient's `config` shape. * * @throws {@link AccessDeniedException} (client fault) *

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 {@link AWSOrganizationsNotInUseException} (client fault) *

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 {@link ConcurrentModificationException} (client fault) *

The target of the operation is currently being modified by a different request. Try * again later.

* * @throws {@link ConstraintViolationException} (client fault) *

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.

*
* * * @throws {@link DuplicateOrganizationalUnitException} (client fault) *

An OU with the same name already exists.

* * @throws {@link InvalidInputException} (client fault) *

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.

*
* * * @throws {@link ParentNotFoundException} (client fault) *

We can't find a root or OU with the ParentId that you specified.

* * @throws {@link ServiceException} (server fault) *

Organizations can't complete your request because of an internal service error. Try again * later.

* * @throws {@link TooManyRequestsException} (client fault) *

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 {@link OrganizationsServiceException} *

Base exception class for all service exceptions from Organizations service.

* * * @example To create a new organization unit * ```javascript * // The following example shows how to create an OU that is named AccountingOU. The new OU is directly under the root.: * * * const input = { * Name: "AccountingOU", * ParentId: "r-examplerootid111" * }; * const command = new CreateOrganizationalUnitCommand(input); * const response = await client.send(command); * /* response is * { * OrganizationalUnit: { * Arn: "arn:aws:organizations::111111111111:ou/o-exampleorgid/ou-examplerootid111-exampleouid111", * Id: "ou-examplerootid111-exampleouid111", * Name: "AccountingOU" * } * } * *\/ * ``` * * @public */ export declare class CreateOrganizationalUnitCommand extends CreateOrganizationalUnitCommand_base { /** @internal type navigation helper, not in runtime. */ protected static __types: { api: { input: CreateOrganizationalUnitRequest; output: CreateOrganizationalUnitResponse; }; sdk: { input: CreateOrganizationalUnitCommandInput; output: CreateOrganizationalUnitCommandOutput; }; }; }