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

com.equinix.pulumi.metal.OrganizationMemberArgs Maven / Gradle / Ivy

There is a newer version: 0.19.0
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.equinix.pulumi.metal;

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


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

    public static final OrganizationMemberArgs Empty = new OrganizationMemberArgs();

    /**
     * The email address of the user to invite
     * 
     */
    @Import(name="invitee", required=true)
    private Output invitee;

    /**
     * @return The email address of the user to invite
     * 
     */
    public Output invitee() {
        return this.invitee;
    }

    /**
     * A message to include in the emailed invitation.
     * 
     */
    @Import(name="message")
    private @Nullable Output message;

    /**
     * @return A message to include in the emailed invitation.
     * 
     */
    public Optional> message() {
        return Optional.ofNullable(this.message);
    }

    /**
     * The organization to invite the user to
     * 
     */
    @Import(name="organizationId", required=true)
    private Output organizationId;

    /**
     * @return The organization to invite the user to
     * 
     */
    public Output organizationId() {
        return this.organizationId;
    }

    /**
     * Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
     * 
     */
    @Import(name="projectsIds", required=true)
    private Output> projectsIds;

    /**
     * @return Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
     * 
     */
    public Output> projectsIds() {
        return this.projectsIds;
    }

    /**
     * Organization roles (admin, collaborator, limited_collaborator, billing)
     * 
     */
    @Import(name="roles", required=true)
    private Output> roles;

    /**
     * @return Organization roles (admin, collaborator, limited_collaborator, billing)
     * 
     */
    public Output> roles() {
        return this.roles;
    }

    private OrganizationMemberArgs() {}

    private OrganizationMemberArgs(OrganizationMemberArgs $) {
        this.invitee = $.invitee;
        this.message = $.message;
        this.organizationId = $.organizationId;
        this.projectsIds = $.projectsIds;
        this.roles = $.roles;
    }

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

    public static final class Builder {
        private OrganizationMemberArgs $;

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

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

        /**
         * @param invitee The email address of the user to invite
         * 
         * @return builder
         * 
         */
        public Builder invitee(Output invitee) {
            $.invitee = invitee;
            return this;
        }

        /**
         * @param invitee The email address of the user to invite
         * 
         * @return builder
         * 
         */
        public Builder invitee(String invitee) {
            return invitee(Output.of(invitee));
        }

        /**
         * @param message A message to include in the emailed invitation.
         * 
         * @return builder
         * 
         */
        public Builder message(@Nullable Output message) {
            $.message = message;
            return this;
        }

        /**
         * @param message A message to include in the emailed invitation.
         * 
         * @return builder
         * 
         */
        public Builder message(String message) {
            return message(Output.of(message));
        }

        /**
         * @param organizationId The organization to invite the user to
         * 
         * @return builder
         * 
         */
        public Builder organizationId(Output organizationId) {
            $.organizationId = organizationId;
            return this;
        }

        /**
         * @param organizationId The organization to invite the user to
         * 
         * @return builder
         * 
         */
        public Builder organizationId(String organizationId) {
            return organizationId(Output.of(organizationId));
        }

        /**
         * @param projectsIds Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
         * 
         * @return builder
         * 
         */
        public Builder projectsIds(Output> projectsIds) {
            $.projectsIds = projectsIds;
            return this;
        }

        /**
         * @param projectsIds Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
         * 
         * @return builder
         * 
         */
        public Builder projectsIds(List projectsIds) {
            return projectsIds(Output.of(projectsIds));
        }

        /**
         * @param projectsIds Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty.
         * 
         * @return builder
         * 
         */
        public Builder projectsIds(String... projectsIds) {
            return projectsIds(List.of(projectsIds));
        }

        /**
         * @param roles Organization roles (admin, collaborator, limited_collaborator, billing)
         * 
         * @return builder
         * 
         */
        public Builder roles(Output> roles) {
            $.roles = roles;
            return this;
        }

        /**
         * @param roles Organization roles (admin, collaborator, limited_collaborator, billing)
         * 
         * @return builder
         * 
         */
        public Builder roles(List roles) {
            return roles(Output.of(roles));
        }

        /**
         * @param roles Organization roles (admin, collaborator, limited_collaborator, billing)
         * 
         * @return builder
         * 
         */
        public Builder roles(String... roles) {
            return roles(List.of(roles));
        }

        public OrganizationMemberArgs build() {
            if ($.invitee == null) {
                throw new MissingRequiredPropertyException("OrganizationMemberArgs", "invitee");
            }
            if ($.organizationId == null) {
                throw new MissingRequiredPropertyException("OrganizationMemberArgs", "organizationId");
            }
            if ($.projectsIds == null) {
                throw new MissingRequiredPropertyException("OrganizationMemberArgs", "projectsIds");
            }
            if ($.roles == null) {
                throw new MissingRequiredPropertyException("OrganizationMemberArgs", "roles");
            }
            return $;
        }
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy