import * as core from "@terrascript/core"; export interface AccountsArgs extends core.SchemaArgs { arn: string | core.StringOut; email: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; status: string | core.StringOut; } export class Accounts extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public email!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(String, { computed: true }) public status!: string | core.StringOut; } export interface PolicyTypesArgs extends core.SchemaArgs { status: string | core.StringOut; type: string | core.StringOut; } export class PolicyTypes extends core.Schema { @core.attr(String, { computed: true }) public status!: string | core.StringOut; @core.attr(String, { computed: true }) public type!: string | core.StringOut; } export interface RootsArgs extends core.SchemaArgs { arn: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; policyTypes: core.Array | core.ArrayOut; } export class Roots extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(PolicyTypes, { computed: true, kind: "array" }) public policyTypes!: core.Array | core.ArrayOut; } export interface NonMasterAccountsArgs extends core.SchemaArgs { arn: string | core.StringOut; email: string | core.StringOut; id: string | core.StringOut; name: string | core.StringOut; status: string | core.StringOut; } export class NonMasterAccounts extends core.Schema { @core.attr(String, { computed: true }) public arn!: string | core.StringOut; @core.attr(String, { computed: true }) public email!: string | core.StringOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(String, { computed: true }) public name!: string | core.StringOut; @core.attr(String, { computed: true }) public status!: string | core.StringOut; } export interface DsOrganizationArgs {} export class DsOrganization extends core.Data { /** * List of organization accounts including the master account. For a list excluding the master account, * see the `non_master_accounts` attribute. All elements have these attributes: */ @core.attr(Accounts, { computed: true, kind: "array" }) public accounts!: core.Array | core.ArrayOut; /** * The Amazon Resource Name (ARN) of the organization. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * A list of AWS service principal names that have integration enabled with your organization. Organiza * tion must have `feature_set` set to `ALL`. For additional information, see the [AWS Organizations Us * er Guide](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_integrate_services.html). */ @core.attr(String, { computed: true, kind: "array" }) public awsServiceAccessPrincipals!: | core.Array | core.ArrayOut; /** * A list of Organizations policy types that are enabled in the Organization Root. Organization must ha * ve `feature_set` set to `ALL`. For additional information about valid policy types (e.g., `SERVICE_C * ONTROL_POLICY`), see the [AWS Organizations API Reference](https://docs.aws.amazon.com/organizations * /latest/APIReference/API_EnablePolicyType.html). */ @core.attr(String, { computed: true, kind: "array" }) public enabledPolicyTypes!: | core.Array | core.ArrayOut; /** * The FeatureSet of the organization. */ @core.attr(String, { computed: true }) public featureSet!: string | core.StringOut; /** * The ID of the organization. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * The Amazon Resource Name (ARN) of the account that is designated as the master account for the organ * ization. */ @core.attr(String, { computed: true }) public masterAccountArn!: string | core.StringOut; /** * The email address that is associated with the AWS account that is designated as the master account f * or the organization. */ @core.attr(String, { computed: true }) public masterAccountEmail!: string | core.StringOut; /** * The unique identifier (ID) of the master account of an organization. */ @core.attr(String, { computed: true }) public masterAccountId!: string | core.StringOut; /** * List of organization accounts excluding the master account. For a list including the master account, * see the `accounts` attribute. All elements have these attributes: */ @core.attr(NonMasterAccounts, { computed: true, kind: "array" }) public nonMasterAccounts!: | core.Array | core.ArrayOut; /** * List of organization roots. All elements have these attributes: */ @core.attr(Roots, { computed: true, kind: "array" }) public roots!: core.Array | core.ArrayOut; constructor(name: string, args?: DsOrganizationArgs) { super(name, "aws_organizations_organization", args); } public override getNamespace(): string { return "aws_organizations"; } }