/*
* 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 greengrassv2-2020-11-30.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.GreengrassV2.Model
{
///
/// Container for the parameters to the CreateDeployment operation.
/// Creates a continuous deployment for a target, which is a Greengrass core device or
/// group of core devices. When you add a new core device to a group of core devices that
/// has a deployment, IoT Greengrass deploys that group's deployment to the new device.
///
///
///
/// You can define one deployment for each target. When you create a new deployment for
/// a target that has an existing deployment, you replace the previous deployment. IoT
/// Greengrass applies the new deployment to the target devices.
///
///
///
/// Every deployment has a revision number that indicates how many deployment revisions
/// you define for a target. Use this operation to create a new revision of an existing
/// deployment.
///
///
///
/// For more information, see the Create
/// deployments in the IoT Greengrass V2 Developer Guide.
///
///
public partial class CreateDeploymentRequest : AmazonGreengrassV2Request
{
private string _clientToken;
private Dictionary _components = new Dictionary();
private string _deploymentName;
private DeploymentPolicies _deploymentPolicies;
private DeploymentIoTJobConfiguration _iotJobConfiguration;
private string _parentTargetArn;
private Dictionary _tags = new Dictionary();
private string _targetArn;
///
/// Gets and sets the property ClientToken.
///
/// A unique, case-sensitive identifier that you can provide to ensure that the request
/// is idempotent. Idempotency means that the request is successfully processed only once,
/// even if you send the request multiple times. When a request succeeds, and you specify
/// the same client token for subsequent successful requests, the IoT Greengrass V2 service
/// returns the successful response that it caches from the previous request. IoT Greengrass
/// V2 caches successful responses for idempotent requests for up to 8 hours.
///
///
[AWSProperty(Min=1, 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 Components.
///
/// The components to deploy. This is a dictionary, where each key is the name of a component,
/// and each key's value is the version and configuration to deploy for that component.
///
///
public Dictionary Components
{
get { return this._components; }
set { this._components = value; }
}
// Check to see if Components property is set
internal bool IsSetComponents()
{
return this._components != null && this._components.Count > 0;
}
///
/// Gets and sets the property DeploymentName.
///
/// The name of the deployment.
///
///
[AWSProperty(Min=1, Max=256)]
public string DeploymentName
{
get { return this._deploymentName; }
set { this._deploymentName = value; }
}
// Check to see if DeploymentName property is set
internal bool IsSetDeploymentName()
{
return this._deploymentName != null;
}
///
/// Gets and sets the property DeploymentPolicies.
///
/// The deployment policies for the deployment. These policies define how the deployment
/// updates components and handles failure.
///
///
public DeploymentPolicies DeploymentPolicies
{
get { return this._deploymentPolicies; }
set { this._deploymentPolicies = value; }
}
// Check to see if DeploymentPolicies property is set
internal bool IsSetDeploymentPolicies()
{
return this._deploymentPolicies != null;
}
///
/// Gets and sets the property IotJobConfiguration.
///
/// The job configuration for the deployment configuration. The job configuration specifies
/// the rollout, timeout, and stop configurations for the deployment configuration.
///
///
public DeploymentIoTJobConfiguration IotJobConfiguration
{
get { return this._iotJobConfiguration; }
set { this._iotJobConfiguration = value; }
}
// Check to see if IotJobConfiguration property is set
internal bool IsSetIotJobConfiguration()
{
return this._iotJobConfiguration != null;
}
///
/// Gets and sets the property ParentTargetArn.
///
/// The parent deployment's target ARN
/// within a subdeployment.
///
///
public string ParentTargetArn
{
get { return this._parentTargetArn; }
set { this._parentTargetArn = value; }
}
// Check to see if ParentTargetArn property is set
internal bool IsSetParentTargetArn()
{
return this._parentTargetArn != null;
}
///
/// Gets and sets the property Tags.
///
/// A list of key-value pairs that contain metadata for the resource. For more information,
/// see Tag
/// your resources in the IoT Greengrass V2 Developer Guide.
///
///
[AWSProperty(Min=1, Max=200)]
public Dictionary Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property TargetArn.
///
/// The ARN
/// of the target IoT thing or thing group. When creating a subdeployment, the targetARN
/// can only be a thing group.
///
///
[AWSProperty(Required=true)]
public string TargetArn
{
get { return this._targetArn; }
set { this._targetArn = value; }
}
// Check to see if TargetArn property is set
internal bool IsSetTargetArn()
{
return this._targetArn != null;
}
}
}