Class: AWSCDK::ApplicationSignals::CfnServiceLevelObjectiveProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
application_signals/cfn_service_level_objective_props.rb

Overview

Properties for defining a CfnServiceLevelObjective.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, burn_rate_configurations: nil, description: nil, exclusion_windows: nil, goal: nil, request_based_sli: nil, sli: nil, tags: nil) ⇒ CfnServiceLevelObjectiveProps

Returns a new instance of CfnServiceLevelObjectiveProps.

Parameters:



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'application_signals/cfn_service_level_objective_props.rb', line 17

def initialize(name:, burn_rate_configurations: nil, description: nil, exclusion_windows: nil, goal: nil, request_based_sli: nil, sli: nil, tags: nil)
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  @burn_rate_configurations = burn_rate_configurations
  Jsii::Type.check_type(@burn_rate_configurations, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwbGljYXRpb25zaWduYWxzLkNmblNlcnZpY2VMZXZlbE9iamVjdGl2ZS5CdXJuUmF0ZUNvbmZpZ3VyYXRpb25Qcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "burnRateConfigurations") unless @burn_rate_configurations.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @exclusion_windows = exclusion_windows
  Jsii::Type.check_type(@exclusion_windows, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsidW5pb24iOnsidHlwZXMiOlt7ImZxbiI6ImF3cy1jZGstbGliLklSZXNvbHZhYmxlIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwbGljYXRpb25zaWduYWxzLkNmblNlcnZpY2VMZXZlbE9iamVjdGl2ZS5FeGNsdXNpb25XaW5kb3dQcm9wZXJ0eSJ9XX19LCJraW5kIjoiYXJyYXkifX1dfX0=")), "exclusionWindows") unless @exclusion_windows.nil?
  @goal = goal.is_a?(Hash) ? ::AWSCDK::ApplicationSignals::CfnServiceLevelObjective::GoalProperty.new(**goal.transform_keys(&:to_sym)) : goal
  Jsii::Type.check_type(@goal, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBsaWNhdGlvbnNpZ25hbHMuQ2ZuU2VydmljZUxldmVsT2JqZWN0aXZlLkdvYWxQcm9wZXJ0eSJ9XX19")), "goal") unless @goal.nil?
  @request_based_sli = request_based_sli.is_a?(Hash) ? ::AWSCDK::ApplicationSignals::CfnServiceLevelObjective::RequestBasedSliProperty.new(**request_based_sli.transform_keys(&:to_sym)) : request_based_sli
  Jsii::Type.check_type(@request_based_sli, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBsaWNhdGlvbnNpZ25hbHMuQ2ZuU2VydmljZUxldmVsT2JqZWN0aXZlLlJlcXVlc3RCYXNlZFNsaVByb3BlcnR5In1dfX0=")), "requestBasedSli") unless @request_based_sli.nil?
  @sli = sli.is_a?(Hash) ? ::AWSCDK::ApplicationSignals::CfnServiceLevelObjective::SliProperty.new(**sli.transform_keys(&:to_sym)) : sli
  Jsii::Type.check_type(@sli, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBsaWNhdGlvbnNpZ25hbHMuQ2ZuU2VydmljZUxldmVsT2JqZWN0aXZlLlNsaVByb3BlcnR5In1dfX0=")), "sli") unless @sli.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?
end

Instance Attribute Details

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

Each object in this array defines the length of the look-back window used to calculate one burn rate metric for this SLO.

The burn rate measures how fast the service is consuming the error budget, relative to the attainment goal of the SLO.



47
48
49
# File 'application_signals/cfn_service_level_objective_props.rb', line 47

def burn_rate_configurations
  @burn_rate_configurations
end

#descriptionString? (readonly)

Note:

Default: - "No description"

An optional description for this SLO.



53
54
55
# File 'application_signals/cfn_service_level_objective_props.rb', line 53

def description
  @description
end

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

The time window to be excluded from the SLO performance metrics.



58
59
60
# File 'application_signals/cfn_service_level_objective_props.rb', line 58

def exclusion_windows
  @exclusion_windows
end

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

This structure contains the attributes that determine the goal of an SLO.

This includes the time period for evaluation and the attainment threshold.



65
66
67
# File 'application_signals/cfn_service_level_objective_props.rb', line 65

def goal
  @goal
end

#nameString (readonly)

A name for this SLO.



40
41
42
# File 'application_signals/cfn_service_level_objective_props.rb', line 40

def name
  @name
end

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

A structure containing information about the performance metric that this SLO monitors, if this is a request-based SLO.



70
71
72
# File 'application_signals/cfn_service_level_objective_props.rb', line 70

def request_based_sli
  @request_based_sli
end

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

A structure containing information about the performance metric that this SLO monitors, if this is a period-based SLO.



75
76
77
# File 'application_signals/cfn_service_level_objective_props.rb', line 75

def sli
  @sli
end

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

A list of key-value pairs to associate with the SLO.

You can associate as many as 50 tags with an SLO. To be able to associate tags with the SLO when you create the SLO, you must have the cloudwatch:TagResource permission.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.



84
85
86
# File 'application_signals/cfn_service_level_objective_props.rb', line 84

def tags
  @tags
end

Class Method Details

.jsii_propertiesObject



86
87
88
89
90
91
92
93
94
95
96
97
# File 'application_signals/cfn_service_level_objective_props.rb', line 86

def self.jsii_properties
  {
    :name => "name",
    :burn_rate_configurations => "burnRateConfigurations",
    :description => "description",
    :exclusion_windows => "exclusionWindows",
    :goal => "goal",
    :request_based_sli => "requestBasedSli",
    :sli => "sli",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



99
100
101
102
103
104
105
106
107
108
109
110
111
112
# File 'application_signals/cfn_service_level_objective_props.rb', line 99

def to_jsii
  result = {}
  result.merge!({
    "name" => @name,
    "burnRateConfigurations" => @burn_rate_configurations,
    "description" => @description,
    "exclusionWindows" => @exclusion_windows,
    "goal" => @goal,
    "requestBasedSli" => @request_based_sli,
    "sli" => @sli,
    "tags" => @tags,
  })
  result.compact
end