Class: AWSCDK::ObservabilityAdmin::CfnOrganizationTelemetryRule::TelemetryRuleProperty

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
observability_admin/cfn_organization_telemetry_rule.rb

Overview

Defines how telemetry should be configured for specific AWS resources.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_type:, telemetry_type:, allow_field_updates: nil, all_regions: nil, destination_configuration: nil, regions: nil, scope: nil, selection_criteria: nil, telemetry_source_types: nil) ⇒ TelemetryRuleProperty

Returns a new instance of TelemetryRuleProperty.

Parameters:

  • resource_type (String)

    The type of AWS resource to configure telemetry for (e.g., "AWS::EC2::VPC", "AWS::EKS::Cluster", "AWS::WAFv2::WebACL").

  • telemetry_type (String)

    The type of telemetry to collect (Logs, Metrics, or Traces).

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

    When true, configuration drift in managed telemetry resources will be detected and remediated for resource-level fields.

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

    When true, the rule is replicated to all supported regions.

  • destination_configuration (AWSCDK::IResolvable, AWSCDK::ObservabilityAdmin::CfnOrganizationTelemetryRule::TelemetryDestinationConfigurationProperty, nil) (defaults to: nil)

    Configuration specifying where and how the telemetry data should be delivered.

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

    List of AWS region codes where the rule should be replicated.

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

    The organizational scope to which the rule applies, specified using accounts or organizational units.

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

    Criteria for selecting which resources the rule applies to, such as resource tags.

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

    The specific telemetry source types to configure for the resource, such as VPC_FLOW_LOGS or EKS_AUDIT_LOGS.



1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1257

def initialize(resource_type:, telemetry_type:, allow_field_updates: nil, all_regions: nil, destination_configuration: nil, regions: nil, scope: nil, selection_criteria: nil, telemetry_source_types: nil)
  @resource_type = resource_type
  Jsii::Type.check_type(@resource_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "resourceType")
  @telemetry_type = telemetry_type
  Jsii::Type.check_type(@telemetry_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "telemetryType")
  @allow_field_updates = allow_field_updates
  Jsii::Type.check_type(@allow_field_updates, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "allowFieldUpdates") unless @allow_field_updates.nil?
  @all_regions = all_regions
  Jsii::Type.check_type(@all_regions, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoiYm9vbGVhbiJ9LHsiZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifV19fQ==")), "allRegions") unless @all_regions.nil?
  @destination_configuration = destination_configuration.is_a?(Hash) ? ::AWSCDK::ObservabilityAdmin::CfnOrganizationTelemetryRule::TelemetryDestinationConfigurationProperty.new(**destination_configuration.transform_keys(&:to_sym)) : destination_configuration
  Jsii::Type.check_type(@destination_configuration, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19vYnNlcnZhYmlsaXR5YWRtaW4uQ2ZuT3JnYW5pemF0aW9uVGVsZW1ldHJ5UnVsZS5UZWxlbWV0cnlEZXN0aW5hdGlvbkNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19")), "destinationConfiguration") unless @destination_configuration.nil?
  @regions = regions
  Jsii::Type.check_type(@regions, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "regions") unless @regions.nil?
  @scope = scope
  Jsii::Type.check_type(@scope, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "scope") unless @scope.nil?
  @selection_criteria = selection_criteria
  Jsii::Type.check_type(@selection_criteria, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "selectionCriteria") unless @selection_criteria.nil?
  @telemetry_source_types = telemetry_source_types
  Jsii::Type.check_type(@telemetry_source_types, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoiYXJyYXkifX0=")), "telemetrySourceTypes") unless @telemetry_source_types.nil?
end

Instance Attribute Details

#all_regionsBoolean, ... (readonly)

When true, the rule is replicated to all supported regions.



1298
1299
1300
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1298

def all_regions
  @all_regions
end

#allow_field_updatesBoolean, ... (readonly)

Note:

Default: - false

When true, configuration drift in managed telemetry resources will be detected and remediated for resource-level fields.



1293
1294
1295
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1293

def allow_field_updates
  @allow_field_updates
end

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

Configuration specifying where and how the telemetry data should be delivered.



1303
1304
1305
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1303

def destination_configuration
  @destination_configuration
end

#regionsArray<String>? (readonly)

List of AWS region codes where the rule should be replicated.



1308
1309
1310
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1308

def regions
  @regions
end

#resource_typeString (readonly)

The type of AWS resource to configure telemetry for (e.g., "AWS::EC2::VPC", "AWS::EKS::Cluster", "AWS::WAFv2::WebACL").



1282
1283
1284
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1282

def resource_type
  @resource_type
end

#scopeString? (readonly)

The organizational scope to which the rule applies, specified using accounts or organizational units.



1313
1314
1315
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1313

def scope
  @scope
end

#selection_criteriaString? (readonly)

Criteria for selecting which resources the rule applies to, such as resource tags.



1318
1319
1320
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1318

def selection_criteria
  @selection_criteria
end

#telemetry_source_typesArray<String>? (readonly)

The specific telemetry source types to configure for the resource, such as VPC_FLOW_LOGS or EKS_AUDIT_LOGS.

TelemetrySourceTypes must be correlated with the specific resource type.



1325
1326
1327
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1325

def telemetry_source_types
  @telemetry_source_types
end

#telemetry_typeString (readonly)

The type of telemetry to collect (Logs, Metrics, or Traces).



1287
1288
1289
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1287

def telemetry_type
  @telemetry_type
end

Class Method Details

.jsii_propertiesObject



1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1327

def self.jsii_properties
  {
    :resource_type => "resourceType",
    :telemetry_type => "telemetryType",
    :allow_field_updates => "allowFieldUpdates",
    :all_regions => "allRegions",
    :destination_configuration => "destinationConfiguration",
    :regions => "regions",
    :scope => "scope",
    :selection_criteria => "selectionCriteria",
    :telemetry_source_types => "telemetrySourceTypes",
  }
end

Instance Method Details

#to_jsiiObject



1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
# File 'observability_admin/cfn_organization_telemetry_rule.rb', line 1341

def to_jsii
  result = {}
  result.merge!({
    "resourceType" => @resource_type,
    "telemetryType" => @telemetry_type,
    "allowFieldUpdates" => @allow_field_updates,
    "allRegions" => @all_regions,
    "destinationConfiguration" => @destination_configuration,
    "regions" => @regions,
    "scope" => @scope,
    "selectionCriteria" => @selection_criteria,
    "telemetrySourceTypes" => @telemetry_source_types,
  })
  result.compact
end