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

com.pulumi.aws.servicecatalog.PortfolioShareArgs Maven / Gradle / Ivy

// *** 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.servicecatalog;

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


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

    public static final PortfolioShareArgs Empty = new PortfolioShareArgs();

    /**
     * Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
     * 
     */
    @Import(name="acceptLanguage")
    private @Nullable Output acceptLanguage;

    /**
     * @return Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
     * 
     */
    public Optional> acceptLanguage() {
        return Optional.ofNullable(this.acceptLanguage);
    }

    /**
     * Portfolio identifier.
     * 
     */
    @Import(name="portfolioId", required=true)
    private Output portfolioId;

    /**
     * @return Portfolio identifier.
     * 
     */
    public Output portfolioId() {
        return this.portfolioId;
    }

    /**
     * Identifier of the principal with whom you will share the portfolio. Valid values AWS account IDs and ARNs of AWS Organizations and organizational units.
     * 
     */
    @Import(name="principalId", required=true)
    private Output principalId;

    /**
     * @return Identifier of the principal with whom you will share the portfolio. Valid values AWS account IDs and ARNs of AWS Organizations and organizational units.
     * 
     */
    public Output principalId() {
        return this.principalId;
    }

    /**
     * Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.
     * 
     */
    @Import(name="sharePrincipals")
    private @Nullable Output sharePrincipals;

    /**
     * @return Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.
     * 
     */
    public Optional> sharePrincipals() {
        return Optional.ofNullable(this.sharePrincipals);
    }

    /**
     * Whether to enable sharing of `aws.servicecatalog.TagOption` resources when creating the portfolio share.
     * 
     */
    @Import(name="shareTagOptions")
    private @Nullable Output shareTagOptions;

    /**
     * @return Whether to enable sharing of `aws.servicecatalog.TagOption` resources when creating the portfolio share.
     * 
     */
    public Optional> shareTagOptions() {
        return Optional.ofNullable(this.shareTagOptions);
    }

    /**
     * Type of portfolio share. Valid values are `ACCOUNT` (an external account), `ORGANIZATION` (a share to every account in an organization), `ORGANIZATIONAL_UNIT`, `ORGANIZATION_MEMBER_ACCOUNT` (a share to an account in an organization).
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="type", required=true)
    private Output type;

    /**
     * @return Type of portfolio share. Valid values are `ACCOUNT` (an external account), `ORGANIZATION` (a share to every account in an organization), `ORGANIZATIONAL_UNIT`, `ORGANIZATION_MEMBER_ACCOUNT` (a share to an account in an organization).
     * 
     * The following arguments are optional:
     * 
     */
    public Output type() {
        return this.type;
    }

    /**
     * Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted.
     * 
     */
    @Import(name="waitForAcceptance")
    private @Nullable Output waitForAcceptance;

    /**
     * @return Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted.
     * 
     */
    public Optional> waitForAcceptance() {
        return Optional.ofNullable(this.waitForAcceptance);
    }

    private PortfolioShareArgs() {}

    private PortfolioShareArgs(PortfolioShareArgs $) {
        this.acceptLanguage = $.acceptLanguage;
        this.portfolioId = $.portfolioId;
        this.principalId = $.principalId;
        this.sharePrincipals = $.sharePrincipals;
        this.shareTagOptions = $.shareTagOptions;
        this.type = $.type;
        this.waitForAcceptance = $.waitForAcceptance;
    }

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

    public static final class Builder {
        private PortfolioShareArgs $;

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

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

        /**
         * @param acceptLanguage Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
         * 
         * @return builder
         * 
         */
        public Builder acceptLanguage(@Nullable Output acceptLanguage) {
            $.acceptLanguage = acceptLanguage;
            return this;
        }

        /**
         * @param acceptLanguage Language code. Valid values: `en` (English), `jp` (Japanese), `zh` (Chinese). Default value is `en`.
         * 
         * @return builder
         * 
         */
        public Builder acceptLanguage(String acceptLanguage) {
            return acceptLanguage(Output.of(acceptLanguage));
        }

        /**
         * @param portfolioId Portfolio identifier.
         * 
         * @return builder
         * 
         */
        public Builder portfolioId(Output portfolioId) {
            $.portfolioId = portfolioId;
            return this;
        }

        /**
         * @param portfolioId Portfolio identifier.
         * 
         * @return builder
         * 
         */
        public Builder portfolioId(String portfolioId) {
            return portfolioId(Output.of(portfolioId));
        }

        /**
         * @param principalId Identifier of the principal with whom you will share the portfolio. Valid values AWS account IDs and ARNs of AWS Organizations and organizational units.
         * 
         * @return builder
         * 
         */
        public Builder principalId(Output principalId) {
            $.principalId = principalId;
            return this;
        }

        /**
         * @param principalId Identifier of the principal with whom you will share the portfolio. Valid values AWS account IDs and ARNs of AWS Organizations and organizational units.
         * 
         * @return builder
         * 
         */
        public Builder principalId(String principalId) {
            return principalId(Output.of(principalId));
        }

        /**
         * @param sharePrincipals Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.
         * 
         * @return builder
         * 
         */
        public Builder sharePrincipals(@Nullable Output sharePrincipals) {
            $.sharePrincipals = sharePrincipals;
            return this;
        }

        /**
         * @param sharePrincipals Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.
         * 
         * @return builder
         * 
         */
        public Builder sharePrincipals(Boolean sharePrincipals) {
            return sharePrincipals(Output.of(sharePrincipals));
        }

        /**
         * @param shareTagOptions Whether to enable sharing of `aws.servicecatalog.TagOption` resources when creating the portfolio share.
         * 
         * @return builder
         * 
         */
        public Builder shareTagOptions(@Nullable Output shareTagOptions) {
            $.shareTagOptions = shareTagOptions;
            return this;
        }

        /**
         * @param shareTagOptions Whether to enable sharing of `aws.servicecatalog.TagOption` resources when creating the portfolio share.
         * 
         * @return builder
         * 
         */
        public Builder shareTagOptions(Boolean shareTagOptions) {
            return shareTagOptions(Output.of(shareTagOptions));
        }

        /**
         * @param type Type of portfolio share. Valid values are `ACCOUNT` (an external account), `ORGANIZATION` (a share to every account in an organization), `ORGANIZATIONAL_UNIT`, `ORGANIZATION_MEMBER_ACCOUNT` (a share to an account in an organization).
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder type(Output type) {
            $.type = type;
            return this;
        }

        /**
         * @param type Type of portfolio share. Valid values are `ACCOUNT` (an external account), `ORGANIZATION` (a share to every account in an organization), `ORGANIZATIONAL_UNIT`, `ORGANIZATION_MEMBER_ACCOUNT` (a share to an account in an organization).
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder type(String type) {
            return type(Output.of(type));
        }

        /**
         * @param waitForAcceptance Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted.
         * 
         * @return builder
         * 
         */
        public Builder waitForAcceptance(@Nullable Output waitForAcceptance) {
            $.waitForAcceptance = waitForAcceptance;
            return this;
        }

        /**
         * @param waitForAcceptance Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted.
         * 
         * @return builder
         * 
         */
        public Builder waitForAcceptance(Boolean waitForAcceptance) {
            return waitForAcceptance(Output.of(waitForAcceptance));
        }

        public PortfolioShareArgs build() {
            if ($.portfolioId == null) {
                throw new MissingRequiredPropertyException("PortfolioShareArgs", "portfolioId");
            }
            if ($.principalId == null) {
                throw new MissingRequiredPropertyException("PortfolioShareArgs", "principalId");
            }
            if ($.type == null) {
                throw new MissingRequiredPropertyException("PortfolioShareArgs", "type");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy