/*
* 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 synthetics-2017-10-11.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.Synthetics.Model
{
///
/// This structure contains all information about one canary in your account.
///
public partial class Canary
{
private ArtifactConfigOutput _artifactConfig;
private string _artifactS3Location;
private CanaryCodeOutput _code;
private string _engineArn;
private string _executionRoleArn;
private int? _failureRetentionPeriodInDays;
private string _id;
private string _name;
private CanaryRunConfigOutput _runConfig;
private string _runtimeVersion;
private CanaryScheduleOutput _schedule;
private CanaryStatus _status;
private int? _successRetentionPeriodInDays;
private Dictionary _tags = new Dictionary();
private CanaryTimeline _timeline;
private VisualReferenceOutput _visualReference;
private VpcConfigOutput _vpcConfig;
///
/// Gets and sets the property ArtifactConfig.
///
/// A structure that contains the configuration for canary artifacts, including the encryption-at-rest
/// settings for artifacts that the canary uploads to Amazon S3.
///
///
public ArtifactConfigOutput ArtifactConfig
{
get { return this._artifactConfig; }
set { this._artifactConfig = value; }
}
// Check to see if ArtifactConfig property is set
internal bool IsSetArtifactConfig()
{
return this._artifactConfig != null;
}
///
/// Gets and sets the property ArtifactS3Location.
///
/// The location in Amazon S3 where Synthetics stores artifacts from the runs of this
/// canary. Artifacts include the log file, screenshots, and HAR files.
///
///
[AWSProperty(Min=1, Max=1024)]
public string ArtifactS3Location
{
get { return this._artifactS3Location; }
set { this._artifactS3Location = value; }
}
// Check to see if ArtifactS3Location property is set
internal bool IsSetArtifactS3Location()
{
return this._artifactS3Location != null;
}
///
/// Gets and sets the property Code.
///
public CanaryCodeOutput Code
{
get { return this._code; }
set { this._code = value; }
}
// Check to see if Code property is set
internal bool IsSetCode()
{
return this._code != null;
}
///
/// Gets and sets the property EngineArn.
///
/// The ARN of the Lambda function that is used as your canary's engine. For more information
/// about Lambda ARN format, see Resources
/// and Conditions for Lambda Actions.
///
///
[AWSProperty(Min=1, Max=2048)]
public string EngineArn
{
get { return this._engineArn; }
set { this._engineArn = value; }
}
// Check to see if EngineArn property is set
internal bool IsSetEngineArn()
{
return this._engineArn != null;
}
///
/// Gets and sets the property ExecutionRoleArn.
///
/// The ARN of the IAM role used to run the canary. This role must include lambda.amazonaws.com
/// as a principal in the trust policy.
///
///
[AWSProperty(Min=1, Max=2048)]
public string ExecutionRoleArn
{
get { return this._executionRoleArn; }
set { this._executionRoleArn = value; }
}
// Check to see if ExecutionRoleArn property is set
internal bool IsSetExecutionRoleArn()
{
return this._executionRoleArn != null;
}
///
/// Gets and sets the property FailureRetentionPeriodInDays.
///
/// The number of days to retain data about failed runs of this canary.
///
///
[AWSProperty(Min=1, Max=1024)]
public int FailureRetentionPeriodInDays
{
get { return this._failureRetentionPeriodInDays.GetValueOrDefault(); }
set { this._failureRetentionPeriodInDays = value; }
}
// Check to see if FailureRetentionPeriodInDays property is set
internal bool IsSetFailureRetentionPeriodInDays()
{
return this._failureRetentionPeriodInDays.HasValue;
}
///
/// Gets and sets the property Id.
///
/// The unique ID of this canary.
///
///
public string Id
{
get { return this._id; }
set { this._id = value; }
}
// Check to see if Id property is set
internal bool IsSetId()
{
return this._id != null;
}
///
/// Gets and sets the property Name.
///
/// The name of the canary.
///
///
[AWSProperty(Min=1, Max=21)]
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 RunConfig.
///
public CanaryRunConfigOutput RunConfig
{
get { return this._runConfig; }
set { this._runConfig = value; }
}
// Check to see if RunConfig property is set
internal bool IsSetRunConfig()
{
return this._runConfig != null;
}
///
/// Gets and sets the property RuntimeVersion.
///
/// Specifies the runtime version to use for the canary. For more information about runtime
/// versions, see
/// Canary Runtime Versions.
///
///
[AWSProperty(Min=1, Max=1024)]
public string RuntimeVersion
{
get { return this._runtimeVersion; }
set { this._runtimeVersion = value; }
}
// Check to see if RuntimeVersion property is set
internal bool IsSetRuntimeVersion()
{
return this._runtimeVersion != null;
}
///
/// Gets and sets the property Schedule.
///
/// A structure that contains information about how often the canary is to run, and when
/// these runs are to stop.
///
///
public CanaryScheduleOutput Schedule
{
get { return this._schedule; }
set { this._schedule = value; }
}
// Check to see if Schedule property is set
internal bool IsSetSchedule()
{
return this._schedule != null;
}
///
/// Gets and sets the property Status.
///
/// A structure that contains information about the canary's status.
///
///
public CanaryStatus Status
{
get { return this._status; }
set { this._status = value; }
}
// Check to see if Status property is set
internal bool IsSetStatus()
{
return this._status != null;
}
///
/// Gets and sets the property SuccessRetentionPeriodInDays.
///
/// The number of days to retain data about successful runs of this canary.
///
///
[AWSProperty(Min=1, Max=1024)]
public int SuccessRetentionPeriodInDays
{
get { return this._successRetentionPeriodInDays.GetValueOrDefault(); }
set { this._successRetentionPeriodInDays = value; }
}
// Check to see if SuccessRetentionPeriodInDays property is set
internal bool IsSetSuccessRetentionPeriodInDays()
{
return this._successRetentionPeriodInDays.HasValue;
}
///
/// Gets and sets the property Tags.
///
/// The list of key-value pairs that are associated with the canary.
///
///
[AWSProperty(Min=1, Max=50)]
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 Timeline.
///
/// A structure that contains information about when the canary was created, modified,
/// and most recently run.
///
///
public CanaryTimeline Timeline
{
get { return this._timeline; }
set { this._timeline = value; }
}
// Check to see if Timeline property is set
internal bool IsSetTimeline()
{
return this._timeline != null;
}
///
/// Gets and sets the property VisualReference.
///
/// If this canary performs visual monitoring by comparing screenshots, this structure
/// contains the ID of the canary run to use as the baseline for screenshots, and the
/// coordinates of any parts of the screen to ignore during the visual monitoring comparison.
///
///
public VisualReferenceOutput VisualReference
{
get { return this._visualReference; }
set { this._visualReference = value; }
}
// Check to see if VisualReference property is set
internal bool IsSetVisualReference()
{
return this._visualReference != null;
}
///
/// Gets and sets the property VpcConfig.
///
public VpcConfigOutput VpcConfig
{
get { return this._vpcConfig; }
set { this._vpcConfig = value; }
}
// Check to see if VpcConfig property is set
internal bool IsSetVpcConfig()
{
return this._vpcConfig != null;
}
}
}