/*
* 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 iotthingsgraph-2018-09-06.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.IoTThingsGraph.Model
{
///
/// Container for the parameters to the CreateSystemInstance operation.
/// Creates a system instance.
///
///
///
/// This action validates the system instance, prepares the deployment-related resources.
/// For Greengrass deployments, it updates the Greengrass group that is specified by the
/// greengrassGroupName
parameter. It also adds a file to the S3 bucket specified
/// by the s3BucketName
parameter. You need to call DeploySystemInstance
/// after running this action.
///
///
///
/// For Greengrass deployments, since this action modifies and adds resources to a Greengrass
/// group and an S3 bucket on the caller's behalf, the calling identity must have write
/// permissions to both the specified Greengrass group and S3 bucket. Otherwise, the call
/// will fail with an authorization error.
///
///
///
/// For cloud deployments, this action requires a flowActionsRoleArn
value.
/// This is an IAM role that has permissions to access AWS services, such as AWS Lambda
/// and AWS IoT, that the flow uses when it executes.
///
///
///
/// If the definition document doesn't specify a version of the user's namespace, the
/// latest version will be used by default.
///
///
public partial class CreateSystemInstanceRequest : AmazonIoTThingsGraphRequest
{
private DefinitionDocument _definition;
private string _flowActionsRoleArn;
private string _greengrassGroupName;
private MetricsConfiguration _metricsConfiguration;
private string _s3BucketName;
private List _tags = new List();
private DeploymentTarget _target;
///
/// Gets and sets the property Definition.
///
[AWSProperty(Required=true)]
public DefinitionDocument Definition
{
get { return this._definition; }
set { this._definition = value; }
}
// Check to see if Definition property is set
internal bool IsSetDefinition()
{
return this._definition != null;
}
///
/// Gets and sets the property FlowActionsRoleArn.
///
/// The ARN of the IAM role that AWS IoT Things Graph will assume when it executes the
/// flow. This role must have read and write access to AWS Lambda and AWS IoT and any
/// other AWS services that the flow uses when it executes. This value is required if
/// the value of the target
parameter is CLOUD
.
///
///
[AWSProperty(Min=20, Max=2048)]
public string FlowActionsRoleArn
{
get { return this._flowActionsRoleArn; }
set { this._flowActionsRoleArn = value; }
}
// Check to see if FlowActionsRoleArn property is set
internal bool IsSetFlowActionsRoleArn()
{
return this._flowActionsRoleArn != null;
}
///
/// Gets and sets the property GreengrassGroupName.
///
/// The name of the Greengrass group where the system instance will be deployed. This
/// value is required if the value of the target
parameter is GREENGRASS
.
///
///
public string GreengrassGroupName
{
get { return this._greengrassGroupName; }
set { this._greengrassGroupName = value; }
}
// Check to see if GreengrassGroupName property is set
internal bool IsSetGreengrassGroupName()
{
return this._greengrassGroupName != null;
}
///
/// Gets and sets the property MetricsConfiguration.
///
public MetricsConfiguration MetricsConfiguration
{
get { return this._metricsConfiguration; }
set { this._metricsConfiguration = value; }
}
// Check to see if MetricsConfiguration property is set
internal bool IsSetMetricsConfiguration()
{
return this._metricsConfiguration != null;
}
///
/// Gets and sets the property S3BucketName.
///
/// The name of the Amazon Simple Storage Service bucket that will be used to store and
/// deploy the system instance's resource file. This value is required if the value of
/// the target
parameter is GREENGRASS
.
///
///
public string S3BucketName
{
get { return this._s3BucketName; }
set { this._s3BucketName = value; }
}
// Check to see if S3BucketName property is set
internal bool IsSetS3BucketName()
{
return this._s3BucketName != null;
}
///
/// Gets and sets the property Tags.
///
/// Metadata, consisting of key-value pairs, that can be used to categorize your system
/// instances.
///
///
[AWSProperty(Min=0, Max=50)]
public List 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 Target.
///
/// The target type of the deployment. Valid values are GREENGRASS
and CLOUD
.
///
///
[AWSProperty(Required=true)]
public DeploymentTarget Target
{
get { return this._target; }
set { this._target = value; }
}
// Check to see if Target property is set
internal bool IsSetTarget()
{
return this._target != null;
}
}
}