Class: AWSCDK::Synthetics::CfnCanary

Inherits:
CfnResource
  • Object
show all
Includes:
IInspectable, ITaggable, Interfaces::AWSSynthetics::ICanaryRef
Defined in:
synthetics/cfn_canary.rb

Overview

Creates or updates a canary.

Canaries are scripts that monitor your endpoints and APIs from the outside-in. Canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. You can set up a canary to run continuously or just once.

Canaries are automated scripts that run at specified intervals against an endpoint. They include Python or Node.js code to create a Lambda function. This code needs to be packaged in a certain way, depending on the language. For more information, see Writing a canary script .

To create canaries, you must have the CloudWatchSyntheticsFullAccess policy. If you are creating a new IAM role for the canary, you also need the the iam:CreateRole , iam:CreatePolicy and iam:AttachRolePolicy permissions. For more information, see Necessary Roles and Permissions .

Do not include secrets or proprietary information in your canary names. The canary name makes up part of the Amazon Resource Name (ARN) for the canary, and the ARN is included in outbound calls over the internet. For more information, see Security Considerations for Synthetics Canaries .

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(scope, id, props) ⇒ CfnCanary

Create a new AWS::Synthetics::Canary.

Parameters:

  • scope (Constructs::Construct)

    Scope in which this resource is defined.

  • id (String)

    Construct identifier for this resource (unique in its scope).

  • props (AWSCDK::Synthetics::CfnCanaryProps)

    Resource properties.



26
27
28
29
30
31
32
# File 'synthetics/cfn_canary.rb', line 26

def initialize(scope, id, props)
  props = props.is_a?(Hash) ? ::AWSCDK::Synthetics::CfnCanaryProps.new(**props.transform_keys(&:to_sym)) : props
  Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope")
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc3ludGhldGljcy5DZm5DYW5hcnlQcm9wcyJ9")), "props")
  Jsii::Object.instance_method(:initialize).bind(self).call(scope, id, props)
end

Class Method Details

.arn_for_canary(resource) ⇒ String

Parameters:

Returns:

  • (String)


101
102
103
104
# File 'synthetics/cfn_canary.rb', line 101

