/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include <aws/nimble/NimbleStudio_EXPORTS.h> #include <aws/core/utils/memory/stl/AWSString.h> #include <aws/nimble/model/StudioComponentConfiguration.h> #include <aws/core/utils/DateTime.h> #include <aws/core/utils/memory/stl/AWSVector.h> #include <aws/nimble/model/StudioComponentState.h> #include <aws/nimble/model/StudioComponentStatusCode.h> #include <aws/nimble/model/StudioComponentSubtype.h> #include <aws/core/utils/memory/stl/AWSMap.h> #include <aws/nimble/model/StudioComponentType.h> #include <aws/nimble/model/StudioComponentInitializationScript.h> #include <aws/nimble/model/ScriptParameterKeyValue.h> #include <utility> namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace NimbleStudio { namespace Model { /** * <p>A studio component represents a network resource to be used by a studio's * users and workflows. A typical studio contains studio components for each of the * following: render farm, Active Directory, licensing, and file system.</p> * <p>Access to a studio component is managed by specifying security groups for the * resource, as well as its endpoint.</p> <p>A studio component also has a set of * initialization scripts that are returned by * <code>GetLaunchProfileInitialization</code>. These initialization scripts run on * streaming sessions when they start. They provide users with flexibility in * controlling how the studio resources are configured on a streaming * session.</p><p><h3>See Also:</h3> <a * href="http://docs.aws.amazon.com/goto/WebAPI/nimble-2020-08-01/StudioComponent">AWS * API Reference</a></p> */ class StudioComponent { public: AWS_NIMBLESTUDIO_API StudioComponent(); AWS_NIMBLESTUDIO_API StudioComponent(Aws::Utils::Json::JsonView jsonValue); AWS_NIMBLESTUDIO_API StudioComponent& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_NIMBLESTUDIO_API Aws::Utils::Json::JsonValue Jsonize() const; /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline const Aws::String& GetArn() const{ return m_arn; } /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline bool ArnHasBeenSet() const { return m_arnHasBeenSet; } /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline void SetArn(const Aws::String& value) { m_arnHasBeenSet = true; m_arn = value; } /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline void SetArn(Aws::String&& value) { m_arnHasBeenSet = true; m_arn = std::move(value); } /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline void SetArn(const char* value) { m_arnHasBeenSet = true; m_arn.assign(value); } /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline StudioComponent& WithArn(const Aws::String& value) { SetArn(value); return *this;} /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline StudioComponent& WithArn(Aws::String&& value) { SetArn(std::move(value)); return *this;} /** * <p>The Amazon Resource Name (ARN) that is assigned to a studio resource and * uniquely identifies it. ARNs are unique across all Regions.</p> */ inline StudioComponent& WithArn(const char* value) { SetArn(value); return *this;} /** * <p>The configuration of the studio component, based on component type.</p> */ inline const StudioComponentConfiguration& GetConfiguration() const{ return m_configuration; } /** * <p>The configuration of the studio component, based on component type.</p> */ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** * <p>The configuration of the studio component, based on component type.</p> */ inline void SetConfiguration(const StudioComponentConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** * <p>The configuration of the studio component, based on component type.</p> */ inline void SetConfiguration(StudioComponentConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** * <p>The configuration of the studio component, based on component type.</p> */ inline StudioComponent& WithConfiguration(const StudioComponentConfiguration& value) { SetConfiguration(value); return *this;} /** * <p>The configuration of the studio component, based on component type.</p> */ inline StudioComponent& WithConfiguration(StudioComponentConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} /** * <p>The ISO timestamp in seconds for when the resource was created.</p> */ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** * <p>The ISO timestamp in seconds for when the resource was created.</p> */ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** * <p>The ISO timestamp in seconds for when the resource was created.</p> */ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** * <p>The ISO timestamp in seconds for when the resource was created.</p> */ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** * <p>The ISO timestamp in seconds for when the resource was created.</p> */ inline StudioComponent& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** * <p>The ISO timestamp in seconds for when the resource was created.</p> */ inline StudioComponent& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** * <p>The user ID of the user that created the studio component.</p> */ inline const Aws::String& GetCreatedBy() const{ return m_createdBy; } /** * <p>The user ID of the user that created the studio component.</p> */ inline bool CreatedByHasBeenSet() const { return m_createdByHasBeenSet; } /** * <p>The user ID of the user that created the studio component.</p> */ inline void SetCreatedBy(const Aws::String& value) { m_createdByHasBeenSet = true; m_createdBy = value; } /** * <p>The user ID of the user that created the studio component.</p> */ inline void SetCreatedBy(Aws::String&& value) { m_createdByHasBeenSet = true; m_createdBy = std::move(value); } /** * <p>The user ID of the user that created the studio component.</p> */ inline void SetCreatedBy(const char* value) { m_createdByHasBeenSet = true; m_createdBy.assign(value); } /** * <p>The user ID of the user that created the studio component.</p> */ inline StudioComponent& WithCreatedBy(const Aws::String& value) { SetCreatedBy(value); return *this;} /** * <p>The user ID of the user that created the studio component.</p> */ inline StudioComponent& WithCreatedBy(Aws::String&& value) { SetCreatedBy(std::move(value)); return *this;} /** * <p>The user ID of the user that created the studio component.</p> */ inline StudioComponent& WithCreatedBy(const char* value) { SetCreatedBy(value); return *this;} /** * <p>A human-readable description for the studio component resource.</p> */ inline const Aws::String& GetDescription() const{ return m_description; } /** * <p>A human-readable description for the studio component resource.</p> */ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** * <p>A human-readable description for the studio component resource.</p> */ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** * <p>A human-readable description for the studio component resource.</p> */ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** * <p>A human-readable description for the studio component resource.</p> */ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** * <p>A human-readable description for the studio component resource.</p> */ inline StudioComponent& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** * <p>A human-readable description for the studio component resource.</p> */ inline StudioComponent& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** * <p>A human-readable description for the studio component resource.</p> */ inline StudioComponent& WithDescription(const char* value) { SetDescription(value); return *this;} /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline const Aws::Vector<Aws::String>& GetEc2SecurityGroupIds() const{ return m_ec2SecurityGroupIds; } /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline bool Ec2SecurityGroupIdsHasBeenSet() const { return m_ec2SecurityGroupIdsHasBeenSet; } /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline void SetEc2SecurityGroupIds(const Aws::Vector<Aws::String>& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = value; } /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline void SetEc2SecurityGroupIds(Aws::Vector<Aws::String>&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = std::move(value); } /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline StudioComponent& WithEc2SecurityGroupIds(const Aws::Vector<Aws::String>& value) { SetEc2SecurityGroupIds(value); return *this;} /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline StudioComponent& WithEc2SecurityGroupIds(Aws::Vector<Aws::String>&& value) { SetEc2SecurityGroupIds(std::move(value)); return *this;} /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline StudioComponent& AddEc2SecurityGroupIds(const Aws::String& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; } /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline StudioComponent& AddEc2SecurityGroupIds(Aws::String&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(std::move(value)); return *this; } /** * <p>The EC2 security groups that control access to the studio component.</p> */ inline StudioComponent& AddEc2SecurityGroupIds(const char* value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; } /** * <p>Initialization scripts for studio components.</p> */ inline const Aws::Vector<StudioComponentInitializationScript>& GetInitializationScripts() const{ return m_initializationScripts; } /** * <p>Initialization scripts for studio components.</p> */ inline bool InitializationScriptsHasBeenSet() const { return m_initializationScriptsHasBeenSet; } /** * <p>Initialization scripts for studio components.</p> */ inline void SetInitializationScripts(const Aws::Vector<StudioComponentInitializationScript>& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts = value; } /** * <p>Initialization scripts for studio components.</p> */ inline void SetInitializationScripts(Aws::Vector<StudioComponentInitializationScript>&& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts = std::move(value); } /** * <p>Initialization scripts for studio components.</p> */ inline StudioComponent& WithInitializationScripts(const Aws::Vector<StudioComponentInitializationScript>& value) { SetInitializationScripts(value); return *this;} /** * <p>Initialization scripts for studio components.</p> */ inline StudioComponent& WithInitializationScripts(Aws::Vector<StudioComponentInitializationScript>&& value) { SetInitializationScripts(std::move(value)); return *this;} /** * <p>Initialization scripts for studio components.</p> */ inline StudioComponent& AddInitializationScripts(const StudioComponentInitializationScript& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts.push_back(value); return *this; } /** * <p>Initialization scripts for studio components.</p> */ inline StudioComponent& AddInitializationScripts(StudioComponentInitializationScript&& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts.push_back(std::move(value)); return *this; } /** * <p>A friendly name for the studio component resource.</p> */ inline const Aws::String& GetName() const{ return m_name; } /** * <p>A friendly name for the studio component resource.</p> */ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** * <p>A friendly name for the studio component resource.</p> */ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** * <p>A friendly name for the studio component resource.</p> */ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** * <p>A friendly name for the studio component resource.</p> */ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** * <p>A friendly name for the studio component resource.</p> */ inline StudioComponent& WithName(const Aws::String& value) { SetName(value); return *this;} /** * <p>A friendly name for the studio component resource.</p> */ inline StudioComponent& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** * <p>A friendly name for the studio component resource.</p> */ inline StudioComponent& WithName(const char* value) { SetName(value); return *this;} /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline const Aws::String& GetRuntimeRoleArn() const{ return m_runtimeRoleArn; } /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline bool RuntimeRoleArnHasBeenSet() const { return m_runtimeRoleArnHasBeenSet; } /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline void SetRuntimeRoleArn(const Aws::String& value) { m_runtimeRoleArnHasBeenSet = true; m_runtimeRoleArn = value; } /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline void SetRuntimeRoleArn(Aws::String&& value) { m_runtimeRoleArnHasBeenSet = true; m_runtimeRoleArn = std::move(value); } /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline void SetRuntimeRoleArn(const char* value) { m_runtimeRoleArnHasBeenSet = true; m_runtimeRoleArn.assign(value); } /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline StudioComponent& WithRuntimeRoleArn(const Aws::String& value) { SetRuntimeRoleArn(value); return *this;} /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline StudioComponent& WithRuntimeRoleArn(Aws::String&& value) { SetRuntimeRoleArn(std::move(value)); return *this;} /** * <p>An IAM role attached to a Studio Component that gives the studio component * access to Amazon Web Services resources at anytime while the instance is * running. </p> */ inline StudioComponent& WithRuntimeRoleArn(const char* value) { SetRuntimeRoleArn(value); return *this;} /** * <p>Parameters for the studio component scripts.</p> */ inline const Aws::Vector<ScriptParameterKeyValue>& GetScriptParameters() const{ return m_scriptParameters; } /** * <p>Parameters for the studio component scripts.</p> */ inline bool ScriptParametersHasBeenSet() const { return m_scriptParametersHasBeenSet; } /** * <p>Parameters for the studio component scripts.</p> */ inline void SetScriptParameters(const Aws::Vector<ScriptParameterKeyValue>& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters = value; } /** * <p>Parameters for the studio component scripts.</p> */ inline void SetScriptParameters(Aws::Vector<ScriptParameterKeyValue>&& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters = std::move(value); } /** * <p>Parameters for the studio component scripts.</p> */ inline StudioComponent& WithScriptParameters(const Aws::Vector<ScriptParameterKeyValue>& value) { SetScriptParameters(value); return *this;} /** * <p>Parameters for the studio component scripts.</p> */ inline StudioComponent& WithScriptParameters(Aws::Vector<ScriptParameterKeyValue>&& value) { SetScriptParameters(std::move(value)); return *this;} /** * <p>Parameters for the studio component scripts.</p> */ inline StudioComponent& AddScriptParameters(const ScriptParameterKeyValue& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters.push_back(value); return *this; } /** * <p>Parameters for the studio component scripts.</p> */ inline StudioComponent& AddScriptParameters(ScriptParameterKeyValue&& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters.push_back(std::move(value)); return *this; } /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline const Aws::String& GetSecureInitializationRoleArn() const{ return m_secureInitializationRoleArn; } /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline bool SecureInitializationRoleArnHasBeenSet() const { return m_secureInitializationRoleArnHasBeenSet; } /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline void SetSecureInitializationRoleArn(const Aws::String& value) { m_secureInitializationRoleArnHasBeenSet = true; m_secureInitializationRoleArn = value; } /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline void SetSecureInitializationRoleArn(Aws::String&& value) { m_secureInitializationRoleArnHasBeenSet = true; m_secureInitializationRoleArn = std::move(value); } /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline void SetSecureInitializationRoleArn(const char* value) { m_secureInitializationRoleArnHasBeenSet = true; m_secureInitializationRoleArn.assign(value); } /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline StudioComponent& WithSecureInitializationRoleArn(const Aws::String& value) { SetSecureInitializationRoleArn(value); return *this;} /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline StudioComponent& WithSecureInitializationRoleArn(Aws::String&& value) { SetSecureInitializationRoleArn(std::move(value)); return *this;} /** * <p>An IAM role attached to Studio Component when the system initialization * script runs which give the studio component access to Amazon Web Services * resources when the system initialization script runs.</p> */ inline StudioComponent& WithSecureInitializationRoleArn(const char* value) { SetSecureInitializationRoleArn(value); return *this;} /** * <p>The current state.</p> */ inline const StudioComponentState& GetState() const{ return m_state; } /** * <p>The current state.</p> */ inline bool StateHasBeenSet() const { return m_stateHasBeenSet; } /** * <p>The current state.</p> */ inline void SetState(const StudioComponentState& value) { m_stateHasBeenSet = true; m_state = value; } /** * <p>The current state.</p> */ inline void SetState(StudioComponentState&& value) { m_stateHasBeenSet = true; m_state = std::move(value); } /** * <p>The current state.</p> */ inline StudioComponent& WithState(const StudioComponentState& value) { SetState(value); return *this;} /** * <p>The current state.</p> */ inline StudioComponent& WithState(StudioComponentState&& value) { SetState(std::move(value)); return *this;} /** * <p>The status code.</p> */ inline const StudioComponentStatusCode& GetStatusCode() const{ return m_statusCode; } /** * <p>The status code.</p> */ inline bool StatusCodeHasBeenSet() const { return m_statusCodeHasBeenSet; } /** * <p>The status code.</p> */ inline void SetStatusCode(const StudioComponentStatusCode& value) { m_statusCodeHasBeenSet = true; m_statusCode = value; } /** * <p>The status code.</p> */ inline void SetStatusCode(StudioComponentStatusCode&& value) { m_statusCodeHasBeenSet = true; m_statusCode = std::move(value); } /** * <p>The status code.</p> */ inline StudioComponent& WithStatusCode(const StudioComponentStatusCode& value) { SetStatusCode(value); return *this;} /** * <p>The status code.</p> */ inline StudioComponent& WithStatusCode(StudioComponentStatusCode&& value) { SetStatusCode(std::move(value)); return *this;} /** * <p>The status message for the studio component.</p> */ inline const Aws::String& GetStatusMessage() const{ return m_statusMessage; } /** * <p>The status message for the studio component.</p> */ inline bool StatusMessageHasBeenSet() const { return m_statusMessageHasBeenSet; } /** * <p>The status message for the studio component.</p> */ inline void SetStatusMessage(const Aws::String& value) { m_statusMessageHasBeenSet = true; m_statusMessage = value; } /** * <p>The status message for the studio component.</p> */ inline void SetStatusMessage(Aws::String&& value) { m_statusMessageHasBeenSet = true; m_statusMessage = std::move(value); } /** * <p>The status message for the studio component.</p> */ inline void SetStatusMessage(const char* value) { m_statusMessageHasBeenSet = true; m_statusMessage.assign(value); } /** * <p>The status message for the studio component.</p> */ inline StudioComponent& WithStatusMessage(const Aws::String& value) { SetStatusMessage(value); return *this;} /** * <p>The status message for the studio component.</p> */ inline StudioComponent& WithStatusMessage(Aws::String&& value) { SetStatusMessage(std::move(value)); return *this;} /** * <p>The status message for the studio component.</p> */ inline StudioComponent& WithStatusMessage(const char* value) { SetStatusMessage(value); return *this;} /** * <p>The unique identifier for a studio component resource.</p> */ inline const Aws::String& GetStudioComponentId() const{ return m_studioComponentId; } /** * <p>The unique identifier for a studio component resource.</p> */ inline bool StudioComponentIdHasBeenSet() const { return m_studioComponentIdHasBeenSet; } /** * <p>The unique identifier for a studio component resource.</p> */ inline void SetStudioComponentId(const Aws::String& value) { m_studioComponentIdHasBeenSet = true; m_studioComponentId = value; } /** * <p>The unique identifier for a studio component resource.</p> */ inline void SetStudioComponentId(Aws::String&& value) { m_studioComponentIdHasBeenSet = true; m_studioComponentId = std::move(value); } /** * <p>The unique identifier for a studio component resource.</p> */ inline void SetStudioComponentId(const char* value) { m_studioComponentIdHasBeenSet = true; m_studioComponentId.assign(value); } /** * <p>The unique identifier for a studio component resource.</p> */ inline StudioComponent& WithStudioComponentId(const Aws::String& value) { SetStudioComponentId(value); return *this;} /** * <p>The unique identifier for a studio component resource.</p> */ inline StudioComponent& WithStudioComponentId(Aws::String&& value) { SetStudioComponentId(std::move(value)); return *this;} /** * <p>The unique identifier for a studio component resource.</p> */ inline StudioComponent& WithStudioComponentId(const char* value) { SetStudioComponentId(value); return *this;} /** * <p>The specific subtype of a studio component.</p> */ inline const StudioComponentSubtype& GetSubtype() const{ return m_subtype; } /** * <p>The specific subtype of a studio component.</p> */ inline bool SubtypeHasBeenSet() const { return m_subtypeHasBeenSet; } /** * <p>The specific subtype of a studio component.</p> */ inline void SetSubtype(const StudioComponentSubtype& value) { m_subtypeHasBeenSet = true; m_subtype = value; } /** * <p>The specific subtype of a studio component.</p> */ inline void SetSubtype(StudioComponentSubtype&& value) { m_subtypeHasBeenSet = true; m_subtype = std::move(value); } /** * <p>The specific subtype of a studio component.</p> */ inline StudioComponent& WithSubtype(const StudioComponentSubtype& value) { SetSubtype(value); return *this;} /** * <p>The specific subtype of a studio component.</p> */ inline StudioComponent& WithSubtype(StudioComponentSubtype&& value) { SetSubtype(std::move(value)); return *this;} /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline const Aws::Map<Aws::String, Aws::String>& GetTags() const{ return m_tags; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline void SetTags(const Aws::Map<Aws::String, Aws::String>& value) { m_tagsHasBeenSet = true; m_tags = value; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline void SetTags(Aws::Map<Aws::String, Aws::String>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& WithTags(const Aws::Map<Aws::String, Aws::String>& value) { SetTags(value); return *this;} /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& WithTags(Aws::Map<Aws::String, Aws::String>&& value) { SetTags(std::move(value)); return *this;} /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** * <p>A collection of labels, in the form of key-value pairs, that apply to this * resource.</p> */ inline StudioComponent& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** * <p>The type of the studio component.</p> */ inline const StudioComponentType& GetType() const{ return m_type; } /** * <p>The type of the studio component.</p> */ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** * <p>The type of the studio component.</p> */ inline void SetType(const StudioComponentType& value) { m_typeHasBeenSet = true; m_type = value; } /** * <p>The type of the studio component.</p> */ inline void SetType(StudioComponentType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** * <p>The type of the studio component.</p> */ inline StudioComponent& WithType(const StudioComponentType& value) { SetType(value); return *this;} /** * <p>The type of the studio component.</p> */ inline StudioComponent& WithType(StudioComponentType&& value) { SetType(std::move(value)); return *this;} /** * <p>The ISO timestamp in seconds for when the resource was updated.</p> */ inline const Aws::Utils::DateTime& GetUpdatedAt() const{ return m_updatedAt; } /** * <p>The ISO timestamp in seconds for when the resource was updated.</p> */ inline bool UpdatedAtHasBeenSet() const { return m_updatedAtHasBeenSet; } /** * <p>The ISO timestamp in seconds for when the resource was updated.</p> */ inline void SetUpdatedAt(const Aws::Utils::DateTime& value) { m_updatedAtHasBeenSet = true; m_updatedAt = value; } /** * <p>The ISO timestamp in seconds for when the resource was updated.</p> */ inline void SetUpdatedAt(Aws::Utils::DateTime&& value) { m_updatedAtHasBeenSet = true; m_updatedAt = std::move(value); } /** * <p>The ISO timestamp in seconds for when the resource was updated.</p> */ inline StudioComponent& WithUpdatedAt(const Aws::Utils::DateTime& value) { SetUpdatedAt(value); return *this;} /** * <p>The ISO timestamp in seconds for when the resource was updated.</p> */ inline StudioComponent& WithUpdatedAt(Aws::Utils::DateTime&& value) { SetUpdatedAt(std::move(value)); return *this;} /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline const Aws::String& GetUpdatedBy() const{ return m_updatedBy; } /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline bool UpdatedByHasBeenSet() const { return m_updatedByHasBeenSet; } /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline void SetUpdatedBy(const Aws::String& value) { m_updatedByHasBeenSet = true; m_updatedBy = value; } /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline void SetUpdatedBy(Aws::String&& value) { m_updatedByHasBeenSet = true; m_updatedBy = std::move(value); } /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline void SetUpdatedBy(const char* value) { m_updatedByHasBeenSet = true; m_updatedBy.assign(value); } /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline StudioComponent& WithUpdatedBy(const Aws::String& value) { SetUpdatedBy(value); return *this;} /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline StudioComponent& WithUpdatedBy(Aws::String&& value) { SetUpdatedBy(std::move(value)); return *this;} /** * <p>The user ID of the user that most recently updated the resource.</p> */ inline StudioComponent& WithUpdatedBy(const char* value) { SetUpdatedBy(value); return *this;} private: Aws::String m_arn; bool m_arnHasBeenSet = false; StudioComponentConfiguration m_configuration; bool m_configurationHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::String m_createdBy; bool m_createdByHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector<Aws::String> m_ec2SecurityGroupIds; bool m_ec2SecurityGroupIdsHasBeenSet = false; Aws::Vector<StudioComponentInitializationScript> m_initializationScripts; bool m_initializationScriptsHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_runtimeRoleArn; bool m_runtimeRoleArnHasBeenSet = false; Aws::Vector<ScriptParameterKeyValue> m_scriptParameters; bool m_scriptParametersHasBeenSet = false; Aws::String m_secureInitializationRoleArn; bool m_secureInitializationRoleArnHasBeenSet = false; StudioComponentState m_state; bool m_stateHasBeenSet = false; StudioComponentStatusCode m_statusCode; bool m_statusCodeHasBeenSet = false; Aws::String m_statusMessage; bool m_statusMessageHasBeenSet = false; Aws::String m_studioComponentId; bool m_studioComponentIdHasBeenSet = false; StudioComponentSubtype m_subtype; bool m_subtypeHasBeenSet = false; Aws::Map<Aws::String, Aws::String> m_tags; bool m_tagsHasBeenSet = false; StudioComponentType m_type; bool m_typeHasBeenSet = false; Aws::Utils::DateTime m_updatedAt; bool m_updatedAtHasBeenSet = false; Aws::String m_updatedBy; bool m_updatedByHasBeenSet = false; }; } // namespace Model } // namespace NimbleStudio } // namespace Aws