/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace NimbleStudio { namespace Model { /** */ class UpdateStudioComponentRequest : public NimbleStudioRequest { public: AWS_NIMBLESTUDIO_API UpdateStudioComponentRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "UpdateStudioComponent"; } AWS_NIMBLESTUDIO_API Aws::String SerializePayload() const override; AWS_NIMBLESTUDIO_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline const Aws::String& GetClientToken() const{ return m_clientToken; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline bool ClientTokenHasBeenSet() const { return m_clientTokenHasBeenSet; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline void SetClientToken(const Aws::String& value) { m_clientTokenHasBeenSet = true; m_clientToken = value; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline void SetClientToken(Aws::String&& value) { m_clientTokenHasBeenSet = true; m_clientToken = std::move(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline void SetClientToken(const char* value) { m_clientTokenHasBeenSet = true; m_clientToken.assign(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline UpdateStudioComponentRequest& WithClientToken(const Aws::String& value) { SetClientToken(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline UpdateStudioComponentRequest& WithClientToken(Aws::String&& value) { SetClientToken(std::move(value)); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request. If you don’t specify a client token, the Amazon Web Services SDK * automatically generates a client token and uses it for the request to ensure * idempotency.

*/ inline UpdateStudioComponentRequest& WithClientToken(const char* value) { SetClientToken(value); return *this;} /** *

The configuration of the studio component, based on component type.

*/ inline const StudioComponentConfiguration& GetConfiguration() const{ return m_configuration; } /** *

The configuration of the studio component, based on component type.

*/ inline bool ConfigurationHasBeenSet() const { return m_configurationHasBeenSet; } /** *

The configuration of the studio component, based on component type.

*/ inline void SetConfiguration(const StudioComponentConfiguration& value) { m_configurationHasBeenSet = true; m_configuration = value; } /** *

The configuration of the studio component, based on component type.

*/ inline void SetConfiguration(StudioComponentConfiguration&& value) { m_configurationHasBeenSet = true; m_configuration = std::move(value); } /** *

The configuration of the studio component, based on component type.

*/ inline UpdateStudioComponentRequest& WithConfiguration(const StudioComponentConfiguration& value) { SetConfiguration(value); return *this;} /** *

The configuration of the studio component, based on component type.

*/ inline UpdateStudioComponentRequest& WithConfiguration(StudioComponentConfiguration&& value) { SetConfiguration(std::move(value)); return *this;} /** *

The description.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The description.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The description.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The description.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The description.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The description.

*/ inline UpdateStudioComponentRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The description.

*/ inline UpdateStudioComponentRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The description.

*/ inline UpdateStudioComponentRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The EC2 security groups that control access to the studio component.

*/ inline const Aws::Vector& GetEc2SecurityGroupIds() const{ return m_ec2SecurityGroupIds; } /** *

The EC2 security groups that control access to the studio component.

*/ inline bool Ec2SecurityGroupIdsHasBeenSet() const { return m_ec2SecurityGroupIdsHasBeenSet; } /** *

The EC2 security groups that control access to the studio component.

*/ inline void SetEc2SecurityGroupIds(const Aws::Vector& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = value; } /** *

The EC2 security groups that control access to the studio component.

*/ inline void SetEc2SecurityGroupIds(Aws::Vector&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds = std::move(value); } /** *

The EC2 security groups that control access to the studio component.

*/ inline UpdateStudioComponentRequest& WithEc2SecurityGroupIds(const Aws::Vector& value) { SetEc2SecurityGroupIds(value); return *this;} /** *

The EC2 security groups that control access to the studio component.

*/ inline UpdateStudioComponentRequest& WithEc2SecurityGroupIds(Aws::Vector&& value) { SetEc2SecurityGroupIds(std::move(value)); return *this;} /** *

The EC2 security groups that control access to the studio component.

*/ inline UpdateStudioComponentRequest& AddEc2SecurityGroupIds(const Aws::String& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; } /** *

The EC2 security groups that control access to the studio component.

*/ inline UpdateStudioComponentRequest& AddEc2SecurityGroupIds(Aws::String&& value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(std::move(value)); return *this; } /** *

The EC2 security groups that control access to the studio component.

*/ inline UpdateStudioComponentRequest& AddEc2SecurityGroupIds(const char* value) { m_ec2SecurityGroupIdsHasBeenSet = true; m_ec2SecurityGroupIds.push_back(value); return *this; } /** *

Initialization scripts for studio components.

*/ inline const Aws::Vector& GetInitializationScripts() const{ return m_initializationScripts; } /** *

Initialization scripts for studio components.

*/ inline bool InitializationScriptsHasBeenSet() const { return m_initializationScriptsHasBeenSet; } /** *

Initialization scripts for studio components.

*/ inline void SetInitializationScripts(const Aws::Vector& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts = value; } /** *

Initialization scripts for studio components.

*/ inline void SetInitializationScripts(Aws::Vector&& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts = std::move(value); } /** *

Initialization scripts for studio components.

*/ inline UpdateStudioComponentRequest& WithInitializationScripts(const Aws::Vector& value) { SetInitializationScripts(value); return *this;} /** *

Initialization scripts for studio components.

*/ inline UpdateStudioComponentRequest& WithInitializationScripts(Aws::Vector&& value) { SetInitializationScripts(std::move(value)); return *this;} /** *

Initialization scripts for studio components.

*/ inline UpdateStudioComponentRequest& AddInitializationScripts(const StudioComponentInitializationScript& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts.push_back(value); return *this; } /** *

Initialization scripts for studio components.

*/ inline UpdateStudioComponentRequest& AddInitializationScripts(StudioComponentInitializationScript&& value) { m_initializationScriptsHasBeenSet = true; m_initializationScripts.push_back(std::move(value)); return *this; } /** *

The name for the studio component.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name for the studio component.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name for the studio component.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name for the studio component.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name for the studio component.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name for the studio component.

*/ inline UpdateStudioComponentRequest& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name for the studio component.

*/ inline UpdateStudioComponentRequest& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name for the studio component.

*/ inline UpdateStudioComponentRequest& WithName(const char* value) { SetName(value); return *this;} /** *

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.

*/ inline const Aws::String& GetRuntimeRoleArn() const{ return m_runtimeRoleArn; } /** *

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.

*/ inline bool RuntimeRoleArnHasBeenSet() const { return m_runtimeRoleArnHasBeenSet; } /** *

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.

*/ inline void SetRuntimeRoleArn(const Aws::String& value) { m_runtimeRoleArnHasBeenSet = true; m_runtimeRoleArn = value; } /** *

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.

*/ inline void SetRuntimeRoleArn(Aws::String&& value) { m_runtimeRoleArnHasBeenSet = true; m_runtimeRoleArn = std::move(value); } /** *

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.

*/ inline void SetRuntimeRoleArn(const char* value) { m_runtimeRoleArnHasBeenSet = true; m_runtimeRoleArn.assign(value); } /** *

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.

*/ inline UpdateStudioComponentRequest& WithRuntimeRoleArn(const Aws::String& value) { SetRuntimeRoleArn(value); return *this;} /** *

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.

*/ inline UpdateStudioComponentRequest& WithRuntimeRoleArn(Aws::String&& value) { SetRuntimeRoleArn(std::move(value)); return *this;} /** *

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.

*/ inline UpdateStudioComponentRequest& WithRuntimeRoleArn(const char* value) { SetRuntimeRoleArn(value); return *this;} /** *

Parameters for the studio component scripts.

*/ inline const Aws::Vector& GetScriptParameters() const{ return m_scriptParameters; } /** *

Parameters for the studio component scripts.

*/ inline bool ScriptParametersHasBeenSet() const { return m_scriptParametersHasBeenSet; } /** *

Parameters for the studio component scripts.

*/ inline void SetScriptParameters(const Aws::Vector& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters = value; } /** *

Parameters for the studio component scripts.

*/ inline void SetScriptParameters(Aws::Vector&& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters = std::move(value); } /** *

Parameters for the studio component scripts.

*/ inline UpdateStudioComponentRequest& WithScriptParameters(const Aws::Vector& value) { SetScriptParameters(value); return *this;} /** *

Parameters for the studio component scripts.

*/ inline UpdateStudioComponentRequest& WithScriptParameters(Aws::Vector&& value) { SetScriptParameters(std::move(value)); return *this;} /** *

Parameters for the studio component scripts.

*/ inline UpdateStudioComponentRequest& AddScriptParameters(const ScriptParameterKeyValue& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters.push_back(value); return *this; } /** *

Parameters for the studio component scripts.

*/ inline UpdateStudioComponentRequest& AddScriptParameters(ScriptParameterKeyValue&& value) { m_scriptParametersHasBeenSet = true; m_scriptParameters.push_back(std::move(value)); return *this; } /** *

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.

*/ inline const Aws::String& GetSecureInitializationRoleArn() const{ return m_secureInitializationRoleArn; } /** *

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.

*/ inline bool SecureInitializationRoleArnHasBeenSet() const { return m_secureInitializationRoleArnHasBeenSet; } /** *

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.

*/ inline void SetSecureInitializationRoleArn(const Aws::String& value) { m_secureInitializationRoleArnHasBeenSet = true; m_secureInitializationRoleArn = value; } /** *

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.

*/ inline void SetSecureInitializationRoleArn(Aws::String&& value) { m_secureInitializationRoleArnHasBeenSet = true; m_secureInitializationRoleArn = std::move(value); } /** *

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.

*/ inline void SetSecureInitializationRoleArn(const char* value) { m_secureInitializationRoleArnHasBeenSet = true; m_secureInitializationRoleArn.assign(value); } /** *

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.

*/ inline UpdateStudioComponentRequest& WithSecureInitializationRoleArn(const Aws::String& value) { SetSecureInitializationRoleArn(value); return *this;} /** *

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.

*/ inline UpdateStudioComponentRequest& WithSecureInitializationRoleArn(Aws::String&& value) { SetSecureInitializationRoleArn(std::move(value)); return *this;} /** *

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.

*/ inline UpdateStudioComponentRequest& WithSecureInitializationRoleArn(const char* value) { SetSecureInitializationRoleArn(value); return *this;} /** *

The studio component ID.

*/ inline const Aws::String& GetStudioComponentId() const{ return m_studioComponentId; } /** *

The studio component ID.

*/ inline bool StudioComponentIdHasBeenSet() const { return m_studioComponentIdHasBeenSet; } /** *

The studio component ID.

*/ inline void SetStudioComponentId(const Aws::String& value) { m_studioComponentIdHasBeenSet = true; m_studioComponentId = value; } /** *

The studio component ID.

*/ inline void SetStudioComponentId(Aws::String&& value) { m_studioComponentIdHasBeenSet = true; m_studioComponentId = std::move(value); } /** *

The studio component ID.

*/ inline void SetStudioComponentId(const char* value) { m_studioComponentIdHasBeenSet = true; m_studioComponentId.assign(value); } /** *

The studio component ID.

*/ inline UpdateStudioComponentRequest& WithStudioComponentId(const Aws::String& value) { SetStudioComponentId(value); return *this;} /** *

The studio component ID.

*/ inline UpdateStudioComponentRequest& WithStudioComponentId(Aws::String&& value) { SetStudioComponentId(std::move(value)); return *this;} /** *

The studio component ID.

*/ inline UpdateStudioComponentRequest& WithStudioComponentId(const char* value) { SetStudioComponentId(value); return *this;} /** *

The studio ID.

*/ inline const Aws::String& GetStudioId() const{ return m_studioId; } /** *

The studio ID.

*/ inline bool StudioIdHasBeenSet() const { return m_studioIdHasBeenSet; } /** *

The studio ID.

*/ inline void SetStudioId(const Aws::String& value) { m_studioIdHasBeenSet = true; m_studioId = value; } /** *

The studio ID.

*/ inline void SetStudioId(Aws::String&& value) { m_studioIdHasBeenSet = true; m_studioId = std::move(value); } /** *

The studio ID.

*/ inline void SetStudioId(const char* value) { m_studioIdHasBeenSet = true; m_studioId.assign(value); } /** *

The studio ID.

*/ inline UpdateStudioComponentRequest& WithStudioId(const Aws::String& value) { SetStudioId(value); return *this;} /** *

The studio ID.

*/ inline UpdateStudioComponentRequest& WithStudioId(Aws::String&& value) { SetStudioId(std::move(value)); return *this;} /** *

The studio ID.

*/ inline UpdateStudioComponentRequest& WithStudioId(const char* value) { SetStudioId(value); return *this;} /** *

The specific subtype of a studio component.

*/ inline const StudioComponentSubtype& GetSubtype() const{ return m_subtype; } /** *

The specific subtype of a studio component.

*/ inline bool SubtypeHasBeenSet() const { return m_subtypeHasBeenSet; } /** *

The specific subtype of a studio component.

*/ inline void SetSubtype(const StudioComponentSubtype& value) { m_subtypeHasBeenSet = true; m_subtype = value; } /** *

The specific subtype of a studio component.

*/ inline void SetSubtype(StudioComponentSubtype&& value) { m_subtypeHasBeenSet = true; m_subtype = std::move(value); } /** *

The specific subtype of a studio component.

*/ inline UpdateStudioComponentRequest& WithSubtype(const StudioComponentSubtype& value) { SetSubtype(value); return *this;} /** *

The specific subtype of a studio component.

*/ inline UpdateStudioComponentRequest& WithSubtype(StudioComponentSubtype&& value) { SetSubtype(std::move(value)); return *this;} /** *

The type of the studio component.

*/ inline const StudioComponentType& GetType() const{ return m_type; } /** *

The type of the studio component.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The type of the studio component.

*/ inline void SetType(const StudioComponentType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The type of the studio component.

*/ inline void SetType(StudioComponentType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The type of the studio component.

*/ inline UpdateStudioComponentRequest& WithType(const StudioComponentType& value) { SetType(value); return *this;} /** *

The type of the studio component.

*/ inline UpdateStudioComponentRequest& WithType(StudioComponentType&& value) { SetType(std::move(value)); return *this;} private: Aws::String m_clientToken; bool m_clientTokenHasBeenSet = false; StudioComponentConfiguration m_configuration; bool m_configurationHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_ec2SecurityGroupIds; bool m_ec2SecurityGroupIdsHasBeenSet = false; Aws::Vector m_initializationScripts; bool m_initializationScriptsHasBeenSet = false; Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_runtimeRoleArn; bool m_runtimeRoleArnHasBeenSet = false; Aws::Vector m_scriptParameters; bool m_scriptParametersHasBeenSet = false; Aws::String m_secureInitializationRoleArn; bool m_secureInitializationRoleArnHasBeenSet = false; Aws::String m_studioComponentId; bool m_studioComponentIdHasBeenSet = false; Aws::String m_studioId; bool m_studioIdHasBeenSet = false; StudioComponentSubtype m_subtype; bool m_subtypeHasBeenSet = false; StudioComponentType m_type; bool m_typeHasBeenSet = false; }; } // namespace Model } // namespace NimbleStudio } // namespace Aws