def self.arn_for_canary(resource)
  Jsii::Type.check_type(resource, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19zeW50aGV0aWNzLklDYW5hcnlSZWYifQ==")), "resource")
  Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_synthetics.CfnCanary", "arnForCanary", [resource])
end

.CFN_RESOURCE_TYPE_NAMEString

The CloudFormation resource type name for this resource class.

Returns:

  • (String)


221
222
223
# File 'synthetics/cfn_canary.rb', line 221

def self.CFN_RESOURCE_TYPE_NAME()
  Jsii::Kernel.instance.get_static("aws-cdk-lib.aws_synthetics.CfnCanary", "CFN_RESOURCE_TYPE_NAME")
end

.from_canary_name(scope, id, canary_name) ⇒ AWSCDK::Interfaces::AWSSynthetics::ICanaryRef

Creates a new ICanaryRef from a canaryName.

Parameters:

  • scope (Constructs::Construct)
  • id (String)
  • canary_name (String)

Returns:



112
113
114
115
116
117
# File 'synthetics/cfn_canary.rb', line 112

def self.from_canary_name(scope, id, canary_name)
  Jsii::Type.check_type(scope, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLkNvbnN0cnVjdCJ9")), "scope")
  Jsii::Type.check_type(id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "id")
  Jsii::Type.check_type(canary_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "canaryName")
  Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_synthetics.CfnCanary", "fromCanaryName", [scope, id, canary_name])
end

.is_cfn_canary(x) ⇒ Boolean

Checks whether the given object is a CfnCanary.

Parameters:

  • x (Object)

Returns:

  • (Boolean)


123
124
125
126
# File 'synthetics/cfn_canary.rb', line 123

def self.is_cfn_canary(x)
  Jsii::Type.check_type(x, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "x")
  Jsii::Kernel.instance.call_static("aws-cdk-lib.aws_synthetics.CfnCanary", "isCfnCanary", [x])
end

.jsii_overridable_methodsObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'synthetics/cfn_canary.rb', line 34

def self.jsii_overridable_methods
  {
    :node => { kind: :property, name: "node", is_optional: false },
    :creation_stack => { kind: :property, name: "creationStack", is_optional: false },
    :logical_id => { kind: :property, name: "logicalId", is_optional: false },
    :stack => { kind: :property, name: "stack", is_optional: false },
    :ref => { kind: :property, name: "ref", is_optional: false },
    :cfn_options => { kind: :property, name: "cfnOptions", is_optional: false },
    :cfn_properties => { kind: :property, name: "cfnProperties", is_optional: false },
    :cfn_property_names => { kind: :property, name: "cfnPropertyNames", is_optional: false },
    :cfn_resource_type => { kind: :property, name: "cfnResourceType", is_optional: false },
    :env => { kind: :property, name: "env", is_optional: false },
    :updated_properites => { kind: :property, name: "updatedProperites", is_optional: false },
    :updated_properties => { kind: :property, name: "updatedProperties", is_optional: false },
    :attr_code_source_location_arn => { kind: :property, name: "attrCodeSourceLocationArn", is_optional: false },
    :attr_id => { kind: :property, name: "attrId", is_optional: false },
    :attr_state => { kind: :property, name: "attrState", is_optional: false },
    :canary_ref => { kind: :property, name: "canaryRef", is_optional: false },
    :tags => { kind: :property, name: "tags", is_optional: false },
    :artifact_s3_location => { kind: :property, name: "artifactS3Location", is_optional: false },
    :code => { kind: :property, name: "code", is_optional: false },
    :execution_role_arn => { kind: :property, name: "executionRoleArn", is_optional: false },
    :name => { kind: :property, name: "name", is_optional: false },
    :runtime_version => { kind: :property, name: "runtimeVersion", is_optional: false },
    :schedule => { kind: :property, name: "schedule", is_optional: false },
    :artifact_config => { kind: :property, name: "artifactConfig", is_optional: true },
    :browser_configs => { kind: :property, name: "browserConfigs", is_optional: true },
    :delete_lambda_resources_on_canary_deletion => { kind: :property, name: "deleteLambdaResourcesOnCanaryDeletion", is_optional: true },
    :dry_run_and_update => { kind: :property, name: "dryRunAndUpdate", is_optional: true },
    :failure_retention_period => { kind: :property, name: "failureRetentionPeriod", is_optional: true },
    :provisioned_resource_cleanup => { kind: :property, name: "provisionedResourceCleanup", is_optional: true },
    :resources_to_replicate_tags => { kind: :property, name: "resourcesToReplicateTags", is_optional: true },
    :run_config => { kind: :property, name: "runConfig", is_optional: true },
    :start_canary_after_creation => { kind: :property, name: "startCanaryAfterCreation", is_optional: true },
    :success_retention_period => { kind: :property, name: "successRetentionPeriod", is_optional: true },
    :tags_raw => { kind: :property, name: "tagsRaw", is_optional: true },
    :visual_reference => { kind: :property, name: "visualReference", is_optional: true },
    :visual_references => { kind: :property, name: "visualReferences", is_optional: true },
    :vpc_config => { kind: :property, name: "vpcConfig", is_optional: true },
    :to_string => { kind: :method, name: "toString", is_optional: false },
    :with => { kind: :method, name: "with", is_optional: false },
    :override_logical_id => { kind: :method, name: "overrideLogicalId", is_optional: false },
    :add_deletion_override => { kind: :method, name: "addDeletionOverride", is_optional: false },
    :add_dependency => { kind: :method, name: "addDependency", is_optional: false },
    :add_depends_on => { kind: :method, name: "addDependsOn", is_optional: false },
    :add_metadata => { kind: :method, name: "addMetadata", is_optional: false },
    :add_override => { kind: :method, name: "addOverride", is_optional: false },
    :add_property_deletion_override => { kind: :method, name: "addPropertyDeletionOverride", is_optional: false },
    :add_property_override => { kind: :method, name: "addPropertyOverride", is_optional: false },
    :apply_cross_stack_reference_strength => { kind: :method, name: "applyCrossStackReferenceStrength", is_optional: false },
    :apply_removal_policy => { kind: :method, name: "applyRemovalPolicy", is_optional: false },
    :cfn_property_name => { kind: :method, name: "cfnPropertyName", is_optional: false },
    :get_att => { kind: :method, name: "getAtt", is_optional: false },
    :get_metadata => { kind: :method, name: "getMetadata", is_optional: false },
    :obtain_dependencies => { kind: :method, name: "obtainDependencies", is_optional: false },
    :obtain_resource_dependencies => { kind: :method, name: "obtainResourceDependencies", is_optional: false },
    :remove_dependency => { kind: :method, name: "removeDependency", is_optional: false },
    :render_properties => { kind: :method, name: "renderProperties", is_optional: false },
    :replace_dependency => { kind: :method, name: "replaceDependency", is_optional: false },
    :should_synthesize => { kind: :method, name: "shouldSynthesize", is_optional: false },
    :validate_properties => { kind: :method, name: "validateProperties", is_optional: false },
    :inspect => { kind: :method, name: "inspect", is_optional: false },
  }
end

Instance Method Details

#add_deletion_override(path) ⇒ void

This method returns an undefined value.

Syntactic sugar for addOverride(path, undefined).

Parameters:

  • path (String)

    The path of the value to delete.



545
546
547
548
# File 'synthetics/cfn_canary.rb', line 545

def add_deletion_override(path)
  Jsii::Type.check_type(path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "path")
  jsii_call_method("addDeletionOverride", [path])
end

#add_dependency(target) ⇒ void

This method returns an undefined value.

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

This can be used for resources across stacks (or nested stack) boundaries and the dependency will automatically be transferred to the relevant scope.

Parameters:



557
558
559
560
# File 'synthetics/cfn_canary.rb', line 557

def add_dependency(target)
  Jsii::Type.check_type(target, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5DZm5SZXNvdXJjZSJ9")), "target")
  jsii_call_method("addDependency", [target])
end

#add_depends_on(target) ⇒ void

Deprecated.

use addDependency

This method returns an undefined value.

Indicates that this resource depends on another resource and cannot be provisioned unless the other resource has been successfully provisioned.

Parameters:



567
568
569
570
# File 'synthetics/cfn_canary.rb', line 567

def add_depends_on(target)
  Jsii::Type.check_type(target, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5DZm5SZXNvdXJjZSJ9")), "target")
  jsii_call_method("addDependsOn", [target])
end

#add_metadata(key, value) ⇒ void

This method returns an undefined value.

Add a value to the CloudFormation Resource Metadata.



578
579
580
581
582
# File 'synthetics/cfn_canary.rb', line 578

def (key, value)
  Jsii::Type.check_type(key, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "key")
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "value")
  jsii_call_method("addMetadata", [key, value])
end

#add_override(path, value) ⇒ void

This method returns an undefined value.

Adds an override to the synthesized CloudFormation resource.

To add a property override, either use add_property_override or prefix path with "Properties." (i.e. Properties.TopicName).

If the override is nested, separate each nested level using a dot (.) in the path parameter. If there is an array as part of the nesting, specify the index in the path.

To include a literal . in the property name, prefix with a \. In most programming languages you will need to write this as "\\." because the \ itself will need to be escaped.

For example,

# Example automatically generated from non-compiling source. May contain errors.
cfn_resource.add_override("Properties.GlobalSecondaryIndexes.0.Projection.NonKeyAttributes", ["myattribute"])
cfn_resource.add_override("Properties.GlobalSecondaryIndexes.1.ProjectionType", "INCLUDE")

would add the overrides

"Properties": {
  "GlobalSecondaryIndexes": [
    {
      "Projection": {
        "NonKeyAttributes": [ "myattribute" ]
        ...
      }
      ...
    },
    {
      "ProjectionType": "INCLUDE"
      ...
    },
  ]
  ...
}

The value argument to add_override will not be processed or translated in any way. Pass raw JSON values in here with the correct capitalization for CloudFormation. If you pass CDK classes or structs, they will be rendered with lowercased key names, and CloudFormation will reject the template.

Parameters:

  • path (String)
    • The path of the property, you can use dot notation to override values in complex types.
  • value (Object)
    • The value.


635
636
637
638
639
# File 'synthetics/cfn_canary.rb', line 635

def add_override(path, value)
  Jsii::Type.check_type(path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "path")
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "value")
  jsii_call_method("addOverride", [path, value])
end

#add_property_deletion_override(property_path) ⇒ void

This method returns an undefined value.

Adds an override that deletes the value of a property from the resource definition.

Parameters:

  • property_path (String)

    The path to the property.



645
646
647
648
# File 'synthetics/cfn_canary.rb', line 645

def add_property_deletion_override(property_path)
  Jsii::Type.check_type(property_path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "propertyPath")
  jsii_call_method("addPropertyDeletionOverride", [property_path])
end

#add_property_override(property_path, value) ⇒ void

This method returns an undefined value.

Adds an override to a resource property.

Syntactic sugar for addOverride("Properties.<...>", value).

Parameters:

  • property_path (String)

    The path of the property.

  • value (Object)

    The value.



657
658
659
660
661
# File 'synthetics/cfn_canary.rb', line 657

def add_property_override(property_path, value)
  Jsii::Type.check_type(property_path, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "propertyPath")
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "value")
  jsii_call_method("addPropertyOverride", [property_path, value])
end

#apply_cross_stack_reference_strength(strength) ⇒ void

This method returns an undefined value.

Sets the cross-stack reference strength for this resource.

When set, any cross-stack reference to this resource will use the specified strength instead of the global default from the consuming stack's context.

Parameters:



670
671
672
673
# File 'synthetics/cfn_canary.rb', line 670

def apply_cross_stack_reference_strength(strength)
  Jsii::Type.check_type(strength, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZWZlcmVuY2VTdHJlbmd0aCJ9")), "strength")
  jsii_call_method("applyCrossStackReferenceStrength", [strength])
end

#apply_removal_policy(policy = nil, options = nil) ⇒ void

This method returns an undefined value.

Sets the deletion policy of the resource based on the removal policy specified.

The Removal Policy controls what happens to this resource when it stops being managed by CloudFormation, either because you've removed it from the CDK application or because you've made a change that requires the resource to be replaced.

The resource can be deleted (RemovalPolicy.DESTROY), or left in your AWS account for data recovery and cleanup later (RemovalPolicy.RETAIN). In some cases, a snapshot can be taken of the resource prior to deletion (RemovalPolicy.SNAPSHOT). A list of resources that support this policy can be found in the following link:



692
693
694
695
696
697
# File 'synthetics/cfn_canary.rb', line 692

def apply_removal_policy(policy = nil, options = nil)
  Jsii::Type.check_type(policy, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZW1vdmFsUG9saWN5In0=")), "policy") unless policy.nil?
  options = options.is_a?(Hash) ? ::AWSCDK::RemovalPolicyOptions.new(**options.transform_keys(&:to_sym)) : options
  Jsii::Type.check_type(options, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZW1vdmFsUG9saWN5T3B0aW9ucyJ9")), "options") unless options.nil?
  jsii_call_method("applyRemovalPolicy", [policy, options])
end

#artifact_configAWSCDK::IResolvable, ...

A structure that contains the configuration for canary artifacts, including the encryption-at-rest settings for artifacts that the canary uploads to Amazon S3.



339
340
341
# File 'synthetics/cfn_canary.rb', line 339

def artifact_config()
  jsii_get_property("artifactConfig")
end

#artifact_config=(value) ⇒ Object



343
344
345
346
347
# File 'synthetics/cfn_canary.rb', line 343

def artifact_config=(value)
  value = value.is_a?(Hash) ? ::AWSCDK::Synthetics::CfnCanary::ArtifactConfigProperty.new(**value.transform_keys(&:to_sym)) : value
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zeW50aGV0aWNzLkNmbkNhbmFyeS5BcnRpZmFjdENvbmZpZ1Byb3BlcnR5In1dfX0=")), "artifactConfig") unless value.nil?
  jsii_set_property("artifactConfig", value)
end

#artifact_s3_locationString

The location in Amazon S3 where Synthetics stores artifacts from the runs of this canary.

Returns:

  • (String)


265
266
267
# File 'synthetics/cfn_canary.rb', line 265

def artifact_s3_location()
  jsii_get_property("artifactS3Location")
end

#artifact_s3_location=(value) ⇒ Object



269
270
271
272
# File 'synthetics/cfn_canary.rb', line 269

def artifact_s3_location=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "artifactS3Location")
  jsii_set_property("artifactS3Location", value)
end

#attr_code_source_location_arnString

Ref returns the ARN of the Lambda layer where Synthetics stores the canary script code.

Returns:

  • (String)


228
229
230
# File 'synthetics/cfn_canary.rb', line 228

def attr_code_source_location_arn()
  jsii_get_property("attrCodeSourceLocationArn")
end

#attr_idString

The ID of the canary.

Returns:

  • (String)


235
236
237
# File 'synthetics/cfn_canary.rb', line 235

def attr_id()
  jsii_get_property("attrId")
end

#attr_stateString

The state of the canary.

For example, RUNNING .

Returns:

  • (String)


244
245
246
# File 'synthetics/cfn_canary.rb', line 244

def attr_state()
  jsii_get_property("attrState")
end

#browser_configsAWSCDK::IResolvable, ...

A structure that specifies the browser type to use for a canary run.



352
353
354
# File 'synthetics/cfn_canary.rb', line 352

def browser_configs()
  jsii_get_property("browserConfigs")
end

#browser_configs=(value) ⇒ Object



356
357
358
359
# File 'synthetics/cfn_canary.rb', line 356

def browser_configs=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc3ludGhldGljcy5DZm5DYW5hcnkuQnJvd3NlckNvbmZpZ1Byb3BlcnR5In1dfX0sImtpbmQiOiJhcnJheSJ9fV19fQ==")), "browserConfigs") unless value.nil?
  jsii_set_property("browserConfigs", value)
end

#canary_refAWSCDK::Interfaces::AWSSynthetics::CanaryReference

A reference to a Canary resource.



251
252
253
# File 'synthetics/cfn_canary.rb', line 251

def canary_ref()
  jsii_get_property("canaryRef")
end

#cfn_optionsAWSCDK::ICfnResourceOptions

Options for this resource, such as condition, update policy etc.



174
175
176
# File 'synthetics/cfn_canary.rb', line 174

def cfn_options()
  jsii_get_property("cfnOptions")
end

#cfn_propertiesHash{String => Object}

Returns:

  • (Hash{String => Object})


179
180
181
# File 'synthetics/cfn_canary.rb', line 179

def cfn_properties()
  jsii_get_property("cfnProperties")
end

#cfn_property_name(cdk_property_name) ⇒ String?

Parameters:

  • cdk_property_name (String)

Returns:

  • (String, nil)


701
702
703
704
# File 'synthetics/cfn_canary.rb', line 701

def cfn_property_name(cdk_property_name)
  Jsii::Type.check_type(cdk_property_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "cdkPropertyName")
  jsii_call_method("cfnPropertyName", [cdk_property_name])
end

#cfn_property_namesHash{String => String}

Returns:

  • (Hash{String => String})


184
185
186
# File 'synthetics/cfn_canary.rb', line 184

def cfn_property_names()
  jsii_get_property("cfnPropertyNames")
end

#cfn_resource_typeString

AWS resource type.

Returns:

  • (String)


191
192
193
# File 'synthetics/cfn_canary.rb', line 191

def cfn_resource_type()
  jsii_get_property("cfnResourceType")
end

#codeAWSCDK::IResolvable, AWSCDK::Synthetics::CfnCanary::CodeProperty

Use this structure to input your script code for the canary.



277
278
279
# File 'synthetics/cfn_canary.rb', line 277

def code()
  jsii_get_property("code")
end

#code=(value) ⇒ Object



281
282
283
284
285
# File 'synthetics/cfn_canary.rb', line 281

def code=(value)
  value = value.is_a?(Hash) ? ::AWSCDK::Synthetics::CfnCanary::CodeProperty.new(**value.transform_keys(&:to_sym)) : value
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zeW50aGV0aWNzLkNmbkNhbmFyeS5Db2RlUHJvcGVydHkifV19fQ==")), "code")
  jsii_set_property("code", value)
end

#creation_stackArray<String>

Returns:

  • (Array<String>)


136
137
138
# File 'synthetics/cfn_canary.rb', line 136

def creation_stack()
  jsii_get_property("creationStack")
end

#delete_lambda_resources_on_canary_deletionBoolean, ...

Deprecated.

this property has been deprecated

Deletes associated lambda resources created by Synthetics if set to True.

Returns:



365
366
367
# File 'synthetics/cfn_canary.rb', line 365

def delete_lambda_resources_on_canary_deletion()
  jsii_get_property("deleteLambdaResourcesOnCanaryDeletion")
end

#delete_lambda_resources_on_canary_deletion=(value) ⇒ Object



369
370
371
372
# File 'synthetics/cfn_canary.rb', line 369

def delete_lambda_resources_on_canary_deletion=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "deleteLambdaResourcesOnCanaryDeletion") unless value.nil?
  jsii_set_property("deleteLambdaResourcesOnCanaryDeletion", value)
end

#dry_run_and_updateBoolean, ...

Specifies whether to perform a dry run before updating the canary.

Returns:



377
378
379
# File 'synthetics/cfn_canary.rb', line 377

def dry_run_and_update()
  jsii_get_property("dryRunAndUpdate")
end

#dry_run_and_update=(value) ⇒ Object



381
382
383
384
# File 'synthetics/cfn_canary.rb', line 381

def dry_run_and_update=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "dryRunAndUpdate") unless value.nil?
  jsii_set_property("dryRunAndUpdate", value)
end

#envAWSCDK::Interfaces::ResourceEnvironment



196
197
198
# File 'synthetics/cfn_canary.rb', line 196

def env()
  jsii_get_property("env")
end

#execution_role_arnString

The ARN of the IAM role to be used to run the canary.

Returns:

  • (String)


290
291
292
# File 'synthetics/cfn_canary.rb', line 290

def execution_role_arn()
  jsii_get_property("executionRoleArn")
end

#execution_role_arn=(value) ⇒ Object



294
295
296
297
# File 'synthetics/cfn_canary.rb', line 294

def execution_role_arn=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "executionRoleArn")
  jsii_set_property("executionRoleArn", value)
