Class: AWSCDK::InternetMonitor::CfnMonitorProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
internet_monitor/cfn_monitor_props.rb

Overview

Properties for defining a CfnMonitor.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(monitor_name:, health_events_config: nil, include_linked_accounts: nil, internet_measurements_log_delivery: nil, linked_account_id: nil, max_city_networks_to_monitor: nil, resources: nil, resources_to_add: nil, resources_to_remove: nil, status: nil, tags: nil, traffic_percentage_to_monitor: nil) ⇒ CfnMonitorProps

Returns a new instance of CfnMonitorProps.

Parameters:

  • monitor_name (String)

    The name of the monitor.

  • health_events_config (AWSCDK::IResolvable, AWSCDK::InternetMonitor::CfnMonitor::HealthEventsConfigProperty, nil) (defaults to: nil)

    A complex type with the configuration information that determines the threshold and other conditions for when Internet Monitor creates a health event for an overall performance or availability issue, across an application's geographies.

  • include_linked_accounts (Boolean, AWSCDK::IResolvable, nil) (defaults to: nil)

    A boolean option that you can set to TRUE to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor.

  • internet_measurements_log_delivery (AWSCDK::IResolvable, AWSCDK::InternetMonitor::CfnMonitor::InternetMeasurementsLogDeliveryProperty, nil) (defaults to: nil)

    Publish internet measurements for a monitor for all city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 bucket.

  • linked_account_id (String, nil) (defaults to: nil)

    The account ID for an account that you've set up cross-account sharing for in Internet Monitor.

  • max_city_networks_to_monitor (Numeric, nil) (defaults to: nil)

    The maximum number of city-networks to monitor for your resources.

  • resources (Array<String>, nil) (defaults to: nil)

    The resources that have been added for the monitor, listed by their Amazon Resource Names (ARNs).

  • resources_to_add (Array<String>, nil) (defaults to: nil)

    The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs).

  • resources_to_remove (Array<String>, nil) (defaults to: nil)

    The resources to remove from a monitor, which you provide as a set of Amazon Resource Names (ARNs).

  • status (String, nil) (defaults to: nil)

    The status of a monitor.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    The tags for a monitor, listed as a set of key:value pairs.

  • traffic_percentage_to_monitor (Numeric, nil) (defaults to: nil)

    The percentage of the internet-facing traffic for your application that you want to monitor.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'internet_monitor/cfn_monitor_props.rb', line 21

