/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.nimblestudio.model; import java.io.Serializable; import javax.annotation.Generated; import com.amazonaws.protocol.StructuredPojo; import com.amazonaws.protocol.ProtocolMarshaller; /** *
* A launch profile controls your artist workforce’s access to studio components, like compute farms, shared file * systems, managed file systems, and license server configurations, as well as instance types and Amazon Machine Images * (AMIs). *
** Studio administrators create launch profiles in the Nimble Studio console. Artists can use their launch profiles to * launch an instance from the Nimble Studio portal. Each user’s launch profile defines how they can launch a streaming * session. By default, studio admins can use all launch profiles. *
* * @see AWS API * Documentation */ @Generated("com.amazonaws:aws-java-sdk-code-generator") public class LaunchProfile implements Serializable, Cloneable, StructuredPojo { /** ** The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique * across all Regions. *
*/ private String arn; /** ** The ISO timestamp in seconds for when the resource was created. *
*/ private java.util.Date createdAt; /** ** The user ID of the user that created the launch profile. *
*/ private String createdBy; /** ** A human-readable description of the launch profile. *
*/ private String description; /** ** Unique identifiers for a collection of EC2 subnets. *
*/ private java.util.List* The ID of the launch profile used to control access from the streaming session. *
*/ private String launchProfileId; /** ** The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31". *
*/ private java.util.List* A friendly name for the launch profile. *
*/ private String name; /** ** The current state. *
*/ private String state; /** ** The status code. *
*/ private String statusCode; /** ** The status message for the launch profile. *
*/ private String statusMessage; /** ** A configuration for a streaming session. *
*/ private StreamConfiguration streamConfiguration; /** ** Unique identifiers for a collection of studio components that can be used with this launch profile. *
*/ private java.util.List* A collection of labels, in the form of key-value pairs, that apply to this resource. *
*/ private java.util.Map* The ISO timestamp in seconds for when the resource was updated. *
*/ private java.util.Date updatedAt; /** ** The user ID of the user that most recently updated the resource. *
*/ private String updatedBy; /** ** The list of the latest validation results. *
*/ private java.util.List* The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique * across all Regions. *
* * @param arn * The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are * unique across all Regions. */ public void setArn(String arn) { this.arn = arn; } /** ** The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique * across all Regions. *
* * @return The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are * unique across all Regions. */ public String getArn() { return this.arn; } /** ** The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are unique * across all Regions. *
* * @param arn * The Amazon Resource Name (ARN) that is assigned to a studio resource and uniquely identifies it. ARNs are * unique across all Regions. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withArn(String arn) { setArn(arn); return this; } /** ** The ISO timestamp in seconds for when the resource was created. *
* * @param createdAt * The ISO timestamp in seconds for when the resource was created. */ public void setCreatedAt(java.util.Date createdAt) { this.createdAt = createdAt; } /** ** The ISO timestamp in seconds for when the resource was created. *
* * @return The ISO timestamp in seconds for when the resource was created. */ public java.util.Date getCreatedAt() { return this.createdAt; } /** ** The ISO timestamp in seconds for when the resource was created. *
* * @param createdAt * The ISO timestamp in seconds for when the resource was created. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withCreatedAt(java.util.Date createdAt) { setCreatedAt(createdAt); return this; } /** ** The user ID of the user that created the launch profile. *
* * @param createdBy * The user ID of the user that created the launch profile. */ public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } /** ** The user ID of the user that created the launch profile. *
* * @return The user ID of the user that created the launch profile. */ public String getCreatedBy() { return this.createdBy; } /** ** The user ID of the user that created the launch profile. *
* * @param createdBy * The user ID of the user that created the launch profile. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withCreatedBy(String createdBy) { setCreatedBy(createdBy); return this; } /** ** A human-readable description of the launch profile. *
* * @param description * A human-readable description of the launch profile. */ public void setDescription(String description) { this.description = description; } /** ** A human-readable description of the launch profile. *
* * @return A human-readable description of the launch profile. */ public String getDescription() { return this.description; } /** ** A human-readable description of the launch profile. *
* * @param description * A human-readable description of the launch profile. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withDescription(String description) { setDescription(description); return this; } /** ** Unique identifiers for a collection of EC2 subnets. *
* * @return Unique identifiers for a collection of EC2 subnets. */ public java.util.List* Unique identifiers for a collection of EC2 subnets. *
* * @param ec2SubnetIds * Unique identifiers for a collection of EC2 subnets. */ public void setEc2SubnetIds(java.util.Collection* Unique identifiers for a collection of EC2 subnets. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setEc2SubnetIds(java.util.Collection)} or {@link #withEc2SubnetIds(java.util.Collection)} if you want to * override the existing values. *
* * @param ec2SubnetIds * Unique identifiers for a collection of EC2 subnets. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withEc2SubnetIds(String... ec2SubnetIds) { if (this.ec2SubnetIds == null) { setEc2SubnetIds(new java.util.ArrayList* Unique identifiers for a collection of EC2 subnets. *
* * @param ec2SubnetIds * Unique identifiers for a collection of EC2 subnets. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withEc2SubnetIds(java.util.Collection* The ID of the launch profile used to control access from the streaming session. *
* * @param launchProfileId * The ID of the launch profile used to control access from the streaming session. */ public void setLaunchProfileId(String launchProfileId) { this.launchProfileId = launchProfileId; } /** ** The ID of the launch profile used to control access from the streaming session. *
* * @return The ID of the launch profile used to control access from the streaming session. */ public String getLaunchProfileId() { return this.launchProfileId; } /** ** The ID of the launch profile used to control access from the streaming session. *
* * @param launchProfileId * The ID of the launch profile used to control access from the streaming session. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withLaunchProfileId(String launchProfileId) { setLaunchProfileId(launchProfileId); return this; } /** ** The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31". *
* * @return The version number of the protocol that is used by the launch profile. The only valid version is * "2021-03-31". */ public java.util.List* The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31". *
* * @param launchProfileProtocolVersions * The version number of the protocol that is used by the launch profile. The only valid version is * "2021-03-31". */ public void setLaunchProfileProtocolVersions(java.util.Collection* The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31". *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setLaunchProfileProtocolVersions(java.util.Collection)} or * {@link #withLaunchProfileProtocolVersions(java.util.Collection)} if you want to override the existing values. *
* * @param launchProfileProtocolVersions * The version number of the protocol that is used by the launch profile. The only valid version is * "2021-03-31". * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withLaunchProfileProtocolVersions(String... launchProfileProtocolVersions) { if (this.launchProfileProtocolVersions == null) { setLaunchProfileProtocolVersions(new java.util.ArrayList* The version number of the protocol that is used by the launch profile. The only valid version is "2021-03-31". *
* * @param launchProfileProtocolVersions * The version number of the protocol that is used by the launch profile. The only valid version is * "2021-03-31". * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withLaunchProfileProtocolVersions(java.util.Collection* A friendly name for the launch profile. *
* * @param name * A friendly name for the launch profile. */ public void setName(String name) { this.name = name; } /** ** A friendly name for the launch profile. *
* * @return A friendly name for the launch profile. */ public String getName() { return this.name; } /** ** A friendly name for the launch profile. *
* * @param name * A friendly name for the launch profile. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withName(String name) { setName(name); return this; } /** ** The current state. *
* * @param state * The current state. * @see LaunchProfileState */ public void setState(String state) { this.state = state; } /** ** The current state. *
* * @return The current state. * @see LaunchProfileState */ public String getState() { return this.state; } /** ** The current state. *
* * @param state * The current state. * @return Returns a reference to this object so that method calls can be chained together. * @see LaunchProfileState */ public LaunchProfile withState(String state) { setState(state); return this; } /** ** The current state. *
* * @param state * The current state. * @return Returns a reference to this object so that method calls can be chained together. * @see LaunchProfileState */ public LaunchProfile withState(LaunchProfileState state) { this.state = state.toString(); return this; } /** ** The status code. *
* * @param statusCode * The status code. * @see LaunchProfileStatusCode */ public void setStatusCode(String statusCode) { this.statusCode = statusCode; } /** ** The status code. *
* * @return The status code. * @see LaunchProfileStatusCode */ public String getStatusCode() { return this.statusCode; } /** ** The status code. *
* * @param statusCode * The status code. * @return Returns a reference to this object so that method calls can be chained together. * @see LaunchProfileStatusCode */ public LaunchProfile withStatusCode(String statusCode) { setStatusCode(statusCode); return this; } /** ** The status code. *
* * @param statusCode * The status code. * @return Returns a reference to this object so that method calls can be chained together. * @see LaunchProfileStatusCode */ public LaunchProfile withStatusCode(LaunchProfileStatusCode statusCode) { this.statusCode = statusCode.toString(); return this; } /** ** The status message for the launch profile. *
* * @param statusMessage * The status message for the launch profile. */ public void setStatusMessage(String statusMessage) { this.statusMessage = statusMessage; } /** ** The status message for the launch profile. *
* * @return The status message for the launch profile. */ public String getStatusMessage() { return this.statusMessage; } /** ** The status message for the launch profile. *
* * @param statusMessage * The status message for the launch profile. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withStatusMessage(String statusMessage) { setStatusMessage(statusMessage); return this; } /** ** A configuration for a streaming session. *
* * @param streamConfiguration * A configuration for a streaming session. */ public void setStreamConfiguration(StreamConfiguration streamConfiguration) { this.streamConfiguration = streamConfiguration; } /** ** A configuration for a streaming session. *
* * @return A configuration for a streaming session. */ public StreamConfiguration getStreamConfiguration() { return this.streamConfiguration; } /** ** A configuration for a streaming session. *
* * @param streamConfiguration * A configuration for a streaming session. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withStreamConfiguration(StreamConfiguration streamConfiguration) { setStreamConfiguration(streamConfiguration); return this; } /** ** Unique identifiers for a collection of studio components that can be used with this launch profile. *
* * @return Unique identifiers for a collection of studio components that can be used with this launch profile. */ public java.util.List* Unique identifiers for a collection of studio components that can be used with this launch profile. *
* * @param studioComponentIds * Unique identifiers for a collection of studio components that can be used with this launch profile. */ public void setStudioComponentIds(java.util.Collection* Unique identifiers for a collection of studio components that can be used with this launch profile. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setStudioComponentIds(java.util.Collection)} or {@link #withStudioComponentIds(java.util.Collection)} if * you want to override the existing values. *
* * @param studioComponentIds * Unique identifiers for a collection of studio components that can be used with this launch profile. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withStudioComponentIds(String... studioComponentIds) { if (this.studioComponentIds == null) { setStudioComponentIds(new java.util.ArrayList* Unique identifiers for a collection of studio components that can be used with this launch profile. *
* * @param studioComponentIds * Unique identifiers for a collection of studio components that can be used with this launch profile. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withStudioComponentIds(java.util.Collection* A collection of labels, in the form of key-value pairs, that apply to this resource. *
* * @return A collection of labels, in the form of key-value pairs, that apply to this resource. */ public java.util.Map* A collection of labels, in the form of key-value pairs, that apply to this resource. *
* * @param tags * A collection of labels, in the form of key-value pairs, that apply to this resource. */ public void setTags(java.util.Map* A collection of labels, in the form of key-value pairs, that apply to this resource. *
* * @param tags * A collection of labels, in the form of key-value pairs, that apply to this resource. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withTags(java.util.Map* The ISO timestamp in seconds for when the resource was updated. *
* * @param updatedAt * The ISO timestamp in seconds for when the resource was updated. */ public void setUpdatedAt(java.util.Date updatedAt) { this.updatedAt = updatedAt; } /** ** The ISO timestamp in seconds for when the resource was updated. *
* * @return The ISO timestamp in seconds for when the resource was updated. */ public java.util.Date getUpdatedAt() { return this.updatedAt; } /** ** The ISO timestamp in seconds for when the resource was updated. *
* * @param updatedAt * The ISO timestamp in seconds for when the resource was updated. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withUpdatedAt(java.util.Date updatedAt) { setUpdatedAt(updatedAt); return this; } /** ** The user ID of the user that most recently updated the resource. *
* * @param updatedBy * The user ID of the user that most recently updated the resource. */ public void setUpdatedBy(String updatedBy) { this.updatedBy = updatedBy; } /** ** The user ID of the user that most recently updated the resource. *
* * @return The user ID of the user that most recently updated the resource. */ public String getUpdatedBy() { return this.updatedBy; } /** ** The user ID of the user that most recently updated the resource. *
* * @param updatedBy * The user ID of the user that most recently updated the resource. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withUpdatedBy(String updatedBy) { setUpdatedBy(updatedBy); return this; } /** ** The list of the latest validation results. *
* * @return The list of the latest validation results. */ public java.util.List* The list of the latest validation results. *
* * @param validationResults * The list of the latest validation results. */ public void setValidationResults(java.util.Collection* The list of the latest validation results. *
** NOTE: This method appends the values to the existing list (if any). Use * {@link #setValidationResults(java.util.Collection)} or {@link #withValidationResults(java.util.Collection)} if * you want to override the existing values. *
* * @param validationResults * The list of the latest validation results. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withValidationResults(ValidationResult... validationResults) { if (this.validationResults == null) { setValidationResults(new java.util.ArrayList* The list of the latest validation results. *
* * @param validationResults * The list of the latest validation results. * @return Returns a reference to this object so that method calls can be chained together. */ public LaunchProfile withValidationResults(java.util.Collection