end

#failure_retention_periodNumeric?

The number of days to retain data about failed runs of this canary.

Returns:

  • (Numeric, nil)


389
390
391
# File 'synthetics/cfn_canary.rb', line 389

def failure_retention_period()
  jsii_get_property("failureRetentionPeriod")
end

#failure_retention_period=(value) ⇒ Object



393
394
395
396
# File 'synthetics/cfn_canary.rb', line 393

def failure_retention_period=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "failureRetentionPeriod") unless value.nil?
  jsii_set_property("failureRetentionPeriod", value)
end

#get_att(attribute_name, type_hint = nil) ⇒ AWSCDK::Reference

Returns a token for an runtime attribute of this resource.

Ideally, use generated attribute accessors (e.g. resource.arn), but this can be used for future compatibility in case there is no generated attribute.

Parameters:

Returns:



714
715
716
717
718
# File 'synthetics/cfn_canary.rb', line 714

def get_att(attribute_name, type_hint = nil)
  Jsii::Type.check_type(attribute_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "attributeName")
  Jsii::Type.check_type(type_hint, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5SZXNvbHV0aW9uVHlwZUhpbnQifQ==")), "typeHint") unless type_hint.nil?
  jsii_call_method("getAtt", [attribute_name, type_hint])
end

#get_metadata(key) ⇒ Object

Retrieve a value value from the CloudFormation Resource Metadata.



725
726
727
728
# File 'synthetics/cfn_canary.rb', line 725

def (key)
  Jsii::Type.check_type(key, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "key")
  jsii_call_method("getMetadata", [key])
end

#inspect(inspector) ⇒ void

This method returns an undefined value.

Examines the CloudFormation resource and discloses attributes.

Parameters:



795
796
797
798
# File 'synthetics/cfn_canary.rb', line 795

def inspect(inspector)
  Jsii::Type.check_type(inspector, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5UcmVlSW5zcGVjdG9yIn0=")), "inspector")
  jsii_call_method("inspect", [inspector])
end

#logical_idString

The logical ID for this CloudFormation stack element.

The logical ID of the element is calculated from the path of the resource node in the construct tree.

To override this value, use override_logical_id(new_logical_id).

Returns:

  • (String)


148
149
150
# File 'synthetics/cfn_canary.rb', line 148

def logical_id()
  jsii_get_property("logicalId")
end

#nameString

The name for this canary.

Returns:

  • (String)


302
303
304
# File 'synthetics/cfn_canary.rb', line 302

def name()
  jsii_get_property("name")
end

#name=(value) ⇒ Object



306
307
308
309
# File 'synthetics/cfn_canary.rb', line 306

def name=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  jsii_set_property("name", value)
end

#nodeConstructs::Node

The tree node.

Returns:

  • (Constructs::Node)


131
132
133
# File 'synthetics/cfn_canary.rb', line 131

def node()
  jsii_get_property("node")
end

#obtain_dependenciesArray<AWSCDK::CfnResource, AWSCDK::Stack>

Retrieves an array of resources this resource depends on.

This assembles dependencies on resources across stacks (including nested stacks) automatically.

Returns:



736
737
738
# File 'synthetics/cfn_canary.rb', line 736

def obtain_dependencies()
  jsii_call_method("obtainDependencies", [])
end

#obtain_resource_dependenciesArray<AWSCDK::CfnResource>

Get a shallow copy of dependencies between this resource and other resources in the same stack.

Returns:



743
744
745
# File 'synthetics/cfn_canary.rb', line 743

def obtain_resource_dependencies()
  jsii_call_method("obtainResourceDependencies", [])
end

#override_logical_id(new_logical_id) ⇒ void

This method returns an undefined value.

Overrides the auto-generated logical ID with a specific ID.

Parameters:

  • new_logical_id (String)

    The new logical ID to use for this stack element.



536
537
538
539
# File 'synthetics/cfn_canary.rb', line 536

def override_logical_id(new_logical_id)
  Jsii::Type.check_type(new_logical_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "newLogicalId")
  jsii_call_method("overrideLogicalId", [new_logical_id])
end

#provisioned_resource_cleanupString?

Specifies whether to also delete the Lambda functions and layers used by this canary when the canary is deleted.

Returns:

  • (String, nil)


401
402
403
# File 'synthetics/cfn_canary.rb', line 401

def provisioned_resource_cleanup()
  jsii_get_property("provisionedResourceCleanup")
end

#provisioned_resource_cleanup=(value) ⇒ Object



405
406
407
408
# File 'synthetics/cfn_canary.rb', line 405

def provisioned_resource_cleanup=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "provisionedResourceCleanup") unless value.nil?
  jsii_set_property("provisionedResourceCleanup", value)
end

#refString

Return a string that will be resolved to a CloudFormation { Ref } for this element.

If, by any chance, the intrinsic reference of a resource is not a string, you could coerce it to an IResolvable through Lazy.any({ produce: resource.ref }).

Returns:

  • (String)


167
168
169
# File 'synthetics/cfn_canary.rb', line 167

def ref()
  jsii_get_property("ref")
end

#remove_dependency(target) ⇒ void

This method returns an undefined value.

Indicates that this resource no longer depends on another resource.

This can be used for resources across stacks (including nested stacks) and the dependency will automatically be removed from the relevant scope.

Parameters:



754
755
756
757
# File 'synthetics/cfn_canary.rb', line 754

def remove_dependency(target)
  Jsii::Type.check_type(target, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5DZm5SZXNvdXJjZSJ9")), "target")
  jsii_call_method("removeDependency", [target])
end

#render_properties(props) ⇒ Hash{String => Object}

Parameters:

  • props (Hash{String => Object})

Returns:

  • (Hash{String => Object})


761
762
763
764
# File 'synthetics/cfn_canary.rb', line 761

def render_properties(props)
  Jsii::Type.check_type(props, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6ImFueSJ9LCJraW5kIjoibWFwIn19")), "props")
  jsii_call_method("renderProperties", [props])
end

#replace_dependency(target, new_target) ⇒ void

This method returns an undefined value.

Replaces one dependency with another.

Parameters:



771
772
773
774
775
# File 'synthetics/cfn_canary.rb', line 771

def replace_dependency(target, new_target)
  Jsii::Type.check_type(target, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5DZm5SZXNvdXJjZSJ9")), "target")
  Jsii::Type.check_type(new_target, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5DZm5SZXNvdXJjZSJ9")), "newTarget")
  jsii_call_method("replaceDependency", [target, new_target])
end

#resources_to_replicate_tagsArray<String>?

To have the tags that you apply to this canary also be applied to the Lambda function that the canary uses, specify this property with the value lambda-function .

Returns:

  • (Array<String>, nil)


413
414
415
# File 'synthetics/cfn_canary.rb', line 413

def resources_to_replicate_tags()
  jsii_get_property("resourcesToReplicateTags")
end

#resources_to_replicate_tags=(value) ⇒ Object



417
418
419
420
# File 'synthetics/cfn_canary.rb', line 417

def resources_to_replicate_tags=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "resourcesToReplicateTags") unless value.nil?
  jsii_set_property("resourcesToReplicateTags", value)
end

#run_configAWSCDK::IResolvable, ...

A structure that contains input information for a canary run.



425
426
427
# File 'synthetics/cfn_canary.rb', line 425

def run_config()
  jsii_get_property("runConfig")
end

#run_config=(value) ⇒ Object



429
430
431
432
433
# File 'synthetics/cfn_canary.rb', line 429

def run_config=(value)
  value = value.is_a?(Hash) ? ::AWSCDK::Synthetics::CfnCanary::RunConfigProperty.new(**value.transform_keys(&:to_sym)) : value
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zeW50aGV0aWNzLkNmbkNhbmFyeS5SdW5Db25maWdQcm9wZXJ0eSJ9XX19")), "runConfig") unless value.nil?
  jsii_set_property("runConfig", value)
end

#runtime_versionString

Specifies the runtime version to use for the canary.

Returns:

  • (String)


314
315
316
# File 'synthetics/cfn_canary.rb', line 314

def runtime_version()
  jsii_get_property("runtimeVersion")
end

#runtime_version=(value) ⇒ Object



318
319
320
321
# File 'synthetics/cfn_canary.rb', line 318

def runtime_version=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "runtimeVersion")
  jsii_set_property("runtimeVersion", value)
end

#scheduleAWSCDK::IResolvable, AWSCDK::Synthetics::CfnCanary::ScheduleProperty

A structure that contains information about how often the canary is to run, and when these runs are to stop.



326
327
328
# File 'synthetics/cfn_canary.rb', line 326

def schedule()
  jsii_get_property("schedule")
end

#schedule=(value) ⇒ Object



330
331
332
333
334
# File 'synthetics/cfn_canary.rb', line 330

def schedule=(value)
  value = value.is_a?(Hash) ? ::AWSCDK::Synthetics::CfnCanary::ScheduleProperty.new(**value.transform_keys(&:to_sym)) : value
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zeW50aGV0aWNzLkNmbkNhbmFyeS5TY2hlZHVsZVByb3BlcnR5In1dfX0=")), "schedule")
  jsii_set_property("schedule", value)
end

#should_synthesizeBoolean

Can be overridden by subclasses to determine if this resource will be rendered into the cloudformation template.

Returns:

  • (Boolean)

    true if the resource should be included or false is the resource should be omitted.



780
781
782
# File 'synthetics/cfn_canary.rb', line 780

def should_synthesize()
  jsii_call_method("shouldSynthesize", [])
end

#stackAWSCDK::Stack

The stack in which this element is defined.

CfnElements must be defined within a stack scope (directly or indirectly).

Returns:



157
158
159
# File 'synthetics/cfn_canary.rb', line 157

def stack()
  jsii_get_property("stack")
end

#start_canary_after_creationBoolean, ...

Specify TRUE to have the canary start making runs immediately after it is created.

Returns:



438
439
440
# File 'synthetics/cfn_canary.rb', line 438

def start_canary_after_creation()
  jsii_get_property("startCanaryAfterCreation")
end

#start_canary_after_creation=(value) ⇒ Object



442
443
444
445
# File 'synthetics/cfn_canary.rb', line 442

def start_canary_after_creation=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "startCanaryAfterCreation") unless value.nil?
  jsii_set_property("startCanaryAfterCreation", value)
end

#success_retention_periodNumeric?

The number of days to retain data about successful runs of this canary.

Returns:

  • (Numeric, nil)


450
451
452
# File 'synthetics/cfn_canary.rb', line 450

def success_retention_period()
  jsii_get_property("successRetentionPeriod")
end

#success_retention_period=(value) ⇒ Object



454
455
456
457
# File 'synthetics/cfn_canary.rb', line 454

def success_retention_period=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "successRetentionPeriod") unless value.nil?
  jsii_set_property("successRetentionPeriod", value)
end

#tagsAWSCDK::TagManager

Tag Manager which manages the tags for this resource.

Returns:



258
259
260
# File 'synthetics/cfn_canary.rb', line 258

def tags()
  jsii_get_property("tags")
end

#tags_rawArray<AWSCDK::CfnTag>?

The list of key-value pairs that are associated with the canary.

Returns:



462
463
464
# File 'synthetics/cfn_canary.rb', line 462

def tags_raw()
  jsii_get_property("tagsRaw")
end

#tags_raw=(value) ⇒ Object



466
467
468
469
470
# File 'synthetics/cfn_canary.rb', line 466

def tags_raw=(value)
  value = value.is_a?(Array) ? value.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : value
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tagsRaw") unless value.nil?
  jsii_set_property("tagsRaw", value)
end

#to_stringString

Returns a string representation of this construct.

Returns:

  • (String)

    a string representation of this resource



512
513
514
# File 'synthetics/cfn_canary.rb', line 512

def to_string()
  jsii_call_method("toString", [])
end

#updated_properitesHash{String => Object}

Deprecated.

use updatedProperties Return properties modified after initiation Resources that expose mutable properties should override this function to collect and return the properties object for this resource.

Deprecated.

Returns:

  • (Hash{String => Object})


204
205
206
# File 'synthetics/cfn_canary.rb', line 204

def updated_properites()
  jsii_get_property("updatedProperites")
end

#updated_propertiesHash{String => Object}

Return properties modified after initiation.

Resources that expose mutable properties should override this function to collect and return the properties object for this resource.

Returns:

  • (Hash{String => Object})


214
215
216
# File 'synthetics/cfn_canary.rb', line 214

def updated_properties()
  jsii_get_property("updatedProperties")
end

#validate_properties(_properties) ⇒ void

This method returns an undefined value.

Parameters:

  • _properties (Object)


786
787
788
789
# File 'synthetics/cfn_canary.rb', line 786

def validate_properties(_properties)
  Jsii::Type.check_type(_properties, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJhbnkifQ==")), "_properties")
  jsii_call_method("validateProperties", [_properties])
end

#visual_referenceAWSCDK::IResolvable, ...

Deprecated.

this property has been deprecated



474
475
476
# File 'synthetics/cfn_canary.rb', line 474

def visual_reference()
  jsii_get_property("visualReference")
end

#visual_reference=(value) ⇒ Object



478
479
480
481
482
# File 'synthetics/cfn_canary.rb', line 478

def visual_reference=(value)
  value = value.is_a?(Hash) ? ::AWSCDK::Synthetics::CfnCanary::VisualReferenceProperty.new(**value.transform_keys(&:to_sym)) : value
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zeW50aGV0aWNzLkNmbkNhbmFyeS5WaXN1YWxSZWZlcmVuY2VQcm9wZXJ0eSJ9XX19")), "visualReference") unless value.nil?
  jsii_set_property("visualReference", value)
end

#visual_referencesAWSCDK::IResolvable, ...

A list of visual reference configurations for the canary, one for each browser type that the canary is configured to run on.



487
488
489
# File 'synthetics/cfn_canary.rb', line 487

def visual_references()
  jsii_get_property("visualReferences")
end

#visual_references=(value) ⇒ Object



491
492
493
494
# File 'synthetics/cfn_canary.rb', line 491

def visual_references=(value)
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3Nfc3ludGhldGljcy5DZm5DYW5hcnkuVmlzdWFsUmVmZXJlbmNlUHJvcGVydHkifV19fSwia2luZCI6ImFycmF5In19XX19")), "visualReferences") unless value.nil?
  jsii_set_property("visualReferences", value)
end

#vpc_configAWSCDK::IResolvable, ...

If this canary is to test an endpoint in a VPC, this structure contains information about the subnet and security groups of the VPC endpoint.



499
500
501
# File 'synthetics/cfn_canary.rb', line 499

def vpc_config()
  jsii_get_property("vpcConfig")
end

#vpc_config=(value) ⇒ Object



503
504
505
506
507
# File 'synthetics/cfn_canary.rb', line 503

def vpc_config=(value)
  value = value.is_a?(Hash) ? ::AWSCDK::Synthetics::CfnCanary::VPCConfigProperty.new(**value.transform_keys(&:to_sym)) : value
  Jsii::Type.check_type(value, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19zeW50aGV0aWNzLkNmbkNhbmFyeS5WUENDb25maWdQcm9wZXJ0eSJ9XX19")), "vpcConfig") unless value.nil?
  jsii_set_property("vpcConfig", value)
end

#with(*mixins) ⇒ Constructs::IConstruct

Applies one or more mixins to this construct.

Mixins are applied in order. The list of constructs is captured at the start of the call, so constructs added by a mixin will not be visited. Use multiple with() calls if subsequent mixins should apply to added constructs.

Parameters:

  • mixins (Array<Constructs::IMixin>)

Returns:

  • (Constructs::IConstruct)


525
526
527
528
529
530
# File 'synthetics/cfn_canary.rb', line 525

def with(*mixins)
  mixins.each_with_index do |item, index|
    Jsii::Type.check_type(item, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJjb25zdHJ1Y3RzLklNaXhpbiJ9")), "mixins[#{index}]")
  end
  jsii_call_method("with", [*mixins])
end