User-defined types (UDTs)
UDT – A grouping of fields and data types that you can use to define a single column in Amazon Keyspaces. Valid data types for UDTs are all supported Cassandra data types, including collections and other UDTs that you've already created in the same keyspace. For more information about supported Cassandra data types, see Cassandra data type support.
user_defined_type::= udt_name udt_name::= [ keyspace_name '.' ] identifier
Statements for types
CREATE TYPE
Use the CREATE TYPE statement to create a new type.
Syntax
create_type_statement ::= CREATE TYPE [ IF NOT EXISTS ] udt_name '('field_definition ( ',' field_definition)* ')' field_definition::= identifier cql_type
Where:
- 
                    IF NOT EXISTSpreventsCREATE TYPEfrom failing if the type already exists. (Optional)
- 
                    udt_nameis the fully-qualified name of the UDT in type format, for examplemy_keyspace.my_type. If you define the current keyspace with theUSEstatement, you don't need to specify the keyspace name.
- field_definitionconsists of a name and a type.
The following table shows examples of allowed UDT names. The first columns shows how to enter the name when you create 
the type, the second column shows how Amazon Keyspaces formats the name internally. Amazon Keyspaces expects the formatted name for operations like GetType.
| Entered name | Formatted name | Note | 
|---|---|---|
| MY_UDT | my_udt | Without double-quotes, Amazon Keyspaces converts all upper-case characters to lower-case. | 
| "MY_UDT" | MY_UDT | With double-quotes, Amazon Keyspaces respects the upper-case characters, and removes the double-quotes from the formatted name. | 
| "1234" | 1234 | With double-quotes, the name can begin with a number, and Amazon Keyspaces removes the double-quotes from the formatted name. | 
| "Special_Ch@r@cters<>!!" | Special_Ch@r@cters<>!! | With double-quotes, the name can contain special characters, and Amazon Keyspaces removes the double-quotes from the formatted name. | 
| "nested""""""quotes" | nested"""quotes | Amazon Keyspaces removes the outer double-quotes and the escape double-quotes from the formatted name. | 
Examples
CREATE TYPE my_keyspace.phone ( country_code int, number text );
You can nest UDTs if the nested UDT is frozen. For more information about default values and quotas for types, see Amazon Keyspaces UDT quotas and default values.
CREATE TYPE my_keyspace.user ( first_name text, last_name text, phones FROZEN<phone> );
For more code examples that show how to create UDTs, see User-defined types (UDTs) in Amazon Keyspaces.
DROP TYPE
Use the DROP TYPE statement to delete a UDT. You can only delete a type that's not in use
            by another type or table.
Syntax
drop_type_statement ::= DROP TYPE [ IF EXISTS ] udt_name
Where:
- 
                    IF EXISTSpreventsDROP TYPEfrom failing if the type doesn't exist. (Optional)
- 
                    udt_nameis the fully-qualified name of the UDT in type format, for examplemy_keyspace.my_type. If you define the current keyspace with theUSEstatement, you don't need to specify the keyspace name.
Example
DROP TYPE udt_name;