Class IcebergSchemaV2
- All Implemented Interfaces:
Serializable,SdkPojo,ToCopyableBuilder<IcebergSchemaV2.Builder,IcebergSchemaV2>
Contains details about the schema for an Iceberg table using the V2 format. This schema format supports nested and
complex data types such as struct, list, and map, in addition to primitive
types.
- See Also:
-
Nested Class Summary
Nested Classes -
Method Summary
Modifier and TypeMethodDescriptionstatic IcebergSchemaV2.Builderbuilder()final booleanfinal booleanequalsBySdkFields(Object obj) Indicates whether some other object is "equal to" this one by SDK fields.final List<SchemaV2Field> fields()The schema fields for the table.final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz) final booleanFor responses, this returns true if the service returned a value for the Fields property.final inthashCode()final booleanFor responses, this returns true if the service returned a value for the IdentifierFieldIds property.A list of field IDs that are used as the identifier fields for the table.final IntegerschemaId()An optional unique identifier for the schema.static Class<? extends IcebergSchemaV2.Builder> Take this object and create a builder that contains all of the current property values of this object.final StringtoString()Returns a string representation of this object.final SchemaV2FieldTypetype()The type of the top-level schema, which is always astructtype as defined in the Apache Iceberg specification.final StringThe type of the top-level schema, which is always astructtype as defined in the Apache Iceberg specification.Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
Method Details
-
type
The type of the top-level schema, which is always a
structtype as defined in the Apache Iceberg specification. This value must bestruct.If the service returns an enum value that is not available in the current SDK version,
typewill returnSchemaV2FieldType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromtypeAsString().- Returns:
- The type of the top-level schema, which is always a
structtype as defined in the Apache Iceberg specification. This value must bestruct. - See Also:
-
typeAsString
The type of the top-level schema, which is always a
structtype as defined in the Apache Iceberg specification. This value must bestruct.If the service returns an enum value that is not available in the current SDK version,
typewill returnSchemaV2FieldType.UNKNOWN_TO_SDK_VERSION. The raw value returned by the service is available fromtypeAsString().- Returns:
- The type of the top-level schema, which is always a
structtype as defined in the Apache Iceberg specification. This value must bestruct. - See Also:
-
hasFields
public final boolean hasFields()For responses, this returns true if the service returned a value for the Fields property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
fields
The schema fields for the table. Each field defines a column in the table, including its name, type, and whether it is required.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasFields()method.- Returns:
- The schema fields for the table. Each field defines a column in the table, including its name, type, and whether it is required.
-
schemaId
An optional unique identifier for the schema. Schema IDs are used by Apache Iceberg to track schema evolution.
- Returns:
- An optional unique identifier for the schema. Schema IDs are used by Apache Iceberg to track schema evolution.
-
hasIdentifierFieldIds
public final boolean hasIdentifierFieldIds()For responses, this returns true if the service returned a value for the IdentifierFieldIds property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified. -
identifierFieldIds
A list of field IDs that are used as the identifier fields for the table. Identifier fields uniquely identify a row in the table.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasIdentifierFieldIds()method.- Returns:
- A list of field IDs that are used as the identifier fields for the table. Identifier fields uniquely identify a row in the table.
-
toBuilder
Description copied from interface:ToCopyableBuilderTake this object and create a builder that contains all of the current property values of this object.- Specified by:
toBuilderin interfaceToCopyableBuilder<IcebergSchemaV2.Builder,IcebergSchemaV2> - Returns:
- a builder for type T
-
builder
-
serializableBuilderClass
-
hashCode
-
equals
-
equalsBySdkFields
Description copied from interface:SdkPojoIndicates whether some other object is "equal to" this one by SDK fields. An SDK field is a modeled, non-inherited field in anSdkPojoclass, and is generated based on a service model.If an
SdkPojoclass does not have any inherited fields,equalsBySdkFieldsandequalsare essentially the same.- Specified by:
equalsBySdkFieldsin interfaceSdkPojo- Parameters:
obj- the object to be compared with- Returns:
- true if the other object equals to this object by sdk fields, false otherwise.
-
toString
-
getValueForField
-
sdkFields
-
sdkFieldNameToField
- Specified by:
sdkFieldNameToFieldin interfaceSdkPojo- Returns:
- The mapping between the field name and its corresponding field.
-