/*
* Copyright 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.
*/
/*
* Do not modify this file. This file is generated from the proton-2020-07-20.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.Proton.Model
{
///
/// Container for the parameters to the UpdateComponent operation.
/// Update a component.
///
///
///
/// There are a few modes for updating a component. The deploymentType
field
/// defines the mode.
///
///
///
/// You can't update a component while its deployment status, or the deployment status
/// of a service instance attached to it, is IN_PROGRESS
.
///
///
///
/// For more information about components, see Proton
/// components in the Proton User Guide.
///
///
public partial class UpdateComponentRequest : AmazonProtonRequest
{
private string _clientToken;
private ComponentDeploymentUpdateType _deploymentType;
private string _description;
private string _name;
private string _serviceInstanceName;
private string _serviceName;
private string _serviceSpec;
private string _templateFile;
///
/// Gets and sets the property ClientToken.
///
/// The client token for the updated component.
///
///
[AWSProperty(Min=0, Max=64)]
public string ClientToken
{
get { return this._clientToken; }
set { this._clientToken = value; }
}
// Check to see if ClientToken property is set
internal bool IsSetClientToken()
{
return this._clientToken != null;
}
///
/// Gets and sets the property DeploymentType.
///
/// The deployment type. It defines the mode for updating a component, as follows:
///
/// -
///
///
NONE
///
///
///
/// In this mode, a deployment doesn't occur. Only the requested metadata parameters
/// are updated. You can only specify description
in this mode.
///
/// -
///
///
CURRENT_VERSION
///
///
///
/// In this mode, the component is deployed and updated with the new serviceSpec
,
/// templateSource
, and/or type
that you provide. Only requested
/// parameters are updated.
///
///
///
[AWSProperty(Required=true)]
public ComponentDeploymentUpdateType DeploymentType
{
get { return this._deploymentType; }
set { this._deploymentType = value; }
}
// Check to see if DeploymentType property is set
internal bool IsSetDeploymentType()
{
return this._deploymentType != null;
}
///
/// Gets and sets the property Description.
///
/// An optional customer-provided description of the component.
///
///
[AWSProperty(Sensitive=true, Min=0, Max=500)]
public string Description
{
get { return this._description; }
set { this._description = value; }
}
// Check to see if Description property is set
internal bool IsSetDescription()
{
return this._description != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the component to update.
///
///
[AWSProperty(Required=true, Min=1, Max=100)]
public string Name
{
get { return this._name; }
set { this._name = value; }
}
// Check to see if Name property is set
internal bool IsSetName()
{
return this._name != null;
}
///
/// Gets and sets the property ServiceInstanceName.
///
/// The name of the service instance that you want to attach this component to. Don't
/// specify to keep the component's current service instance attachment. Specify an empty
/// string to detach the component from the service instance it's attached to. Specify
/// non-empty values for both serviceInstanceName
and serviceName
/// or for neither of them.
///
///
[AWSProperty(Min=0, Max=100)]
public string ServiceInstanceName
{
get { return this._serviceInstanceName; }
set { this._serviceInstanceName = value; }
}
// Check to see if ServiceInstanceName property is set
internal bool IsSetServiceInstanceName()
{
return this._serviceInstanceName != null;
}
///
/// Gets and sets the property ServiceName.
///
/// The name of the service that serviceInstanceName
is associated with.
/// Don't specify to keep the component's current service instance attachment. Specify
/// an empty string to detach the component from the service instance it's attached to.
/// Specify non-empty values for both serviceInstanceName
and serviceName
/// or for neither of them.
///
///
[AWSProperty(Min=0, Max=100)]
public string ServiceName
{
get { return this._serviceName; }
set { this._serviceName = value; }
}
// Check to see if ServiceName property is set
internal bool IsSetServiceName()
{
return this._serviceName != null;
}
///
/// Gets and sets the property ServiceSpec.
///
/// The service spec that you want the component to use to access service inputs. Set
/// this only when the component is attached to a service instance.
///
///
[AWSProperty(Sensitive=true, Min=1, Max=51200)]
public string ServiceSpec
{
get { return this._serviceSpec; }
set { this._serviceSpec = value; }
}
// Check to see if ServiceSpec property is set
internal bool IsSetServiceSpec()
{
return this._serviceSpec != null;
}
///
/// Gets and sets the property TemplateFile.
///
/// A path to the Infrastructure as Code (IaC) file describing infrastructure that a custom
/// component provisions.
///
///
///
/// Components support a single IaC file, even if you use Terraform as your template language.
///
///
///
[AWSProperty(Sensitive=true, Min=1, Max=51200)]
public string TemplateFile
{
get { return this._templateFile; }
set { this._templateFile = value; }
}
// Check to see if TemplateFile property is set
internal bool IsSetTemplateFile()
{
return this._templateFile != null;
}
}
}