Class: AWSCDK::AppSync::GraphqlAPIProps
- Inherits:
-
Jsii::Struct
- Object
- Jsii::Struct
- AWSCDK::AppSync::GraphqlAPIProps
- Defined in:
- app_sync/graphql_api_props.rb
Overview
Properties for an AppSync GraphQL API.
Instance Attribute Summary collapse
-
#authorization_config ⇒ AWSCDK::AppSync::AuthorizationConfig?
readonly
Optional authorization configuration.
-
#definition ⇒ AWSCDK::AppSync::Definition?
readonly
Definition (schema file or source APIs) for this GraphQL Api.
-
#domain_name ⇒ AWSCDK::AppSync::DomainOptions?
readonly
The domain name configuration for the GraphQL API.
-
#enhanced_metrics_config ⇒ AWSCDK::AppSync::EnhancedMetricsConfig?
readonly
Enables and controls the enhanced metrics feature.
-
#environment_variables ⇒ Hash{String => String}?
readonly
A map containing the list of resources with their properties and environment variables.
-
#introspection_config ⇒ AWSCDK::AppSync::IntrospectionConfig?
readonly
A value indicating whether the API to enable (ENABLED) or disable (DISABLED) introspection.
-
#log_config ⇒ AWSCDK::AppSync::LogConfig?
readonly
Logging configuration for this api.
-
#name ⇒ String
readonly
the name of the GraphQL API.
-
#owner_contact ⇒ String?
readonly
The owner contact information for an API resource.
-
#query_depth_limit ⇒ Numeric?
readonly
A number indicating the maximum depth resolvers should be accepted when handling queries.
-
#resolver_count_limit ⇒ Numeric?
readonly
A number indicating the maximum number of resolvers that should be accepted when handling queries.
-
#schema ⇒ AWSCDK::AppSync::ISchema?
readonly
deprecated
Deprecated.
use Definition.schema instead
-
#visibility ⇒ AWSCDK::AppSync::Visibility?
readonly
A value indicating whether the API is accessible from anywhere (GLOBAL) or can only be access from a VPC (PRIVATE).
-
#xray_enabled ⇒ Boolean?
readonly
A flag indicating whether or not X-Ray tracing is enabled for the GraphQL API.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(name:, authorization_config: nil, definition: nil, domain_name: nil, enhanced_metrics_config: nil, environment_variables: nil, introspection_config: nil, log_config: nil, owner_contact: nil, query_depth_limit: nil, resolver_count_limit: nil, schema: nil, visibility: nil, xray_enabled: nil) ⇒ GraphqlAPIProps
constructor
A new instance of GraphqlAPIProps.
- #to_jsii ⇒ Object
Constructor Details
#initialize(name:, authorization_config: nil, definition: nil, domain_name: nil, enhanced_metrics_config: nil, environment_variables: nil, introspection_config: nil, log_config: nil, owner_contact: nil, query_depth_limit: nil, resolver_count_limit: nil, schema: nil, visibility: nil, xray_enabled: nil) ⇒ GraphqlAPIProps
Returns a new instance of GraphqlAPIProps.
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 47 48 49 50 |
# File 'app_sync/graphql_api_props.rb', line 21 def initialize(name:, authorization_config: nil, definition: nil, domain_name: nil, enhanced_metrics_config: nil, environment_variables: nil, introspection_config: nil, log_config: nil, owner_contact: nil, query_depth_limit: nil, resolver_count_limit: nil, schema: nil, visibility: nil, xray_enabled: nil) @name = name Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name") @authorization_config = .is_a?(Hash) ? ::AWSCDK::AppSync::AuthorizationConfig.new(**.transform_keys(&:to_sym)) : Jsii::Type.check_type(@authorization_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5BdXRob3JpemF0aW9uQ29uZmlnIn0=")), "authorizationConfig") unless @authorization_config.nil? @definition = definition Jsii::Type.check_type(@definition, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5EZWZpbml0aW9uIn0=")), "definition") unless @definition.nil? @domain_name = domain_name.is_a?(Hash) ? ::AWSCDK::AppSync::DomainOptions.new(**domain_name.transform_keys(&:to_sym)) : domain_name Jsii::Type.check_type(@domain_name, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5Eb21haW5PcHRpb25zIn0=")), "domainName") unless @domain_name.nil? @enhanced_metrics_config = enhanced_metrics_config.is_a?(Hash) ? ::AWSCDK::AppSync::EnhancedMetricsConfig.new(**enhanced_metrics_config.transform_keys(&:to_sym)) : enhanced_metrics_config Jsii::Type.check_type(@enhanced_metrics_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5FbmhhbmNlZE1ldHJpY3NDb25maWcifQ==")), "enhancedMetricsConfig") unless @enhanced_metrics_config.nil? @environment_variables = environment_variables Jsii::Type.check_type(@environment_variables, JSON.parse(Base64.strict_decode64("eyJjb2xsZWN0aW9uIjp7ImVsZW1lbnR0eXBlIjp7InByaW1pdGl2ZSI6InN0cmluZyJ9LCJraW5kIjoibWFwIn19")), "environmentVariables") unless @environment_variables.nil? @introspection_config = introspection_config Jsii::Type.check_type(@introspection_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5JbnRyb3NwZWN0aW9uQ29uZmlnIn0=")), "introspectionConfig") unless @introspection_config.nil? @log_config = log_config.is_a?(Hash) ? ::AWSCDK::AppSync::LogConfig.new(**log_config.transform_keys(&:to_sym)) : log_config Jsii::Type.check_type(@log_config, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5Mb2dDb25maWcifQ==")), "logConfig") unless @log_config.nil? @owner_contact = owner_contact Jsii::Type.check_type(@owner_contact, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "ownerContact") unless @owner_contact.nil? @query_depth_limit = query_depth_limit Jsii::Type.check_type(@query_depth_limit, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "queryDepthLimit") unless @query_depth_limit.nil? @resolver_count_limit = resolver_count_limit Jsii::Type.check_type(@resolver_count_limit, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJudW1iZXIifQ==")), "resolverCountLimit") unless @resolver_count_limit.nil? @schema = schema Jsii::Type.check_type(@schema, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5JU2NoZW1hIn0=")), "schema") unless @schema.nil? @visibility = visibility Jsii::Type.check_type(@visibility, JSON.parse(Base64.strict_decode64("eyJmcW4iOiJhd3MtY2RrLWxpYi5hd3NfYXBwc3luYy5WaXNpYmlsaXR5In0=")), "visibility") unless @visibility.nil? @xray_enabled = xray_enabled Jsii::Type.check_type(@xray_enabled, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJib29sZWFuIn0=")), "xrayEnabled") unless @xray_enabled.nil? end |
Instance Attribute Details
#authorization_config ⇒ AWSCDK::AppSync::AuthorizationConfig? (readonly)
Default: - API Key authorization
Optional authorization configuration.
60 61 62 |
# File 'app_sync/graphql_api_props.rb', line 60 def @authorization_config end |
#definition ⇒ AWSCDK::AppSync::Definition? (readonly)
Definition (schema file or source APIs) for this GraphQL Api.
64 65 66 |
# File 'app_sync/graphql_api_props.rb', line 64 def definition @definition end |
#domain_name ⇒ AWSCDK::AppSync::DomainOptions? (readonly)
Default: - no domain name
The domain name configuration for the GraphQL API.
The Route 53 hosted zone and CName DNS record must be configured in addition to this setting to enable custom domain URL
72 73 74 |
# File 'app_sync/graphql_api_props.rb', line 72 def domain_name @domain_name end |
#enhanced_metrics_config ⇒ AWSCDK::AppSync::EnhancedMetricsConfig? (readonly)
Default: - Enhanced metrics disabled.
Enables and controls the enhanced metrics feature.
77 78 79 |
# File 'app_sync/graphql_api_props.rb', line 77 def enhanced_metrics_config @enhanced_metrics_config end |
#environment_variables ⇒ Hash{String => String}? (readonly)
Default: - No environment variables.
A map containing the list of resources with their properties and environment variables.
There are a few rules you must follow when creating keys and values:
- Keys must begin with a letter.
- Keys must be between 2 and 64 characters long.
- Keys can only contain letters, numbers, and the underscore character (_).
- Values can be up to 512 characters long.
- You can configure up to 50 key-value pairs in a GraphQL API.
90 91 92 |
# File 'app_sync/graphql_api_props.rb', line 90 def environment_variables @environment_variables end |
#introspection_config ⇒ AWSCDK::AppSync::IntrospectionConfig? (readonly)
Default: IntrospectionConfig.ENABLED
A value indicating whether the API to enable (ENABLED) or disable (DISABLED) introspection.
95 96 97 |
# File 'app_sync/graphql_api_props.rb', line 95 def introspection_config @introspection_config end |
#log_config ⇒ AWSCDK::AppSync::LogConfig? (readonly)
Default: - None
Logging configuration for this api.
100 101 102 |
# File 'app_sync/graphql_api_props.rb', line 100 def log_config @log_config end |
#name ⇒ String (readonly)
the name of the GraphQL API.
55 56 57 |
# File 'app_sync/graphql_api_props.rb', line 55 def name @name end |
#owner_contact ⇒ String? (readonly)
Default: - No owner contact.
The owner contact information for an API resource.
This field accepts any string input with a length of 0 - 256 characters.
107 108 109 |
# File 'app_sync/graphql_api_props.rb', line 107 def owner_contact @owner_contact end |
#query_depth_limit ⇒ Numeric? (readonly)
Default: - The default value is 0 (or unspecified) which indicates no maximum depth.
A number indicating the maximum depth resolvers should be accepted when handling queries.
Value must be withing range of 0 to 75
114 115 116 |
# File 'app_sync/graphql_api_props.rb', line 114 def query_depth_limit @query_depth_limit end |
#resolver_count_limit ⇒ Numeric? (readonly)
Default: - The default value is 0 (or unspecified), which will set the limit to 10000
A number indicating the maximum number of resolvers that should be accepted when handling queries.
Value must be withing range of 0 to 10000
121 122 123 |
# File 'app_sync/graphql_api_props.rb', line 121 def resolver_count_limit @resolver_count_limit end |
#schema ⇒ AWSCDK::AppSync::ISchema? (readonly)
use Definition.schema instead
Default: - schema will be generated code-first (i.e. addType, addObjectType, etc.)
GraphQL schema definition. Specify how you want to define your schema.
SchemaFile.fromAsset(filePath: string) allows schema definition through schema.graphql file
129 130 131 |
# File 'app_sync/graphql_api_props.rb', line 129 def schema @schema end |
#visibility ⇒ AWSCDK::AppSync::Visibility? (readonly)
Default: - GLOBAL
A value indicating whether the API is accessible from anywhere (GLOBAL) or can only be access from a VPC (PRIVATE).
134 135 136 |
# File 'app_sync/graphql_api_props.rb', line 134 def visibility @visibility end |
#xray_enabled ⇒ Boolean? (readonly)
Default: - false
A flag indicating whether or not X-Ray tracing is enabled for the GraphQL API.
139 140 141 |
# File 'app_sync/graphql_api_props.rb', line 139 def xray_enabled @xray_enabled end |
Class Method Details
.jsii_properties ⇒ Object
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 |
# File 'app_sync/graphql_api_props.rb', line 141 def self.jsii_properties { :name => "name", :authorization_config => "authorizationConfig", :definition => "definition", :domain_name => "domainName", :enhanced_metrics_config => "enhancedMetricsConfig", :environment_variables => "environmentVariables", :introspection_config => "introspectionConfig", :log_config => "logConfig", :owner_contact => "ownerContact", :query_depth_limit => "queryDepthLimit", :resolver_count_limit => "resolverCountLimit", :schema => "schema", :visibility => "visibility", :xray_enabled => "xrayEnabled", } end |
Instance Method Details
#to_jsii ⇒ Object
160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 |
# File 'app_sync/graphql_api_props.rb', line 160 def to_jsii result = {} result.merge!({ "name" => @name, "authorizationConfig" => @authorization_config, "definition" => @definition, "domainName" => @domain_name, "enhancedMetricsConfig" => @enhanced_metrics_config, "environmentVariables" => @environment_variables, "introspectionConfig" => @introspection_config, "logConfig" => @log_config, "ownerContact" => @owner_contact, "queryDepthLimit" => @query_depth_limit, "resolverCountLimit" => @resolver_count_limit, "schema" => @schema, "visibility" => @visibility, "xrayEnabled" => @xray_enabled, }) result.compact end |