All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.aws.ram.ResourceShareArgs Maven / Gradle / Ivy

Go to download

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

There is a newer version: 6.60.0-alpha.1731982519
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.aws.ram;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Import;
import java.lang.Boolean;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


public final class ResourceShareArgs extends com.pulumi.resources.ResourceArgs {

    public static final ResourceShareArgs Empty = new ResourceShareArgs();

    /**
     * Indicates whether principals outside your organization can be associated with a resource share.
     * 
     */
    @Import(name="allowExternalPrincipals")
    private @Nullable Output allowExternalPrincipals;

    /**
     * @return Indicates whether principals outside your organization can be associated with a resource share.
     * 
     */
    public Optional> allowExternalPrincipals() {
        return Optional.ofNullable(this.allowExternalPrincipals);
    }

    /**
     * The name of the resource share.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return The name of the resource share.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do not specify an ARN for the permission, 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.
     * 
     */
    @Import(name="permissionArns")
    private @Nullable Output> permissionArns;

    /**
     * @return Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do not specify an ARN for the permission, 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.
     * 
     */
    public Optional>> permissionArns() {
        return Optional.ofNullable(this.permissionArns);
    }

    /**
     * A map of tags to assign to the resource share. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    @Import(name="tags")
    private @Nullable Output> tags;

    /**
     * @return A map of tags to assign to the resource share. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
     * 
     */
    public Optional>> tags() {
        return Optional.ofNullable(this.tags);
    }

    private ResourceShareArgs() {}

    private ResourceShareArgs(ResourceShareArgs $) {
        this.allowExternalPrincipals = $.allowExternalPrincipals;
        this.name = $.name;
        this.permissionArns = $.permissionArns;
        this.tags = $.tags;
    }

    public static Builder builder() {
        return new Builder();
    }
    public static Builder builder(ResourceShareArgs defaults) {
        return new Builder(defaults);
    }

    public static final class Builder {
        private ResourceShareArgs $;

        public Builder() {
            $ = new ResourceShareArgs();
        }

        public Builder(ResourceShareArgs defaults) {
            $ = new ResourceShareArgs(Objects.requireNonNull(defaults));
        }

        /**
         * @param allowExternalPrincipals Indicates whether principals outside your organization can be associated with a resource share.
         * 
         * @return builder
         * 
         */
        public Builder allowExternalPrincipals(@Nullable Output allowExternalPrincipals) {
            $.allowExternalPrincipals = allowExternalPrincipals;
            return this;
        }

        /**
         * @param allowExternalPrincipals Indicates whether principals outside your organization can be associated with a resource share.
         * 
         * @return builder
         * 
         */
        public Builder allowExternalPrincipals(Boolean allowExternalPrincipals) {
            return allowExternalPrincipals(Output.of(allowExternalPrincipals));
        }

        /**
         * @param name The name of the resource share.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name The name of the resource share.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param permissionArns Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do not specify an ARN for the permission, 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.
         * 
         * @return builder
         * 
         */
        public Builder permissionArns(@Nullable Output> permissionArns) {
            $.permissionArns = permissionArns;
            return this;
        }

        /**
         * @param permissionArns Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do not specify an ARN for the permission, 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.
         * 
         * @return builder
         * 
         */
        public Builder permissionArns(List permissionArns) {
            return permissionArns(Output.of(permissionArns));
        }

        /**
         * @param permissionArns Specifies the Amazon Resource Names (ARNs) of the RAM permission to associate with the resource share. If you do not specify an ARN for the permission, 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.
         * 
         * @return builder
         * 
         */
        public Builder permissionArns(String... permissionArns) {
            return permissionArns(List.of(permissionArns));
        }

        /**
         * @param tags A map of tags to assign to the resource share. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(@Nullable Output> tags) {
            $.tags = tags;
            return this;
        }

        /**
         * @param tags A map of tags to assign to the resource share. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
         * 
         * @return builder
         * 
         */
        public Builder tags(Map tags) {
            return tags(Output.of(tags));
        }

        public ResourceShareArgs build() {
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy