Class: AWSCDK::Athena::CfnDataCatalogProps

Inherits:
Jsii::Struct
  • Object
show all
Defined in:
athena/cfn_data_catalog_props.rb

Overview

Properties for defining a CfnDataCatalog.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, type:, connection_type: nil, description: nil, error: nil, parameters: nil, status: nil, tags: nil) ⇒ CfnDataCatalogProps

Returns a new instance of CfnDataCatalogProps.

Parameters:

  • name (String)

    The name of the data catalog.

  • type (String)

    The type of data catalog: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore.

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

    The type of connection for a FEDERATED data catalog (for example, REDSHIFT , MYSQL , or SQLSERVER ).

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

    A description of the data catalog.

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

    Text of the error that occurred during data catalog creation or deletion.

  • parameters (AWSCDK::IResolvable, Hash{String => String}, nil) (defaults to: nil)

    Specifies the Lambda function or functions to use for creating the data catalog.

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

    The status of the creation or deletion of the data catalog.

  • tags (Array<AWSCDK::CfnTag>, nil) (defaults to: nil)

    The tags (key-value pairs) to associate with this resource.



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

def initialize(name:, type:, connection_type: nil, description: nil, error: nil, parameters: nil, status: nil, tags: nil)
  @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")
  @connection_type = connection_type
  Jsii::Type.check_type(@connection_type, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "connectionType") unless @connection_type.nil?
  @description = description
  Jsii::Type.check_type(@description, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "description") unless @description.nil?
  @error = error
  Jsii::Type.check_type(@error, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "error") unless @error.nil?
  @parameters = parameters
  Jsii::Type.check_type(@parameters, JSON.parse(Base64.strict_decode64("eyJ1bmlvbiI6eyJ0eXBlcyI6W3siZnFuIjoiYXdzLWNkay1saWIuSVJlc29sdmFibGUifSx7ImNvbGxlY3Rpb24iOnsiZWxlbWVudHR5cGUiOnsicHJpbWl0aXZlIjoic3RyaW5nIn0sImtpbmQiOiJtYXAifX1dfX0=")), "parameters") unless @parameters.nil?
  @status = status
  Jsii::Type.check_type(@status, JSON.parse(Base64.strict_decode64("eyJwcmltaXRpdmUiOiJzdHJpbmcifQ==")), "status") unless @status.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

#connection_typeString? (readonly)

The type of connection for a FEDERATED data catalog (for example, REDSHIFT , MYSQL , or SQLSERVER ).

For information about individual connectors, see Available data source connectors .



54
55
56
# File 'athena/cfn_data_catalog_props.rb', line 54

def connection_type
  @connection_type
end

#descriptionString? (readonly)

A description of the data catalog.



59
60
61
# File 'athena/cfn_data_catalog_props.rb', line 59

def description
  @description
end

#errorString? (readonly)

Text of the error that occurred during data catalog creation or deletion.



64
65
66
# File 'athena/cfn_data_catalog_props.rb', line 64

def error
  @error
end

#nameString (readonly)

The name of the data catalog.

The catalog name must be unique for the AWS account and can use a maximum of 128 alphanumeric, underscore, at sign, or hyphen characters.



42
43
44
# File 'athena/cfn_data_catalog_props.rb', line 42

def name
  @name
end

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

Specifies the Lambda function or functions to use for creating the data catalog.

This is a mapping whose values depend on the catalog type.

  • For the HIVE data catalog type, use the following syntax. The metadata-function parameter is required. The sdk-version parameter is optional and defaults to the currently supported version.

metadata-function= *lambda_arn* , sdk-version= *version_number*

  • For the LAMBDA data catalog type, use one of the following sets of required parameters, but not both.
  • If you have one Lambda function that processes metadata and another for reading the actual data, use the following syntax. Both parameters are required.

metadata-function= *lambda_arn* , record-function= *lambda_arn*

  • If you have a composite Lambda function that processes both metadata and data, use the following syntax to specify your Lambda function.