def initialize(monitor_name:, health_events_config: nil, include_linked_accounts: nil, internet_measurements_log_delivery: nil, linked_account_id: nil, max_city_networks_to_monitor: nil, resources: nil, resources_to_add: nil, resources_to_remove: nil, status: nil, tags: nil, traffic_percentage_to_monitor: nil)
  @monitor_name = monitor_name
  Jsii::Type.check_type(@monitor_name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "monitorName")
  @health_events_config = health_events_config.is_a?(Hash) ? ::AWSCDK::InternetMonitor::CfnMonitor::HealthEventsConfigProperty.new(**health_events_config.transform_keys(&:to_sym)) : health_events_config
  Jsii::Type.check_type(@health_events_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pbnRlcm5ldG1vbml0b3IuQ2ZuTW9uaXRvci5IZWFsdGhFdmVudHNDb25maWdQcm9wZXJ0eSJ9XX19")), "healthEventsConfig") unless @health_events_config.nil?
  @include_linked_accounts = include_linked_accounts
  Jsii::Type.check_type(@include_linked_accounts, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "includeLinkedAccounts") unless @include_linked_accounts.nil?
  @internet_measurements_log_delivery = internet_measurements_log_delivery.is_a?(Hash) ? ::AWSCDK::InternetMonitor::CfnMonitor::InternetMeasurementsLogDeliveryProperty.new(**internet_measurements_log_delivery.transform_keys(&:to_sym)) : internet_measurements_log_delivery
  Jsii::Type.check_type(@internet_measurements_log_delivery, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19pbnRlcm5ldG1vbml0b3IuQ2ZuTW9uaXRvci5JbnRlcm5ldE1lYXN1cmVtZW50c0xvZ0RlbGl2ZXJ5UHJvcGVydHkifV19fQ==")), "internetMeasurementsLogDelivery") unless @internet_measurements_log_delivery.nil?
  @linked_account_id = 
  Jsii::Type.check_type(@linked_account_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "linkedAccountId") unless @linked_account_id.nil?
  @max_city_networks_to_monitor = max_city_networks_to_monitor
  Jsii::Type.check_type(@max_city_networks_to_monitor, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "maxCityNetworksToMonitor") unless @max_city_networks_to_monitor.nil?
  @resources = resources
  Jsii::Type.check_type(@resources, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "resources") unless @resources.nil?
  @resources_to_add = resources_to_add
  Jsii::Type.check_type(@resources_to_add, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "resourcesToAdd") unless @resources_to_add.nil?
  @resources_to_remove = resources_to_remove
  Jsii::Type.check_type(@resources_to_remove, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "resourcesToRemove") unless @resources_to_remove.nil?
  @status = status
  Jsii::Type.check_type(@status, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "status") unless @status.nil?
  @tags = tags.is_a?(Array) ? tags.map { |jsii_v0| jsii_v0.is_a?(Hash) ? ::AWSCDK::CfnTag.new(**jsii_v0.transform_keys(&:to_sym)) : jsii_v0 } : tags
  Jsii::Type.check_type(@tags, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7ImZxbiI6ImF3cy1jZGstbGliLkNmblRhZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "tags") unless @tags.nil?
  @traffic_percentage_to_monitor = traffic_percentage_to_monitor
  Jsii::Type.check_type(@traffic_percentage_to_monitor, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "trafficPercentageToMonitor") unless @traffic_percentage_to_monitor.nil?
end

Instance Attribute Details

#health_events_configAWSCDK::IResolvable, ... (readonly)

A complex type with the configuration information that determines the threshold and other conditions for when Internet Monitor creates a health event for an overall performance or availability issue, across an application's geographies.

Defines the percentages, for overall performance scores and availability scores for an application, that are the thresholds for when Internet Monitor creates a health event. You can override the defaults to set a custom threshold for overall performance or availability scores, or both.

You can also set thresholds for local health scores,, where Internet Monitor creates a health event when scores cross a threshold for one or more city-networks, in addition to creating an event when an overall score crosses a threshold.

If you don't set a health event threshold, the default value is 95%.

For local thresholds, you also set a minimum percentage of overall traffic that is impacted by an issue before Internet Monitor creates an event. In addition, you can disable local thresholds, for performance scores, availability scores, or both.

For more information, see Change health event thresholds in the Internet Monitor section of the CloudWatch User Guide .



69
70
71
# File 'internet_monitor/cfn_monitor_props.rb', line 69

def health_events_config
  @health_events_config
end

#include_linked_accountsBoolean, ... (readonly)

A boolean option that you can set to TRUE to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor.

You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see Internet Monitor cross-account observability in the Amazon CloudWatch User Guide.



76
77
78
# File 'internet_monitor/cfn_monitor_props.rb', line 76

def include_linked_accounts
  @include_linked_accounts
end

#internet_measurements_log_deliveryAWSCDK::IResolvable, ... (readonly)

Publish internet measurements for a monitor for all city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 bucket.

Measurements are also published to Amazon CloudWatch Logs for the first 500 (by traffic volume) city-networks (client locations and ASNs, typically internet service providers or ISPs).



83
84
85
# File 'internet_monitor/cfn_monitor_props.rb', line 83

def internet_measurements_log_delivery
  @internet_measurements_log_delivery
end

#linked_account_idString? (readonly)

The account ID for an account that you've set up cross-account sharing for in Internet Monitor.

You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see Internet Monitor cross-account observability in the Amazon CloudWatch User Guide.



90
91
92
# File 'internet_monitor/cfn_monitor_props.rb', line 90

def 
  @linked_account_id
end

#max_city_networks_to_monitorNumeric? (readonly)

The maximum number of city-networks to monitor for your resources.

A city-network is the location (city) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through.

For more information, see Choosing a city-network maximum value in Using Amazon CloudWatch Internet Monitor .



99
100
101
# File 'internet_monitor/cfn_monitor_props.rb', line 99

def max_city_networks_to_monitor
  @max_city_networks_to_monitor
end

#monitor_nameString (readonly)

The name of the monitor.

A monitor name can contain only alphanumeric characters, dashes (-), periods (.), and underscores (_).



54
55
56
# File 'internet_monitor/cfn_monitor_props.rb', line 54

def monitor_name
  @monitor_name
end

#resourcesArray<String>? (readonly)

The resources that have been added for the monitor, listed by their Amazon Resource Names (ARNs).

Use this option to add or remove resources when making an update.

Be aware that if you include content in the Resources field when you update a monitor, the ResourcesToAdd and ResourcesToRemove fields must be empty.



108
109
110
# File 'internet_monitor/cfn_monitor_props.rb', line 108

def resources
  @resources
end

#resources_to_addArray<String>? (readonly)

The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs).

Resources can be Amazon Virtual Private Cloud VPCs, Network Load Balancers (NLBs), Amazon CloudFront distributions, or Amazon WorkSpaces directories.

You can add a combination of VPCs and CloudFront distributions, or you can add WorkSpaces directories, or you can add NLBs. You can't add NLBs or WorkSpaces directories together with any other resources.

If you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity.

You can specify this field for a monitor update only if the Resources field is empty.



121
122
123
# File 'internet_monitor/cfn_monitor_props.rb', line 121

def resources_to_add
  @resources_to_add
end

#resources_to_removeArray<String>? (readonly)

The resources to remove from a monitor, which you provide as a set of Amazon Resource Names (ARNs).

You can specify this field for a monitor update only if the Resources field is empty.



128
129
130
# File 'internet_monitor/cfn_monitor_props.rb', line 128

def resources_to_remove
  @resources_to_remove
end

#statusString? (readonly)

The status of a monitor.

The accepted values that you can specify for Status are ACTIVE and INACTIVE .



135
136
137
# File 'internet_monitor/cfn_monitor_props.rb', line 135

def status
  @status
end

#tagsArray<AWSCDK::CfnTag>? (readonly)

The tags for a monitor, listed as a set of key:value pairs.



140
141
142
# File 'internet_monitor/cfn_monitor_props.rb', line 140

def tags
  @tags
end

#traffic_percentage_to_monitorNumeric? (readonly)

The percentage of the internet-facing traffic for your application that you want to monitor.

You can also, optionally, set a limit for the number of city-networks (client locations and ASNs, typically internet service providers) that Internet Monitor will monitor traffic for. The city-networks maximum limit caps the number of city-networks that Internet Monitor monitors for your application, regardless of the percentage of traffic that you choose to monitor.



147
148
149
# File 'internet_monitor/cfn_monitor_props.rb', line 147

def traffic_percentage_to_monitor
  @traffic_percentage_to_monitor
end

Class Method Details

.jsii_propertiesObject



149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
# File 'internet_monitor/cfn_monitor_props.rb', line 149

def self.jsii_properties
  {
    :monitor_name => "monitorName",
    :health_events_config => "healthEventsConfig",
    :include_linked_accounts => "includeLinkedAccounts",
    :internet_measurements_log_delivery => "internetMeasurementsLogDelivery",
    :linked_account_id => "linkedAccountId",
    :max_city_networks_to_monitor => "maxCityNetworksToMonitor",
    :resources => "resources",
    :resources_to_add => "resourcesToAdd",
    :resources_to_remove => "resourcesToRemove",
    :status => "status",
    :tags => "tags",
    :traffic_percentage_to_monitor => "trafficPercentageToMonitor",
  }
end

Instance Method Details

#to_jsiiObject



166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
# File 'internet_monitor/cfn_monitor_props.rb', line 166

def to_jsii
  result = {}
  result.merge!({
    "monitorName" => @monitor_name,
    "healthEventsConfig" => @health_events_config,
    "includeLinkedAccounts" => @include_linked_accounts,
    "internetMeasurementsLogDelivery" => @internet_measurements_log_delivery,
    "linkedAccountId" => @linked_account_id,
    "maxCityNetworksToMonitor" => @max_city_networks_to_monitor,
    "resources" => @resources,
    "resourcesToAdd" => @resources_to_add,
    "resourcesToRemove" => @resources_to_remove,
    "status" => @status,
    "tags" => @tags,
    "trafficPercentageToMonitor" => @traffic_percentage_to_monitor,
  })
  result.compact
end