Class: AWSCDK::AppSync::GraphqlAPIProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
app_sync/graphql_api_props.rb

Overview

Properties for an AppSync GraphQL API.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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.

Parameters:

  • name (String)

    the name of the GraphQL API.

  • authorization_config (AWSCDK::AppSync::AuthorizationConfig, nil) (defaults to: nil)

    Optional authorization configuration.

  • definition (AWSCDK::AppSync::Definition, nil) (defaults to: nil)

    Definition (schema file or source APIs) for this GraphQL Api.

  • domain_name (AWSCDK::AppSync::DomainOptions, nil) (defaults to: nil)

    The domain name configuration for the GraphQL API.

  • enhanced_metrics_config (AWSCDK::AppSync::EnhancedMetricsConfig, nil) (defaults to: nil)

    Enables and controls the enhanced metrics feature.

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

    A map containing the list of resources with their properties and environment variables.

  • introspection_config (AWSCDK::AppSync::IntrospectionConfig, nil) (defaults to: nil)

    A value indicating whether the API to enable (ENABLED) or disable (DISABLED) introspection.

  • log_config (AWSCDK::AppSync::LogConfig, nil) (defaults to: nil)

    Logging configuration for this api.

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

    The owner contact information for an API resource.

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

    A number indicating the maximum depth resolvers should be accepted when handling queries.

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

    A number indicating the maximum number of resolvers that should be accepted when handling queries.

  • schema (AWSCDK::AppSync::ISchema, nil) (defaults to: nil)

    GraphQL schema definition. Specify how you want to define your schema.

  • visibility (AWSCDK::AppSync::Visibility, nil) (defaults to: nil)

    A value indicating whether the API is accessible from anywhere (GLOBAL) or can only be access from a VPC (PRIVATE).

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

    A flag indicating whether or not X-Ray tracing is enabled for the GraphQL API.



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 = authorization_config.is_a?(Hash) ? ::AWSCDK::AppSync::AuthorizationConfig.new(**authorization_config.transform_keys(&:to_sym)) : authorization_config
  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_configAWSCDK::AppSync::AuthorizationConfig? (readonly)

Note:

Default: - API Key authorization

Optional authorization configuration.



60
61
62
# File 'app_sync/graphql_api_props.rb', line 60

def authorization_config
  @authorization_config
end

#definitionAWSCDK::AppSync::Definition? (readonly)

Definition (schema file or source APIs) for this GraphQL Api.

Returns:



64
65
66
# File 'app_sync/graphql_api_props.rb', line 64

def definition
  @definition
end

#domain_nameAWSCDK::AppSync::DomainOptions? (readonly)

Note:

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_configAWSCDK::AppSync::EnhancedMetricsConfig? (readonly)

Note:

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_variablesHash{String => String}? (readonly)

Note:

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.

Returns:

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


90
91
92
# File 'app_sync/graphql_api_props.rb', line 90

def environment_variables
  @environment_variables
end

#introspection_configAWSCDK::AppSync::IntrospectionConfig? (readonly)

Note:

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_configAWSCDK::AppSync::LogConfig? (readonly)

Note:

Default: - None

Logging configuration for this api.

Returns:



100
101
102
# File 'app_sync/graphql_api_props.rb', line 100

def log_config
  @log_config
end

#nameString (readonly)

the name of the GraphQL API.

Returns:

  • (String)


55
56
57
# File 'app_sync/graphql_api_props.rb', line 55

def name
  @name
end

#owner_contactString? (readonly)

Note:

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.

Returns:

  • (String, nil)


107
108
109
# File 'app_sync/graphql_api_props.rb', line 107

def owner_contact
  @owner_contact
end

#query_depth_limitNumeric? (readonly)

Note:

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

Returns:

  • (Numeric, nil)


114
115
116
# File 'app_sync/graphql_api_props.rb', line 114

def query_depth_limit
  @query_depth_limit
end

#resolver_count_limitNumeric? (readonly)

Note:

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

Returns:

  • (Numeric, nil)


121
122
123
# File 'app_sync/graphql_api_props.rb', line 121

def resolver_count_limit
  @resolver_count_limit
end

#schemaAWSCDK::AppSync::ISchema? (readonly)

Deprecated.

use Definition.schema instead

Note:

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

Returns:



129
130
131
# File 'app_sync/graphql_api_props.rb', line 129

def schema
  @schema
end

#visibilityAWSCDK::AppSync::Visibility? (readonly)

Note:

Default: - GLOBAL

A value indicating whether the API is accessible from anywhere (GLOBAL) or can only be access from a VPC (PRIVATE).

Returns:



134
135
136
# File 'app_sync/graphql_api_props.rb', line 134

def visibility
  @visibility
end

#xray_enabledBoolean? (readonly)

Note:

Default: - false

A flag indicating whether or not X-Ray tracing is enabled for the GraphQL API.

Returns:

  • (Boolean, nil)


139
140
141
# File 'app_sync/graphql_api_props.rb', line 139

def xray_enabled
  @xray_enabled
end

Class Method Details

.jsii_propertiesObject



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_jsiiObject



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