function= *lambda_arn*

  • The GLUE type takes a catalog ID parameter and is required. The *catalog_id* is the account ID of the AWS account to which the AWS Glue Data Catalog belongs.

catalog-id= *catalog_id*

  • The GLUE data catalog type also applies to the default AwsDataCatalog that already exists in your account, of which you can have only one and cannot modify.
  • The FEDERATED data catalog type uses one of the following parameters, but not both. Use connection-arn for an existing AWS Glue connection. Use connection-type and connection-properties to specify the configuration setting for a new connection.
  • connection-arn: *<glue_connection_arn_to_reuse>*
  • lambda-role-arn (optional): The execution role to use for the Lambda function. If not provided, one is created.
  • connection-type:MYSQL|REDSHIFT|...., connection-properties:" *<json_string>* "

For <json_string> , use escaped JSON text, as in the following example.

"{\"spill_bucket\":\"my_spill\",\"spill_prefix\":\"athena-spill\",\"host\":\"abc12345.snowflakecomputing.com\",\"port\":\"1234\",\"warehouse\":\"DEV_WH\",\"database\":\"TEST\",\"schema\":\"PUBLIC\",\"SecretArn\":\"arn:aws:secretsmanager:ap-south-1:111122223333:secret:snowflake-XHb67j\"}"



98
99
100
# File 'athena/cfn_data_catalog_props.rb', line 98

def parameters
  @parameters
end

#statusString? (readonly)

The status of the creation or deletion of the data catalog.

  • The LAMBDA , GLUE , and HIVE data catalog types are created synchronously. Their status is either CREATE_COMPLETE or CREATE_FAILED .
  • The FEDERATED data catalog type is created asynchronously.

Data catalog creation status:

  • CREATE_IN_PROGRESS : Federated data catalog creation in progress.
  • CREATE_COMPLETE : Data catalog creation complete.
  • CREATE_FAILED : Data catalog could not be created.
  • CREATE_FAILED_CLEANUP_IN_PROGRESS : Federated data catalog creation failed and is being removed.
  • CREATE_FAILED_CLEANUP_COMPLETE : Federated data catalog creation failed and was removed.
  • CREATE_FAILED_CLEANUP_FAILED : Federated data catalog creation failed but could not be removed.

Data catalog deletion status:

  • DELETE_IN_PROGRESS : Federated data catalog deletion in progress.
  • DELETE_COMPLETE : Federated data catalog deleted.
  • DELETE_FAILED : Federated data catalog could not be deleted.


121
122
123
# File 'athena/cfn_data_catalog_props.rb', line 121

def status
  @status
end

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

The tags (key-value pairs) to associate with this resource.



126
127
128
# File 'athena/cfn_data_catalog_props.rb', line 126

def tags
  @tags
end

#typeString (readonly)

The type of data catalog: LAMBDA for a federated catalog, GLUE for AWS Glue Catalog, or HIVE for an external hive metastore.



47
48
49
# File 'athena/cfn_data_catalog_props.rb', line 47

def type
  @type
end

Class Method Details

.jsii_propertiesObject



128
129
130
131
132
133
134
135
136
137
138
139
# File 'athena/cfn_data_catalog_props.rb', line 128

def self.jsii_properties
  {
    :name => "name",
    :type => "type",
    :connection_type => "connectionType",
    :description => "description",
    :error => "error",
    :parameters => "parameters",
    :status => "status",
    :tags => "tags",
  }
end

Instance Method Details

#to_jsiiObject



141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'athena/cfn_data_catalog_props.rb', line 141

def to_jsii
  result = {}
  result.merge!({
    "name" => @name,
    "type" => @type,
    "connectionType" => @connection_type,
    "description" => @description,
    "error" => @error,
    "parameters" => @parameters,
    "status" => @status,
    "tags" => @tags,
  })
  result.compact
end