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

com.pulumi.aws.emr.StudioArgs 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.emr;

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.Map;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;


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

    public static final StudioArgs Empty = new StudioArgs();

    /**
     * Specifies whether the Studio authenticates users using IAM or Amazon Web Services SSO. Valid values are `SSO` or `IAM`.
     * 
     */
    @Import(name="authMode", required=true)
    private Output authMode;

    /**
     * @return Specifies whether the Studio authenticates users using IAM or Amazon Web Services SSO. Valid values are `SSO` or `IAM`.
     * 
     */
    public Output authMode() {
        return this.authMode;
    }

    /**
     * The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.
     * 
     */
    @Import(name="defaultS3Location", required=true)
    private Output defaultS3Location;

    /**
     * @return The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.
     * 
     */
    public Output defaultS3Location() {
        return this.defaultS3Location;
    }

    /**
     * A detailed description of the Amazon EMR Studio.
     * 
     */
    @Import(name="description")
    private @Nullable Output description;

    /**
     * @return A detailed description of the Amazon EMR Studio.
     * 
     */
    public Optional> description() {
        return Optional.ofNullable(this.description);
    }

    /**
     * The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by `vpc_id`.
     * 
     */
    @Import(name="engineSecurityGroupId", required=true)
    private Output engineSecurityGroupId;

    /**
     * @return The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by `vpc_id`.
     * 
     */
    public Output engineSecurityGroupId() {
        return this.engineSecurityGroupId;
    }

    /**
     * The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.
     * 
     */
    @Import(name="idpAuthUrl")
    private @Nullable Output idpAuthUrl;

    /**
     * @return The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.
     * 
     */
    public Optional> idpAuthUrl() {
        return Optional.ofNullable(this.idpAuthUrl);
    }

    /**
     * The name that your identity provider (IdP) uses for its RelayState parameter. For example, RelayState or TargetSource. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The RelayState parameter differs by IdP.
     * 
     */
    @Import(name="idpRelayStateParameterName")
    private @Nullable Output idpRelayStateParameterName;

    /**
     * @return The name that your identity provider (IdP) uses for its RelayState parameter. For example, RelayState or TargetSource. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The RelayState parameter differs by IdP.
     * 
     */
    public Optional> idpRelayStateParameterName() {
        return Optional.ofNullable(this.idpRelayStateParameterName);
    }

    /**
     * A descriptive name for the Amazon EMR Studio.
     * 
     */
    @Import(name="name")
    private @Nullable Output name;

    /**
     * @return A descriptive name for the Amazon EMR Studio.
     * 
     */
    public Optional> name() {
        return Optional.ofNullable(this.name);
    }

    /**
     * The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.
     * 
     */
    @Import(name="serviceRole", required=true)
    private Output serviceRole;

    /**
     * @return The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.
     * 
     */
    public Output serviceRole() {
        return this.serviceRole;
    }

    /**
     * A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by `vpc_id`. Studio users can create a Workspace in any of the specified subnets.
     * 
     */
    @Import(name="subnetIds", required=true)
    private Output> subnetIds;

    /**
     * @return A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by `vpc_id`. Studio users can create a Workspace in any of the specified subnets.
     * 
     */
    public Output> subnetIds() {
        return this.subnetIds;
    }

    /**
     * list of tags to apply to the EMR Cluster. 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 list of tags to apply to the EMR Cluster. 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);
    }

    /**
     * The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a User Role when you use Amazon Web Services SSO authentication. The permissions attached to the User Role can be scoped down for each user or group using session policies.
     * 
     */
    @Import(name="userRole")
    private @Nullable Output userRole;

    /**
     * @return The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a User Role when you use Amazon Web Services SSO authentication. The permissions attached to the User Role can be scoped down for each user or group using session policies.
     * 
     */
    public Optional> userRole() {
        return Optional.ofNullable(this.userRole);
    }

    /**
     * The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.
     * 
     */
    @Import(name="vpcId", required=true)
    private Output vpcId;

    /**
     * @return The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.
     * 
     */
    public Output vpcId() {
        return this.vpcId;
    }

    /**
     * The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by `vpc_id`.
     * 
     * The following arguments are optional:
     * 
     */
    @Import(name="workspaceSecurityGroupId", required=true)
    private Output workspaceSecurityGroupId;

    /**
     * @return The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by `vpc_id`.
     * 
     * The following arguments are optional:
     * 
     */
    public Output workspaceSecurityGroupId() {
        return this.workspaceSecurityGroupId;
    }

    private StudioArgs() {}

    private StudioArgs(StudioArgs $) {
        this.authMode = $.authMode;
        this.defaultS3Location = $.defaultS3Location;
        this.description = $.description;
        this.engineSecurityGroupId = $.engineSecurityGroupId;
        this.idpAuthUrl = $.idpAuthUrl;
        this.idpRelayStateParameterName = $.idpRelayStateParameterName;
        this.name = $.name;
        this.serviceRole = $.serviceRole;
        this.subnetIds = $.subnetIds;
        this.tags = $.tags;
        this.userRole = $.userRole;
        this.vpcId = $.vpcId;
        this.workspaceSecurityGroupId = $.workspaceSecurityGroupId;
    }

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

    public static final class Builder {
        private StudioArgs $;

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

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

        /**
         * @param authMode Specifies whether the Studio authenticates users using IAM or Amazon Web Services SSO. Valid values are `SSO` or `IAM`.
         * 
         * @return builder
         * 
         */
        public Builder authMode(Output authMode) {
            $.authMode = authMode;
            return this;
        }

        /**
         * @param authMode Specifies whether the Studio authenticates users using IAM or Amazon Web Services SSO. Valid values are `SSO` or `IAM`.
         * 
         * @return builder
         * 
         */
        public Builder authMode(String authMode) {
            return authMode(Output.of(authMode));
        }

        /**
         * @param defaultS3Location The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.
         * 
         * @return builder
         * 
         */
        public Builder defaultS3Location(Output defaultS3Location) {
            $.defaultS3Location = defaultS3Location;
            return this;
        }

        /**
         * @param defaultS3Location The Amazon S3 location to back up Amazon EMR Studio Workspaces and notebook files.
         * 
         * @return builder
         * 
         */
        public Builder defaultS3Location(String defaultS3Location) {
            return defaultS3Location(Output.of(defaultS3Location));
        }

        /**
         * @param description A detailed description of the Amazon EMR Studio.
         * 
         * @return builder
         * 
         */
        public Builder description(@Nullable Output description) {
            $.description = description;
            return this;
        }

        /**
         * @param description A detailed description of the Amazon EMR Studio.
         * 
         * @return builder
         * 
         */
        public Builder description(String description) {
            return description(Output.of(description));
        }

        /**
         * @param engineSecurityGroupId The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by `vpc_id`.
         * 
         * @return builder
         * 
         */
        public Builder engineSecurityGroupId(Output engineSecurityGroupId) {
            $.engineSecurityGroupId = engineSecurityGroupId;
            return this;
        }

        /**
         * @param engineSecurityGroupId The ID of the Amazon EMR Studio Engine security group. The Engine security group allows inbound network traffic from the Workspace security group, and it must be in the same VPC specified by `vpc_id`.
         * 
         * @return builder
         * 
         */
        public Builder engineSecurityGroupId(String engineSecurityGroupId) {
            return engineSecurityGroupId(Output.of(engineSecurityGroupId));
        }

        /**
         * @param idpAuthUrl The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.
         * 
         * @return builder
         * 
         */
        public Builder idpAuthUrl(@Nullable Output idpAuthUrl) {
            $.idpAuthUrl = idpAuthUrl;
            return this;
        }

        /**
         * @param idpAuthUrl The authentication endpoint of your identity provider (IdP). Specify this value when you use IAM authentication and want to let federated users log in to a Studio with the Studio URL and credentials from your IdP. Amazon EMR Studio redirects users to this endpoint to enter credentials.
         * 
         * @return builder
         * 
         */
        public Builder idpAuthUrl(String idpAuthUrl) {
            return idpAuthUrl(Output.of(idpAuthUrl));
        }

        /**
         * @param idpRelayStateParameterName The name that your identity provider (IdP) uses for its RelayState parameter. For example, RelayState or TargetSource. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The RelayState parameter differs by IdP.
         * 
         * @return builder
         * 
         */
        public Builder idpRelayStateParameterName(@Nullable Output idpRelayStateParameterName) {
            $.idpRelayStateParameterName = idpRelayStateParameterName;
            return this;
        }

        /**
         * @param idpRelayStateParameterName The name that your identity provider (IdP) uses for its RelayState parameter. For example, RelayState or TargetSource. Specify this value when you use IAM authentication and want to let federated users log in to a Studio using the Studio URL. The RelayState parameter differs by IdP.
         * 
         * @return builder
         * 
         */
        public Builder idpRelayStateParameterName(String idpRelayStateParameterName) {
            return idpRelayStateParameterName(Output.of(idpRelayStateParameterName));
        }

        /**
         * @param name A descriptive name for the Amazon EMR Studio.
         * 
         * @return builder
         * 
         */
        public Builder name(@Nullable Output name) {
            $.name = name;
            return this;
        }

        /**
         * @param name A descriptive name for the Amazon EMR Studio.
         * 
         * @return builder
         * 
         */
        public Builder name(String name) {
            return name(Output.of(name));
        }

        /**
         * @param serviceRole The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.
         * 
         * @return builder
         * 
         */
        public Builder serviceRole(Output serviceRole) {
            $.serviceRole = serviceRole;
            return this;
        }

        /**
         * @param serviceRole The IAM role that the Amazon EMR Studio assumes. The service role provides a way for Amazon EMR Studio to interoperate with other Amazon Web Services services.
         * 
         * @return builder
         * 
         */
        public Builder serviceRole(String serviceRole) {
            return serviceRole(Output.of(serviceRole));
        }

        /**
         * @param subnetIds A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by `vpc_id`. Studio users can create a Workspace in any of the specified subnets.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(Output> subnetIds) {
            $.subnetIds = subnetIds;
            return this;
        }

        /**
         * @param subnetIds A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by `vpc_id`. Studio users can create a Workspace in any of the specified subnets.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(List subnetIds) {
            return subnetIds(Output.of(subnetIds));
        }

        /**
         * @param subnetIds A list of subnet IDs to associate with the Amazon EMR Studio. A Studio can have a maximum of 5 subnets. The subnets must belong to the VPC specified by `vpc_id`. Studio users can create a Workspace in any of the specified subnets.
         * 
         * @return builder
         * 
         */
        public Builder subnetIds(String... subnetIds) {
            return subnetIds(List.of(subnetIds));
        }

        /**
         * @param tags list of tags to apply to the EMR Cluster. 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 list of tags to apply to the EMR Cluster. 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));
        }

        /**
         * @param userRole The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a User Role when you use Amazon Web Services SSO authentication. The permissions attached to the User Role can be scoped down for each user or group using session policies.
         * 
         * @return builder
         * 
         */
        public Builder userRole(@Nullable Output userRole) {
            $.userRole = userRole;
            return this;
        }

        /**
         * @param userRole The IAM user role that users and groups assume when logged in to an Amazon EMR Studio. Only specify a User Role when you use Amazon Web Services SSO authentication. The permissions attached to the User Role can be scoped down for each user or group using session policies.
         * 
         * @return builder
         * 
         */
        public Builder userRole(String userRole) {
            return userRole(Output.of(userRole));
        }

        /**
         * @param vpcId The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.
         * 
         * @return builder
         * 
         */
        public Builder vpcId(Output vpcId) {
            $.vpcId = vpcId;
            return this;
        }

        /**
         * @param vpcId The ID of the Amazon Virtual Private Cloud (Amazon VPC) to associate with the Studio.
         * 
         * @return builder
         * 
         */
        public Builder vpcId(String vpcId) {
            return vpcId(Output.of(vpcId));
        }

        /**
         * @param workspaceSecurityGroupId The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by `vpc_id`.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder workspaceSecurityGroupId(Output workspaceSecurityGroupId) {
            $.workspaceSecurityGroupId = workspaceSecurityGroupId;
            return this;
        }

        /**
         * @param workspaceSecurityGroupId The ID of the Amazon EMR Studio Workspace security group. The Workspace security group allows outbound network traffic to resources in the Engine security group, and it must be in the same VPC specified by `vpc_id`.
         * 
         * The following arguments are optional:
         * 
         * @return builder
         * 
         */
        public Builder workspaceSecurityGroupId(String workspaceSecurityGroupId) {
            return workspaceSecurityGroupId(Output.of(workspaceSecurityGroupId));
        }

        public StudioArgs build() {
            if ($.authMode == null) {
                throw new MissingRequiredPropertyException("StudioArgs", "authMode");
            }
            if ($.defaultS3Location == null) {
                throw new MissingRequiredPropertyException("StudioArgs", "defaultS3Location");
            }
            if ($.engineSecurityGroupId == null) {
                throw new MissingRequiredPropertyException("StudioArgs", "engineSecurityGroupId");
            }
            if ($.serviceRole == null) {
                throw new MissingRequiredPropertyException("StudioArgs", "serviceRole");
            }
            if ($.subnetIds == null) {
                throw new MissingRequiredPropertyException("StudioArgs", "subnetIds");
            }
            if ($.vpcId == null) {
                throw new MissingRequiredPropertyException("StudioArgs", "vpcId");
            }
            if ($.workspaceSecurityGroupId == null) {
                throw new MissingRequiredPropertyException("StudioArgs", "workspaceSecurityGroupId");
            }
            return $;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy