Class: AWSCDK::APIGatewayv2::StageOptions

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
api_gatewayv2/stage_options.rb

Overview

Options required to create a new stage.

Options that are common between HTTP and Websocket APIs.

Direct Known Subclasses

HttpStageOptions, WebSocketStageProps

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(access_log_settings: nil, auto_deploy: nil, description: nil, detailed_metrics_enabled: nil, domain_mapping: nil, stage_variables: nil, throttle: nil) ⇒ StageOptions

Returns a new instance of StageOptions.

Parameters:

  • access_log_settings (AWSCDK::APIGatewayv2::IAccessLogSettings, nil) (defaults to: nil)

    Settings for access logging.

  • auto_deploy (Boolean, nil) (defaults to: nil)

    Whether updates to an API automatically trigger a new deployment.

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

    The description for the API stage.

  • detailed_metrics_enabled (Boolean, nil) (defaults to: nil)

    Specifies whether detailed metrics are enabled.

  • domain_mapping (AWSCDK::APIGatewayv2::DomainMappingOptions, nil) (defaults to: nil)

    The options for custom domain and api mapping.

  • stage_variables (Hash{String => String}, nil) (defaults to: nil)

    Stage variables for the stage. These are key-value pairs that you can define and use in your API routes.

  • throttle (AWSCDK::APIGatewayv2::ThrottleSettings, nil) (defaults to: nil)

    Throttle settings for the routes of this stage.



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'api_gatewayv2/stage_options.rb', line 16

def initialize(access_log_settings: nil, auto_deploy: nil, description: nil, detailed_metrics_enabled: nil, domain_mapping: nil, stage_variables: nil, throttle: nil)
  @access_log_settings = access_log_settings
  Jsii::Type.check_type(@access_log_settings, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBpZ2F0ZXdheXYyLklBY2Nlc3NMb2dTZXR0aW5ncyJ9")), "accessLogSettings") unless @access_log_settings.nil?
  @auto_deploy = auto_deploy
  Jsii::Type.check_type(@auto_deploy, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "autoDeploy") unless @auto_deploy.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @detailed_metrics_enabled = detailed_metrics_enabled
  Jsii::Type.check_type(@detailed_metrics_enabled, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "detailedMetricsEnabled") unless @detailed_metrics_enabled.nil?
  @domain_mapping = domain_mapping.is_a?(Hash) ? ::AWSCDK::APIGatewayv2::DomainMappingOptions.new(**domain_mapping.transform_keys(&:to_sym)) : domain_mapping
  Jsii::Type.check_type(@domain_mapping, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBpZ2F0ZXdheXYyLkRvbWFpbk1hcHBpbmdPcHRpb25zIn0=")), "domainMapping") unless @domain_mapping.nil?
  @stage_variables = stage_variables
  Jsii::Type.check_type(@stage_variables, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoibWFwIn19")), "stageVariables") unless @stage_variables.nil?
  @throttle = throttle.is_a?(Hash) ? ::AWSCDK::APIGatewayv2::ThrottleSettings.new(**throttle.transform_keys(&:to_sym)) : throttle
  Jsii::Type.check_type(@throttle, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBpZ2F0ZXdheXYyLlRocm90dGxlU2V0dGluZ3MifQ==")), "throttle") unless @throttle.nil?
end

Instance Attribute Details

#access_log_settingsAWSCDK::APIGatewayv2::IAccessLogSettings? (readonly)

Note:

Default: - No access logging

Settings for access logging.



37
38
39
# File 'api_gatewayv2/stage_options.rb', line 37

def access_log_settings
  @access_log_settings
end

#auto_deployBoolean? (readonly)

Note:

Default: false

Whether updates to an API automatically trigger a new deployment.

Returns:

  • (Boolean, nil)


42
43
44
# File 'api_gatewayv2/stage_options.rb', line 42

def auto_deploy
  @auto_deploy
end

#descriptionString? (readonly)

Note:

Default: - no description

The description for the API stage.

Returns:

  • (String, nil)


47
48
49
# File 'api_gatewayv2/stage_options.rb', line 47

def description
  @description
end

#detailed_metrics_enabledBoolean? (readonly)

Note:

Default: false

Specifies whether detailed metrics are enabled.

Returns:

  • (Boolean, nil)


52
53
54
# File 'api_gatewayv2/stage_options.rb', line 52

def detailed_metrics_enabled
  @detailed_metrics_enabled
end

#domain_mappingAWSCDK::APIGatewayv2::DomainMappingOptions? (readonly)

Note:

Default: - no custom domain and api mapping configuration

The options for custom domain and api mapping.



57
58
59
# File 'api_gatewayv2/stage_options.rb', line 57

def domain_mapping
  @domain_mapping
end

#stage_variablesHash{String => String}? (readonly)

Note:

Default: - No stage variables

Stage variables for the stage. These are key-value pairs that you can define and use in your API routes.

The allowed characters for variable names and the required pattern for variable values are specified here: https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-apigateway-stage.html#cfn-apigateway-stage-variables

Returns:

  • (Hash{String => String}, nil)


64
65
66
# File 'api_gatewayv2/stage_options.rb', line 64

def stage_variables
  @stage_variables
end

#throttleAWSCDK::APIGatewayv2::ThrottleSettings? (readonly)

Note:

Default: - no throttling configuration

Throttle settings for the routes of this stage.



69
70
71
# File 'api_gatewayv2/stage_options.rb', line 69

def throttle
  @throttle
end

Class Method Details

.jsii_propertiesObject



71
72
73
74
75
76
77
78
79
80
81
# File 'api_gatewayv2/stage_options.rb', line 71

def self.jsii_properties
  {
    :access_log_settings => "accessLogSettings",
    :auto_deploy => "autoDeploy",
    :description => "description",
    :detailed_metrics_enabled => "detailedMetricsEnabled",
    :domain_mapping => "domainMapping",
    :stage_variables => "stageVariables",
    :throttle => "throttle",
  }
end

Instance Method Details

#to_jsiiObject



83
84
85
86
87
88
89
90
91
92
93
94
95
# File 'api_gatewayv2/stage_options.rb', line 83

def to_jsii
  result = {}
  result.merge!({
    "accessLogSettings" => @access_log_settings,
    "autoDeploy" => @auto_deploy,
    "description" => @description,
    "detailedMetricsEnabled" => @detailed_metrics_enabled,
    "domainMapping" => @domain_mapping,
    "stageVariables" => @stage_variables,
    "throttle" => @throttle,
  })
  result.compact
end