ETP v1.2 messages and objects
This section documents the implemented protocols and data types from ETP v1.2. We aim to support the same subset of ETP v1.2 as the OSDU open-etp-server. Documentation for ETP v1.2 is found here: https://publications.opengroup.org/standards/energistics-standards/energistics-transfer-protocol/v234.
Protocol 0: Core
energistics.etp.v12.protocol.core
__all__
module-attribute
__all__ = [
"Acknowledge",
"Authorize",
"AuthorizeResponse",
"CloseSession",
"OpenSession",
"Ping",
"Pong",
"ProtocolException",
"RequestSession",
]
Acknowledge
Authorize
Bases: ETPBaseProtocolModel
AuthorizeResponse
Bases: ETPBaseProtocolModel
model_post_init
Source code in src/energistics/etp/v12/protocol/core/authorize_response.py
CloseSession
OpenSession
Bases: ETPBaseProtocolModel
application_name
class-attribute
instance-attribute
application_version
class-attribute
instance-attribute
server_instance_id
class-attribute
instance-attribute
server_instance_id: Uuid = Field(alias='serverInstanceId')
supported_protocols
class-attribute
instance-attribute
supported_protocols: list[SupportedProtocol] = Field(alias="supportedProtocols")
supported_data_objects
class-attribute
instance-attribute
supported_data_objects: list[SupportedDataObject] = Field(
alias="supportedDataObjects"
)
supported_compression
class-attribute
instance-attribute
supported_formats
class-attribute
instance-attribute
current_date_time
class-attribute
instance-attribute
current_date_time: int = Field(
alias="currentDateTime",
default_factory=lambda: int(timestamp() * 1000000.0),
)
earliest_retained_change_time
class-attribute
instance-attribute
endpoint_capabilities
class-attribute
instance-attribute
endpoint_capabilities: Mapping[EndpointCapabilityKind, DataValue] = Field(
alias="endpointCapabilities", default_factory=dict
)
Ping
Bases: ETPBaseProtocolModel
Pong
Bases: ETPBaseProtocolModel
ProtocolException
Bases: ETPBaseProtocolModel
errors
class-attribute
instance-attribute
errors: Mapping[str, ErrorInfo] = Field(default_factory=dict)
model_post_init
Source code in src/energistics/etp/v12/protocol/core/protocol_exception.py
RequestSession
Bases: ETPBaseProtocolModel
application_name
class-attribute
instance-attribute
application_version
class-attribute
instance-attribute
client_instance_id
class-attribute
instance-attribute
client_instance_id: Uuid = Field(alias='clientInstanceId')
requested_protocols
class-attribute
instance-attribute
requested_protocols: list[SupportedProtocol] = Field(alias="requestedProtocols")
supported_data_objects
class-attribute
instance-attribute
supported_data_objects: list[SupportedDataObject] = Field(
alias="supportedDataObjects"
)
supported_compression
class-attribute
instance-attribute
supported_formats
class-attribute
instance-attribute
current_date_time
class-attribute
instance-attribute
current_date_time: int = Field(
alias="currentDateTime",
default_factory=lambda: int(timestamp() * 1000000.0),
)
earliest_retained_change_time
class-attribute
instance-attribute
server_authorization_required
class-attribute
instance-attribute
endpoint_capabilities
class-attribute
instance-attribute
endpoint_capabilities: Mapping[EndpointCapabilityKind, DataValue] = Field(
alias="endpointCapabilities", default_factory=dict
)
Protocol 3: Discovery
energistics.etp.v12.protocol.discovery
__all__
module-attribute
__all__ = [
"GetDeletedResources",
"GetDeletedResourcesResponse",
"GetResources",
"GetResourcesEdgesResponse",
"GetResourcesResponse",
]
GetDeletedResources
Bases: ETPBaseProtocolModel
delete_time_filter
class-attribute
instance-attribute
GetDeletedResourcesResponse
Bases: ETPBaseProtocolModel
deleted_resources
class-attribute
instance-attribute
deleted_resources: list[DeletedResource] = Field(
alias="deletedResources", default_factory=list
)
GetResources
Bases: ETPBaseProtocolModel
count_objects
class-attribute
instance-attribute
store_last_write_filter
class-attribute
instance-attribute
active_status_filter
class-attribute
instance-attribute
active_status_filter: ActiveStatusKind | None = Field(
alias="activeStatusFilter", default=None
)
GetResourcesEdgesResponse
Bases: ETPBaseProtocolModel
GetResourcesResponse
Bases: ETPBaseProtocolModel
resources
class-attribute
instance-attribute
resources: list[Resource] = Field(default_factory=list)
Protocol 4: Store
energistics.etp.v12.protocol.store
__all__
module-attribute
__all__ = [
"Chunk",
"DeleteDataObjects",
"DeleteDataObjectsResponse",
"GetDataObjects",
"GetDataObjectsResponse",
"PutDataObjects",
"PutDataObjectsResponse",
]
Chunk
Bases: ETPBaseProtocolModel
DeleteDataObjects
Bases: ETPBaseProtocolModel
DeleteDataObjectsResponse
Bases: ETPBaseProtocolModel
GetDataObjects
Bases: ETPBaseProtocolModel
GetDataObjectsResponse
Bases: ETPBaseProtocolModel
data_objects
class-attribute
instance-attribute
data_objects: Mapping[str, DataObject] = Field(
alias="dataObjects", default_factory=dict
)
PutDataObjects
Bases: ETPBaseProtocolModel
data_objects
class-attribute
instance-attribute
data_objects: Mapping[str, DataObject] = Field(alias='dataObjects')
PutDataObjectsResponse
Bases: ETPBaseProtocolModel
Protocol 9: DataArray
energistics.etp.v12.protocol.data_array
__all__
module-attribute
__all__ = [
"GetDataArrayMetadata",
"GetDataArrayMetadataResponse",
"GetDataArrays",
"GetDataArraysResponse",
"GetDataSubarrays",
"GetDataSubarraysResponse",
"PutDataArrays",
"PutDataArraysResponse",
"PutDataSubarrays",
"PutDataSubarraysResponse",
"PutUninitializedDataArrays",
"PutUninitializedDataArraysResponse",
]
GetDataArrayMetadata
Bases: ETPBaseProtocolModel
data_arrays
class-attribute
instance-attribute
data_arrays: Mapping[str, DataArrayIdentifier] = Field(alias='dataArrays')
GetDataArrayMetadataResponse
Bases: ETPBaseProtocolModel
array_metadata
class-attribute
instance-attribute
array_metadata: Mapping[str, DataArrayMetadata] = Field(
alias="arrayMetadata", default_factory=dict
)
GetDataArrays
Bases: ETPBaseProtocolModel
data_arrays
class-attribute
instance-attribute
data_arrays: Mapping[str, DataArrayIdentifier] = Field(alias='dataArrays')
GetDataArraysResponse
Bases: ETPBaseProtocolModel
data_arrays
class-attribute
instance-attribute
data_arrays: Mapping[str, DataArray] = Field(
alias="dataArrays", default_factory=dict
)
GetDataSubarrays
Bases: ETPBaseProtocolModel
data_subarrays
class-attribute
instance-attribute
data_subarrays: Mapping[str, GetDataSubarraysType] = Field(
alias="dataSubarrays"
)
GetDataSubarraysResponse
Bases: ETPBaseProtocolModel
data_subarrays
class-attribute
instance-attribute
data_subarrays: Mapping[str, DataArray] = Field(
alias="dataSubarrays", default_factory=dict
)
PutDataArrays
Bases: ETPBaseProtocolModel
data_arrays
class-attribute
instance-attribute
data_arrays: Mapping[str, PutDataArraysType] = Field(alias='dataArrays')
PutDataArraysResponse
PutDataSubarrays
Bases: ETPBaseProtocolModel
data_subarrays
class-attribute
instance-attribute
data_subarrays: Mapping[str, PutDataSubarraysType] = Field(
alias="dataSubarrays"
)
PutDataSubarraysResponse
PutUninitializedDataArrays
Bases: ETPBaseProtocolModel
data_arrays
class-attribute
instance-attribute
data_arrays: Mapping[str, PutUninitializedDataArrayType] = Field(
alias="dataArrays"
)
PutUninitializedDataArraysResponse
Protocol 18: Transaction
energistics.etp.v12.protocol.transaction
__all__
module-attribute
__all__ = [
"CommitTransaction",
"CommitTransactionResponse",
"RollbackTransaction",
"RollbackTransactionResponse",
"StartTransaction",
"StartTransactionResponse",
]
CommitTransaction
Bases: ETPBaseProtocolModel
transaction_uuid
class-attribute
instance-attribute
transaction_uuid: Uuid = Field(alias='transactionUuid')
CommitTransactionResponse
Bases: ETPBaseProtocolModel
transaction_uuid
class-attribute
instance-attribute
transaction_uuid: Uuid = Field(alias='transactionUuid')
RollbackTransaction
Bases: ETPBaseProtocolModel
transaction_uuid
class-attribute
instance-attribute
transaction_uuid: Uuid = Field(alias='transactionUuid')
RollbackTransactionResponse
Bases: ETPBaseProtocolModel
transaction_uuid
class-attribute
instance-attribute
transaction_uuid: Uuid = Field(alias='transactionUuid')
StartTransaction
Bases: ETPBaseProtocolModel
StartTransactionResponse
Bases: ETPBaseProtocolModel
transaction_uuid
class-attribute
instance-attribute
transaction_uuid: Uuid = Field(alias='transactionUuid')
Protocol 24: Dataspace
energistics.etp.v12.protocol.dataspace
__all__
module-attribute
__all__ = [
"DeleteDataspaces",
"DeleteDataspacesResponse",
"GetDataspaces",
"GetDataspacesResponse",
"PutDataspaces",
"PutDataspacesResponse",
]
DeleteDataspaces
Bases: ETPBaseProtocolModel
model_post_init
Source code in src/energistics/etp/v12/protocol/dataspace/delete_dataspaces.py
DeleteDataspacesResponse
GetDataspaces
Bases: ETPBaseProtocolModel
GetDataspacesResponse
Bases: ETPBaseProtocolModel
dataspaces
class-attribute
instance-attribute
dataspaces: list[Dataspace] = Field(default_factory=list)
PutDataspaces
Bases: ETPBaseProtocolModel
ETP Datatypes
energistics.etp.v12.datatypes
__all__
module-attribute
__all__ = [
"AnyArray",
"AnyArrayType",
"AnyLogicalArrayType",
"AnySparseArray",
"AnySubarray",
"ArrayOfBoolean",
"ArrayOfBytes",
"ArrayOfDouble",
"ArrayOfFloat",
"ArrayOfInt",
"ArrayOfLong",
"ArrayOfNullableBoolean",
"ArrayOfNullableInt",
"ArrayOfNullableLong",
"ArrayOfString",
"Contact",
"DataObjectCapabilityKind",
"DataValue",
"ErrorCode",
"ErrorInfo",
"MessageHeader",
"ProtocolCapabilityKind",
"ServerCapabilities",
"SupportedDataObject",
"SupportedProtocol",
"Uuid",
"Version",
"EndpointCapabilityKind",
]
AnyArray
AnyArrayType
Bases: StrEnum
AnyLogicalArrayType
Bases: StrEnum
AnySparseArray
Bases: ETPBaseModel
AnySubarray
Bases: ETPBaseModel
ArrayOfBoolean
ArrayOfBytes
ArrayOfDouble
ArrayOfFloat
ArrayOfInt
ArrayOfLong
ArrayOfNullableBoolean
ArrayOfNullableInt
ArrayOfNullableLong
ArrayOfString
Contact
Bases: ETPBaseModel
organization_name
class-attribute
instance-attribute
contact_name
class-attribute
instance-attribute
contact_phone
class-attribute
instance-attribute
DataObjectCapabilityKind
Bases: StrEnum
ACTIVE_TIMEOUT_PERIOD
class-attribute
instance-attribute
MAX_CONTAINED_DATA_OBJECT_COUNT
class-attribute
instance-attribute
ORPHANED_CHILDREN_PRUNED_ON_DELETE
class-attribute
instance-attribute
MAX_SECONDARY_INDEX_COUNT
class-attribute
instance-attribute
get_valid_type
Source code in src/energistics/etp/v12/datatypes/data_object_capability_kind.py
DataValue
EndpointCapabilityKind
Bases: StrEnum
ACTIVE_TIMEOUT_PERIOD
class-attribute
instance-attribute
AUTHORIZATION_DETAILS
class-attribute
instance-attribute
CHANGE_PROPAGATION_PERIOD
class-attribute
instance-attribute
CHANGE_RETENTION_PERIOD
class-attribute
instance-attribute
MAX_CONCURRENT_MULTIPART
class-attribute
instance-attribute
MAX_SESSION_CLIENT_COUNT
class-attribute
instance-attribute
MAX_SESSION_GLOBAL_COUNT
class-attribute
instance-attribute
MAX_WEB_SOCKET_FRAME_PAYLOAD_SIZE
class-attribute
instance-attribute
MAX_WEB_SOCKET_MESSAGE_PAYLOAD_SIZE
class-attribute
instance-attribute
MULTIPART_MESSAGE_TIMEOUT_PERIOD
class-attribute
instance-attribute
RESPONSE_TIMEOUT_PERIOD
class-attribute
instance-attribute
REQUEST_SESSION_TIMEOUT_PERIOD
class-attribute
instance-attribute
SESSION_ESTABLISHMENT_TIMEOUT_PERIOD
class-attribute
instance-attribute
SUPPORTS_ALTERNATE_REQUEST_URIS
class-attribute
instance-attribute
SUPPORTS_MESSAGE_HEADER_EXTENSIONS
class-attribute
instance-attribute
MAX_MESSAGE_PAYLOAD_UNCOMPRESSED_SIZE
class-attribute
instance-attribute
get_valid_type
get_valid_type() -> Type[bool | int | ArrayOfString]
Source code in src/energistics/etp/v12/datatypes/endpoint_capability_kind.py
ErrorCode
Bases: IntEnum
ErrorInfo
Bases: ETPBaseModel
MessageHeader
Bases: ETPBaseModel
correlation_id
class-attribute
instance-attribute
message_flags
class-attribute
instance-attribute
check_allowed_compression
Source code in src/energistics/etp/v12/datatypes/message_header.py
validate_message_id
classmethod
from_etp_protocol_body
classmethod
from_etp_protocol_body(
body: Type[ETPBaseProtocolModel],
message_id: int,
message_flags: MessageHeaderFlags,
correlation_id: int = 0,
) -> Self
Source code in src/energistics/etp/v12/datatypes/message_header.py
is_final_message
is_compressed
requests_acknowledgement
ProtocolCapabilityKind
Bases: StrEnum
FRAME_CHANGE_DETECTION_PERIOD
class-attribute
instance-attribute
MAX_FRAME_RESPONSE_ROW_COUNT
class-attribute
instance-attribute
MAX_RANGE_CHANNEL_COUNT
class-attribute
instance-attribute
MAX_RANGE_DATA_ITEM_COUNT
class-attribute
instance-attribute
MAX_STREAMING_CHANNELS_SESSION_COUNT
class-attribute
instance-attribute
MAX_SUBSCRIPTION_SESSION_COUNT
class-attribute
instance-attribute
MAX_TRANSACTION_COUNT
class-attribute
instance-attribute
SUPPORTS_SECONDARY_INDEX_FILTERING
class-attribute
instance-attribute
TRANSACTION_TIMOUT_PERIOD
class-attribute
instance-attribute
ServerCapabilities
Bases: ETPBaseModel
application_name
class-attribute
instance-attribute
application_version
class-attribute
instance-attribute
contact_information
class-attribute
instance-attribute
contact_information: Contact = Field(alias='contactInformation')
supported_compression
class-attribute
instance-attribute
supported_encodings
class-attribute
instance-attribute
supported_encodings: list[str] = Field(
alias="supportedEncodings", default_factory=lambda: ["binary"]
)
supported_formats
class-attribute
instance-attribute
supported_data_objects
class-attribute
instance-attribute
supported_data_objects: list[SupportedDataObject] = Field(
alias="supportedDataObjects"
)
supported_protocols
class-attribute
instance-attribute
supported_protocols: list[SupportedProtocol] = Field(alias="supportedProtocols")
endpoint_capabilities
class-attribute
instance-attribute
endpoint_capabilities: Mapping[EndpointCapabilityKind, DataValue] = Field(
alias="endpointCapabilities", default_factory=dict
)
SupportedDataObject
Bases: ETPBaseModel
qualified_type
class-attribute
instance-attribute
data_object_capabilities
class-attribute
instance-attribute
data_object_capabilities: Mapping[DataObjectCapabilityKind, DataValue] = Field(
alias="dataObjectCapabilities", validate_default=True, default={}
)
check_qualified_type_and_capabilities
Source code in src/energistics/etp/v12/datatypes/supported_data_object.py
SupportedProtocol
Bases: ETPBaseModel
protocol_version
class-attribute
instance-attribute
protocol_version: Version = Field(
alias="protocolVersion",
validate_default=True,
default=Version(major=1, minor=2, revision=0, patch=0),
)
protocol_capabilities
class-attribute
instance-attribute
protocol_capabilities: Mapping[ProtocolCapabilityKind, DataValue] = Field(
alias="protocolCapabilities", validate_default=True, default_factory=dict
)
check_protocol_and_role
Source code in src/energistics/etp/v12/datatypes/supported_protocol.py
Uuid
Version
Bases: ETPBaseModel
Data array types
energistics.etp.v12.datatypes.data_array_types
__all__
module-attribute
__all__ = [
"DataArray",
"DataArrayIdentifier",
"DataArrayMetadata",
"GetDataSubarraysType",
"PutDataArraysType",
"PutDataSubarraysType",
"PutUninitializedDataArrayType",
]
DataArray
Bases: ETPBaseModel
to_numpy_array
Source code in src/energistics/etp/v12/datatypes/data_array_types/data_array.py
DataArrayIdentifier
Bases: ETPBaseModel
DataArrayMetadata
Bases: ETPBaseModel
preferred_subarray_dimensions
class-attribute
instance-attribute
preferred_subarray_dimensions: list[int] = Field(
alias="preferredSubarrayDimensions", default_factory=list
)
transport_array_type
class-attribute
instance-attribute
transport_array_type: AnyArrayType = Field(alias='transportArrayType')
logical_array_type
class-attribute
instance-attribute
logical_array_type: AnyLogicalArrayType = Field(alias='logicalArrayType')
store_last_write
class-attribute
instance-attribute
custom_data
class-attribute
instance-attribute
custom_data: Mapping[str, DataValue] = Field(
alias="customData", default_factory=dict
)
GetDataSubarraysType
Bases: ETPBaseModel
PutDataArraysType
Bases: ETPBaseModel
custom_data
class-attribute
instance-attribute
custom_data: Mapping[str, DataValue] = Field(
alias="customData", default_factory=dict
)
PutDataSubarraysType
Bases: ETPBaseModel
PutUninitializedDataArrayType
Bases: ETPBaseModel
Object
energistics.etp.v12.datatypes.object
__all__
module-attribute
__all__ = [
"ActiveStatusKind",
"ContextInfo",
"ContextScopeKind",
"DataObject",
"Dataspace",
"DeletedResource",
"Edge",
"PutResponse",
"RelationshipKind",
"Resource",
]
ActiveStatusKind
ContextInfo
Bases: ETPBaseModel
include_secondary_targets
class-attribute
instance-attribute
ContextScopeKind
Bases: StrEnum
DataObject
Bases: ETPBaseModel
blob_id
class-attribute
instance-attribute
blob_id: Uuid | None = Field(alias='blobId', default=None)
check_blob_and_data
Source code in src/energistics/etp/v12/datatypes/object/data_object.py
Dataspace
Bases: ETPBaseModel
store_last_write
class-attribute
instance-attribute
custom_data
class-attribute
instance-attribute
custom_data: Mapping[str, DataValue] = Field(
alias="customData", default_factory=dict
)
check_uri_and_path
Source code in src/energistics/etp/v12/datatypes/object/dataspace.py
DeletedResource
Bases: ETPBaseModel
custom_data
class-attribute
instance-attribute
custom_data: Mapping[str, DataValue] = Field(
alias="customData", default_factory=dict
)
Edge
Bases: ETPBaseModel
relationship_kind
class-attribute
instance-attribute
relationship_kind: RelationshipKind = Field(alias='relationshipKind')
custom_data
class-attribute
instance-attribute
custom_data: Mapping[str, DataValue] = Field(
alias="customData", default_factory=dict
)
check_uri
check_relationship_kind
Source code in src/energistics/etp/v12/datatypes/object/edge.py
PutResponse
Bases: ETPBaseModel
created_contained_object_uris
class-attribute
instance-attribute
created_contained_object_uris: list[str] = Field(
alias="createdContainedObjectUris", default_factory=list
)
deleted_contained_object_uris
class-attribute
instance-attribute
deleted_contained_object_uris: list[str] = Field(
alias="deletedContainedObjectUris", default_factory=list
)
RelationshipKind
Resource
Bases: ETPBaseModel
alternate_uris
class-attribute
instance-attribute
source_count
class-attribute
instance-attribute
target_count
class-attribute
instance-attribute
store_last_write
class-attribute
instance-attribute
active_status
class-attribute
instance-attribute
active_status: ActiveStatusKind = Field(alias='activeStatus')
custom_data
class-attribute
instance-attribute
custom_data: Mapping[str, DataValue] = Field(
alias="customData", default_factory=dict
)