import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
import * as enums from "../types/enums";
/**
 * Resource type definition for AWS::RAM::ResourceShare
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const myresourceshare = new aws_native.ram.ResourceShare("myresourceshare", {
 *     name: "My Resource Share",
 *     resourceArns: ["arn:aws:ec2:us-east-1:123456789012:resource-type/12345678-1234-1234-1234-12345678"],
 *     principals: ["210987654321"],
 *     tags: [
 *         {
 *             key: "Key1",
 *             value: "Value1",
 *         },
 *         {
 *             key: "Key2",
 *             value: "Value2",
 *         },
 *     ],
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const myresourceshare = new aws_native.ram.ResourceShare("myresourceshare", {
 *     name: "My Resource Share",
 *     resourceArns: ["arn:aws:ec2:us-east-1:123456789012:resource-type/12345678-1234-1234-1234-12345678"],
 *     principals: ["210987654321"],
 *     tags: [
 *         {
 *             key: "Key1",
 *             value: "Value1",
 *         },
 *         {
 *             key: "Key2",
 *             value: "Value2",
 *         },
 *     ],
 * });
 *
 * ```
 */
export declare class ResourceShare extends pulumi.CustomResource {
    /**
     * Get an existing ResourceShare resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): ResourceShare;
    /**
     * Returns true if the given object is an instance of ResourceShare.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is ResourceShare;
    /**
     * Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.
     */
    readonly allowExternalPrincipals: pulumi.Output<boolean | undefined>;
    /**
     * The Amazon Resource Name (ARN) of the resource share.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * The date and time when the resource share was created.
     */
    readonly creationTime: pulumi.Output<string>;
    /**
     * The feature set of the resource share.
     */
    readonly featureSet: pulumi.Output<enums.ram.ResourceShareFeatureSet>;
    /**
     * The date and time when the resource share was last updated.
     */
    readonly lastUpdatedTime: pulumi.Output<string>;
    /**
     * Specifies the name of the resource share.
     */
    readonly name: pulumi.Output<string>;
    /**
     * The ID of the AWS account that owns the resource share.
     */
    readonly owningAccountId: pulumi.Output<string>;
    /**
     * Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.
     */
    readonly permissionArns: pulumi.Output<string[] | undefined>;
    /**
     * Specifies the principals to associate with the resource share. The possible values are:
     *
     * - An AWS account ID
     *
     * - An Amazon Resource Name (ARN) of an organization in AWS Organizations
     *
     * - An ARN of an organizational unit (OU) in AWS Organizations
     *
     * - An ARN of an IAM role
     *
     * - An ARN of an IAM user
     */
    readonly principals: pulumi.Output<string[] | undefined>;
    /**
     * Specifies a list of one or more ARNs of the resources to associate with the resource share.
     */
    readonly resourceArns: pulumi.Output<string[] | undefined>;
    /**
     * Specifies from which source accounts the service principal has access to the resources in this resource share.
     */
    readonly sources: pulumi.Output<string[] | undefined>;
    /**
     * The current status of the resource share.
     */
    readonly status: pulumi.Output<enums.ram.ResourceShareStatus>;
    /**
     * Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a ResourceShare resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args?: ResourceShareArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a ResourceShare resource.
 */
export interface ResourceShareArgs {
    /**
     * Specifies whether principals outside your organization in AWS Organizations can be associated with a resource share. A value of `true` lets you share with individual AWS accounts that are not in your organization. A value of `false` only has meaning if your account is a member of an AWS Organization. The default value is `true`.
     */
    allowExternalPrincipals?: pulumi.Input<boolean>;
    /**
     * Specifies the name of the resource share.
     */
    name?: pulumi.Input<string>;
    /**
     * Specifies the [Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html) of the AWS RAM permission to associate with the resource share. If you do not specify an ARN for the permission, AWS RAM automatically attaches the default version of the permission for each resource type. You can associate only one permission with each resource type included in the resource share.
     */
    permissionArns?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies the principals to associate with the resource share. The possible values are:
     *
     * - An AWS account ID
     *
     * - An Amazon Resource Name (ARN) of an organization in AWS Organizations
     *
     * - An ARN of an organizational unit (OU) in AWS Organizations
     *
     * - An ARN of an IAM role
     *
     * - An ARN of an IAM user
     */
    principals?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies a list of one or more ARNs of the resources to associate with the resource share.
     */
    resourceArns?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies from which source accounts the service principal has access to the resources in this resource share.
     */
    sources?: pulumi.Input<pulumi.Input<string>[]>;
    /**
     * Specifies one or more tags to attach to the resource share itself. It doesn't attach the tags to the resources associated with the resource share.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
