Class: AWSCDK::AppSync::CfnDataSourceProps

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

Overview

Properties for defining a CfnDataSource.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(api_id:, name:, type:, description: nil, dynamo_db_config: nil, elasticsearch_config: nil, event_bridge_config: nil, http_config: nil, lambda_config: nil, metrics_config: nil, open_search_service_config: nil, relational_database_config: nil, service_role_arn: nil) ⇒ CfnDataSourceProps

Returns a new instance of CfnDataSourceProps.

Parameters:



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
# File 'app_sync/cfn_data_source_props.rb', line 22

def initialize(api_id:, name:, type:, description: nil, dynamo_db_config: nil, elasticsearch_config: nil, event_bridge_config: nil, http_config: nil, lambda_config: nil, metrics_config: nil, open_search_service_config: nil, relational_database_config: nil, service_role_arn: nil)
  @api_id = api_id
  Jsii::Type.check_type(@api_id, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "apiId")
  @name = name
  Jsii::Type.check_type(@name, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "name")
  @type = type
  Jsii::Type.check_type(@type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "type")
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @dynamo_db_config = dynamo_db_config.is_a?(Hash) ? ::AWSCDK::AppSync::CfnDataSource::DynamoDBConfigProperty.new(**dynamo_db_config.transform_keys(&:to_sym)) : dynamo_db_config
  Jsii::Type.check_type(@dynamo_db_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzeW5jLkNmbkRhdGFTb3VyY2UuRHluYW1vREJDb25maWdQcm9wZXJ0eSJ9XX19")), "dynamoDbConfig") unless @dynamo_db_config.nil?
  @elasticsearch_config = elasticsearch_config.is_a?(Hash) ? ::AWSCDK::AppSync::CfnDataSource::ElasticsearchConfigProperty.new(**elasticsearch_config.transform_keys(&:to_sym)) : elasticsearch_config
  Jsii::Type.check_type(@elasticsearch_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzeW5jLkNmbkRhdGFTb3VyY2UuRWxhc3RpY3NlYXJjaENvbmZpZ1Byb3BlcnR5In1dfX0=")), "elasticsearchConfig") unless @elasticsearch_config.nil?
  @event_bridge_config = event_bridge_config.is_a?(Hash) ? ::AWSCDK::AppSync::CfnDataSource::EventBridgeConfigProperty.new(**event_bridge_config.transform_keys(&:to_sym)) : event_bridge_config
  Jsii::Type.check_type(@event_bridge_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzeW5jLkNmbkRhdGFTb3VyY2UuRXZlbnRCcmlkZ2VDb25maWdQcm9wZXJ0eSJ9XX19")), "eventBridgeConfig") unless @event_bridge_config.nil?
  @http_config = http_config.is_a?(Hash) ? ::AWSCDK::AppSync::CfnDataSource::HttpConfigProperty.new(**http_config.transform_keys(&:to_sym)) : http_config
  Jsii::Type.check_type(@http_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzeW5jLkNmbkRhdGFTb3VyY2UuSHR0cENvbmZpZ1Byb3BlcnR5In1dfX0=")), "httpConfig") unless @http_config.nil?
  @lambda_config = lambda_config.is_a?(Hash) ? ::AWSCDK::AppSync::CfnDataSource::LambdaConfigProperty.new(**lambda_config.transform_keys(&:to_sym)) : lambda_config
  Jsii::Type.check_type(@lambda_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzeW5jLkNmbkRhdGFTb3VyY2UuTGFtYmRhQ29uZmlnUHJvcGVydHkifV19fQ==")), "lambdaConfig") unless @lambda_config.nil?
  @metrics_config = metrics_config
  Jsii::Type.check_type(@metrics_config, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "metricsConfig") unless @metrics_config.nil?
  @open_search_service_config = open_search_service_config.is_a?(Hash) ? ::AWSCDK::AppSync::CfnDataSource::OpenSearchServiceConfigProperty.new(**open_search_service_config.transform_keys(&:to_sym)) : open_search_service_config
  Jsii::Type.check_type(@open_search_service_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzeW5jLkNmbkRhdGFTb3VyY2UuT3BlblNlYXJjaFNlcnZpY2VDb25maWdQcm9wZXJ0eSJ9XX19")), "openSearchServiceConfig") unless @open_search_service_config.nil?
  @relational_database_config = relational_database_config.is_a?(Hash) ? ::AWSCDK::AppSync::CfnDataSource::RelationalDatabaseConfigProperty.new(**relational_database_config.transform_keys(&:to_sym)) : relational_database_config
  Jsii::Type.check_type(@relational_database_config, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImZxbiI6ImF3cy1jZGstbGliLmF3c19hcHBzeW5jLkNmbkRhdGFTb3VyY2UuUmVsYXRpb25hbERhdGFiYXNlQ29uZmlnUHJvcGVydHkifV19fQ==")), "relationalDatabaseConfig") unless @relational_database_config.nil?
  @service_role_arn = service_role_arn
  Jsii::Type.check_type(@service_role_arn, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3sicHJpbWl0aXZlIjoic3RyaW5nIn0seyJmcW4iOiJhd3MtY2RrLWxpYi5pbnRlcmZhY2VzLmF3c19pYW0uSVJvbGVSZWYifV19fQ==")), "serviceRoleArn") unless @service_role_arn.nil?
end

Instance Attribute Details

#api_idString (readonly)

Unique AWS AppSync GraphQL API identifier where this data source will be created.



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

def api_id
  @api_id
end

#descriptionString? (readonly)

The description of the data source.



80
81
82
# File 'app_sync/cfn_data_source_props.rb', line 80

def description
  @description
end

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

AWS Region and TableName for an Amazon DynamoDB table in your account.



85
86
87
# File 'app_sync/cfn_data_source_props.rb', line 85

def dynamo_db_config
  @dynamo_db_config
end

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

Deprecated.

this property has been deprecated



89
90
91
# File 'app_sync/cfn_data_source_props.rb', line 89

def elasticsearch_config
  @elasticsearch_config
end

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

An EventBridge configuration that contains a valid ARN of an event bus.



94
95
96
# File 'app_sync/cfn_data_source_props.rb', line 94

def event_bridge_config
  @event_bridge_config
end

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

Endpoints for an HTTP data source.



99
100
101
# File 'app_sync/cfn_data_source_props.rb', line 99

def http_config
  @http_config
end

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

An ARN of a Lambda function in valid ARN format.

This can be the ARN of a Lambda function that exists in the current account or in another account.



106
107
108
# File 'app_sync/cfn_data_source_props.rb', line 106

def lambda_config
  @lambda_config
end

#metrics_configString? (readonly)

Enables or disables enhanced data source metrics for specified data sources.

Note that MetricsConfig won't be used unless the data_source_level_metrics_behavior value is set to PER_DATA_SOURCE_METRICS . If the data_source_level_metrics_behavior is set to FULL_REQUEST_DATA_SOURCE_METRICS instead, MetricsConfig will be ignored. However, you can still set its value.

MetricsConfig can be ENABLED or DISABLED .



115
116
117
# File 'app_sync/cfn_data_source_props.rb', line 115

def metrics_config
  @metrics_config
end

#nameString (readonly)

Friendly name for you to identify your AppSync data source after creation.



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

def name
  @name
end

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

AWS Region and Endpoints for an Amazon OpenSearch Service domain in your account.



120
121
122
# File 'app_sync/cfn_data_source_props.rb', line 120

def open_search_service_config
  @open_search_service_config
end

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

Relational Database configuration of the relational database data source.



125
126
127
# File 'app_sync/cfn_data_source_props.rb', line 125

def relational_database_config
  @relational_database_config
end

#service_role_arnString, ... (readonly)

The AWS Identity and Access Management service role ARN for the data source.

The system assumes this role when accessing the data source.

Required if Type is specified as AWS_LAMBDA , AMAZON_DYNAMODB , AMAZON_ELASTICSEARCH , AMAZON_EVENTBRIDGE , AMAZON_OPENSEARCH_SERVICE , RELATIONAL_DATABASE , or AMAZON_BEDROCK_RUNTIME .



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

def service_role_arn
  @service_role_arn
end

#typeString (readonly)

The type of the data source.

  • AWS_LAMBDA : The data source is an AWS Lambda function.
  • AMAZON_DYNAMODB : The data source is an Amazon DynamoDB table.
  • AMAZON_ELASTICSEARCH : The data source is an Amazon OpenSearch Service domain.
  • AMAZON_EVENTBRIDGE : The data source is an Amazon EventBridge event bus.
  • AMAZON_OPENSEARCH_SERVICE : The data source is an Amazon OpenSearch Service domain.
  • AMAZON_BEDROCK_RUNTIME : The data source is the Amazon Bedrock runtime.
  • NONE : There is no data source. This type is used when you wish to invoke a GraphQL operation without connecting to a data source, such as performing data transformation with resolvers or triggering a subscription to be invoked from a mutation.
  • HTTP : The data source is an HTTP endpoint.
  • RELATIONAL_DATABASE : The data source is a relational database.


75
76
77
# File 'app_sync/cfn_data_source_props.rb', line 75

def type
  @type
end

Class Method Details

.jsii_propertiesObject



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'app_sync/cfn_data_source_props.rb', line 136

def self.jsii_properties
  {
    :api_id => "apiId",
    :name => "name",
    :type => "type",
    :description => "description",
    :dynamo_db_config => "dynamoDbConfig",
    :elasticsearch_config => "elasticsearchConfig",
    :event_bridge_config => "eventBridgeConfig",
    :http_config => "httpConfig",
    :lambda_config => "lambdaConfig",
    :metrics_config => "metricsConfig",
    :open_search_service_config => "openSearchServiceConfig",
    :relational_database_config => "relationalDatabaseConfig",
    :service_role_arn => "serviceRoleArn",
  }
end

Instance Method Details

#to_jsiiObject



154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
# File 'app_sync/cfn_data_source_props.rb', line 154

def to_jsii
  result = {}
  result.merge!({
    "apiId" => @api_id,
    "name" => @name,
    "type" => @type,
    "description" => @description,
    "dynamoDbConfig" => @dynamo_db_config,
    "elasticsearchConfig" => @elasticsearch_config,
    "eventBridgeConfig" => @event_bridge_config,
    "httpConfig" => @http_config,
    "lambdaConfig" => @lambda_config,
    "metricsConfig" => @metrics_config,
    "openSearchServiceConfig" => @open_search_service_config,
    "relationalDatabaseConfig" => @relational_database_config,
    "serviceRoleArn" => @service_role_arn,
  })
  result.compact
end