UNPKG

@pulumi/aws

Version:

A Pulumi package for creating and managing Amazon Web Services (AWS) cloud resources.

114 lines 3.9 kB
"use strict"; // *** WARNING: this file was generated by pulumi-language-nodejs. *** // *** Do not edit by hand unless you're certain you know what you are doing! *** Object.defineProperty(exports, "__esModule", { value: true }); exports.getOrganizationOutput = exports.getOrganization = void 0; const pulumi = require("@pulumi/pulumi"); const utilities = require("../utilities"); /** * Get information about the organization that the users account belongs to. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.organizations.getOrganization({}); * export const accountIds = example.then(example => example.accounts.map(__item => __item.id)); * ``` * * ### Limit SNS Topic Access to an Organization * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.organizations.getOrganization({}); * const snsTopic = new aws.sns.Topic("sns_topic", {name: "my-sns-topic"}); * const snsTopicPolicy = pulumi.all([example, snsTopic.arn]).apply(([example, arn]) => aws.iam.getPolicyDocumentOutput({ * statements: [{ * effect: "Allow", * actions: [ * "SNS:Subscribe", * "SNS:Publish", * ], * conditions: [{ * test: "StringEquals", * variable: "aws:PrincipalOrgID", * values: [example.id], * }], * principals: [{ * type: "AWS", * identifiers: ["*"], * }], * resources: [arn], * }], * })); * const snsTopicPolicyTopicPolicy = new aws.sns.TopicPolicy("sns_topic_policy", { * arn: snsTopic.arn, * policy: snsTopicPolicy.apply(snsTopicPolicy => snsTopicPolicy.json), * }); * ``` */ function getOrganization(opts) { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invoke("aws:organizations/getOrganization:getOrganization", {}, opts); } exports.getOrganization = getOrganization; /** * Get information about the organization that the users account belongs to. * * ## Example Usage * * ### Basic Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.organizations.getOrganization({}); * export const accountIds = example.then(example => example.accounts.map(__item => __item.id)); * ``` * * ### Limit SNS Topic Access to an Organization * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * * const example = aws.organizations.getOrganization({}); * const snsTopic = new aws.sns.Topic("sns_topic", {name: "my-sns-topic"}); * const snsTopicPolicy = pulumi.all([example, snsTopic.arn]).apply(([example, arn]) => aws.iam.getPolicyDocumentOutput({ * statements: [{ * effect: "Allow", * actions: [ * "SNS:Subscribe", * "SNS:Publish", * ], * conditions: [{ * test: "StringEquals", * variable: "aws:PrincipalOrgID", * values: [example.id], * }], * principals: [{ * type: "AWS", * identifiers: ["*"], * }], * resources: [arn], * }], * })); * const snsTopicPolicyTopicPolicy = new aws.sns.TopicPolicy("sns_topic_policy", { * arn: snsTopic.arn, * policy: snsTopicPolicy.apply(snsTopicPolicy => snsTopicPolicy.json), * }); * ``` */ function getOrganizationOutput(opts) { opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {}); return pulumi.runtime.invokeOutput("aws:organizations/getOrganization:getOrganization", {}, opts); } exports.getOrganizationOutput = getOrganizationOutput; //# sourceMappingURL=getOrganization.js.map