diff --git a/.circleci/config.yml b/.circleci/config.yml index 7dfde03d4..e0cc7f884 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -113,8 +113,8 @@ workflows: name: python-<< matrix.python_version>> matrix: parameters: - python_version: ["3.9", "3.10", "3.11", "3.12"] - pydantic_version: ["2.10"] + python_version: ["3.10", "3.11", "3.12", "3.13"] + pydantic_version: ["2.12"] httpx_version: ["0.28"] - test: <<: *always-run @@ -122,31 +122,33 @@ workflows: matrix: parameters: python_version: ["3.12"] - pydantic_version: ["2.6", "2.7", "2.8", "2.9", "2.10"] + pydantic_version: ["2.6", "2.7", "2.8", "2.9", "2.10", "2.11", "2.12"] httpx_version: ["0.28"] - test: <<: *always-run name: httpx-<< matrix.httpx_version >> matrix: parameters: - python_version: ["3.12"] - pydantic_version: ["2.10"] + python_version: ["3.13"] + pydantic_version: ["2.8"] httpx_version: ["0.25", "0.26", "0.27", "0.28"] - black: <<: *always-run - circle-all: <<: *always-run requires: - - python-3.9 - python-3.10 - python-3.11 - python-3.12 + - python-3.13 - pydantic-2.6 - pydantic-2.7 - pydantic-2.8 - pydantic-2.9 - pydantic-2.10 + - pydantic-2.11 + - pydantic-2.12 - httpx-0.25 - httpx-0.26 diff --git a/README.md b/README.md index c2f00e4c8..e0d46a4de 100644 --- a/README.md +++ b/README.md @@ -811,12 +811,15 @@ Namespace | Resource | Operation | HTTP request | **MediaSets** | MediaSet | [**abort**](docs/v2/MediaSets/MediaSet.md#abort) | **POST** /v2/mediasets/{mediaSetRid}/transactions/{transactionId}/abort | **MediaSets** | MediaSet | [**commit**](docs/v2/MediaSets/MediaSet.md#commit) | **POST** /v2/mediasets/{mediaSetRid}/transactions/{transactionId}/commit | **MediaSets** | MediaSet | [**create**](docs/v2/MediaSets/MediaSet.md#create) | **POST** /v2/mediasets/{mediaSetRid}/transactions | +**MediaSets** | MediaSet | [**get_result**](docs/v2/MediaSets/MediaSet.md#get_result) | **GET** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transformationJobs/{transformationJobId}/result | **MediaSets** | MediaSet | [**get_rid_by_path**](docs/v2/MediaSets/MediaSet.md#get_rid_by_path) | **GET** /v2/mediasets/{mediaSetRid}/items/getRidByPath | +**MediaSets** | MediaSet | [**get_status**](docs/v2/MediaSets/MediaSet.md#get_status) | **GET** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transformationJobs/{transformationJobId} | **MediaSets** | MediaSet | [**info**](docs/v2/MediaSets/MediaSet.md#info) | **GET** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid} | **MediaSets** | MediaSet | [**metadata**](docs/v2/MediaSets/MediaSet.md#metadata) | **GET** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/metadata | **MediaSets** | MediaSet | [**read**](docs/v2/MediaSets/MediaSet.md#read) | **GET** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/content | **MediaSets** | MediaSet | [**read_original**](docs/v2/MediaSets/MediaSet.md#read_original) | **GET** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/original | **MediaSets** | MediaSet | [**reference**](docs/v2/MediaSets/MediaSet.md#reference) | **GET** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/reference | +**MediaSets** | MediaSet | [**transform**](docs/v2/MediaSets/MediaSet.md#transform) | **POST** /v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transform | **MediaSets** | MediaSet | [**upload**](docs/v2/MediaSets/MediaSet.md#upload) | **POST** /v2/mediasets/{mediaSetRid}/items | **MediaSets** | MediaSet | [**upload_media**](docs/v2/MediaSets/MediaSet.md#upload_media) | **PUT** /v2/mediasets/media/upload | **Ontologies** | Action | [**apply**](docs/v2/Ontologies/Action.md#apply) | **POST** /v2/ontologies/{ontology}/actions/{action}/apply | @@ -837,6 +840,7 @@ Namespace | Resource | Operation | HTTP request | **Ontologies** | MediaReferenceProperty | [**get_media_content**](docs/v2/Ontologies/MediaReferenceProperty.md#get_media_content) | **GET** /v2/ontologies/{ontology}/objects/{objectType}/{primaryKey}/media/{property}/content | **Ontologies** | MediaReferenceProperty | [**upload**](docs/v2/Ontologies/MediaReferenceProperty.md#upload) | **POST** /v2/ontologies/{ontology}/objectTypes/{objectType}/media/{property}/upload | **Ontologies** | ObjectType | [**get**](docs/v2/Ontologies/ObjectType.md#get) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType} | +**Ontologies** | ObjectType | [**get_full_metadata**](docs/v2/Ontologies/ObjectType.md#get_full_metadata) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType}/fullMetadata | **Ontologies** | ObjectType | [**get_outgoing_link_type**](docs/v2/Ontologies/ObjectType.md#get_outgoing_link_type) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType}/outgoingLinkTypes/{linkType} | **Ontologies** | ObjectType | [**list**](docs/v2/Ontologies/ObjectType.md#list) | **GET** /v2/ontologies/{ontology}/objectTypes | **Ontologies** | ObjectType | [**list_outgoing_link_types**](docs/v2/Ontologies/ObjectType.md#list_outgoing_link_types) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType}/outgoingLinkTypes | @@ -890,6 +894,8 @@ Namespace | Resource | Operation | HTTP request | **Streams** | Dataset | [**create**](docs/v2/Streams/Dataset.md#create) | **POST** /v2/streams/datasets/create | **Streams** | Stream | [**create**](docs/v2/Streams/Stream.md#create) | **POST** /v2/streams/datasets/{datasetRid}/streams | **Streams** | Stream | [**get**](docs/v2/Streams/Stream.md#get) | **GET** /v2/streams/datasets/{datasetRid}/streams/{streamBranchName} | +**Streams** | Stream | [**get_end_offsets**](docs/v2/Streams/Stream.md#get_end_offsets) | **GET** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getEndOffsets | +**Streams** | Stream | [**get_records**](docs/v2/Streams/Stream.md#get_records) | **GET** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getRecords | **Streams** | Stream | [**publish_binary_record**](docs/v2/Streams/Stream.md#publish_binary_record) | **POST** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/publishBinaryRecord | **Streams** | Stream | [**publish_record**](docs/v2/Streams/Stream.md#publish_record) | **POST** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/publishRecord | **Streams** | Stream | [**publish_records**](docs/v2/Streams/Stream.md#publish_records) | **POST** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/publishRecords | @@ -969,6 +975,7 @@ Namespace | Name | Import | **Admin** | [CertificateInfo](docs/v2/Admin/models/CertificateInfo.md) | `from foundry_sdk.v2.admin.models import CertificateInfo` | **Admin** | [CertificateUsageType](docs/v2/Admin/models/CertificateUsageType.md) | `from foundry_sdk.v2.admin.models import CertificateUsageType` | **Admin** | [CreateGroupRequest](docs/v2/Admin/models/CreateGroupRequest.md) | `from foundry_sdk.v2.admin.models import CreateGroupRequest` | +**Admin** | [CreateMarkingCategoryRequest](docs/v2/Admin/models/CreateMarkingCategoryRequest.md) | `from foundry_sdk.v2.admin.models import CreateMarkingCategoryRequest` | **Admin** | [CreateMarkingRequest](docs/v2/Admin/models/CreateMarkingRequest.md) | `from foundry_sdk.v2.admin.models import CreateMarkingRequest` | **Admin** | [CreateOrganizationRequest](docs/v2/Admin/models/CreateOrganizationRequest.md) | `from foundry_sdk.v2.admin.models import CreateOrganizationRequest` | **Admin** | [Enrollment](docs/v2/Admin/models/Enrollment.md) | `from foundry_sdk.v2.admin.models import Enrollment` | @@ -1008,8 +1015,13 @@ Namespace | Name | Import | **Admin** | [ListUsersResponse](docs/v2/Admin/models/ListUsersResponse.md) | `from foundry_sdk.v2.admin.models import ListUsersResponse` | **Admin** | [Marking](docs/v2/Admin/models/Marking.md) | `from foundry_sdk.v2.admin.models import Marking` | **Admin** | [MarkingCategory](docs/v2/Admin/models/MarkingCategory.md) | `from foundry_sdk.v2.admin.models import MarkingCategory` | +**Admin** | [MarkingCategoryDescription](docs/v2/Admin/models/MarkingCategoryDescription.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryDescription` | **Admin** | [MarkingCategoryId](docs/v2/Admin/models/MarkingCategoryId.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryId` | **Admin** | [MarkingCategoryName](docs/v2/Admin/models/MarkingCategoryName.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryName` | +**Admin** | [MarkingCategoryPermissions](docs/v2/Admin/models/MarkingCategoryPermissions.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryPermissions` | +**Admin** | [MarkingCategoryPermissionsIsPublic](docs/v2/Admin/models/MarkingCategoryPermissionsIsPublic.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryPermissionsIsPublic` | +**Admin** | [MarkingCategoryRole](docs/v2/Admin/models/MarkingCategoryRole.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryRole` | +**Admin** | [MarkingCategoryRoleAssignment](docs/v2/Admin/models/MarkingCategoryRoleAssignment.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryRoleAssignment` | **Admin** | [MarkingCategoryType](docs/v2/Admin/models/MarkingCategoryType.md) | `from foundry_sdk.v2.admin.models import MarkingCategoryType` | **Admin** | [MarkingMember](docs/v2/Admin/models/MarkingMember.md) | `from foundry_sdk.v2.admin.models import MarkingMember` | **Admin** | [MarkingName](docs/v2/Admin/models/MarkingName.md) | `from foundry_sdk.v2.admin.models import MarkingName` | @@ -1032,6 +1044,7 @@ Namespace | Name | Import | **Admin** | [RemoveOrganizationRoleAssignmentsRequest](docs/v2/Admin/models/RemoveOrganizationRoleAssignmentsRequest.md) | `from foundry_sdk.v2.admin.models import RemoveOrganizationRoleAssignmentsRequest` | **Admin** | [ReplaceGroupMembershipExpirationPolicyRequest](docs/v2/Admin/models/ReplaceGroupMembershipExpirationPolicyRequest.md) | `from foundry_sdk.v2.admin.models import ReplaceGroupMembershipExpirationPolicyRequest` | **Admin** | [ReplaceGroupProviderInfoRequest](docs/v2/Admin/models/ReplaceGroupProviderInfoRequest.md) | `from foundry_sdk.v2.admin.models import ReplaceGroupProviderInfoRequest` | +**Admin** | [ReplaceMarkingCategoryRequest](docs/v2/Admin/models/ReplaceMarkingCategoryRequest.md) | `from foundry_sdk.v2.admin.models import ReplaceMarkingCategoryRequest` | **Admin** | [ReplaceMarkingRequest](docs/v2/Admin/models/ReplaceMarkingRequest.md) | `from foundry_sdk.v2.admin.models import ReplaceMarkingRequest` | **Admin** | [ReplaceOrganizationRequest](docs/v2/Admin/models/ReplaceOrganizationRequest.md) | `from foundry_sdk.v2.admin.models import ReplaceOrganizationRequest` | **Admin** | [ReplaceUserProviderInfoRequest](docs/v2/Admin/models/ReplaceUserProviderInfoRequest.md) | `from foundry_sdk.v2.admin.models import ReplaceUserProviderInfoRequest` | @@ -1280,6 +1293,7 @@ Namespace | Name | Import | **Core** | [CheckReportRid](docs/v2/Core/models/CheckReportRid.md) | `from foundry_sdk.v2.core.models import CheckReportRid` | **Core** | [CheckRid](docs/v2/Core/models/CheckRid.md) | `from foundry_sdk.v2.core.models import CheckRid` | **Core** | [CipherTextType](docs/v2/Core/models/CipherTextType.md) | `from foundry_sdk.v2.core.models import CipherTextType` | +**Core** | [ColumnName](docs/v2/Core/models/ColumnName.md) | `from foundry_sdk.v2.core.models import ColumnName` | **Core** | [ComputeSeconds](docs/v2/Core/models/ComputeSeconds.md) | `from foundry_sdk.v2.core.models import ComputeSeconds` | **Core** | [ContentLength](docs/v2/Core/models/ContentLength.md) | `from foundry_sdk.v2.core.models import ContentLength` | **Core** | [ContentType](docs/v2/Core/models/ContentType.md) | `from foundry_sdk.v2.core.models import ContentType` | @@ -1591,7 +1605,8 @@ Namespace | Name | Import | **Functions** | [ExecuteQueryResponse](docs/v2/Functions/models/ExecuteQueryResponse.md) | `from foundry_sdk.v2.functions.models import ExecuteQueryResponse` | **Functions** | [FunctionRid](docs/v2/Functions/models/FunctionRid.md) | `from foundry_sdk.v2.functions.models import FunctionRid` | **Functions** | [FunctionVersion](docs/v2/Functions/models/FunctionVersion.md) | `from foundry_sdk.v2.functions.models import FunctionVersion` | -**Functions** | [GetByRidQueriesRequest](docs/v2/Functions/models/GetByRidQueriesRequest.md) | `from foundry_sdk.v2.functions.models import GetByRidQueriesRequest` | +**Functions** | [GetByRidQueriesBatchRequestElement](docs/v2/Functions/models/GetByRidQueriesBatchRequestElement.md) | `from foundry_sdk.v2.functions.models import GetByRidQueriesBatchRequestElement` | +**Functions** | [GetByRidQueriesBatchResponse](docs/v2/Functions/models/GetByRidQueriesBatchResponse.md) | `from foundry_sdk.v2.functions.models import GetByRidQueriesBatchResponse` | **Functions** | [LengthConstraint](docs/v2/Functions/models/LengthConstraint.md) | `from foundry_sdk.v2.functions.models import LengthConstraint` | **Functions** | [MapConstraint](docs/v2/Functions/models/MapConstraint.md) | `from foundry_sdk.v2.functions.models import MapConstraint` | **Functions** | [NullableConstraint](docs/v2/Functions/models/NullableConstraint.md) | `from foundry_sdk.v2.functions.models import NullableConstraint` | @@ -1720,40 +1735,114 @@ Namespace | Name | Import | **LanguageModels** | [OpenAiEmbeddingTokenUsage](docs/v2/LanguageModels/models/OpenAiEmbeddingTokenUsage.md) | `from foundry_sdk.v2.language_models.models import OpenAiEmbeddingTokenUsage` | **LanguageModels** | [OpenAiEncodingFormat](docs/v2/LanguageModels/models/OpenAiEncodingFormat.md) | `from foundry_sdk.v2.language_models.models import OpenAiEncodingFormat` | **MediaSets** | [AffineTransform](docs/v2/MediaSets/models/AffineTransform.md) | `from foundry_sdk.v2.media_sets.models import AffineTransform` | +**MediaSets** | [AnnotateGeometry](docs/v2/MediaSets/models/AnnotateGeometry.md) | `from foundry_sdk.v2.media_sets.models import AnnotateGeometry` | +**MediaSets** | [AnnotateImageOperation](docs/v2/MediaSets/models/AnnotateImageOperation.md) | `from foundry_sdk.v2.media_sets.models import AnnotateImageOperation` | +**MediaSets** | [Annotation](docs/v2/MediaSets/models/Annotation.md) | `from foundry_sdk.v2.media_sets.models import Annotation` | +**MediaSets** | [ArchiveEncodeFormat](docs/v2/MediaSets/models/ArchiveEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import ArchiveEncodeFormat` | +**MediaSets** | [AudioChannelLayout](docs/v2/MediaSets/models/AudioChannelLayout.md) | `from foundry_sdk.v2.media_sets.models import AudioChannelLayout` | +**MediaSets** | [AudioChannelOperation](docs/v2/MediaSets/models/AudioChannelOperation.md) | `from foundry_sdk.v2.media_sets.models import AudioChannelOperation` | +**MediaSets** | [AudioChunkOperation](docs/v2/MediaSets/models/AudioChunkOperation.md) | `from foundry_sdk.v2.media_sets.models import AudioChunkOperation` | **MediaSets** | [AudioDecodeFormat](docs/v2/MediaSets/models/AudioDecodeFormat.md) | `from foundry_sdk.v2.media_sets.models import AudioDecodeFormat` | +**MediaSets** | [AudioEncodeFormat](docs/v2/MediaSets/models/AudioEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import AudioEncodeFormat` | **MediaSets** | [AudioMediaItemMetadata](docs/v2/MediaSets/models/AudioMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import AudioMediaItemMetadata` | +**MediaSets** | [AudioOperation](docs/v2/MediaSets/models/AudioOperation.md) | `from foundry_sdk.v2.media_sets.models import AudioOperation` | **MediaSets** | [AudioSpecification](docs/v2/MediaSets/models/AudioSpecification.md) | `from foundry_sdk.v2.media_sets.models import AudioSpecification` | +**MediaSets** | [AudioToTextOperation](docs/v2/MediaSets/models/AudioToTextOperation.md) | `from foundry_sdk.v2.media_sets.models import AudioToTextOperation` | +**MediaSets** | [AudioToTextTransformation](docs/v2/MediaSets/models/AudioToTextTransformation.md) | `from foundry_sdk.v2.media_sets.models import AudioToTextTransformation` | +**MediaSets** | [AudioTransformation](docs/v2/MediaSets/models/AudioTransformation.md) | `from foundry_sdk.v2.media_sets.models import AudioTransformation` | +**MediaSets** | [AvailableEmbeddingModelIds](docs/v2/MediaSets/models/AvailableEmbeddingModelIds.md) | `from foundry_sdk.v2.media_sets.models import AvailableEmbeddingModelIds` | **MediaSets** | [BandInfo](docs/v2/MediaSets/models/BandInfo.md) | `from foundry_sdk.v2.media_sets.models import BandInfo` | +**MediaSets** | [BoundingBox](docs/v2/MediaSets/models/BoundingBox.md) | `from foundry_sdk.v2.media_sets.models import BoundingBox` | +**MediaSets** | [BoundingBoxGeometry](docs/v2/MediaSets/models/BoundingBoxGeometry.md) | `from foundry_sdk.v2.media_sets.models import BoundingBoxGeometry` | **MediaSets** | [BranchName](docs/v2/MediaSets/models/BranchName.md) | `from foundry_sdk.v2.media_sets.models import BranchName` | **MediaSets** | [BranchRid](docs/v2/MediaSets/models/BranchRid.md) | `from foundry_sdk.v2.media_sets.models import BranchRid` | +**MediaSets** | [Color](docs/v2/MediaSets/models/Color.md) | `from foundry_sdk.v2.media_sets.models import Color` | **MediaSets** | [ColorInterpretation](docs/v2/MediaSets/models/ColorInterpretation.md) | `from foundry_sdk.v2.media_sets.models import ColorInterpretation` | **MediaSets** | [CommonDicomDataElements](docs/v2/MediaSets/models/CommonDicomDataElements.md) | `from foundry_sdk.v2.media_sets.models import CommonDicomDataElements` | +**MediaSets** | [ContrastBinarize](docs/v2/MediaSets/models/ContrastBinarize.md) | `from foundry_sdk.v2.media_sets.models import ContrastBinarize` | +**MediaSets** | [ContrastEqualize](docs/v2/MediaSets/models/ContrastEqualize.md) | `from foundry_sdk.v2.media_sets.models import ContrastEqualize` | +**MediaSets** | [ContrastImageOperation](docs/v2/MediaSets/models/ContrastImageOperation.md) | `from foundry_sdk.v2.media_sets.models import ContrastImageOperation` | +**MediaSets** | [ContrastRayleigh](docs/v2/MediaSets/models/ContrastRayleigh.md) | `from foundry_sdk.v2.media_sets.models import ContrastRayleigh` | +**MediaSets** | [ContrastType](docs/v2/MediaSets/models/ContrastType.md) | `from foundry_sdk.v2.media_sets.models import ContrastType` | +**MediaSets** | [ConvertAudioOperation](docs/v2/MediaSets/models/ConvertAudioOperation.md) | `from foundry_sdk.v2.media_sets.models import ConvertAudioOperation` | +**MediaSets** | [ConvertDocumentOperation](docs/v2/MediaSets/models/ConvertDocumentOperation.md) | `from foundry_sdk.v2.media_sets.models import ConvertDocumentOperation` | +**MediaSets** | [ConvertSheetToJsonOperation](docs/v2/MediaSets/models/ConvertSheetToJsonOperation.md) | `from foundry_sdk.v2.media_sets.models import ConvertSheetToJsonOperation` | **MediaSets** | [CoordinateReferenceSystem](docs/v2/MediaSets/models/CoordinateReferenceSystem.md) | `from foundry_sdk.v2.media_sets.models import CoordinateReferenceSystem` | +**MediaSets** | [CreatePdfOperation](docs/v2/MediaSets/models/CreatePdfOperation.md) | `from foundry_sdk.v2.media_sets.models import CreatePdfOperation` | +**MediaSets** | [CropImageOperation](docs/v2/MediaSets/models/CropImageOperation.md) | `from foundry_sdk.v2.media_sets.models import CropImageOperation` | **MediaSets** | [DataType](docs/v2/MediaSets/models/DataType.md) | `from foundry_sdk.v2.media_sets.models import DataType` | +**MediaSets** | [DecryptImageOperation](docs/v2/MediaSets/models/DecryptImageOperation.md) | `from foundry_sdk.v2.media_sets.models import DecryptImageOperation` | **MediaSets** | [DicomDataElementKey](docs/v2/MediaSets/models/DicomDataElementKey.md) | `from foundry_sdk.v2.media_sets.models import DicomDataElementKey` | **MediaSets** | [DicomMediaItemMetadata](docs/v2/MediaSets/models/DicomMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import DicomMediaItemMetadata` | **MediaSets** | [DicomMediaType](docs/v2/MediaSets/models/DicomMediaType.md) | `from foundry_sdk.v2.media_sets.models import DicomMediaType` | **MediaSets** | [DicomMetaInformation](docs/v2/MediaSets/models/DicomMetaInformation.md) | `from foundry_sdk.v2.media_sets.models import DicomMetaInformation` | **MediaSets** | [DicomMetaInformationV1](docs/v2/MediaSets/models/DicomMetaInformationV1.md) | `from foundry_sdk.v2.media_sets.models import DicomMetaInformationV1` | +**MediaSets** | [DicomToImageOperation](docs/v2/MediaSets/models/DicomToImageOperation.md) | `from foundry_sdk.v2.media_sets.models import DicomToImageOperation` | +**MediaSets** | [DicomToImageTransformation](docs/v2/MediaSets/models/DicomToImageTransformation.md) | `from foundry_sdk.v2.media_sets.models import DicomToImageTransformation` | **MediaSets** | [Dimensions](docs/v2/MediaSets/models/Dimensions.md) | `from foundry_sdk.v2.media_sets.models import Dimensions` | **MediaSets** | [DocumentDecodeFormat](docs/v2/MediaSets/models/DocumentDecodeFormat.md) | `from foundry_sdk.v2.media_sets.models import DocumentDecodeFormat` | +**MediaSets** | [DocumentEncodeFormat](docs/v2/MediaSets/models/DocumentEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import DocumentEncodeFormat` | +**MediaSets** | [DocumentExtractLayoutAwareContentOperation](docs/v2/MediaSets/models/DocumentExtractLayoutAwareContentOperation.md) | `from foundry_sdk.v2.media_sets.models import DocumentExtractLayoutAwareContentOperation` | **MediaSets** | [DocumentMediaItemMetadata](docs/v2/MediaSets/models/DocumentMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import DocumentMediaItemMetadata` | +**MediaSets** | [DocumentToDocumentOperation](docs/v2/MediaSets/models/DocumentToDocumentOperation.md) | `from foundry_sdk.v2.media_sets.models import DocumentToDocumentOperation` | +**MediaSets** | [DocumentToDocumentTransformation](docs/v2/MediaSets/models/DocumentToDocumentTransformation.md) | `from foundry_sdk.v2.media_sets.models import DocumentToDocumentTransformation` | +**MediaSets** | [DocumentToImageOperation](docs/v2/MediaSets/models/DocumentToImageOperation.md) | `from foundry_sdk.v2.media_sets.models import DocumentToImageOperation` | +**MediaSets** | [DocumentToImageTransformation](docs/v2/MediaSets/models/DocumentToImageTransformation.md) | `from foundry_sdk.v2.media_sets.models import DocumentToImageTransformation` | +**MediaSets** | [DocumentToTextOperation](docs/v2/MediaSets/models/DocumentToTextOperation.md) | `from foundry_sdk.v2.media_sets.models import DocumentToTextOperation` | +**MediaSets** | [DocumentToTextTransformation](docs/v2/MediaSets/models/DocumentToTextTransformation.md) | `from foundry_sdk.v2.media_sets.models import DocumentToTextTransformation` | **MediaSets** | [EmailAttachment](docs/v2/MediaSets/models/EmailAttachment.md) | `from foundry_sdk.v2.media_sets.models import EmailAttachment` | **MediaSets** | [EmailDecodeFormat](docs/v2/MediaSets/models/EmailDecodeFormat.md) | `from foundry_sdk.v2.media_sets.models import EmailDecodeFormat` | **MediaSets** | [EmailMediaItemMetadata](docs/v2/MediaSets/models/EmailMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import EmailMediaItemMetadata` | +**MediaSets** | [EmailToAttachmentOperation](docs/v2/MediaSets/models/EmailToAttachmentOperation.md) | `from foundry_sdk.v2.media_sets.models import EmailToAttachmentOperation` | +**MediaSets** | [EmailToAttachmentTransformation](docs/v2/MediaSets/models/EmailToAttachmentTransformation.md) | `from foundry_sdk.v2.media_sets.models import EmailToAttachmentTransformation` | +**MediaSets** | [EmailToTextEncodeFormat](docs/v2/MediaSets/models/EmailToTextEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import EmailToTextEncodeFormat` | +**MediaSets** | [EmailToTextOperation](docs/v2/MediaSets/models/EmailToTextOperation.md) | `from foundry_sdk.v2.media_sets.models import EmailToTextOperation` | +**MediaSets** | [EmailToTextTransformation](docs/v2/MediaSets/models/EmailToTextTransformation.md) | `from foundry_sdk.v2.media_sets.models import EmailToTextTransformation` | +**MediaSets** | [EncryptImageOperation](docs/v2/MediaSets/models/EncryptImageOperation.md) | `from foundry_sdk.v2.media_sets.models import EncryptImageOperation` | +**MediaSets** | [ExtractAllTextOperation](docs/v2/MediaSets/models/ExtractAllTextOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractAllTextOperation` | +**MediaSets** | [ExtractAudioOperation](docs/v2/MediaSets/models/ExtractAudioOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractAudioOperation` | +**MediaSets** | [ExtractFirstFrameOperation](docs/v2/MediaSets/models/ExtractFirstFrameOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractFirstFrameOperation` | +**MediaSets** | [ExtractFormFieldsOperation](docs/v2/MediaSets/models/ExtractFormFieldsOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractFormFieldsOperation` | +**MediaSets** | [ExtractFramesAtTimestampsOperation](docs/v2/MediaSets/models/ExtractFramesAtTimestampsOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractFramesAtTimestampsOperation` | +**MediaSets** | [ExtractSceneFramesOperation](docs/v2/MediaSets/models/ExtractSceneFramesOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractSceneFramesOperation` | +**MediaSets** | [ExtractTableOfContentsOperation](docs/v2/MediaSets/models/ExtractTableOfContentsOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractTableOfContentsOperation` | +**MediaSets** | [ExtractTextFromPagesToArrayOperation](docs/v2/MediaSets/models/ExtractTextFromPagesToArrayOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractTextFromPagesToArrayOperation` | +**MediaSets** | [ExtractUnstructuredTextFromPageOperation](docs/v2/MediaSets/models/ExtractUnstructuredTextFromPageOperation.md) | `from foundry_sdk.v2.media_sets.models import ExtractUnstructuredTextFromPageOperation` | **MediaSets** | [FlipAxis](docs/v2/MediaSets/models/FlipAxis.md) | `from foundry_sdk.v2.media_sets.models import FlipAxis` | **MediaSets** | [GcpList](docs/v2/MediaSets/models/GcpList.md) | `from foundry_sdk.v2.media_sets.models import GcpList` | +**MediaSets** | [GenerateEmbeddingOperation](docs/v2/MediaSets/models/GenerateEmbeddingOperation.md) | `from foundry_sdk.v2.media_sets.models import GenerateEmbeddingOperation` | **MediaSets** | [GeoMetadata](docs/v2/MediaSets/models/GeoMetadata.md) | `from foundry_sdk.v2.media_sets.models import GeoMetadata` | +**MediaSets** | [GetEmailAttachmentOperation](docs/v2/MediaSets/models/GetEmailAttachmentOperation.md) | `from foundry_sdk.v2.media_sets.models import GetEmailAttachmentOperation` | +**MediaSets** | [GetEmailBodyOperation](docs/v2/MediaSets/models/GetEmailBodyOperation.md) | `from foundry_sdk.v2.media_sets.models import GetEmailBodyOperation` | **MediaSets** | [GetMediaItemInfoResponse](docs/v2/MediaSets/models/GetMediaItemInfoResponse.md) | `from foundry_sdk.v2.media_sets.models import GetMediaItemInfoResponse` | **MediaSets** | [GetMediaItemRidByPathResponse](docs/v2/MediaSets/models/GetMediaItemRidByPathResponse.md) | `from foundry_sdk.v2.media_sets.models import GetMediaItemRidByPathResponse` | +**MediaSets** | [GetPdfPageDimensionsOperation](docs/v2/MediaSets/models/GetPdfPageDimensionsOperation.md) | `from foundry_sdk.v2.media_sets.models import GetPdfPageDimensionsOperation` | +**MediaSets** | [GetTimestampsForSceneFramesOperation](docs/v2/MediaSets/models/GetTimestampsForSceneFramesOperation.md) | `from foundry_sdk.v2.media_sets.models import GetTimestampsForSceneFramesOperation` | +**MediaSets** | [GetTransformationJobStatusResponse](docs/v2/MediaSets/models/GetTransformationJobStatusResponse.md) | `from foundry_sdk.v2.media_sets.models import GetTransformationJobStatusResponse` | **MediaSets** | [GpsMetadata](docs/v2/MediaSets/models/GpsMetadata.md) | `from foundry_sdk.v2.media_sets.models import GpsMetadata` | +**MediaSets** | [GrayscaleImageOperation](docs/v2/MediaSets/models/GrayscaleImageOperation.md) | `from foundry_sdk.v2.media_sets.models import GrayscaleImageOperation` | **MediaSets** | [GroundControlPoint](docs/v2/MediaSets/models/GroundControlPoint.md) | `from foundry_sdk.v2.media_sets.models import GroundControlPoint` | **MediaSets** | [Group](docs/v2/MediaSets/models/Group.md) | `from foundry_sdk.v2.media_sets.models import Group` | **MediaSets** | [GroupWrapper](docs/v2/MediaSets/models/GroupWrapper.md) | `from foundry_sdk.v2.media_sets.models import GroupWrapper` | **MediaSets** | [ImageAttributeDomain](docs/v2/MediaSets/models/ImageAttributeDomain.md) | `from foundry_sdk.v2.media_sets.models import ImageAttributeDomain` | **MediaSets** | [ImageAttributeKey](docs/v2/MediaSets/models/ImageAttributeKey.md) | `from foundry_sdk.v2.media_sets.models import ImageAttributeKey` | +**MediaSets** | [ImageExtractLayoutAwareContentOperation](docs/v2/MediaSets/models/ImageExtractLayoutAwareContentOperation.md) | `from foundry_sdk.v2.media_sets.models import ImageExtractLayoutAwareContentOperation` | +**MediaSets** | [ImageOcrOperation](docs/v2/MediaSets/models/ImageOcrOperation.md) | `from foundry_sdk.v2.media_sets.models import ImageOcrOperation` | +**MediaSets** | [ImageOperation](docs/v2/MediaSets/models/ImageOperation.md) | `from foundry_sdk.v2.media_sets.models import ImageOperation` | +**MediaSets** | [ImagePixelCoordinate](docs/v2/MediaSets/models/ImagePixelCoordinate.md) | `from foundry_sdk.v2.media_sets.models import ImagePixelCoordinate` | +**MediaSets** | [ImageRegionPolygon](docs/v2/MediaSets/models/ImageRegionPolygon.md) | `from foundry_sdk.v2.media_sets.models import ImageRegionPolygon` | **MediaSets** | [ImageryDecodeFormat](docs/v2/MediaSets/models/ImageryDecodeFormat.md) | `from foundry_sdk.v2.media_sets.models import ImageryDecodeFormat` | +**MediaSets** | [ImageryEncodeFormat](docs/v2/MediaSets/models/ImageryEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import ImageryEncodeFormat` | **MediaSets** | [ImageryMediaItemMetadata](docs/v2/MediaSets/models/ImageryMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import ImageryMediaItemMetadata` | +**MediaSets** | [ImageToDocumentOperation](docs/v2/MediaSets/models/ImageToDocumentOperation.md) | `from foundry_sdk.v2.media_sets.models import ImageToDocumentOperation` | +**MediaSets** | [ImageToDocumentTransformation](docs/v2/MediaSets/models/ImageToDocumentTransformation.md) | `from foundry_sdk.v2.media_sets.models import ImageToDocumentTransformation` | +**MediaSets** | [ImageToEmbeddingOperation](docs/v2/MediaSets/models/ImageToEmbeddingOperation.md) | `from foundry_sdk.v2.media_sets.models import ImageToEmbeddingOperation` | +**MediaSets** | [ImageToEmbeddingTransformation](docs/v2/MediaSets/models/ImageToEmbeddingTransformation.md) | `from foundry_sdk.v2.media_sets.models import ImageToEmbeddingTransformation` | +**MediaSets** | [ImageToTextOperation](docs/v2/MediaSets/models/ImageToTextOperation.md) | `from foundry_sdk.v2.media_sets.models import ImageToTextOperation` | +**MediaSets** | [ImageToTextTransformation](docs/v2/MediaSets/models/ImageToTextTransformation.md) | `from foundry_sdk.v2.media_sets.models import ImageToTextTransformation` | +**MediaSets** | [ImageTransformation](docs/v2/MediaSets/models/ImageTransformation.md) | `from foundry_sdk.v2.media_sets.models import ImageTransformation` | +**MediaSets** | [JpgFormat](docs/v2/MediaSets/models/JpgFormat.md) | `from foundry_sdk.v2.media_sets.models import JpgFormat` | +**MediaSets** | [LayoutAwareExtractionParameters](docs/v2/MediaSets/models/LayoutAwareExtractionParameters.md) | `from foundry_sdk.v2.media_sets.models import LayoutAwareExtractionParameters` | **MediaSets** | [LogicalTimestamp](docs/v2/MediaSets/models/LogicalTimestamp.md) | `from foundry_sdk.v2.media_sets.models import LogicalTimestamp` | **MediaSets** | [Mailbox](docs/v2/MediaSets/models/Mailbox.md) | `from foundry_sdk.v2.media_sets.models import Mailbox` | **MediaSets** | [MailboxOrGroup](docs/v2/MediaSets/models/MailboxOrGroup.md) | `from foundry_sdk.v2.media_sets.models import MailboxOrGroup` | @@ -1761,26 +1850,98 @@ Namespace | Name | Import | **MediaSets** | [MediaAttribution](docs/v2/MediaSets/models/MediaAttribution.md) | `from foundry_sdk.v2.media_sets.models import MediaAttribution` | **MediaSets** | [MediaItemMetadata](docs/v2/MediaSets/models/MediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import MediaItemMetadata` | **MediaSets** | [MediaItemXmlFormat](docs/v2/MediaSets/models/MediaItemXmlFormat.md) | `from foundry_sdk.v2.media_sets.models import MediaItemXmlFormat` | +**MediaSets** | [MkvVideoContainerFormat](docs/v2/MediaSets/models/MkvVideoContainerFormat.md) | `from foundry_sdk.v2.media_sets.models import MkvVideoContainerFormat` | **MediaSets** | [Modality](docs/v2/MediaSets/models/Modality.md) | `from foundry_sdk.v2.media_sets.models import Modality` | +**MediaSets** | [Model3dDecodeFormat](docs/v2/MediaSets/models/Model3dDecodeFormat.md) | `from foundry_sdk.v2.media_sets.models import Model3dDecodeFormat` | +**MediaSets** | [Model3dMediaItemMetadata](docs/v2/MediaSets/models/Model3dMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import Model3dMediaItemMetadata` | +**MediaSets** | [Model3dType](docs/v2/MediaSets/models/Model3dType.md) | `from foundry_sdk.v2.media_sets.models import Model3dType` | +**MediaSets** | [MovVideoContainerFormat](docs/v2/MediaSets/models/MovVideoContainerFormat.md) | `from foundry_sdk.v2.media_sets.models import MovVideoContainerFormat` | +**MediaSets** | [Mp3Format](docs/v2/MediaSets/models/Mp3Format.md) | `from foundry_sdk.v2.media_sets.models import Mp3Format` | +**MediaSets** | [Mp4VideoContainerFormat](docs/v2/MediaSets/models/Mp4VideoContainerFormat.md) | `from foundry_sdk.v2.media_sets.models import Mp4VideoContainerFormat` | +**MediaSets** | [NumberOfChannels](docs/v2/MediaSets/models/NumberOfChannels.md) | `from foundry_sdk.v2.media_sets.models import NumberOfChannels` | +**MediaSets** | [OcrHocrOutputFormat](docs/v2/MediaSets/models/OcrHocrOutputFormat.md) | `from foundry_sdk.v2.media_sets.models import OcrHocrOutputFormat` | +**MediaSets** | [OcrLanguage](docs/v2/MediaSets/models/OcrLanguage.md) | `from foundry_sdk.v2.media_sets.models import OcrLanguage` | +**MediaSets** | [OcrLanguageOrScript](docs/v2/MediaSets/models/OcrLanguageOrScript.md) | `from foundry_sdk.v2.media_sets.models import OcrLanguageOrScript` | +**MediaSets** | [OcrLanguageWrapper](docs/v2/MediaSets/models/OcrLanguageWrapper.md) | `from foundry_sdk.v2.media_sets.models import OcrLanguageWrapper` | +**MediaSets** | [OcrOnPageOperation](docs/v2/MediaSets/models/OcrOnPageOperation.md) | `from foundry_sdk.v2.media_sets.models import OcrOnPageOperation` | +**MediaSets** | [OcrOnPagesOperation](docs/v2/MediaSets/models/OcrOnPagesOperation.md) | `from foundry_sdk.v2.media_sets.models import OcrOnPagesOperation` | +**MediaSets** | [OcrOutputFormat](docs/v2/MediaSets/models/OcrOutputFormat.md) | `from foundry_sdk.v2.media_sets.models import OcrOutputFormat` | +**MediaSets** | [OcrParameters](docs/v2/MediaSets/models/OcrParameters.md) | `from foundry_sdk.v2.media_sets.models import OcrParameters` | +**MediaSets** | [OcrScript](docs/v2/MediaSets/models/OcrScript.md) | `from foundry_sdk.v2.media_sets.models import OcrScript` | +**MediaSets** | [OcrScriptWrapper](docs/v2/MediaSets/models/OcrScriptWrapper.md) | `from foundry_sdk.v2.media_sets.models import OcrScriptWrapper` | +**MediaSets** | [OcrTextOutputFormat](docs/v2/MediaSets/models/OcrTextOutputFormat.md) | `from foundry_sdk.v2.media_sets.models import OcrTextOutputFormat` | **MediaSets** | [Orientation](docs/v2/MediaSets/models/Orientation.md) | `from foundry_sdk.v2.media_sets.models import Orientation` | **MediaSets** | [PaletteInterpretation](docs/v2/MediaSets/models/PaletteInterpretation.md) | `from foundry_sdk.v2.media_sets.models import PaletteInterpretation` | +**MediaSets** | [PdfFormat](docs/v2/MediaSets/models/PdfFormat.md) | `from foundry_sdk.v2.media_sets.models import PdfFormat` | +**MediaSets** | [PerformanceMode](docs/v2/MediaSets/models/PerformanceMode.md) | `from foundry_sdk.v2.media_sets.models import PerformanceMode` | +**MediaSets** | [PlainTextNoSegmentData](docs/v2/MediaSets/models/PlainTextNoSegmentData.md) | `from foundry_sdk.v2.media_sets.models import PlainTextNoSegmentData` | +**MediaSets** | [PngFormat](docs/v2/MediaSets/models/PngFormat.md) | `from foundry_sdk.v2.media_sets.models import PngFormat` | +**MediaSets** | [Pttml](docs/v2/MediaSets/models/Pttml.md) | `from foundry_sdk.v2.media_sets.models import Pttml` | **MediaSets** | [PutMediaItemResponse](docs/v2/MediaSets/models/PutMediaItemResponse.md) | `from foundry_sdk.v2.media_sets.models import PutMediaItemResponse` | +**MediaSets** | [RenderImageLayerOperation](docs/v2/MediaSets/models/RenderImageLayerOperation.md) | `from foundry_sdk.v2.media_sets.models import RenderImageLayerOperation` | +**MediaSets** | [RenderPageOperation](docs/v2/MediaSets/models/RenderPageOperation.md) | `from foundry_sdk.v2.media_sets.models import RenderPageOperation` | +**MediaSets** | [RenderPageToFitBoundingBoxOperation](docs/v2/MediaSets/models/RenderPageToFitBoundingBoxOperation.md) | `from foundry_sdk.v2.media_sets.models import RenderPageToFitBoundingBoxOperation` | +**MediaSets** | [ResizeImageOperation](docs/v2/MediaSets/models/ResizeImageOperation.md) | `from foundry_sdk.v2.media_sets.models import ResizeImageOperation` | +**MediaSets** | [ResizeToFitBoundingBoxOperation](docs/v2/MediaSets/models/ResizeToFitBoundingBoxOperation.md) | `from foundry_sdk.v2.media_sets.models import ResizeToFitBoundingBoxOperation` | +**MediaSets** | [RotateImageOperation](docs/v2/MediaSets/models/RotateImageOperation.md) | `from foundry_sdk.v2.media_sets.models import RotateImageOperation` | **MediaSets** | [RotationAngle](docs/v2/MediaSets/models/RotationAngle.md) | `from foundry_sdk.v2.media_sets.models import RotationAngle` | +**MediaSets** | [SceneScore](docs/v2/MediaSets/models/SceneScore.md) | `from foundry_sdk.v2.media_sets.models import SceneScore` | +**MediaSets** | [SlicePdfRangeOperation](docs/v2/MediaSets/models/SlicePdfRangeOperation.md) | `from foundry_sdk.v2.media_sets.models import SlicePdfRangeOperation` | **MediaSets** | [SpreadsheetDecodeFormat](docs/v2/MediaSets/models/SpreadsheetDecodeFormat.md) | `from foundry_sdk.v2.media_sets.models import SpreadsheetDecodeFormat` | **MediaSets** | [SpreadsheetMediaItemMetadata](docs/v2/MediaSets/models/SpreadsheetMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import SpreadsheetMediaItemMetadata` | +**MediaSets** | [SpreadsheetToTextOperation](docs/v2/MediaSets/models/SpreadsheetToTextOperation.md) | `from foundry_sdk.v2.media_sets.models import SpreadsheetToTextOperation` | +**MediaSets** | [SpreadsheetToTextTransformation](docs/v2/MediaSets/models/SpreadsheetToTextTransformation.md) | `from foundry_sdk.v2.media_sets.models import SpreadsheetToTextTransformation` | +**MediaSets** | [TarFormat](docs/v2/MediaSets/models/TarFormat.md) | `from foundry_sdk.v2.media_sets.models import TarFormat` | +**MediaSets** | [TiffFormat](docs/v2/MediaSets/models/TiffFormat.md) | `from foundry_sdk.v2.media_sets.models import TiffFormat` | +**MediaSets** | [TileImageOperation](docs/v2/MediaSets/models/TileImageOperation.md) | `from foundry_sdk.v2.media_sets.models import TileImageOperation` | **MediaSets** | [TrackedTransformationFailedResponse](docs/v2/MediaSets/models/TrackedTransformationFailedResponse.md) | `from foundry_sdk.v2.media_sets.models import TrackedTransformationFailedResponse` | **MediaSets** | [TrackedTransformationPendingResponse](docs/v2/MediaSets/models/TrackedTransformationPendingResponse.md) | `from foundry_sdk.v2.media_sets.models import TrackedTransformationPendingResponse` | **MediaSets** | [TrackedTransformationResponse](docs/v2/MediaSets/models/TrackedTransformationResponse.md) | `from foundry_sdk.v2.media_sets.models import TrackedTransformationResponse` | **MediaSets** | [TrackedTransformationSuccessfulResponse](docs/v2/MediaSets/models/TrackedTransformationSuccessfulResponse.md) | `from foundry_sdk.v2.media_sets.models import TrackedTransformationSuccessfulResponse` | **MediaSets** | [TransactionId](docs/v2/MediaSets/models/TransactionId.md) | `from foundry_sdk.v2.media_sets.models import TransactionId` | +**MediaSets** | [TranscodeOperation](docs/v2/MediaSets/models/TranscodeOperation.md) | `from foundry_sdk.v2.media_sets.models import TranscodeOperation` | +**MediaSets** | [TranscribeJson](docs/v2/MediaSets/models/TranscribeJson.md) | `from foundry_sdk.v2.media_sets.models import TranscribeJson` | +**MediaSets** | [TranscribeOperation](docs/v2/MediaSets/models/TranscribeOperation.md) | `from foundry_sdk.v2.media_sets.models import TranscribeOperation` | +**MediaSets** | [TranscribeTextEncodeFormat](docs/v2/MediaSets/models/TranscribeTextEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import TranscribeTextEncodeFormat` | +**MediaSets** | [TranscriptionLanguage](docs/v2/MediaSets/models/TranscriptionLanguage.md) | `from foundry_sdk.v2.media_sets.models import TranscriptionLanguage` | +**MediaSets** | [Transformation](docs/v2/MediaSets/models/Transformation.md) | `from foundry_sdk.v2.media_sets.models import Transformation` | +**MediaSets** | [TransformationJobId](docs/v2/MediaSets/models/TransformationJobId.md) | `from foundry_sdk.v2.media_sets.models import TransformationJobId` | +**MediaSets** | [TransformationJobStatus](docs/v2/MediaSets/models/TransformationJobStatus.md) | `from foundry_sdk.v2.media_sets.models import TransformationJobStatus` | +**MediaSets** | [TransformMediaItemRequest](docs/v2/MediaSets/models/TransformMediaItemRequest.md) | `from foundry_sdk.v2.media_sets.models import TransformMediaItemRequest` | +**MediaSets** | [TransformMediaItemResponse](docs/v2/MediaSets/models/TransformMediaItemResponse.md) | `from foundry_sdk.v2.media_sets.models import TransformMediaItemResponse` | +**MediaSets** | [TsAudioContainerFormat](docs/v2/MediaSets/models/TsAudioContainerFormat.md) | `from foundry_sdk.v2.media_sets.models import TsAudioContainerFormat` | +**MediaSets** | [TsVideoContainerFormat](docs/v2/MediaSets/models/TsVideoContainerFormat.md) | `from foundry_sdk.v2.media_sets.models import TsVideoContainerFormat` | **MediaSets** | [UnitInterpretation](docs/v2/MediaSets/models/UnitInterpretation.md) | `from foundry_sdk.v2.media_sets.models import UnitInterpretation` | **MediaSets** | [UntypedMediaItemMetadata](docs/v2/MediaSets/models/UntypedMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import UntypedMediaItemMetadata` | +**MediaSets** | [VideoChunkOperation](docs/v2/MediaSets/models/VideoChunkOperation.md) | `from foundry_sdk.v2.media_sets.models import VideoChunkOperation` | **MediaSets** | [VideoDecodeFormat](docs/v2/MediaSets/models/VideoDecodeFormat.md) | `from foundry_sdk.v2.media_sets.models import VideoDecodeFormat` | +**MediaSets** | [VideoEncodeFormat](docs/v2/MediaSets/models/VideoEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import VideoEncodeFormat` | **MediaSets** | [VideoMediaItemMetadata](docs/v2/MediaSets/models/VideoMediaItemMetadata.md) | `from foundry_sdk.v2.media_sets.models import VideoMediaItemMetadata` | +**MediaSets** | [VideoOperation](docs/v2/MediaSets/models/VideoOperation.md) | `from foundry_sdk.v2.media_sets.models import VideoOperation` | **MediaSets** | [VideoSpecification](docs/v2/MediaSets/models/VideoSpecification.md) | `from foundry_sdk.v2.media_sets.models import VideoSpecification` | +**MediaSets** | [VideoToArchiveOperation](docs/v2/MediaSets/models/VideoToArchiveOperation.md) | `from foundry_sdk.v2.media_sets.models import VideoToArchiveOperation` | +**MediaSets** | [VideoToArchiveTransformation](docs/v2/MediaSets/models/VideoToArchiveTransformation.md) | `from foundry_sdk.v2.media_sets.models import VideoToArchiveTransformation` | +**MediaSets** | [VideoToAudioOperation](docs/v2/MediaSets/models/VideoToAudioOperation.md) | `from foundry_sdk.v2.media_sets.models import VideoToAudioOperation` | +**MediaSets** | [VideoToAudioTransformation](docs/v2/MediaSets/models/VideoToAudioTransformation.md) | `from foundry_sdk.v2.media_sets.models import VideoToAudioTransformation` | +**MediaSets** | [VideoToImageOperation](docs/v2/MediaSets/models/VideoToImageOperation.md) | `from foundry_sdk.v2.media_sets.models import VideoToImageOperation` | +**MediaSets** | [VideoToImageTransformation](docs/v2/MediaSets/models/VideoToImageTransformation.md) | `from foundry_sdk.v2.media_sets.models import VideoToImageTransformation` | +**MediaSets** | [VideoToTextOperation](docs/v2/MediaSets/models/VideoToTextOperation.md) | `from foundry_sdk.v2.media_sets.models import VideoToTextOperation` | +**MediaSets** | [VideoToTextTransformation](docs/v2/MediaSets/models/VideoToTextTransformation.md) | `from foundry_sdk.v2.media_sets.models import VideoToTextTransformation` | +**MediaSets** | [VideoTransformation](docs/v2/MediaSets/models/VideoTransformation.md) | `from foundry_sdk.v2.media_sets.models import VideoTransformation` | +**MediaSets** | [WaveformOperation](docs/v2/MediaSets/models/WaveformOperation.md) | `from foundry_sdk.v2.media_sets.models import WaveformOperation` | +**MediaSets** | [WavEncodeFormat](docs/v2/MediaSets/models/WavEncodeFormat.md) | `from foundry_sdk.v2.media_sets.models import WavEncodeFormat` | +**MediaSets** | [WebpFormat](docs/v2/MediaSets/models/WebpFormat.md) | `from foundry_sdk.v2.media_sets.models import WebpFormat` | +**Models** | [ColumnTypeSpecId](docs/v2/Models/models/ColumnTypeSpecId.md) | `from foundry_sdk.v2.models.models import ColumnTypeSpecId` | **Models** | [CreateModelRequest](docs/v2/Models/models/CreateModelRequest.md) | `from foundry_sdk.v2.models.models import CreateModelRequest` | +**Models** | [CreateModelStudioConfigVersionRequest](docs/v2/Models/models/CreateModelStudioConfigVersionRequest.md) | `from foundry_sdk.v2.models.models import CreateModelStudioConfigVersionRequest` | +**Models** | [CreateModelStudioRequest](docs/v2/Models/models/CreateModelStudioRequest.md) | `from foundry_sdk.v2.models.models import CreateModelStudioRequest` | **Models** | [CreateModelVersionRequest](docs/v2/Models/models/CreateModelVersionRequest.md) | `from foundry_sdk.v2.models.models import CreateModelVersionRequest` | +**Models** | [DatasetInput](docs/v2/Models/models/DatasetInput.md) | `from foundry_sdk.v2.models.models import DatasetInput` | **Models** | [DillModelFiles](docs/v2/Models/models/DillModelFiles.md) | `from foundry_sdk.v2.models.models import DillModelFiles` | +**Models** | [InputAlias](docs/v2/Models/models/InputAlias.md) | `from foundry_sdk.v2.models.models import InputAlias` | +**Models** | [ListModelStudioConfigVersionsResponse](docs/v2/Models/models/ListModelStudioConfigVersionsResponse.md) | `from foundry_sdk.v2.models.models import ListModelStudioConfigVersionsResponse` | +**Models** | [ListModelStudioRunsResponse](docs/v2/Models/models/ListModelStudioRunsResponse.md) | `from foundry_sdk.v2.models.models import ListModelStudioRunsResponse` | +**Models** | [ListModelStudioTrainersResponse](docs/v2/Models/models/ListModelStudioTrainersResponse.md) | `from foundry_sdk.v2.models.models import ListModelStudioTrainersResponse` | **Models** | [ListModelVersionsResponse](docs/v2/Models/models/ListModelVersionsResponse.md) | `from foundry_sdk.v2.models.models import ListModelVersionsResponse` | **Models** | [Model](docs/v2/Models/models/Model.md) | `from foundry_sdk.v2.models.models import Model` | **Models** | [ModelApi](docs/v2/Models/models/ModelApi.md) | `from foundry_sdk.v2.models.models import ModelApi` | @@ -1796,9 +1957,37 @@ Namespace | Name | Import | **Models** | [ModelApiTabularType](docs/v2/Models/models/ModelApiTabularType.md) | `from foundry_sdk.v2.models.models import ModelApiTabularType` | **Models** | [ModelFiles](docs/v2/Models/models/ModelFiles.md) | `from foundry_sdk.v2.models.models import ModelFiles` | **Models** | [ModelName](docs/v2/Models/models/ModelName.md) | `from foundry_sdk.v2.models.models import ModelName` | +**Models** | [ModelOutput](docs/v2/Models/models/ModelOutput.md) | `from foundry_sdk.v2.models.models import ModelOutput` | **Models** | [ModelRid](docs/v2/Models/models/ModelRid.md) | `from foundry_sdk.v2.models.models import ModelRid` | +**Models** | [ModelStudio](docs/v2/Models/models/ModelStudio.md) | `from foundry_sdk.v2.models.models import ModelStudio` | +**Models** | [ModelStudioConfigVersion](docs/v2/Models/models/ModelStudioConfigVersion.md) | `from foundry_sdk.v2.models.models import ModelStudioConfigVersion` | +**Models** | [ModelStudioConfigVersionName](docs/v2/Models/models/ModelStudioConfigVersionName.md) | `from foundry_sdk.v2.models.models import ModelStudioConfigVersionName` | +**Models** | [ModelStudioConfigVersionNumber](docs/v2/Models/models/ModelStudioConfigVersionNumber.md) | `from foundry_sdk.v2.models.models import ModelStudioConfigVersionNumber` | +**Models** | [ModelStudioInput](docs/v2/Models/models/ModelStudioInput.md) | `from foundry_sdk.v2.models.models import ModelStudioInput` | +**Models** | [ModelStudioOutput](docs/v2/Models/models/ModelStudioOutput.md) | `from foundry_sdk.v2.models.models import ModelStudioOutput` | +**Models** | [ModelStudioRid](docs/v2/Models/models/ModelStudioRid.md) | `from foundry_sdk.v2.models.models import ModelStudioRid` | +**Models** | [ModelStudioRun](docs/v2/Models/models/ModelStudioRun.md) | `from foundry_sdk.v2.models.models import ModelStudioRun` | +**Models** | [ModelStudioRunBuildRid](docs/v2/Models/models/ModelStudioRunBuildRid.md) | `from foundry_sdk.v2.models.models import ModelStudioRunBuildRid` | +**Models** | [ModelStudioRunJobRid](docs/v2/Models/models/ModelStudioRunJobRid.md) | `from foundry_sdk.v2.models.models import ModelStudioRunJobRid` | +**Models** | [ModelStudioRunModelOutput](docs/v2/Models/models/ModelStudioRunModelOutput.md) | `from foundry_sdk.v2.models.models import ModelStudioRunModelOutput` | +**Models** | [ModelStudioRunOutput](docs/v2/Models/models/ModelStudioRunOutput.md) | `from foundry_sdk.v2.models.models import ModelStudioRunOutput` | +**Models** | [ModelStudioTrainer](docs/v2/Models/models/ModelStudioTrainer.md) | `from foundry_sdk.v2.models.models import ModelStudioTrainer` | +**Models** | [ModelStudioTrainerExperimental](docs/v2/Models/models/ModelStudioTrainerExperimental.md) | `from foundry_sdk.v2.models.models import ModelStudioTrainerExperimental` | +**Models** | [ModelStudioWorkerConfig](docs/v2/Models/models/ModelStudioWorkerConfig.md) | `from foundry_sdk.v2.models.models import ModelStudioWorkerConfig` | **Models** | [ModelVersion](docs/v2/Models/models/ModelVersion.md) | `from foundry_sdk.v2.models.models import ModelVersion` | **Models** | [ModelVersionRid](docs/v2/Models/models/ModelVersionRid.md) | `from foundry_sdk.v2.models.models import ModelVersionRid` | +**Models** | [OutputAlias](docs/v2/Models/models/OutputAlias.md) | `from foundry_sdk.v2.models.models import OutputAlias` | +**Models** | [ResourceConfiguration](docs/v2/Models/models/ResourceConfiguration.md) | `from foundry_sdk.v2.models.models import ResourceConfiguration` | +**Models** | [RunId](docs/v2/Models/models/RunId.md) | `from foundry_sdk.v2.models.models import RunId` | +**Models** | [TrainerDescription](docs/v2/Models/models/TrainerDescription.md) | `from foundry_sdk.v2.models.models import TrainerDescription` | +**Models** | [TrainerId](docs/v2/Models/models/TrainerId.md) | `from foundry_sdk.v2.models.models import TrainerId` | +**Models** | [TrainerInputsSpecification](docs/v2/Models/models/TrainerInputsSpecification.md) | `from foundry_sdk.v2.models.models import TrainerInputsSpecification` | +**Models** | [TrainerName](docs/v2/Models/models/TrainerName.md) | `from foundry_sdk.v2.models.models import TrainerName` | +**Models** | [TrainerOutputsSpecification](docs/v2/Models/models/TrainerOutputsSpecification.md) | `from foundry_sdk.v2.models.models import TrainerOutputsSpecification` | +**Models** | [TrainerSchemaDefinition](docs/v2/Models/models/TrainerSchemaDefinition.md) | `from foundry_sdk.v2.models.models import TrainerSchemaDefinition` | +**Models** | [TrainerType](docs/v2/Models/models/TrainerType.md) | `from foundry_sdk.v2.models.models import TrainerType` | +**Models** | [TrainerVersion](docs/v2/Models/models/TrainerVersion.md) | `from foundry_sdk.v2.models.models import TrainerVersion` | +**Models** | [TrainerVersionLocator](docs/v2/Models/models/TrainerVersionLocator.md) | `from foundry_sdk.v2.models.models import TrainerVersionLocator` | **Ontologies** | [AbsoluteTimeRange](docs/v2/Ontologies/models/AbsoluteTimeRange.md) | `from foundry_sdk.v2.ontologies.models import AbsoluteTimeRange` | **Ontologies** | [AbsoluteValuePropertyExpression](docs/v2/Ontologies/models/AbsoluteValuePropertyExpression.md) | `from foundry_sdk.v2.ontologies.models import AbsoluteValuePropertyExpression` | **Ontologies** | [ActionExecutionTime](docs/v2/Ontologies/models/ActionExecutionTime.md) | `from foundry_sdk.v2.ontologies.models import ActionExecutionTime` | @@ -1869,6 +2058,7 @@ Namespace | Name | Import | **Ontologies** | [BatchedFunctionLogicRule](docs/v2/Ontologies/models/BatchedFunctionLogicRule.md) | `from foundry_sdk.v2.ontologies.models import BatchedFunctionLogicRule` | **Ontologies** | [BatchReturnEditsMode](docs/v2/Ontologies/models/BatchReturnEditsMode.md) | `from foundry_sdk.v2.ontologies.models import BatchReturnEditsMode` | **Ontologies** | [BlueprintIcon](docs/v2/Ontologies/models/BlueprintIcon.md) | `from foundry_sdk.v2.ontologies.models import BlueprintIcon` | +**Ontologies** | [BooleanValue](docs/v2/Ontologies/models/BooleanValue.md) | `from foundry_sdk.v2.ontologies.models import BooleanValue` | **Ontologies** | [BoundingBoxValue](docs/v2/Ontologies/models/BoundingBoxValue.md) | `from foundry_sdk.v2.ontologies.models import BoundingBoxValue` | **Ontologies** | [CenterPoint](docs/v2/Ontologies/models/CenterPoint.md) | `from foundry_sdk.v2.ontologies.models import CenterPoint` | **Ontologies** | [CenterPointTypes](docs/v2/Ontologies/models/CenterPointTypes.md) | `from foundry_sdk.v2.ontologies.models import CenterPointTypes` | @@ -1882,6 +2072,7 @@ Namespace | Name | Import | **Ontologies** | [ContainsQueryV2](docs/v2/Ontologies/models/ContainsQueryV2.md) | `from foundry_sdk.v2.ontologies.models import ContainsQueryV2` | **Ontologies** | [CountAggregationV2](docs/v2/Ontologies/models/CountAggregationV2.md) | `from foundry_sdk.v2.ontologies.models import CountAggregationV2` | **Ontologies** | [CountObjectsResponseV2](docs/v2/Ontologies/models/CountObjectsResponseV2.md) | `from foundry_sdk.v2.ontologies.models import CountObjectsResponseV2` | +**Ontologies** | [CreateEdit](docs/v2/Ontologies/models/CreateEdit.md) | `from foundry_sdk.v2.ontologies.models import CreateEdit` | **Ontologies** | [CreateInterfaceLinkLogicRule](docs/v2/Ontologies/models/CreateInterfaceLinkLogicRule.md) | `from foundry_sdk.v2.ontologies.models import CreateInterfaceLinkLogicRule` | **Ontologies** | [CreateInterfaceLogicRule](docs/v2/Ontologies/models/CreateInterfaceLogicRule.md) | `from foundry_sdk.v2.ontologies.models import CreateInterfaceLogicRule` | **Ontologies** | [CreateInterfaceObjectRule](docs/v2/Ontologies/models/CreateInterfaceObjectRule.md) | `from foundry_sdk.v2.ontologies.models import CreateInterfaceObjectRule` | @@ -1903,7 +2094,9 @@ Namespace | Name | Import | **Ontologies** | [DatetimeTimezone](docs/v2/Ontologies/models/DatetimeTimezone.md) | `from foundry_sdk.v2.ontologies.models import DatetimeTimezone` | **Ontologies** | [DatetimeTimezoneStatic](docs/v2/Ontologies/models/DatetimeTimezoneStatic.md) | `from foundry_sdk.v2.ontologies.models import DatetimeTimezoneStatic` | **Ontologies** | [DatetimeTimezoneUser](docs/v2/Ontologies/models/DatetimeTimezoneUser.md) | `from foundry_sdk.v2.ontologies.models import DatetimeTimezoneUser` | +**Ontologies** | [DateValue](docs/v2/Ontologies/models/DateValue.md) | `from foundry_sdk.v2.ontologies.models import DateValue` | **Ontologies** | [DecryptionResult](docs/v2/Ontologies/models/DecryptionResult.md) | `from foundry_sdk.v2.ontologies.models import DecryptionResult` | +**Ontologies** | [DeleteEdit](docs/v2/Ontologies/models/DeleteEdit.md) | `from foundry_sdk.v2.ontologies.models import DeleteEdit` | **Ontologies** | [DeleteInterfaceLinkLogicRule](docs/v2/Ontologies/models/DeleteInterfaceLinkLogicRule.md) | `from foundry_sdk.v2.ontologies.models import DeleteInterfaceLinkLogicRule` | **Ontologies** | [DeleteInterfaceObjectRule](docs/v2/Ontologies/models/DeleteInterfaceObjectRule.md) | `from foundry_sdk.v2.ontologies.models import DeleteInterfaceObjectRule` | **Ontologies** | [DeleteLink](docs/v2/Ontologies/models/DeleteLink.md) | `from foundry_sdk.v2.ontologies.models import DeleteLink` | @@ -1921,10 +2114,16 @@ Namespace | Name | Import | **Ontologies** | [DividePropertyExpression](docs/v2/Ontologies/models/DividePropertyExpression.md) | `from foundry_sdk.v2.ontologies.models import DividePropertyExpression` | **Ontologies** | [DoesNotIntersectBoundingBoxQuery](docs/v2/Ontologies/models/DoesNotIntersectBoundingBoxQuery.md) | `from foundry_sdk.v2.ontologies.models import DoesNotIntersectBoundingBoxQuery` | **Ontologies** | [DoesNotIntersectPolygonQuery](docs/v2/Ontologies/models/DoesNotIntersectPolygonQuery.md) | `from foundry_sdk.v2.ontologies.models import DoesNotIntersectPolygonQuery` | +**Ontologies** | [DoubleValue](docs/v2/Ontologies/models/DoubleValue.md) | `from foundry_sdk.v2.ontologies.models import DoubleValue` | **Ontologies** | [DoubleVector](docs/v2/Ontologies/models/DoubleVector.md) | `from foundry_sdk.v2.ontologies.models import DoubleVector` | **Ontologies** | [DurationBaseValue](docs/v2/Ontologies/models/DurationBaseValue.md) | `from foundry_sdk.v2.ontologies.models import DurationBaseValue` | **Ontologies** | [DurationFormatStyle](docs/v2/Ontologies/models/DurationFormatStyle.md) | `from foundry_sdk.v2.ontologies.models import DurationFormatStyle` | **Ontologies** | [DurationPrecision](docs/v2/Ontologies/models/DurationPrecision.md) | `from foundry_sdk.v2.ontologies.models import DurationPrecision` | +**Ontologies** | [EditHistoryEdit](docs/v2/Ontologies/models/EditHistoryEdit.md) | `from foundry_sdk.v2.ontologies.models import EditHistoryEdit` | +**Ontologies** | [EditsHistoryFilter](docs/v2/Ontologies/models/EditsHistoryFilter.md) | `from foundry_sdk.v2.ontologies.models import EditsHistoryFilter` | +**Ontologies** | [EditsHistoryOperationIdsFilter](docs/v2/Ontologies/models/EditsHistoryOperationIdsFilter.md) | `from foundry_sdk.v2.ontologies.models import EditsHistoryOperationIdsFilter` | +**Ontologies** | [EditsHistorySortOrder](docs/v2/Ontologies/models/EditsHistorySortOrder.md) | `from foundry_sdk.v2.ontologies.models import EditsHistorySortOrder` | +**Ontologies** | [EditsHistoryTimestampFilter](docs/v2/Ontologies/models/EditsHistoryTimestampFilter.md) | `from foundry_sdk.v2.ontologies.models import EditsHistoryTimestampFilter` | **Ontologies** | [EntrySetType](docs/v2/Ontologies/models/EntrySetType.md) | `from foundry_sdk.v2.ontologies.models import EntrySetType` | **Ontologies** | [EnumConstraint](docs/v2/Ontologies/models/EnumConstraint.md) | `from foundry_sdk.v2.ontologies.models import EnumConstraint` | **Ontologies** | [EqualsQueryV2](docs/v2/Ontologies/models/EqualsQueryV2.md) | `from foundry_sdk.v2.ontologies.models import EqualsQueryV2` | @@ -1945,6 +2144,7 @@ Namespace | Name | Import | **Ontologies** | [FunctionParameterName](docs/v2/Ontologies/models/FunctionParameterName.md) | `from foundry_sdk.v2.ontologies.models import FunctionParameterName` | **Ontologies** | [FunctionRid](docs/v2/Ontologies/models/FunctionRid.md) | `from foundry_sdk.v2.ontologies.models import FunctionRid` | **Ontologies** | [FunctionVersion](docs/v2/Ontologies/models/FunctionVersion.md) | `from foundry_sdk.v2.ontologies.models import FunctionVersion` | +**Ontologies** | [FuzzyRule](docs/v2/Ontologies/models/FuzzyRule.md) | `from foundry_sdk.v2.ontologies.models import FuzzyRule` | **Ontologies** | [FuzzyV2](docs/v2/Ontologies/models/FuzzyV2.md) | `from foundry_sdk.v2.ontologies.models import FuzzyV2` | **Ontologies** | [GeotemporalSeriesEntry](docs/v2/Ontologies/models/GeotemporalSeriesEntry.md) | `from foundry_sdk.v2.ontologies.models import GeotemporalSeriesEntry` | **Ontologies** | [GeotimeSeriesValue](docs/v2/Ontologies/models/GeotimeSeriesValue.md) | `from foundry_sdk.v2.ontologies.models import GeotimeSeriesValue` | @@ -1956,6 +2156,7 @@ Namespace | Name | Import | **Ontologies** | [HumanReadableFormat](docs/v2/Ontologies/models/HumanReadableFormat.md) | `from foundry_sdk.v2.ontologies.models import HumanReadableFormat` | **Ontologies** | [Icon](docs/v2/Ontologies/models/Icon.md) | `from foundry_sdk.v2.ontologies.models import Icon` | **Ontologies** | [InQuery](docs/v2/Ontologies/models/InQuery.md) | `from foundry_sdk.v2.ontologies.models import InQuery` | +**Ontologies** | [IntegerValue](docs/v2/Ontologies/models/IntegerValue.md) | `from foundry_sdk.v2.ontologies.models import IntegerValue` | **Ontologies** | [InterfaceDefinedPropertyType](docs/v2/Ontologies/models/InterfaceDefinedPropertyType.md) | `from foundry_sdk.v2.ontologies.models import InterfaceDefinedPropertyType` | **Ontologies** | [InterfaceLinkType](docs/v2/Ontologies/models/InterfaceLinkType.md) | `from foundry_sdk.v2.ontologies.models import InterfaceLinkType` | **Ontologies** | [InterfaceLinkTypeApiName](docs/v2/Ontologies/models/InterfaceLinkTypeApiName.md) | `from foundry_sdk.v2.ontologies.models import InterfaceLinkTypeApiName` | @@ -2023,6 +2224,7 @@ Namespace | Name | Import | **Ontologies** | [LoadOntologyMetadataRequest](docs/v2/Ontologies/models/LoadOntologyMetadataRequest.md) | `from foundry_sdk.v2.ontologies.models import LoadOntologyMetadataRequest` | **Ontologies** | [LogicRule](docs/v2/Ontologies/models/LogicRule.md) | `from foundry_sdk.v2.ontologies.models import LogicRule` | **Ontologies** | [LogicRuleArgument](docs/v2/Ontologies/models/LogicRuleArgument.md) | `from foundry_sdk.v2.ontologies.models import LogicRuleArgument` | +**Ontologies** | [LongValue](docs/v2/Ontologies/models/LongValue.md) | `from foundry_sdk.v2.ontologies.models import LongValue` | **Ontologies** | [LteQueryV2](docs/v2/Ontologies/models/LteQueryV2.md) | `from foundry_sdk.v2.ontologies.models import LteQueryV2` | **Ontologies** | [LtQueryV2](docs/v2/Ontologies/models/LtQueryV2.md) | `from foundry_sdk.v2.ontologies.models import LtQueryV2` | **Ontologies** | [MarkingId](docs/v2/Ontologies/models/MarkingId.md) | `from foundry_sdk.v2.ontologies.models import MarkingId` | @@ -2031,6 +2233,7 @@ Namespace | Name | Import | **Ontologies** | [MediaMetadata](docs/v2/Ontologies/models/MediaMetadata.md) | `from foundry_sdk.v2.ontologies.models import MediaMetadata` | **Ontologies** | [MethodObjectSet](docs/v2/Ontologies/models/MethodObjectSet.md) | `from foundry_sdk.v2.ontologies.models import MethodObjectSet` | **Ontologies** | [MinAggregationV2](docs/v2/Ontologies/models/MinAggregationV2.md) | `from foundry_sdk.v2.ontologies.models import MinAggregationV2` | +**Ontologies** | [ModifyEdit](docs/v2/Ontologies/models/ModifyEdit.md) | `from foundry_sdk.v2.ontologies.models import ModifyEdit` | **Ontologies** | [ModifyInterfaceLogicRule](docs/v2/Ontologies/models/ModifyInterfaceLogicRule.md) | `from foundry_sdk.v2.ontologies.models import ModifyInterfaceLogicRule` | **Ontologies** | [ModifyInterfaceObjectRule](docs/v2/Ontologies/models/ModifyInterfaceObjectRule.md) | `from foundry_sdk.v2.ontologies.models import ModifyInterfaceObjectRule` | **Ontologies** | [ModifyObject](docs/v2/Ontologies/models/ModifyObject.md) | `from foundry_sdk.v2.ontologies.models import ModifyObject` | @@ -2060,10 +2263,12 @@ Namespace | Name | Import | **Ontologies** | [NumberRoundingMode](docs/v2/Ontologies/models/NumberRoundingMode.md) | `from foundry_sdk.v2.ontologies.models import NumberRoundingMode` | **Ontologies** | [NumberScaleType](docs/v2/Ontologies/models/NumberScaleType.md) | `from foundry_sdk.v2.ontologies.models import NumberScaleType` | **Ontologies** | [ObjectEdit](docs/v2/Ontologies/models/ObjectEdit.md) | `from foundry_sdk.v2.ontologies.models import ObjectEdit` | +**Ontologies** | [ObjectEditHistoryEntry](docs/v2/Ontologies/models/ObjectEditHistoryEntry.md) | `from foundry_sdk.v2.ontologies.models import ObjectEditHistoryEntry` | **Ontologies** | [ObjectEdits](docs/v2/Ontologies/models/ObjectEdits.md) | `from foundry_sdk.v2.ontologies.models import ObjectEdits` | **Ontologies** | [ObjectLoadingResponseOptions](docs/v2/Ontologies/models/ObjectLoadingResponseOptions.md) | `from foundry_sdk.v2.ontologies.models import ObjectLoadingResponseOptions` | **Ontologies** | [ObjectParameterPropertyArgument](docs/v2/Ontologies/models/ObjectParameterPropertyArgument.md) | `from foundry_sdk.v2.ontologies.models import ObjectParameterPropertyArgument` | **Ontologies** | [ObjectPrimaryKey](docs/v2/Ontologies/models/ObjectPrimaryKey.md) | `from foundry_sdk.v2.ontologies.models import ObjectPrimaryKey` | +**Ontologies** | [ObjectPrimaryKeyV2](docs/v2/Ontologies/models/ObjectPrimaryKeyV2.md) | `from foundry_sdk.v2.ontologies.models import ObjectPrimaryKeyV2` | **Ontologies** | [ObjectPropertyType](docs/v2/Ontologies/models/ObjectPropertyType.md) | `from foundry_sdk.v2.ontologies.models import ObjectPropertyType` | **Ontologies** | [ObjectPropertyValueConstraint](docs/v2/Ontologies/models/ObjectPropertyValueConstraint.md) | `from foundry_sdk.v2.ontologies.models import ObjectPropertyValueConstraint` | **Ontologies** | [ObjectQueryResultConstraint](docs/v2/Ontologies/models/ObjectQueryResultConstraint.md) | `from foundry_sdk.v2.ontologies.models import ObjectQueryResultConstraint` | @@ -2094,6 +2299,8 @@ Namespace | Name | Import | **Ontologies** | [ObjectState](docs/v2/Ontologies/models/ObjectState.md) | `from foundry_sdk.v2.ontologies.models import ObjectState` | **Ontologies** | [ObjectTypeApiName](docs/v2/Ontologies/models/ObjectTypeApiName.md) | `from foundry_sdk.v2.ontologies.models import ObjectTypeApiName` | **Ontologies** | [ObjectTypeEdits](docs/v2/Ontologies/models/ObjectTypeEdits.md) | `from foundry_sdk.v2.ontologies.models import ObjectTypeEdits` | +**Ontologies** | [ObjectTypeEditsHistoryRequest](docs/v2/Ontologies/models/ObjectTypeEditsHistoryRequest.md) | `from foundry_sdk.v2.ontologies.models import ObjectTypeEditsHistoryRequest` | +**Ontologies** | [ObjectTypeEditsHistoryResponse](docs/v2/Ontologies/models/ObjectTypeEditsHistoryResponse.md) | `from foundry_sdk.v2.ontologies.models import ObjectTypeEditsHistoryResponse` | **Ontologies** | [ObjectTypeFullMetadata](docs/v2/Ontologies/models/ObjectTypeFullMetadata.md) | `from foundry_sdk.v2.ontologies.models import ObjectTypeFullMetadata` | **Ontologies** | [ObjectTypeId](docs/v2/Ontologies/models/ObjectTypeId.md) | `from foundry_sdk.v2.ontologies.models import ObjectTypeId` | **Ontologies** | [ObjectTypeInterfaceImplementation](docs/v2/Ontologies/models/ObjectTypeInterfaceImplementation.md) | `from foundry_sdk.v2.ontologies.models import ObjectTypeInterfaceImplementation` | @@ -2140,6 +2347,7 @@ Namespace | Name | Import | **Ontologies** | [PreciseTimeUnit](docs/v2/Ontologies/models/PreciseTimeUnit.md) | `from foundry_sdk.v2.ontologies.models import PreciseTimeUnit` | **Ontologies** | [PrefixOnLastTokenRule](docs/v2/Ontologies/models/PrefixOnLastTokenRule.md) | `from foundry_sdk.v2.ontologies.models import PrefixOnLastTokenRule` | **Ontologies** | [PrimaryKeyValue](docs/v2/Ontologies/models/PrimaryKeyValue.md) | `from foundry_sdk.v2.ontologies.models import PrimaryKeyValue` | +**Ontologies** | [PrimaryKeyValueV2](docs/v2/Ontologies/models/PrimaryKeyValueV2.md) | `from foundry_sdk.v2.ontologies.models import PrimaryKeyValueV2` | **Ontologies** | [PropertyApiName](docs/v2/Ontologies/models/PropertyApiName.md) | `from foundry_sdk.v2.ontologies.models import PropertyApiName` | **Ontologies** | [PropertyApiNameSelector](docs/v2/Ontologies/models/PropertyApiNameSelector.md) | `from foundry_sdk.v2.ontologies.models import PropertyApiNameSelector` | **Ontologies** | [PropertyBooleanFormattingRule](docs/v2/Ontologies/models/PropertyBooleanFormattingRule.md) | `from foundry_sdk.v2.ontologies.models import PropertyBooleanFormattingRule` | @@ -2244,6 +2452,7 @@ Namespace | Name | Import | **Ontologies** | [StringConstant](docs/v2/Ontologies/models/StringConstant.md) | `from foundry_sdk.v2.ontologies.models import StringConstant` | **Ontologies** | [StringLengthConstraint](docs/v2/Ontologies/models/StringLengthConstraint.md) | `from foundry_sdk.v2.ontologies.models import StringLengthConstraint` | **Ontologies** | [StringRegexMatchConstraint](docs/v2/Ontologies/models/StringRegexMatchConstraint.md) | `from foundry_sdk.v2.ontologies.models import StringRegexMatchConstraint` | +**Ontologies** | [StringValue](docs/v2/Ontologies/models/StringValue.md) | `from foundry_sdk.v2.ontologies.models import StringValue` | **Ontologies** | [StructConstraint](docs/v2/Ontologies/models/StructConstraint.md) | `from foundry_sdk.v2.ontologies.models import StructConstraint` | **Ontologies** | [StructEvaluatedConstraint](docs/v2/Ontologies/models/StructEvaluatedConstraint.md) | `from foundry_sdk.v2.ontologies.models import StructEvaluatedConstraint` | **Ontologies** | [StructFieldApiName](docs/v2/Ontologies/models/StructFieldApiName.md) | `from foundry_sdk.v2.ontologies.models import StructFieldApiName` | @@ -2281,9 +2490,11 @@ Namespace | Name | Import | **Ontologies** | [TimeSeriesRollingAggregate](docs/v2/Ontologies/models/TimeSeriesRollingAggregate.md) | `from foundry_sdk.v2.ontologies.models import TimeSeriesRollingAggregate` | **Ontologies** | [TimeSeriesRollingAggregateWindow](docs/v2/Ontologies/models/TimeSeriesRollingAggregateWindow.md) | `from foundry_sdk.v2.ontologies.models import TimeSeriesRollingAggregateWindow` | **Ontologies** | [TimeSeriesWindowType](docs/v2/Ontologies/models/TimeSeriesWindowType.md) | `from foundry_sdk.v2.ontologies.models import TimeSeriesWindowType` | +**Ontologies** | [TimestampValue](docs/v2/Ontologies/models/TimestampValue.md) | `from foundry_sdk.v2.ontologies.models import TimestampValue` | **Ontologies** | [TimeUnit](docs/v2/Ontologies/models/TimeUnit.md) | `from foundry_sdk.v2.ontologies.models import TimeUnit` | **Ontologies** | [TransactionEdit](docs/v2/Ontologies/models/TransactionEdit.md) | `from foundry_sdk.v2.ontologies.models import TransactionEdit` | **Ontologies** | [TwoDimensionalAggregation](docs/v2/Ontologies/models/TwoDimensionalAggregation.md) | `from foundry_sdk.v2.ontologies.models import TwoDimensionalAggregation` | +**Ontologies** | [TypeClass](docs/v2/Ontologies/models/TypeClass.md) | `from foundry_sdk.v2.ontologies.models import TypeClass` | **Ontologies** | [UnevaluableConstraint](docs/v2/Ontologies/models/UnevaluableConstraint.md) | `from foundry_sdk.v2.ontologies.models import UnevaluableConstraint` | **Ontologies** | [UniqueIdentifierArgument](docs/v2/Ontologies/models/UniqueIdentifierArgument.md) | `from foundry_sdk.v2.ontologies.models import UniqueIdentifierArgument` | **Ontologies** | [UniqueIdentifierLinkId](docs/v2/Ontologies/models/UniqueIdentifierLinkId.md) | `from foundry_sdk.v2.ontologies.models import UniqueIdentifierLinkId` | @@ -2401,13 +2612,48 @@ Namespace | Name | Import | **Orchestration** | [Trigger](docs/v2/Orchestration/models/Trigger.md) | `from foundry_sdk.v2.orchestration.models import Trigger` | **Orchestration** | [UpstreamTarget](docs/v2/Orchestration/models/UpstreamTarget.md) | `from foundry_sdk.v2.orchestration.models import UpstreamTarget` | **Orchestration** | [UserScope](docs/v2/Orchestration/models/UserScope.md) | `from foundry_sdk.v2.orchestration.models import UserScope` | +**SqlQueries** | [AnyColumnType](docs/v2/SqlQueries/models/AnyColumnType.md) | `from foundry_sdk.v2.sql_queries.models import AnyColumnType` | **SqlQueries** | [CanceledQueryStatus](docs/v2/SqlQueries/models/CanceledQueryStatus.md) | `from foundry_sdk.v2.sql_queries.models import CanceledQueryStatus` | +**SqlQueries** | [ColumnType](docs/v2/SqlQueries/models/ColumnType.md) | `from foundry_sdk.v2.sql_queries.models import ColumnType` | +**SqlQueries** | [DecimalColumnType](docs/v2/SqlQueries/models/DecimalColumnType.md) | `from foundry_sdk.v2.sql_queries.models import DecimalColumnType` | +**SqlQueries** | [ExecuteOntologySqlQueryRequest](docs/v2/SqlQueries/models/ExecuteOntologySqlQueryRequest.md) | `from foundry_sdk.v2.sql_queries.models import ExecuteOntologySqlQueryRequest` | **SqlQueries** | [ExecuteSqlQueryRequest](docs/v2/SqlQueries/models/ExecuteSqlQueryRequest.md) | `from foundry_sdk.v2.sql_queries.models import ExecuteSqlQueryRequest` | **SqlQueries** | [FailedQueryStatus](docs/v2/SqlQueries/models/FailedQueryStatus.md) | `from foundry_sdk.v2.sql_queries.models import FailedQueryStatus` | +**SqlQueries** | [ListColumnType](docs/v2/SqlQueries/models/ListColumnType.md) | `from foundry_sdk.v2.sql_queries.models import ListColumnType` | +**SqlQueries** | [MapColumnType](docs/v2/SqlQueries/models/MapColumnType.md) | `from foundry_sdk.v2.sql_queries.models import MapColumnType` | +**SqlQueries** | [MapParameterKey](docs/v2/SqlQueries/models/MapParameterKey.md) | `from foundry_sdk.v2.sql_queries.models import MapParameterKey` | +**SqlQueries** | [NamedParameterMapping](docs/v2/SqlQueries/models/NamedParameterMapping.md) | `from foundry_sdk.v2.sql_queries.models import NamedParameterMapping` | +**SqlQueries** | [ParameterAnyValue](docs/v2/SqlQueries/models/ParameterAnyValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterAnyValue` | +**SqlQueries** | [ParameterBinaryValue](docs/v2/SqlQueries/models/ParameterBinaryValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterBinaryValue` | +**SqlQueries** | [ParameterBooleanValue](docs/v2/SqlQueries/models/ParameterBooleanValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterBooleanValue` | +**SqlQueries** | [ParameterDateValue](docs/v2/SqlQueries/models/ParameterDateValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterDateValue` | +**SqlQueries** | [ParameterDecimalValue](docs/v2/SqlQueries/models/ParameterDecimalValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterDecimalValue` | +**SqlQueries** | [ParameterDoubleValue](docs/v2/SqlQueries/models/ParameterDoubleValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterDoubleValue` | +**SqlQueries** | [ParameterFloatValue](docs/v2/SqlQueries/models/ParameterFloatValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterFloatValue` | +**SqlQueries** | [ParameterIntegerValue](docs/v2/SqlQueries/models/ParameterIntegerValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterIntegerValue` | +**SqlQueries** | [ParameterListValue](docs/v2/SqlQueries/models/ParameterListValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterListValue` | +**SqlQueries** | [ParameterLongValue](docs/v2/SqlQueries/models/ParameterLongValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterLongValue` | +**SqlQueries** | [ParameterMapping](docs/v2/SqlQueries/models/ParameterMapping.md) | `from foundry_sdk.v2.sql_queries.models import ParameterMapping` | +**SqlQueries** | [ParameterMapValue](docs/v2/SqlQueries/models/ParameterMapValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterMapValue` | +**SqlQueries** | [ParameterName](docs/v2/SqlQueries/models/ParameterName.md) | `from foundry_sdk.v2.sql_queries.models import ParameterName` | +**SqlQueries** | [ParameterNullValue](docs/v2/SqlQueries/models/ParameterNullValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterNullValue` | +**SqlQueries** | [Parameters](docs/v2/SqlQueries/models/Parameters.md) | `from foundry_sdk.v2.sql_queries.models import Parameters` | +**SqlQueries** | [ParameterShortValue](docs/v2/SqlQueries/models/ParameterShortValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterShortValue` | +**SqlQueries** | [ParameterStringValue](docs/v2/SqlQueries/models/ParameterStringValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterStringValue` | +**SqlQueries** | [ParameterStructValue](docs/v2/SqlQueries/models/ParameterStructValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterStructValue` | +**SqlQueries** | [ParameterTimestampValue](docs/v2/SqlQueries/models/ParameterTimestampValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterTimestampValue` | +**SqlQueries** | [ParameterValue](docs/v2/SqlQueries/models/ParameterValue.md) | `from foundry_sdk.v2.sql_queries.models import ParameterValue` | **SqlQueries** | [QueryStatus](docs/v2/SqlQueries/models/QueryStatus.md) | `from foundry_sdk.v2.sql_queries.models import QueryStatus` | **SqlQueries** | [RunningQueryStatus](docs/v2/SqlQueries/models/RunningQueryStatus.md) | `from foundry_sdk.v2.sql_queries.models import RunningQueryStatus` | **SqlQueries** | [SqlQueryId](docs/v2/SqlQueries/models/SqlQueryId.md) | `from foundry_sdk.v2.sql_queries.models import SqlQueryId` | +**SqlQueries** | [StructColumnFieldType](docs/v2/SqlQueries/models/StructColumnFieldType.md) | `from foundry_sdk.v2.sql_queries.models import StructColumnFieldType` | +**SqlQueries** | [StructColumnType](docs/v2/SqlQueries/models/StructColumnType.md) | `from foundry_sdk.v2.sql_queries.models import StructColumnType` | +**SqlQueries** | [StructElement](docs/v2/SqlQueries/models/StructElement.md) | `from foundry_sdk.v2.sql_queries.models import StructElement` | +**SqlQueries** | [StructElementName](docs/v2/SqlQueries/models/StructElementName.md) | `from foundry_sdk.v2.sql_queries.models import StructElementName` | +**SqlQueries** | [StructFieldKeyValue](docs/v2/SqlQueries/models/StructFieldKeyValue.md) | `from foundry_sdk.v2.sql_queries.models import StructFieldKeyValue` | +**SqlQueries** | [StructFieldRid](docs/v2/SqlQueries/models/StructFieldRid.md) | `from foundry_sdk.v2.sql_queries.models import StructFieldRid` | **SqlQueries** | [SucceededQueryStatus](docs/v2/SqlQueries/models/SucceededQueryStatus.md) | `from foundry_sdk.v2.sql_queries.models import SucceededQueryStatus` | +**SqlQueries** | [UnnamedParameterValues](docs/v2/SqlQueries/models/UnnamedParameterValues.md) | `from foundry_sdk.v2.sql_queries.models import UnnamedParameterValues` | **Streams** | [Compressed](docs/v2/Streams/models/Compressed.md) | `from foundry_sdk.v2.streams.models import Compressed` | **Streams** | [CreateStreamingDatasetRequest](docs/v2/Streams/models/CreateStreamingDatasetRequest.md) | `from foundry_sdk.v2.streams.models import CreateStreamingDatasetRequest` | **Streams** | [CreateStreamRequest](docs/v2/Streams/models/CreateStreamRequest.md) | `from foundry_sdk.v2.streams.models import CreateStreamRequest` | @@ -2704,6 +2950,9 @@ Namespace | Name | Import | **Admin** | AuthenticationProviderNotFound | `from foundry_sdk.v2.admin.errors import AuthenticationProviderNotFound` | **Admin** | CannotReplaceProviderInfoForPrincipalInProtectedRealm | `from foundry_sdk.v2.admin.errors import CannotReplaceProviderInfoForPrincipalInProtectedRealm` | **Admin** | CreateGroupPermissionDenied | `from foundry_sdk.v2.admin.errors import CreateGroupPermissionDenied` | +**Admin** | CreateMarkingCategoryMissingInitialAdminRole | `from foundry_sdk.v2.admin.errors import CreateMarkingCategoryMissingInitialAdminRole` | +**Admin** | CreateMarkingCategoryMissingOrganization | `from foundry_sdk.v2.admin.errors import CreateMarkingCategoryMissingOrganization` | +**Admin** | CreateMarkingCategoryPermissionDenied | `from foundry_sdk.v2.admin.errors import CreateMarkingCategoryPermissionDenied` | **Admin** | CreateMarkingMissingInitialAdminRole | `from foundry_sdk.v2.admin.errors import CreateMarkingMissingInitialAdminRole` | **Admin** | CreateMarkingPermissionDenied | `from foundry_sdk.v2.admin.errors import CreateMarkingPermissionDenied` | **Admin** | CreateOrganizationMissingInitialAdminRole | `from foundry_sdk.v2.admin.errors import CreateOrganizationMissingInitialAdminRole` | @@ -2753,6 +3002,7 @@ Namespace | Name | Import | **Admin** | RemoveOrganizationRoleAssignmentsPermissionDenied | `from foundry_sdk.v2.admin.errors import RemoveOrganizationRoleAssignmentsPermissionDenied` | **Admin** | ReplaceGroupMembershipExpirationPolicyPermissionDenied | `from foundry_sdk.v2.admin.errors import ReplaceGroupMembershipExpirationPolicyPermissionDenied` | **Admin** | ReplaceGroupProviderInfoPermissionDenied | `from foundry_sdk.v2.admin.errors import ReplaceGroupProviderInfoPermissionDenied` | +**Admin** | ReplaceMarkingCategoryPermissionDenied | `from foundry_sdk.v2.admin.errors import ReplaceMarkingCategoryPermissionDenied` | **Admin** | ReplaceMarkingPermissionDenied | `from foundry_sdk.v2.admin.errors import ReplaceMarkingPermissionDenied` | **Admin** | ReplaceOrganizationPermissionDenied | `from foundry_sdk.v2.admin.errors import ReplaceOrganizationPermissionDenied` | **Admin** | ReplaceUserProviderInfoPermissionDenied | `from foundry_sdk.v2.admin.errors import ReplaceUserProviderInfoPermissionDenied` | @@ -2862,6 +3112,7 @@ Namespace | Name | Import | **Core** | InvalidTimeZone | `from foundry_sdk.v2.core.errors import InvalidTimeZone` | **Core** | MissingBatchRequest | `from foundry_sdk.v2.core.errors import MissingBatchRequest` | **Core** | MissingPostBody | `from foundry_sdk.v2.core.errors import MissingPostBody` | +**Core** | NotAuthorizedToDeclassifyMarkings | `from foundry_sdk.v2.core.errors import NotAuthorizedToDeclassifyMarkings` | **Core** | ResourceNameAlreadyExists | `from foundry_sdk.v2.core.errors import ResourceNameAlreadyExists` | **Core** | SchemaIsNotStreamSchema | `from foundry_sdk.v2.core.errors import SchemaIsNotStreamSchema` | **Core** | UnknownDistanceUnit | `from foundry_sdk.v2.core.errors import UnknownDistanceUnit` | @@ -3014,7 +3265,7 @@ Namespace | Name | Import | **Functions** | ExecuteQueryPermissionDenied | `from foundry_sdk.v2.functions.errors import ExecuteQueryPermissionDenied` | **Functions** | FunctionHasNoPublishedVersion | `from foundry_sdk.v2.functions.errors import FunctionHasNoPublishedVersion` | **Functions** | FunctionNotFound | `from foundry_sdk.v2.functions.errors import FunctionNotFound` | -**Functions** | GetByRidQueriesPermissionDenied | `from foundry_sdk.v2.functions.errors import GetByRidQueriesPermissionDenied` | +**Functions** | GetByRidPermissionDenied | `from foundry_sdk.v2.functions.errors import GetByRidPermissionDenied` | **Functions** | InvalidQueryOutputValue | `from foundry_sdk.v2.functions.errors import InvalidQueryOutputValue` | **Functions** | InvalidQueryParameterValue | `from foundry_sdk.v2.functions.errors import InvalidQueryParameterValue` | **Functions** | MissingParameter | `from foundry_sdk.v2.functions.errors import MissingParameter` | @@ -3034,11 +3285,13 @@ Namespace | Name | Import | **LanguageModels** | OpenAiEmbeddingsPermissionDenied | `from foundry_sdk.v2.language_models.errors import OpenAiEmbeddingsPermissionDenied` | **MediaSets** | ConflictingMediaSetIdentifiers | `from foundry_sdk.v2.media_sets.errors import ConflictingMediaSetIdentifiers` | **MediaSets** | GetMediaItemRidByPathPermissionDenied | `from foundry_sdk.v2.media_sets.errors import GetMediaItemRidByPathPermissionDenied` | +**MediaSets** | InvalidMediaItemRid | `from foundry_sdk.v2.media_sets.errors import InvalidMediaItemRid` | **MediaSets** | InvalidMediaItemSchema | `from foundry_sdk.v2.media_sets.errors import InvalidMediaItemSchema` | **MediaSets** | MediaItemHasUnsupportedSecuritySettings | `from foundry_sdk.v2.media_sets.errors import MediaItemHasUnsupportedSecuritySettings` | **MediaSets** | MediaItemImageUnparsable | `from foundry_sdk.v2.media_sets.errors import MediaItemImageUnparsable` | **MediaSets** | MediaItemIsPasswordProtected | `from foundry_sdk.v2.media_sets.errors import MediaItemIsPasswordProtected` | **MediaSets** | MediaItemNotFound | `from foundry_sdk.v2.media_sets.errors import MediaItemNotFound` | +**MediaSets** | MediaItemRidAlreadyExists | `from foundry_sdk.v2.media_sets.errors import MediaItemRidAlreadyExists` | **MediaSets** | MediaItemXmlUnparsable | `from foundry_sdk.v2.media_sets.errors import MediaItemXmlUnparsable` | **MediaSets** | MediaSetNotFound | `from foundry_sdk.v2.media_sets.errors import MediaSetNotFound` | **MediaSets** | MediaSetOpenTransactionAlreadyExists | `from foundry_sdk.v2.media_sets.errors import MediaSetOpenTransactionAlreadyExists` | @@ -3046,14 +3299,26 @@ Namespace | Name | Import | **MediaSets** | MissingMediaItemPath | `from foundry_sdk.v2.media_sets.errors import MissingMediaItemPath` | **MediaSets** | TemporaryMediaUploadInsufficientPermissions | `from foundry_sdk.v2.media_sets.errors import TemporaryMediaUploadInsufficientPermissions` | **MediaSets** | TemporaryMediaUploadUnknownFailure | `from foundry_sdk.v2.media_sets.errors import TemporaryMediaUploadUnknownFailure` | +**MediaSets** | TransformationNotFound | `from foundry_sdk.v2.media_sets.errors import TransformationNotFound` | +**MediaSets** | TransformationUnavailable | `from foundry_sdk.v2.media_sets.errors import TransformationUnavailable` | **MediaSets** | TransformedMediaItemNotFound | `from foundry_sdk.v2.media_sets.errors import TransformedMediaItemNotFound` | **MediaSets** | UnexpectedMetadataType | `from foundry_sdk.v2.media_sets.errors import UnexpectedMetadataType` | **Models** | CondaSolveFailureForProvidedPackages | `from foundry_sdk.v2.models.errors import CondaSolveFailureForProvidedPackages` | +**Models** | CreateConfigValidationError | `from foundry_sdk.v2.models.errors import CreateConfigValidationError` | **Models** | CreateModelPermissionDenied | `from foundry_sdk.v2.models.errors import CreateModelPermissionDenied` | +**Models** | CreateModelStudioConfigVersionPermissionDenied | `from foundry_sdk.v2.models.errors import CreateModelStudioConfigVersionPermissionDenied` | +**Models** | CreateModelStudioPermissionDenied | `from foundry_sdk.v2.models.errors import CreateModelStudioPermissionDenied` | **Models** | CreateModelVersionPermissionDenied | `from foundry_sdk.v2.models.errors import CreateModelVersionPermissionDenied` | **Models** | InvalidModelApi | `from foundry_sdk.v2.models.errors import InvalidModelApi` | +**Models** | InvalidModelStudioCreateRequest | `from foundry_sdk.v2.models.errors import InvalidModelStudioCreateRequest` | +**Models** | LatestModelStudioConfigVersionsPermissionDenied | `from foundry_sdk.v2.models.errors import LatestModelStudioConfigVersionsPermissionDenied` | +**Models** | LaunchModelStudioPermissionDenied | `from foundry_sdk.v2.models.errors import LaunchModelStudioPermissionDenied` | **Models** | ModelNotFound | `from foundry_sdk.v2.models.errors import ModelNotFound` | +**Models** | ModelStudioConfigVersionNotFound | `from foundry_sdk.v2.models.errors import ModelStudioConfigVersionNotFound` | +**Models** | ModelStudioNotFound | `from foundry_sdk.v2.models.errors import ModelStudioNotFound` | +**Models** | ModelStudioTrainerNotFound | `from foundry_sdk.v2.models.errors import ModelStudioTrainerNotFound` | **Models** | ModelVersionNotFound | `from foundry_sdk.v2.models.errors import ModelVersionNotFound` | +**Models** | TrainerNotFound | `from foundry_sdk.v2.models.errors import TrainerNotFound` | **Ontologies** | ActionContainsDuplicateEdits | `from foundry_sdk.v2.ontologies.errors import ActionContainsDuplicateEdits` | **Ontologies** | ActionEditedPropertiesNotFound | `from foundry_sdk.v2.ontologies.errors import ActionEditedPropertiesNotFound` | **Ontologies** | ActionEditsReadOnlyEntity | `from foundry_sdk.v2.ontologies.errors import ActionEditsReadOnlyEntity` | @@ -3084,6 +3349,7 @@ Namespace | Name | Import | **Ontologies** | FunctionExecutionTimedOut | `from foundry_sdk.v2.ontologies.errors import FunctionExecutionTimedOut` | **Ontologies** | FunctionInvalidInput | `from foundry_sdk.v2.ontologies.errors import FunctionInvalidInput` | **Ontologies** | HighScaleComputationNotEnabled | `from foundry_sdk.v2.ontologies.errors import HighScaleComputationNotEnabled` | +**Ontologies** | IncompatibleNestedObjectSet | `from foundry_sdk.v2.ontologies.errors import IncompatibleNestedObjectSet` | **Ontologies** | InterfaceBasedObjectSetNotSupported | `from foundry_sdk.v2.ontologies.errors import InterfaceBasedObjectSetNotSupported` | **Ontologies** | InterfaceLinkTypeNotFound | `from foundry_sdk.v2.ontologies.errors import InterfaceLinkTypeNotFound` | **Ontologies** | InterfacePropertiesHaveDifferentIds | `from foundry_sdk.v2.ontologies.errors import InterfacePropertiesHaveDifferentIds` | @@ -3230,9 +3496,11 @@ Namespace | Name | Import | **Orchestration** | TargetNotSupported | `from foundry_sdk.v2.orchestration.errors import TargetNotSupported` | **Orchestration** | UnpauseSchedulePermissionDenied | `from foundry_sdk.v2.orchestration.errors import UnpauseSchedulePermissionDenied` | **SqlQueries** | CancelSqlQueryPermissionDenied | `from foundry_sdk.v2.sql_queries.errors import CancelSqlQueryPermissionDenied` | +**SqlQueries** | ExecuteOntologySqlQueryPermissionDenied | `from foundry_sdk.v2.sql_queries.errors import ExecuteOntologySqlQueryPermissionDenied` | **SqlQueries** | ExecuteSqlQueryPermissionDenied | `from foundry_sdk.v2.sql_queries.errors import ExecuteSqlQueryPermissionDenied` | **SqlQueries** | GetResultsSqlQueryPermissionDenied | `from foundry_sdk.v2.sql_queries.errors import GetResultsSqlQueryPermissionDenied` | **SqlQueries** | GetStatusSqlQueryPermissionDenied | `from foundry_sdk.v2.sql_queries.errors import GetStatusSqlQueryPermissionDenied` | +**SqlQueries** | OntologyQueryFailed | `from foundry_sdk.v2.sql_queries.errors import OntologyQueryFailed` | **SqlQueries** | QueryCanceled | `from foundry_sdk.v2.sql_queries.errors import QueryCanceled` | **SqlQueries** | QueryFailed | `from foundry_sdk.v2.sql_queries.errors import QueryFailed` | **SqlQueries** | QueryParseError | `from foundry_sdk.v2.sql_queries.errors import QueryParseError` | @@ -3262,6 +3530,9 @@ Namespace | Name | Import | **ThirdPartyApplications** | FileCountLimitExceeded | `from foundry_sdk.v2.third_party_applications.errors import FileCountLimitExceeded` | **ThirdPartyApplications** | FileSizeLimitExceeded | `from foundry_sdk.v2.third_party_applications.errors import FileSizeLimitExceeded` | **ThirdPartyApplications** | InvalidVersion | `from foundry_sdk.v2.third_party_applications.errors import InvalidVersion` | +**ThirdPartyApplications** | ScanningErrored | `from foundry_sdk.v2.third_party_applications.errors import ScanningErrored` | +**ThirdPartyApplications** | ScanningInProgress | `from foundry_sdk.v2.third_party_applications.errors import ScanningInProgress` | +**ThirdPartyApplications** | SiteAssetHasVulnerabilities | `from foundry_sdk.v2.third_party_applications.errors import SiteAssetHasVulnerabilities` | **ThirdPartyApplications** | ThirdPartyApplicationNotFound | `from foundry_sdk.v2.third_party_applications.errors import ThirdPartyApplicationNotFound` | **ThirdPartyApplications** | UndeployWebsitePermissionDenied | `from foundry_sdk.v2.third_party_applications.errors import UndeployWebsitePermissionDenied` | **ThirdPartyApplications** | UploadSnapshotVersionPermissionDenied | `from foundry_sdk.v2.third_party_applications.errors import UploadSnapshotVersionPermissionDenied` | @@ -3388,6 +3659,7 @@ Namespace | Name | Import | **Ontologies** | FunctionExecutionTimedOut | `from foundry_sdk.v1.ontologies.errors import FunctionExecutionTimedOut` | **Ontologies** | FunctionInvalidInput | `from foundry_sdk.v1.ontologies.errors import FunctionInvalidInput` | **Ontologies** | HighScaleComputationNotEnabled | `from foundry_sdk.v1.ontologies.errors import HighScaleComputationNotEnabled` | +**Ontologies** | IncompatibleNestedObjectSet | `from foundry_sdk.v1.ontologies.errors import IncompatibleNestedObjectSet` | **Ontologies** | InterfaceBasedObjectSetNotSupported | `from foundry_sdk.v1.ontologies.errors import InterfaceBasedObjectSetNotSupported` | **Ontologies** | InterfaceLinkTypeNotFound | `from foundry_sdk.v1.ontologies.errors import InterfaceLinkTypeNotFound` | **Ontologies** | InterfacePropertiesHaveDifferentIds | `from foundry_sdk.v1.ontologies.errors import InterfacePropertiesHaveDifferentIds` | diff --git a/docs-snippets-npm/package.json b/docs-snippets-npm/package.json index 423b5f7cf..773293992 100644 --- a/docs-snippets-npm/package.json +++ b/docs-snippets-npm/package.json @@ -24,7 +24,7 @@ "sls": { "dependencies": { "com.palantir.foundry.api:api-gateway": { - "minVersion": "1.1453.0", + "minVersion": "1.1483.0", "maxVersion": "1.x.x", "optional": false } diff --git a/docs-snippets-npm/src/index.ts b/docs-snippets-npm/src/index.ts index e186e0e4f..3247a8088 100644 --- a/docs-snippets-npm/src/index.ts +++ b/docs-snippets-npm/src/index.ts @@ -355,7 +355,7 @@ export const PYTHON_PLATFORM_SNIPPETS: SdkSnippets.media-item.`, where `` is the same as the instance part of the media set RID, and `` is a UUID. An `InvalidMediaItemRid` error will be thrown if the RID is not in the expected format. A `MediaItemRidAlreadyExists` error will be thrown if the media set already contains a media item with the same RID.\nmedia_item_rid = None\n# Optional[PreviewMode] | A boolean flag that, when set to true, enables the use of beta features in preview mode.\npreview = None\n\n\ntry:\n api_response = client.media_sets.MediaSet.upload_media(\n body,\n filename=filename,\n attribution=attribution,\n media_item_rid=media_item_rid,\n preview=preview,\n )\n print(\"The upload_media response:\\n\")\n pprint(api_response)\nexcept foundry_sdk.PalantirRPCException as e:\n print(\"HTTP error when calling MediaSet.upload_media: %s\\n\" % e)" } ], "v2.createModel": [ @@ -1163,6 +1193,56 @@ export const PYTHON_PLATFORM_SNIPPETS: SdkSnippets.media-item.`, where `` is the same as the instance part of the media set RID, and `` is a UUID. An `InvalidMediaItemRid` error will be thrown if the RID is not in the expected format. A `MediaItemRidAlreadyExists` error will be thrown if the media set already contains a media item with the same RID. | [optional] | **preview** | Optional[PreviewMode] | A boolean flag that, when set to true, enables the use of beta features in preview mode. | [optional] | ### Return type @@ -778,17 +977,23 @@ client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.pa # bytes | Body of the request body = None -# MediaItemPath | The path to write the media item to. Required if the backing media set requires paths. +# MediaItemPath | A user-defined label for a media item within a media set. Required if the backing media set requires paths. Uploading multiple files to the same path will result in only the most recent file being associated with the path. filename = "my-file.png" # Optional[Attribution] | used for passing through usage attribution attribution = None +# Optional[MediaItemRid] | An optional RID to use for the media item to create. If omitted, the server will automatically generate a RID. In most cases, the server-generated RID should be preferred; only specify a custom RID if your workflow strictly requires deterministic or client-controlled identifiers. The RID must be in the format of `ri.mio..media-item.`, where `` is the same as the instance part of the media set RID, and `` is a UUID. An `InvalidMediaItemRid` error will be thrown if the RID is not in the expected format. A `MediaItemRidAlreadyExists` error will be thrown if the media set already contains a media item with the same RID. +media_item_rid = None # Optional[PreviewMode] | A boolean flag that, when set to true, enables the use of beta features in preview mode. preview = None try: api_response = client.media_sets.MediaSet.upload_media( - body, filename=filename, attribution=attribution, preview=preview + body, + filename=filename, + attribution=attribution, + media_item_rid=media_item_rid, + preview=preview, ) print("The upload_media response:\n") pprint(api_response) diff --git a/docs/v2/MediaSets/models/AnnotateGeometry.md b/docs/v2/MediaSets/models/AnnotateGeometry.md new file mode 100644 index 000000000..e46384e7b --- /dev/null +++ b/docs/v2/MediaSets/models/AnnotateGeometry.md @@ -0,0 +1,11 @@ +# AnnotateGeometry + +The geometry for an annotation. + +## Type +```python +BoundingBoxGeometry +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AnnotateImageOperation.md b/docs/v2/MediaSets/models/AnnotateImageOperation.md new file mode 100644 index 000000000..422ece3fb --- /dev/null +++ b/docs/v2/MediaSets/models/AnnotateImageOperation.md @@ -0,0 +1,12 @@ +# AnnotateImageOperation + +Annotates an image with bounding boxes, labels, and colors. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**annotations** | List[Annotation] | Yes | The list of annotations to draw on the image. | +**type** | Literal["annotate"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Annotation.md b/docs/v2/MediaSets/models/Annotation.md new file mode 100644 index 000000000..ff83061d5 --- /dev/null +++ b/docs/v2/MediaSets/models/Annotation.md @@ -0,0 +1,15 @@ +# Annotation + +An annotation to draw on an image. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**geometry** | AnnotateGeometry | Yes | | +**label** | Optional[str] | No | An optional text label to display with the annotation. | +**color** | Optional[Color] | No | | +**thickness** | Optional[float] | No | The thickness of the annotation lines. | +**font_size** | Optional[int] | No | The font size for the label text. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ArchiveEncodeFormat.md b/docs/v2/MediaSets/models/ArchiveEncodeFormat.md new file mode 100644 index 000000000..d52490568 --- /dev/null +++ b/docs/v2/MediaSets/models/ArchiveEncodeFormat.md @@ -0,0 +1,11 @@ +# ArchiveEncodeFormat + +The output format for encoding archives. + +## Type +```python +TarFormat +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioChannelLayout.md b/docs/v2/MediaSets/models/AudioChannelLayout.md new file mode 100644 index 000000000..664352e7e --- /dev/null +++ b/docs/v2/MediaSets/models/AudioChannelLayout.md @@ -0,0 +1,11 @@ +# AudioChannelLayout + +The audio channel layout configuration. + +## Type +```python +NumberOfChannels +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioChannelOperation.md b/docs/v2/MediaSets/models/AudioChannelOperation.md new file mode 100644 index 000000000..7106aa959 --- /dev/null +++ b/docs/v2/MediaSets/models/AudioChannelOperation.md @@ -0,0 +1,13 @@ +# AudioChannelOperation + +Selects a specific channel from multi-channel audio. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encode_format** | AudioEncodeFormat | Yes | | +**channel** | int | Yes | The channel number to select. | +**type** | Literal["channel"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioChunkOperation.md b/docs/v2/MediaSets/models/AudioChunkOperation.md new file mode 100644 index 000000000..4b8f7cf0f --- /dev/null +++ b/docs/v2/MediaSets/models/AudioChunkOperation.md @@ -0,0 +1,14 @@ +# AudioChunkOperation + +Chunks audio into smaller segments of the specified duration. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**chunk_duration_milliseconds** | int | Yes | Duration of each chunk in milliseconds. | +**encode_format** | AudioEncodeFormat | Yes | | +**chunk_index** | int | Yes | The chunk index to retain. | +**type** | Literal["chunk"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioEncodeFormat.md b/docs/v2/MediaSets/models/AudioEncodeFormat.md new file mode 100644 index 000000000..f1b08c9b1 --- /dev/null +++ b/docs/v2/MediaSets/models/AudioEncodeFormat.md @@ -0,0 +1,17 @@ +# AudioEncodeFormat + +The output format for encoding audio. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +Mp3Format | mp3 +WavEncodeFormat | wav +TsAudioContainerFormat | ts + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioOperation.md b/docs/v2/MediaSets/models/AudioOperation.md new file mode 100644 index 000000000..bee243aea --- /dev/null +++ b/docs/v2/MediaSets/models/AudioOperation.md @@ -0,0 +1,17 @@ +# AudioOperation + +The operation to perform on audio. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +AudioChannelOperation | channel +AudioChunkOperation | chunk +ConvertAudioOperation | convert + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioToTextOperation.md b/docs/v2/MediaSets/models/AudioToTextOperation.md new file mode 100644 index 000000000..c88f13613 --- /dev/null +++ b/docs/v2/MediaSets/models/AudioToTextOperation.md @@ -0,0 +1,16 @@ +# AudioToTextOperation + +The operation to perform for audio to text conversion. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +TranscribeOperation | transcribe +WaveformOperation | waveform + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioToTextTransformation.md b/docs/v2/MediaSets/models/AudioToTextTransformation.md new file mode 100644 index 000000000..b73f162cc --- /dev/null +++ b/docs/v2/MediaSets/models/AudioToTextTransformation.md @@ -0,0 +1,12 @@ +# AudioToTextTransformation + +Converts audio to text. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | AudioToTextOperation | Yes | | +**type** | Literal["audioToText"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AudioTransformation.md b/docs/v2/MediaSets/models/AudioTransformation.md new file mode 100644 index 000000000..9574d9f55 --- /dev/null +++ b/docs/v2/MediaSets/models/AudioTransformation.md @@ -0,0 +1,12 @@ +# AudioTransformation + +Transforms audio media items. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | AudioOperation | Yes | | +**type** | Literal["audio"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/AvailableEmbeddingModelIds.md b/docs/v2/MediaSets/models/AvailableEmbeddingModelIds.md new file mode 100644 index 000000000..989735f87 --- /dev/null +++ b/docs/v2/MediaSets/models/AvailableEmbeddingModelIds.md @@ -0,0 +1,10 @@ +# AvailableEmbeddingModelIds + +Available embedding models that can be used with the service. + +| **Value** | +| --------- | +| `"GOOGLE_SIGLIP_2"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/BoundingBox.md b/docs/v2/MediaSets/models/BoundingBox.md new file mode 100644 index 000000000..06fec5cd9 --- /dev/null +++ b/docs/v2/MediaSets/models/BoundingBox.md @@ -0,0 +1,14 @@ +# BoundingBox + +A rectangular bounding box for annotations. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**left** | float | Yes | The left coordinate of the bounding box. | +**top** | float | Yes | The top coordinate of the bounding box. | +**width** | float | Yes | The width of the bounding box. | +**height** | float | Yes | The height of the bounding box. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/BoundingBoxGeometry.md b/docs/v2/MediaSets/models/BoundingBoxGeometry.md new file mode 100644 index 000000000..9529a4b65 --- /dev/null +++ b/docs/v2/MediaSets/models/BoundingBoxGeometry.md @@ -0,0 +1,12 @@ +# BoundingBoxGeometry + +A rectangular bounding box geometry for annotations. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**bounding_box** | BoundingBox | Yes | | +**type** | Literal["boundingBox"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Color.md b/docs/v2/MediaSets/models/Color.md new file mode 100644 index 000000000..f9aeff4ae --- /dev/null +++ b/docs/v2/MediaSets/models/Color.md @@ -0,0 +1,14 @@ +# Color + +An RGBA color value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**r** | int | Yes | Red component (0-255). | +**g** | int | Yes | Green component (0-255). | +**b** | int | Yes | Blue component (0-255). | +**a** | Optional[float] | No | Alpha component (0-1, where 0 is transparent and 1 is opaque). | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ContrastBinarize.md b/docs/v2/MediaSets/models/ContrastBinarize.md new file mode 100644 index 000000000..5f3349d8f --- /dev/null +++ b/docs/v2/MediaSets/models/ContrastBinarize.md @@ -0,0 +1,12 @@ +# ContrastBinarize + +Binarize contrast operation. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**threshold** | Optional[int] | No | The threshold value (0-255). Pixels with intensity below this value become black, others become white. If not specified, the threshold is computed automatically. | +**type** | Literal["binarize"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ContrastEqualize.md b/docs/v2/MediaSets/models/ContrastEqualize.md new file mode 100644 index 000000000..8612d85a5 --- /dev/null +++ b/docs/v2/MediaSets/models/ContrastEqualize.md @@ -0,0 +1,11 @@ +# ContrastEqualize + +Equalizes the histogram of an image to improve contrast. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["equalize"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ContrastImageOperation.md b/docs/v2/MediaSets/models/ContrastImageOperation.md new file mode 100644 index 000000000..08287a4f6 --- /dev/null +++ b/docs/v2/MediaSets/models/ContrastImageOperation.md @@ -0,0 +1,12 @@ +# ContrastImageOperation + +Applies contrast adjustments to an image. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**contrast_type** | ContrastType | Yes | | +**type** | Literal["contrast"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ContrastRayleigh.md b/docs/v2/MediaSets/models/ContrastRayleigh.md new file mode 100644 index 000000000..9780f13ee --- /dev/null +++ b/docs/v2/MediaSets/models/ContrastRayleigh.md @@ -0,0 +1,12 @@ +# ContrastRayleigh + +Applies Rayleigh distribution-based contrast adjustment. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**sigma** | float | Yes | The scaling parameter for the Rayleigh distribution (0-1). | +**type** | Literal["rayleigh"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ContrastType.md b/docs/v2/MediaSets/models/ContrastType.md new file mode 100644 index 000000000..efe33bfbd --- /dev/null +++ b/docs/v2/MediaSets/models/ContrastType.md @@ -0,0 +1,17 @@ +# ContrastType + +The type of contrast adjustment to apply. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +ContrastEqualize | equalize +ContrastRayleigh | rayleigh +ContrastBinarize | binarize + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ConvertAudioOperation.md b/docs/v2/MediaSets/models/ConvertAudioOperation.md new file mode 100644 index 000000000..dfb7ce9e8 --- /dev/null +++ b/docs/v2/MediaSets/models/ConvertAudioOperation.md @@ -0,0 +1,12 @@ +# ConvertAudioOperation + +Converts audio to the specified format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encode_format** | AudioEncodeFormat | Yes | | +**type** | Literal["convert"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ConvertDocumentOperation.md b/docs/v2/MediaSets/models/ConvertDocumentOperation.md new file mode 100644 index 000000000..f907678cc --- /dev/null +++ b/docs/v2/MediaSets/models/ConvertDocumentOperation.md @@ -0,0 +1,11 @@ +# ConvertDocumentOperation + +Converts a document to PDF format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["convertDocument"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ConvertSheetToJsonOperation.md b/docs/v2/MediaSets/models/ConvertSheetToJsonOperation.md new file mode 100644 index 000000000..c5baaf302 --- /dev/null +++ b/docs/v2/MediaSets/models/ConvertSheetToJsonOperation.md @@ -0,0 +1,12 @@ +# ConvertSheetToJsonOperation + +Converts a specified sheet to JSON format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**sheet_name** | str | Yes | The sheet name. | +**type** | Literal["convertSheetToJson"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/CreatePdfOperation.md b/docs/v2/MediaSets/models/CreatePdfOperation.md new file mode 100644 index 000000000..17295787d --- /dev/null +++ b/docs/v2/MediaSets/models/CreatePdfOperation.md @@ -0,0 +1,11 @@ +# CreatePdfOperation + +Converts an image to a PDF document. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["createPdf"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/CropImageOperation.md b/docs/v2/MediaSets/models/CropImageOperation.md new file mode 100644 index 000000000..dd011fb90 --- /dev/null +++ b/docs/v2/MediaSets/models/CropImageOperation.md @@ -0,0 +1,15 @@ +# CropImageOperation + +Crops an image to a rectangular sub-window. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**x_offset** | int | Yes | The x offset in pixels from the left hand side of the image. | +**y_offset** | int | Yes | The y offset in pixels from the top of the image. | +**width** | int | Yes | The width of the cropping box in pixels. | +**height** | int | Yes | The height of the cropping box in pixels. | +**type** | Literal["crop"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DecryptImageOperation.md b/docs/v2/MediaSets/models/DecryptImageOperation.md new file mode 100644 index 000000000..c415df5df --- /dev/null +++ b/docs/v2/MediaSets/models/DecryptImageOperation.md @@ -0,0 +1,13 @@ +# DecryptImageOperation + +Decrypts bounding boxes in an image using a commutative encryption algorithm. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**polygons** | List[ImageRegionPolygon] | Yes | The polygons defining the regions to decrypt. | +**cipher_license_rid** | RID | Yes | The resource identifier for the cipher license. | +**type** | Literal["decrypt"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DicomToImageOperation.md b/docs/v2/MediaSets/models/DicomToImageOperation.md new file mode 100644 index 000000000..fea3a3343 --- /dev/null +++ b/docs/v2/MediaSets/models/DicomToImageOperation.md @@ -0,0 +1,11 @@ +# DicomToImageOperation + +The operation to perform for DICOM to image conversion. + +## Type +```python +RenderImageLayerOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DicomToImageTransformation.md b/docs/v2/MediaSets/models/DicomToImageTransformation.md new file mode 100644 index 000000000..d391b8ef0 --- /dev/null +++ b/docs/v2/MediaSets/models/DicomToImageTransformation.md @@ -0,0 +1,13 @@ +# DicomToImageTransformation + +Renders DICOM (Digital Imaging and Communications in Medicine) files as images. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | ImageryEncodeFormat | Yes | | +**operation** | DicomToImageOperation | Yes | | +**type** | Literal["dicomToImage"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentEncodeFormat.md b/docs/v2/MediaSets/models/DocumentEncodeFormat.md new file mode 100644 index 000000000..bb69c2e64 --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentEncodeFormat.md @@ -0,0 +1,11 @@ +# DocumentEncodeFormat + +The output format for encoding documents. + +## Type +```python +PdfFormat +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentExtractLayoutAwareContentOperation.md b/docs/v2/MediaSets/models/DocumentExtractLayoutAwareContentOperation.md new file mode 100644 index 000000000..a9e25c735 --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentExtractLayoutAwareContentOperation.md @@ -0,0 +1,12 @@ +# DocumentExtractLayoutAwareContentOperation + +Extracts content from a document with layout information preserved. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**parameters** | LayoutAwareExtractionParameters | Yes | | +**type** | Literal["extractLayoutAwareContent"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentToDocumentOperation.md b/docs/v2/MediaSets/models/DocumentToDocumentOperation.md new file mode 100644 index 000000000..69d283efd --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentToDocumentOperation.md @@ -0,0 +1,16 @@ +# DocumentToDocumentOperation + +The operation to perform for document to document conversion. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +SlicePdfRangeOperation | slicePdfRange +ConvertDocumentOperation | convertDocument + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentToDocumentTransformation.md b/docs/v2/MediaSets/models/DocumentToDocumentTransformation.md new file mode 100644 index 000000000..e21994858 --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentToDocumentTransformation.md @@ -0,0 +1,13 @@ +# DocumentToDocumentTransformation + +Transforms documents to documents. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | DocumentEncodeFormat | Yes | | +**operation** | DocumentToDocumentOperation | Yes | | +**type** | Literal["documentToDocument"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentToImageOperation.md b/docs/v2/MediaSets/models/DocumentToImageOperation.md new file mode 100644 index 000000000..22618d0ce --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentToImageOperation.md @@ -0,0 +1,16 @@ +# DocumentToImageOperation + +The operation to perform for document to image conversion. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +RenderPageToFitBoundingBoxOperation | renderPageToFitBoundingBox +RenderPageOperation | renderPage + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentToImageTransformation.md b/docs/v2/MediaSets/models/DocumentToImageTransformation.md new file mode 100644 index 000000000..346a964ce --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentToImageTransformation.md @@ -0,0 +1,13 @@ +# DocumentToImageTransformation + +Renders document pages as images. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | ImageryEncodeFormat | Yes | | +**operation** | DocumentToImageOperation | Yes | | +**type** | Literal["documentToImage"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentToTextOperation.md b/docs/v2/MediaSets/models/DocumentToTextOperation.md new file mode 100644 index 000000000..95fff5a32 --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentToTextOperation.md @@ -0,0 +1,23 @@ +# DocumentToTextOperation + +The operation to perform for document to text conversion. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +ExtractTableOfContentsOperation | extractTableOfContents +GetPdfPageDimensionsOperation | getPdfPageDimensions +ExtractAllTextOperation | extractAllText +ExtractTextFromPagesToArrayOperation | extractTextFromPagesToArray +OcrOnPageOperation | ocrOnPage +ExtractFormFieldsOperation | extractFormFields +ExtractUnstructuredTextFromPageOperation | extractUnstructuredTextFromPage +DocumentExtractLayoutAwareContentOperation | extractLayoutAwareContent +OcrOnPagesOperation | ocrOnPages + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/DocumentToTextTransformation.md b/docs/v2/MediaSets/models/DocumentToTextTransformation.md new file mode 100644 index 000000000..b735bda11 --- /dev/null +++ b/docs/v2/MediaSets/models/DocumentToTextTransformation.md @@ -0,0 +1,12 @@ +# DocumentToTextTransformation + +Extracts text from documents. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | DocumentToTextOperation | Yes | | +**type** | Literal["documentToText"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/EmailToAttachmentOperation.md b/docs/v2/MediaSets/models/EmailToAttachmentOperation.md new file mode 100644 index 000000000..ff4c28174 --- /dev/null +++ b/docs/v2/MediaSets/models/EmailToAttachmentOperation.md @@ -0,0 +1,11 @@ +# EmailToAttachmentOperation + +The operation to perform for email to attachment extraction. + +## Type +```python +GetEmailAttachmentOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/EmailToAttachmentTransformation.md b/docs/v2/MediaSets/models/EmailToAttachmentTransformation.md new file mode 100644 index 000000000..c6c52ec10 --- /dev/null +++ b/docs/v2/MediaSets/models/EmailToAttachmentTransformation.md @@ -0,0 +1,12 @@ +# EmailToAttachmentTransformation + +Extracts attachments from email. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | EmailToAttachmentOperation | Yes | | +**type** | Literal["emailToAttachment"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/EmailToTextEncodeFormat.md b/docs/v2/MediaSets/models/EmailToTextEncodeFormat.md new file mode 100644 index 000000000..5dc793052 --- /dev/null +++ b/docs/v2/MediaSets/models/EmailToTextEncodeFormat.md @@ -0,0 +1,11 @@ +# EmailToTextEncodeFormat + +The output format for email body extraction. + +| **Value** | +| --------- | +| `"TEXT"` | +| `"HTML"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/EmailToTextOperation.md b/docs/v2/MediaSets/models/EmailToTextOperation.md new file mode 100644 index 000000000..1d780928e --- /dev/null +++ b/docs/v2/MediaSets/models/EmailToTextOperation.md @@ -0,0 +1,11 @@ +# EmailToTextOperation + +The operation to perform for email to text extraction. + +## Type +```python +GetEmailBodyOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/EmailToTextTransformation.md b/docs/v2/MediaSets/models/EmailToTextTransformation.md new file mode 100644 index 000000000..e56e401d7 --- /dev/null +++ b/docs/v2/MediaSets/models/EmailToTextTransformation.md @@ -0,0 +1,12 @@ +# EmailToTextTransformation + +Extracts text content from email. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | EmailToTextOperation | Yes | | +**type** | Literal["emailToText"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/EncryptImageOperation.md b/docs/v2/MediaSets/models/EncryptImageOperation.md new file mode 100644 index 000000000..93324daf3 --- /dev/null +++ b/docs/v2/MediaSets/models/EncryptImageOperation.md @@ -0,0 +1,13 @@ +# EncryptImageOperation + +Encrypts bounding boxes in an image using a commutative encryption algorithm. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**polygons** | List[ImageRegionPolygon] | Yes | The polygons defining the regions to encrypt. | +**cipher_license_rid** | RID | Yes | The resource identifier for the cipher license. | +**type** | Literal["encrypt"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractAllTextOperation.md b/docs/v2/MediaSets/models/ExtractAllTextOperation.md new file mode 100644 index 000000000..8c01c97a2 --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractAllTextOperation.md @@ -0,0 +1,13 @@ +# ExtractAllTextOperation + +Extracts text across all pages of the document. +For PDF documents, includes all text. For DocX documents, includes only regular paragraphs. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["extractAllText"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractAudioOperation.md b/docs/v2/MediaSets/models/ExtractAudioOperation.md new file mode 100644 index 000000000..1573c3dcf --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractAudioOperation.md @@ -0,0 +1,11 @@ +# ExtractAudioOperation + +Extracts the first audio stream from the video unchanged. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["extractAudio"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractFirstFrameOperation.md b/docs/v2/MediaSets/models/ExtractFirstFrameOperation.md new file mode 100644 index 000000000..d21291e51 --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractFirstFrameOperation.md @@ -0,0 +1,16 @@ +# ExtractFirstFrameOperation + +Extracts the first full scene frame from the video. +If both width and height are not specified, preserves the original size. +If only one dimension is specified, the other is calculated to preserve aspect ratio. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**height** | Optional[int] | No | The desired height in pixels. | +**width** | Optional[int] | No | The desired width in pixels. | +**type** | Literal["extractFirstFrame"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractFormFieldsOperation.md b/docs/v2/MediaSets/models/ExtractFormFieldsOperation.md new file mode 100644 index 000000000..bfe8e469c --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractFormFieldsOperation.md @@ -0,0 +1,11 @@ +# ExtractFormFieldsOperation + +Extracts form field data from a PDF document. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["extractFormFields"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractFramesAtTimestampsOperation.md b/docs/v2/MediaSets/models/ExtractFramesAtTimestampsOperation.md new file mode 100644 index 000000000..1b147cd2f --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractFramesAtTimestampsOperation.md @@ -0,0 +1,16 @@ +# ExtractFramesAtTimestampsOperation + +Extracts frames from the video at specified timestamps. +If only one dimension is specified, the other is calculated to preserve aspect ratio. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**height** | Optional[int] | No | The desired height in pixels. | +**width** | Optional[int] | No | The desired width in pixels. | +**timestamp** | float | Yes | The timestamp in seconds. | +**type** | Literal["extractFramesAtTimestamps"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractSceneFramesOperation.md b/docs/v2/MediaSets/models/ExtractSceneFramesOperation.md new file mode 100644 index 000000000..e31adfc62 --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractSceneFramesOperation.md @@ -0,0 +1,13 @@ +# ExtractSceneFramesOperation + +Extracts all scene frames from a video as images in an archive. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | ImageryEncodeFormat | Yes | | +**scene_score** | Optional[SceneScore] | No | | +**type** | Literal["extractSceneFrames"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractTableOfContentsOperation.md b/docs/v2/MediaSets/models/ExtractTableOfContentsOperation.md new file mode 100644 index 000000000..2b8b6b920 --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractTableOfContentsOperation.md @@ -0,0 +1,11 @@ +# ExtractTableOfContentsOperation + +Extracts the table of contents from a document. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["extractTableOfContents"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractTextFromPagesToArrayOperation.md b/docs/v2/MediaSets/models/ExtractTextFromPagesToArrayOperation.md new file mode 100644 index 000000000..431b43f3c --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractTextFromPagesToArrayOperation.md @@ -0,0 +1,13 @@ +# ExtractTextFromPagesToArrayOperation + +Extracts text from multiple pages into a list of strings. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**start_page** | Optional[int] | No | The zero-indexed start page. Defaults to the first page if not specified. | +**end_page** | Optional[int] | No | The zero-indexed end page (inclusive). Defaults to the last page if not specified. | +**type** | Literal["extractTextFromPagesToArray"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ExtractUnstructuredTextFromPageOperation.md b/docs/v2/MediaSets/models/ExtractUnstructuredTextFromPageOperation.md new file mode 100644 index 000000000..720380d3f --- /dev/null +++ b/docs/v2/MediaSets/models/ExtractUnstructuredTextFromPageOperation.md @@ -0,0 +1,12 @@ +# ExtractUnstructuredTextFromPageOperation + +Extracts unstructured text from a specified page. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**page_number** | int | Yes | The page number. | +**type** | Literal["extractUnstructuredTextFromPage"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GenerateEmbeddingOperation.md b/docs/v2/MediaSets/models/GenerateEmbeddingOperation.md new file mode 100644 index 000000000..140b5e79f --- /dev/null +++ b/docs/v2/MediaSets/models/GenerateEmbeddingOperation.md @@ -0,0 +1,12 @@ +# GenerateEmbeddingOperation + +Generates a vector embedding for an image using the specified model. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**model_id** | AvailableEmbeddingModelIds | Yes | | +**type** | Literal["generateEmbedding"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GetEmailAttachmentOperation.md b/docs/v2/MediaSets/models/GetEmailAttachmentOperation.md new file mode 100644 index 000000000..9bb724fd4 --- /dev/null +++ b/docs/v2/MediaSets/models/GetEmailAttachmentOperation.md @@ -0,0 +1,13 @@ +# GetEmailAttachmentOperation + +Retrieves the bytes of an email attachment by index. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**mime_type** | str | Yes | The MIME type of the attachment. Must match the metadata attachment MIME type. | +**attachment_index** | int | Yes | The attachment index. | +**type** | Literal["getEmailAttachment"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GetEmailBodyOperation.md b/docs/v2/MediaSets/models/GetEmailBodyOperation.md new file mode 100644 index 000000000..37a674935 --- /dev/null +++ b/docs/v2/MediaSets/models/GetEmailBodyOperation.md @@ -0,0 +1,12 @@ +# GetEmailBodyOperation + +Gets the email body in the specified format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**output_format** | EmailToTextEncodeFormat | Yes | | +**type** | Literal["getEmailBody"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GetMediaItemInfoResponse.md b/docs/v2/MediaSets/models/GetMediaItemInfoResponse.md index 8be4abc2c..cd46399e9 100644 --- a/docs/v2/MediaSets/models/GetMediaItemInfoResponse.md +++ b/docs/v2/MediaSets/models/GetMediaItemInfoResponse.md @@ -9,6 +9,7 @@ GetMediaItemInfoResponse **path** | Optional[MediaItemPath] | No | | **logical_timestamp** | LogicalTimestamp | Yes | | **attribution** | Optional[MediaAttribution] | No | | +**originally_uploaded_file_mime_type** | Optional[MediaType] | No | | [[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GetPdfPageDimensionsOperation.md b/docs/v2/MediaSets/models/GetPdfPageDimensionsOperation.md new file mode 100644 index 000000000..12e1ab8eb --- /dev/null +++ b/docs/v2/MediaSets/models/GetPdfPageDimensionsOperation.md @@ -0,0 +1,11 @@ +# GetPdfPageDimensionsOperation + +Returns the dimensions of each page in a PDF document as JSON (in points). + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["getPdfPageDimensions"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GetTimestampsForSceneFramesOperation.md b/docs/v2/MediaSets/models/GetTimestampsForSceneFramesOperation.md new file mode 100644 index 000000000..cb3a9261d --- /dev/null +++ b/docs/v2/MediaSets/models/GetTimestampsForSceneFramesOperation.md @@ -0,0 +1,12 @@ +# GetTimestampsForSceneFramesOperation + +Returns a list of timestamps for scene frames in the video as JSON. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**scene_score** | Optional[SceneScore] | No | | +**type** | Literal["getTimestampsForSceneFrames"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GetTransformationJobStatusResponse.md b/docs/v2/MediaSets/models/GetTransformationJobStatusResponse.md new file mode 100644 index 000000000..3754cfe71 --- /dev/null +++ b/docs/v2/MediaSets/models/GetTransformationJobStatusResponse.md @@ -0,0 +1,12 @@ +# GetTransformationJobStatusResponse + +Response containing the status of a transformation job. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**status** | TransformationJobStatus | Yes | | +**job_id** | TransformationJobId | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/GrayscaleImageOperation.md b/docs/v2/MediaSets/models/GrayscaleImageOperation.md new file mode 100644 index 000000000..ffab002bf --- /dev/null +++ b/docs/v2/MediaSets/models/GrayscaleImageOperation.md @@ -0,0 +1,11 @@ +# GrayscaleImageOperation + +Converts an image to grayscale. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["grayscale"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageExtractLayoutAwareContentOperation.md b/docs/v2/MediaSets/models/ImageExtractLayoutAwareContentOperation.md new file mode 100644 index 000000000..72ad9257b --- /dev/null +++ b/docs/v2/MediaSets/models/ImageExtractLayoutAwareContentOperation.md @@ -0,0 +1,12 @@ +# ImageExtractLayoutAwareContentOperation + +Extracts text from an image with layout information preserved. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**parameters** | LayoutAwareExtractionParameters | Yes | | +**type** | Literal["extractLayoutAwareContent"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageOcrOperation.md b/docs/v2/MediaSets/models/ImageOcrOperation.md new file mode 100644 index 000000000..b273edac0 --- /dev/null +++ b/docs/v2/MediaSets/models/ImageOcrOperation.md @@ -0,0 +1,12 @@ +# ImageOcrOperation + +Performs OCR (Optical Character Recognition) on an image. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**parameters** | OcrParameters | Yes | | +**type** | Literal["ocr"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageOperation.md b/docs/v2/MediaSets/models/ImageOperation.md new file mode 100644 index 000000000..06611296c --- /dev/null +++ b/docs/v2/MediaSets/models/ImageOperation.md @@ -0,0 +1,24 @@ +# ImageOperation + +An operation to perform on an image. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +RotateImageOperation | rotate +ResizeToFitBoundingBoxOperation | resizeToFitBoundingBox +EncryptImageOperation | encrypt +ContrastImageOperation | contrast +TileImageOperation | tile +ResizeImageOperation | resize +AnnotateImageOperation | annotate +DecryptImageOperation | decrypt +CropImageOperation | crop +GrayscaleImageOperation | grayscale + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImagePixelCoordinate.md b/docs/v2/MediaSets/models/ImagePixelCoordinate.md new file mode 100644 index 000000000..e219e84d1 --- /dev/null +++ b/docs/v2/MediaSets/models/ImagePixelCoordinate.md @@ -0,0 +1,13 @@ +# ImagePixelCoordinate + +Coordinate of a pixel in an image (x, y). Top left corner of the image is (0, 0). + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**x** | int | Yes | Coordinate on the x-axis (width). | +**y** | int | Yes | Coordinate on the y-axis (height). | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageRegionPolygon.md b/docs/v2/MediaSets/models/ImageRegionPolygon.md new file mode 100644 index 000000000..6a1f9de81 --- /dev/null +++ b/docs/v2/MediaSets/models/ImageRegionPolygon.md @@ -0,0 +1,14 @@ +# ImageRegionPolygon + +Polygon drawn by connecting adjacent coordinates in the list with straight lines. +A line is drawn between the last and first coordinates in the list to create a closed shape. +Used to define regions in an image for operations like encryption/decryption. + + +## Type +```python +List[ImagePixelCoordinate] +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageToDocumentOperation.md b/docs/v2/MediaSets/models/ImageToDocumentOperation.md new file mode 100644 index 000000000..b391d0d38 --- /dev/null +++ b/docs/v2/MediaSets/models/ImageToDocumentOperation.md @@ -0,0 +1,11 @@ +# ImageToDocumentOperation + +The operation to perform for image to document conversion. + +## Type +```python +CreatePdfOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageToDocumentTransformation.md b/docs/v2/MediaSets/models/ImageToDocumentTransformation.md new file mode 100644 index 000000000..974a55d3e --- /dev/null +++ b/docs/v2/MediaSets/models/ImageToDocumentTransformation.md @@ -0,0 +1,12 @@ +# ImageToDocumentTransformation + +Converts images to documents. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | ImageToDocumentOperation | Yes | | +**type** | Literal["imageToDocument"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageToEmbeddingOperation.md b/docs/v2/MediaSets/models/ImageToEmbeddingOperation.md new file mode 100644 index 000000000..419d17023 --- /dev/null +++ b/docs/v2/MediaSets/models/ImageToEmbeddingOperation.md @@ -0,0 +1,11 @@ +# ImageToEmbeddingOperation + +The operation to perform for image to embedding conversion. + +## Type +```python +GenerateEmbeddingOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageToEmbeddingTransformation.md b/docs/v2/MediaSets/models/ImageToEmbeddingTransformation.md new file mode 100644 index 000000000..c27eec4c7 --- /dev/null +++ b/docs/v2/MediaSets/models/ImageToEmbeddingTransformation.md @@ -0,0 +1,12 @@ +# ImageToEmbeddingTransformation + +Generates embeddings from images. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | ImageToEmbeddingOperation | Yes | | +**type** | Literal["imageToEmbedding"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageToTextOperation.md b/docs/v2/MediaSets/models/ImageToTextOperation.md new file mode 100644 index 000000000..99d6debba --- /dev/null +++ b/docs/v2/MediaSets/models/ImageToTextOperation.md @@ -0,0 +1,16 @@ +# ImageToTextOperation + +The operation to perform for image to text conversion. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +ImageExtractLayoutAwareContentOperation | extractLayoutAwareContent +ImageOcrOperation | ocr + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageToTextTransformation.md b/docs/v2/MediaSets/models/ImageToTextTransformation.md new file mode 100644 index 000000000..62658a4a4 --- /dev/null +++ b/docs/v2/MediaSets/models/ImageToTextTransformation.md @@ -0,0 +1,12 @@ +# ImageToTextTransformation + +Extracts text from images. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | ImageToTextOperation | Yes | | +**type** | Literal["imageToText"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageTransformation.md b/docs/v2/MediaSets/models/ImageTransformation.md new file mode 100644 index 000000000..03182e77f --- /dev/null +++ b/docs/v2/MediaSets/models/ImageTransformation.md @@ -0,0 +1,15 @@ +# ImageTransformation + +Transforms images with multiple operations applied in sequence. +Operations are applied in the order they appear in the list. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | ImageryEncodeFormat | Yes | | +**operations** | List[ImageOperation] | Yes | The list of operations to apply to the image, in order. | +**type** | Literal["image"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ImageryEncodeFormat.md b/docs/v2/MediaSets/models/ImageryEncodeFormat.md new file mode 100644 index 000000000..7755cac23 --- /dev/null +++ b/docs/v2/MediaSets/models/ImageryEncodeFormat.md @@ -0,0 +1,18 @@ +# ImageryEncodeFormat + +The output format for encoding imagery. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +JpgFormat | jpg +TiffFormat | tiff +PngFormat | png +WebpFormat | webp + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/JpgFormat.md b/docs/v2/MediaSets/models/JpgFormat.md new file mode 100644 index 000000000..5ab5a97a2 --- /dev/null +++ b/docs/v2/MediaSets/models/JpgFormat.md @@ -0,0 +1,11 @@ +# JpgFormat + +JPEG image format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["jpg"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/LayoutAwareExtractionParameters.md b/docs/v2/MediaSets/models/LayoutAwareExtractionParameters.md new file mode 100644 index 000000000..25450f74c --- /dev/null +++ b/docs/v2/MediaSets/models/LayoutAwareExtractionParameters.md @@ -0,0 +1,11 @@ +# LayoutAwareExtractionParameters + +Parameters for layout-aware content extraction. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**languages** | List[OcrLanguage] | Yes | The languages to use for extraction. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/MediaItemMetadata.md b/docs/v2/MediaSets/models/MediaItemMetadata.md index 04bd61bce..dc10b61dc 100644 --- a/docs/v2/MediaSets/models/MediaItemMetadata.md +++ b/docs/v2/MediaSets/models/MediaItemMetadata.md @@ -16,6 +16,7 @@ ImageryMediaItemMetadata | imagery SpreadsheetMediaItemMetadata | spreadsheet UntypedMediaItemMetadata | untyped AudioMediaItemMetadata | audio +Model3dMediaItemMetadata | model3d VideoMediaItemMetadata | video DicomMediaItemMetadata | dicom EmailMediaItemMetadata | email diff --git a/docs/v2/MediaSets/models/MkvVideoContainerFormat.md b/docs/v2/MediaSets/models/MkvVideoContainerFormat.md new file mode 100644 index 000000000..837b3b4ed --- /dev/null +++ b/docs/v2/MediaSets/models/MkvVideoContainerFormat.md @@ -0,0 +1,11 @@ +# MkvVideoContainerFormat + +MKV (Matroska) video container format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["mkv"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Model3dDecodeFormat.md b/docs/v2/MediaSets/models/Model3dDecodeFormat.md new file mode 100644 index 000000000..b015d65ac --- /dev/null +++ b/docs/v2/MediaSets/models/Model3dDecodeFormat.md @@ -0,0 +1,12 @@ +# Model3dDecodeFormat + +The format of a 3D model media item. + +| **Value** | +| --------- | +| `"LAS"` | +| `"PLY"` | +| `"OBJ"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Model3dMediaItemMetadata.md b/docs/v2/MediaSets/models/Model3dMediaItemMetadata.md new file mode 100644 index 000000000..751c3e685 --- /dev/null +++ b/docs/v2/MediaSets/models/Model3dMediaItemMetadata.md @@ -0,0 +1,14 @@ +# Model3dMediaItemMetadata + +Metadata for 3D model media items. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**format** | Model3dDecodeFormat | Yes | | +**model_type** | Model3dType | Yes | | +**size_bytes** | int | Yes | The size of the media item in bytes. | +**type** | Literal["model3d"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Model3dType.md b/docs/v2/MediaSets/models/Model3dType.md new file mode 100644 index 000000000..d11b846b4 --- /dev/null +++ b/docs/v2/MediaSets/models/Model3dType.md @@ -0,0 +1,11 @@ +# Model3dType + +The type of 3D model representation. + +| **Value** | +| --------- | +| `"POINT_CLOUD"` | +| `"MESH"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/MovVideoContainerFormat.md b/docs/v2/MediaSets/models/MovVideoContainerFormat.md new file mode 100644 index 000000000..6157be311 --- /dev/null +++ b/docs/v2/MediaSets/models/MovVideoContainerFormat.md @@ -0,0 +1,11 @@ +# MovVideoContainerFormat + +MOV (QuickTime) video container format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["mov"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Mp3Format.md b/docs/v2/MediaSets/models/Mp3Format.md new file mode 100644 index 000000000..8d2960279 --- /dev/null +++ b/docs/v2/MediaSets/models/Mp3Format.md @@ -0,0 +1,11 @@ +# Mp3Format + +MP3 audio format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["mp3"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Mp4VideoContainerFormat.md b/docs/v2/MediaSets/models/Mp4VideoContainerFormat.md new file mode 100644 index 000000000..51bb615b6 --- /dev/null +++ b/docs/v2/MediaSets/models/Mp4VideoContainerFormat.md @@ -0,0 +1,11 @@ +# Mp4VideoContainerFormat + +MP4 video container format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["mp4"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/NumberOfChannels.md b/docs/v2/MediaSets/models/NumberOfChannels.md new file mode 100644 index 000000000..cea17dba7 --- /dev/null +++ b/docs/v2/MediaSets/models/NumberOfChannels.md @@ -0,0 +1,12 @@ +# NumberOfChannels + +Specifies the number of audio channels. Defaults to 2 (stereo). + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**number_of_channels** | int | Yes | The number of audio channels. | +**type** | Literal["numberOfChannels"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrHocrOutputFormat.md b/docs/v2/MediaSets/models/OcrHocrOutputFormat.md new file mode 100644 index 000000000..867fc3d16 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrHocrOutputFormat.md @@ -0,0 +1,11 @@ +# OcrHocrOutputFormat + +hOCR (HTML-based OCR) output format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["hocr"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrLanguage.md b/docs/v2/MediaSets/models/OcrLanguage.md new file mode 100644 index 000000000..fa536cb9e --- /dev/null +++ b/docs/v2/MediaSets/models/OcrLanguage.md @@ -0,0 +1,132 @@ +# OcrLanguage + +Language codes for OCR. + +| **Value** | +| --------- | +| `"AFR"` | +| `"AMH"` | +| `"ARA"` | +| `"ASM"` | +| `"AZE"` | +| `"AZE_CYRL"` | +| `"BEL"` | +| `"BEN"` | +| `"BOD"` | +| `"BOS"` | +| `"BRE"` | +| `"BUL"` | +| `"CAT"` | +| `"CEB"` | +| `"CES"` | +| `"CHI_SIM"` | +| `"CHI_SIM_VERT"` | +| `"CHI_TRA"` | +| `"CHI_TRA_VERT"` | +| `"CHR"` | +| `"COS"` | +| `"CYM"` | +| `"DAN"` | +| `"DEU"` | +| `"DIV"` | +| `"DZO"` | +| `"ELL"` | +| `"ENG"` | +| `"ENM"` | +| `"EPO"` | +| `"EST"` | +| `"EUS"` | +| `"FAO"` | +| `"FAS"` | +| `"FIL"` | +| `"FIN"` | +| `"FRA"` | +| `"FRM"` | +| `"FRY"` | +| `"GLA"` | +| `"GLE"` | +| `"GLG"` | +| `"GRC"` | +| `"GUJ"` | +| `"HAT"` | +| `"HEB"` | +| `"HIN"` | +| `"HRV"` | +| `"HUN"` | +| `"HYE"` | +| `"IKU"` | +| `"IND"` | +| `"ISL"` | +| `"ITA"` | +| `"ITA_OLD"` | +| `"JAV"` | +| `"JPN"` | +| `"JPN_VERT"` | +| `"KAN"` | +| `"KAT"` | +| `"KAT_OLD"` | +| `"KAZ"` | +| `"KHM"` | +| `"KIR"` | +| `"KMR"` | +| `"KOR"` | +| `"KOR_VERT"` | +| `"LAO"` | +| `"LAT"` | +| `"LAV"` | +| `"LIT"` | +| `"LTZ"` | +| `"MAL"` | +| `"MAR"` | +| `"MKD"` | +| `"MLT"` | +| `"MON"` | +| `"MRI"` | +| `"MSA"` | +| `"MYA"` | +| `"NEP"` | +| `"NLD"` | +| `"NOR"` | +| `"OCI"` | +| `"ORI"` | +| `"OSD"` | +| `"PAN"` | +| `"POL"` | +| `"POR"` | +| `"PUS"` | +| `"QUE"` | +| `"RON"` | +| `"RUS"` | +| `"SAN"` | +| `"SIN"` | +| `"SLK"` | +| `"SLV"` | +| `"SND"` | +| `"SPA"` | +| `"SPA_OLD"` | +| `"SQI"` | +| `"SRP"` | +| `"SRP_LATN"` | +| `"SUN"` | +| `"SWA"` | +| `"SWE"` | +| `"SYR"` | +| `"TAM"` | +| `"TAT"` | +| `"TEL"` | +| `"TGK"` | +| `"THA"` | +| `"TIR"` | +| `"TON"` | +| `"TUR"` | +| `"UIG"` | +| `"UKR"` | +| `"URD"` | +| `"UZB"` | +| `"UZB_CYRL"` | +| `"VIE"` | +| `"YID"` | +| `"YOR"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrLanguageOrScript.md b/docs/v2/MediaSets/models/OcrLanguageOrScript.md new file mode 100644 index 000000000..357b9cc30 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrLanguageOrScript.md @@ -0,0 +1,16 @@ +# OcrLanguageOrScript + +Either a specific language or a script for OCR. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +OcrLanguageWrapper | language +OcrScriptWrapper | script + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrLanguageWrapper.md b/docs/v2/MediaSets/models/OcrLanguageWrapper.md new file mode 100644 index 000000000..25484cb27 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrLanguageWrapper.md @@ -0,0 +1,12 @@ +# OcrLanguageWrapper + +Wrapper for an OCR language. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**language** | OcrLanguage | Yes | | +**type** | Literal["language"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrOnPageOperation.md b/docs/v2/MediaSets/models/OcrOnPageOperation.md new file mode 100644 index 000000000..c0e8c4496 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrOnPageOperation.md @@ -0,0 +1,13 @@ +# OcrOnPageOperation + +Performs OCR (Optical Character Recognition) on a specific page of a document. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**page_number** | int | Yes | The page number to perform OCR on. | +**parameters** | OcrParameters | Yes | | +**type** | Literal["ocrOnPage"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrOnPagesOperation.md b/docs/v2/MediaSets/models/OcrOnPagesOperation.md new file mode 100644 index 000000000..0bc8a5d36 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrOnPagesOperation.md @@ -0,0 +1,13 @@ +# OcrOnPagesOperation + +Creates access patterns for OCR across pages of a document. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**parameters** | OcrParameters | Yes | | +**page_number** | int | Yes | The page number. | +**type** | Literal["ocrOnPages"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrOutputFormat.md b/docs/v2/MediaSets/models/OcrOutputFormat.md new file mode 100644 index 000000000..7f9f0040d --- /dev/null +++ b/docs/v2/MediaSets/models/OcrOutputFormat.md @@ -0,0 +1,16 @@ +# OcrOutputFormat + +The output format for OCR results. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +OcrHocrOutputFormat | hocr +OcrTextOutputFormat | text + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrParameters.md b/docs/v2/MediaSets/models/OcrParameters.md new file mode 100644 index 000000000..3ee338bb9 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrParameters.md @@ -0,0 +1,12 @@ +# OcrParameters + +Parameters for OCR (Optical Character Recognition) operations. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**output_format** | OcrOutputFormat | Yes | | +**languages** | List[OcrLanguageOrScript] | Yes | The languages or scripts to use for OCR. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrScript.md b/docs/v2/MediaSets/models/OcrScript.md new file mode 100644 index 000000000..adf5d2cc9 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrScript.md @@ -0,0 +1,46 @@ +# OcrScript + +Script codes for OCR. + +| **Value** | +| --------- | +| `"ARABIC"` | +| `"ARMENIAN"` | +| `"BENGALI"` | +| `"CANADIAN_ABORIGINAL"` | +| `"CHEROKEE"` | +| `"CYRILLIC"` | +| `"DEVANAGARI"` | +| `"ETHIOPIC"` | +| `"FRAKTUR"` | +| `"GEORGIAN"` | +| `"GREEK"` | +| `"GUJARATI"` | +| `"GURMUKHI"` | +| `"HAN_SIMPLIFIED"` | +| `"HAN_SIMPLIFIED_VERT"` | +| `"HAN_TRADITIONAL"` | +| `"HAN_TRADITIONAL_VERT"` | +| `"HANGUL"` | +| `"HANGUL_VERT"` | +| `"HEBREW"` | +| `"JAPANESE"` | +| `"JAPANESE_VERT"` | +| `"KANNADA"` | +| `"KHMER"` | +| `"LAO"` | +| `"LATIN"` | +| `"MALAYALAM"` | +| `"MYANMAR"` | +| `"ORIYA"` | +| `"SINHALA"` | +| `"SYRIAC"` | +| `"TAMIL"` | +| `"TELUGU"` | +| `"THAANA"` | +| `"THAI"` | +| `"TIBETAN"` | +| `"VIETNAMESE"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrScriptWrapper.md b/docs/v2/MediaSets/models/OcrScriptWrapper.md new file mode 100644 index 000000000..0e3b17a20 --- /dev/null +++ b/docs/v2/MediaSets/models/OcrScriptWrapper.md @@ -0,0 +1,12 @@ +# OcrScriptWrapper + +Wrapper for an OCR script. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**script** | OcrScript | Yes | | +**type** | Literal["script"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/OcrTextOutputFormat.md b/docs/v2/MediaSets/models/OcrTextOutputFormat.md new file mode 100644 index 000000000..88274bc6b --- /dev/null +++ b/docs/v2/MediaSets/models/OcrTextOutputFormat.md @@ -0,0 +1,11 @@ +# OcrTextOutputFormat + +Plain text output format for OCR. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["text"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/PdfFormat.md b/docs/v2/MediaSets/models/PdfFormat.md new file mode 100644 index 000000000..f4474114c --- /dev/null +++ b/docs/v2/MediaSets/models/PdfFormat.md @@ -0,0 +1,11 @@ +# PdfFormat + +PDF document format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["pdf"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/PerformanceMode.md b/docs/v2/MediaSets/models/PerformanceMode.md new file mode 100644 index 000000000..0ba698952 --- /dev/null +++ b/docs/v2/MediaSets/models/PerformanceMode.md @@ -0,0 +1,11 @@ +# PerformanceMode + +The performance mode for transcription. + +| **Value** | +| --------- | +| `"MORE_ECONOMICAL"` | +| `"MORE_PERFORMANT"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/PlainTextNoSegmentData.md b/docs/v2/MediaSets/models/PlainTextNoSegmentData.md new file mode 100644 index 000000000..7c9bf4a1d --- /dev/null +++ b/docs/v2/MediaSets/models/PlainTextNoSegmentData.md @@ -0,0 +1,12 @@ +# PlainTextNoSegmentData + +Plain text transcription output format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**add_timestamps** | bool | Yes | Whether to include timestamps in the output. | +**type** | Literal["plainTextNoSegmentData"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/PngFormat.md b/docs/v2/MediaSets/models/PngFormat.md new file mode 100644 index 000000000..0101fe83d --- /dev/null +++ b/docs/v2/MediaSets/models/PngFormat.md @@ -0,0 +1,11 @@ +# PngFormat + +PNG image format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["png"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Pttml.md b/docs/v2/MediaSets/models/Pttml.md new file mode 100644 index 000000000..00552a294 --- /dev/null +++ b/docs/v2/MediaSets/models/Pttml.md @@ -0,0 +1,11 @@ +# Pttml + +PTTML (Palantir Timed Text Markup Language) transcription output format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["pttml"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/RenderImageLayerOperation.md b/docs/v2/MediaSets/models/RenderImageLayerOperation.md new file mode 100644 index 000000000..7dd00503f --- /dev/null +++ b/docs/v2/MediaSets/models/RenderImageLayerOperation.md @@ -0,0 +1,16 @@ +# RenderImageLayerOperation + +Renders a frame of a DICOM file as an image. +If only one dimension is specified, the other is calculated to preserve aspect ratio. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**layer_number** | Optional[int] | No | The layer number to render. If not specified, renders the middle layer. | +**height** | Optional[int] | No | The desired height in pixels. | +**width** | Optional[int] | No | The desired width in pixels. | +**type** | Literal["renderImageLayer"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/RenderPageOperation.md b/docs/v2/MediaSets/models/RenderPageOperation.md new file mode 100644 index 000000000..cb252c25b --- /dev/null +++ b/docs/v2/MediaSets/models/RenderPageOperation.md @@ -0,0 +1,16 @@ +# RenderPageOperation + +Renders a PDF page as an image. +If only one dimension is specified, the other is calculated to preserve aspect ratio. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**page_number** | Optional[int] | No | The zero-indexed page number to render. Defaults to the first page if not specified. | +**height** | Optional[int] | No | The desired height in pixels. | +**width** | Optional[int] | No | The desired width in pixels. | +**type** | Literal["renderPage"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/RenderPageToFitBoundingBoxOperation.md b/docs/v2/MediaSets/models/RenderPageToFitBoundingBoxOperation.md new file mode 100644 index 000000000..4280d4bd1 --- /dev/null +++ b/docs/v2/MediaSets/models/RenderPageToFitBoundingBoxOperation.md @@ -0,0 +1,15 @@ +# RenderPageToFitBoundingBoxOperation + +Renders a PDF page to maximally fit within a bounding box while preserving aspect ratio. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**page_number** | Optional[int] | No | The zero-indexed page number to render. Defaults to the first page if not specified. | +**width** | int | Yes | The width of the bounding box in pixels. | +**height** | int | Yes | The height of the bounding box in pixels. | +**type** | Literal["renderPageToFitBoundingBox"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ResizeImageOperation.md b/docs/v2/MediaSets/models/ResizeImageOperation.md new file mode 100644 index 000000000..6d2b2838e --- /dev/null +++ b/docs/v2/MediaSets/models/ResizeImageOperation.md @@ -0,0 +1,16 @@ +# ResizeImageOperation + +Resizes an image to the specified dimensions. +If only one dimension is specified, the other is calculated to preserve aspect ratio. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**height** | Optional[int] | No | The desired height in pixels. | +**width** | Optional[int] | No | The desired width in pixels. | +**auto_orient** | Optional[bool] | No | Whether to automatically orient the image based on EXIF metadata. | +**type** | Literal["resize"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/ResizeToFitBoundingBoxOperation.md b/docs/v2/MediaSets/models/ResizeToFitBoundingBoxOperation.md new file mode 100644 index 000000000..5f6987655 --- /dev/null +++ b/docs/v2/MediaSets/models/ResizeToFitBoundingBoxOperation.md @@ -0,0 +1,14 @@ +# ResizeToFitBoundingBoxOperation + +Resizes an image to maximally fit within a bounding box while preserving aspect ratio. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**width** | int | Yes | The width of the bounding box in pixels. | +**height** | int | Yes | The height of the bounding box in pixels. | +**type** | Literal["resizeToFitBoundingBox"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/RotateImageOperation.md b/docs/v2/MediaSets/models/RotateImageOperation.md new file mode 100644 index 000000000..65cf7e3e6 --- /dev/null +++ b/docs/v2/MediaSets/models/RotateImageOperation.md @@ -0,0 +1,12 @@ +# RotateImageOperation + +Rotates an image clockwise by the specified angle. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**angle** | RotationAngle | Yes | | +**type** | Literal["rotate"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/SceneScore.md b/docs/v2/MediaSets/models/SceneScore.md new file mode 100644 index 000000000..29840d892 --- /dev/null +++ b/docs/v2/MediaSets/models/SceneScore.md @@ -0,0 +1,12 @@ +# SceneScore + +The sensitivity threshold for scene detection. + +| **Value** | +| --------- | +| `"MORE_SENSITIVE"` | +| `"STANDARD"` | +| `"LESS_SENSITIVE"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/SlicePdfRangeOperation.md b/docs/v2/MediaSets/models/SlicePdfRangeOperation.md new file mode 100644 index 000000000..4c8df5077 --- /dev/null +++ b/docs/v2/MediaSets/models/SlicePdfRangeOperation.md @@ -0,0 +1,14 @@ +# SlicePdfRangeOperation + +Slices a PDF to a specified page range. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**start_page_inclusive** | int | Yes | The zero-indexed start page (inclusive). | +**end_page_exclusive** | int | Yes | The zero-indexed end page (exclusive). | +**strictly_enforce_end_page** | Optional[bool] | No | If true (default), the operation fails if endPage exceeds the document's page count. If false, ends at min(endPage, lastPage). | +**type** | Literal["slicePdfRange"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/SpreadsheetToTextOperation.md b/docs/v2/MediaSets/models/SpreadsheetToTextOperation.md new file mode 100644 index 000000000..6d44010fd --- /dev/null +++ b/docs/v2/MediaSets/models/SpreadsheetToTextOperation.md @@ -0,0 +1,11 @@ +# SpreadsheetToTextOperation + +The operation to perform for spreadsheet to text conversion. + +## Type +```python +ConvertSheetToJsonOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/SpreadsheetToTextTransformation.md b/docs/v2/MediaSets/models/SpreadsheetToTextTransformation.md new file mode 100644 index 000000000..45b7a12d3 --- /dev/null +++ b/docs/v2/MediaSets/models/SpreadsheetToTextTransformation.md @@ -0,0 +1,12 @@ +# SpreadsheetToTextTransformation + +Converts spreadsheet data to text/JSON. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | SpreadsheetToTextOperation | Yes | | +**type** | Literal["spreadsheetToText"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TarFormat.md b/docs/v2/MediaSets/models/TarFormat.md new file mode 100644 index 000000000..f563d2183 --- /dev/null +++ b/docs/v2/MediaSets/models/TarFormat.md @@ -0,0 +1,11 @@ +# TarFormat + +TAR archive format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["tar"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TiffFormat.md b/docs/v2/MediaSets/models/TiffFormat.md new file mode 100644 index 000000000..aeb0be842 --- /dev/null +++ b/docs/v2/MediaSets/models/TiffFormat.md @@ -0,0 +1,11 @@ +# TiffFormat + +TIFF image format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["tiff"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TileImageOperation.md b/docs/v2/MediaSets/models/TileImageOperation.md new file mode 100644 index 000000000..15026187d --- /dev/null +++ b/docs/v2/MediaSets/models/TileImageOperation.md @@ -0,0 +1,16 @@ +# TileImageOperation + +Generates Slippy map tiles (EPSG 3857) from a geo-embedded image. +Only supported for geo-embedded TIFF and NITF images with at most 100M square pixels. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**zoom** | int | Yes | The zoom level of the tile. | +**x** | int | Yes | The x coordinate of the tile. | +**y** | int | Yes | The y coordinate of the tile. | +**type** | Literal["tile"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TranscodeOperation.md b/docs/v2/MediaSets/models/TranscodeOperation.md new file mode 100644 index 000000000..d4e65c2b9 --- /dev/null +++ b/docs/v2/MediaSets/models/TranscodeOperation.md @@ -0,0 +1,11 @@ +# TranscodeOperation + +Encodes video to the specified format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["transcode"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TranscribeJson.md b/docs/v2/MediaSets/models/TranscribeJson.md new file mode 100644 index 000000000..9487c4b5c --- /dev/null +++ b/docs/v2/MediaSets/models/TranscribeJson.md @@ -0,0 +1,11 @@ +# TranscribeJson + +JSON transcription output format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["json"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TranscribeOperation.md b/docs/v2/MediaSets/models/TranscribeOperation.md new file mode 100644 index 000000000..434a3f397 --- /dev/null +++ b/docs/v2/MediaSets/models/TranscribeOperation.md @@ -0,0 +1,15 @@ +# TranscribeOperation + +Transcribes speech in audio to text. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**language** | Optional[TranscriptionLanguage] | No | | +**diarize** | Optional[bool] | No | Whether to perform speaker diarization. Defaults to false. Not supported in economical performance mode. | +**output_format** | Optional[TranscribeTextEncodeFormat] | No | | +**performance_mode** | Optional[PerformanceMode] | No | | +**type** | Literal["transcribe"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TranscribeTextEncodeFormat.md b/docs/v2/MediaSets/models/TranscribeTextEncodeFormat.md new file mode 100644 index 000000000..0fdcebcb7 --- /dev/null +++ b/docs/v2/MediaSets/models/TranscribeTextEncodeFormat.md @@ -0,0 +1,17 @@ +# TranscribeTextEncodeFormat + +The output format for transcription results. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +PlainTextNoSegmentData | plainTextNoSegmentData +TranscribeJson | json +Pttml | pttml + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TranscriptionLanguage.md b/docs/v2/MediaSets/models/TranscriptionLanguage.md new file mode 100644 index 000000000..9aca20110 --- /dev/null +++ b/docs/v2/MediaSets/models/TranscriptionLanguage.md @@ -0,0 +1,223 @@ +# TranscriptionLanguage + +Language codes for audio transcription. +If not specified, the language will be auto-detected from the first 30 seconds of audio. + + +| **Value** | +| --------- | +| `"AF"` | +| `"AM"` | +| `"AR"` | +| `"AS"` | +| `"AZ"` | +| `"BA"` | +| `"BE"` | +| `"BG"` | +| `"BN"` | +| `"BO"` | +| `"BR"` | +| `"BS"` | +| `"CA"` | +| `"CS"` | +| `"CY"` | +| `"DA"` | +| `"DE"` | +| `"EL"` | +| `"EN"` | +| `"ES"` | +| `"ET"` | +| `"EU"` | +| `"FA"` | +| `"FI"` | +| `"FO"` | +| `"FR"` | +| `"GL"` | +| `"GU"` | +| `"HA"` | +| `"HAW"` | +| `"HE"` | +| `"HI"` | +| `"HR"` | +| `"HT"` | +| `"HU"` | +| `"HY"` | +| `"ID"` | +| `"IS"` | +| `"IT"` | +| `"JA"` | +| `"JW"` | +| `"KA"` | +| `"KK"` | +| `"KM"` | +| `"KN"` | +| `"KO"` | +| `"LA"` | +| `"LB"` | +| `"LN"` | +| `"LO"` | +| `"LT"` | +| `"LV"` | +| `"MG"` | +| `"MI"` | +| `"MK"` | +| `"ML"` | +| `"MN"` | +| `"MR"` | +| `"MS"` | +| `"MT"` | +| `"MY"` | +| `"NE"` | +| `"NL"` | +| `"NN"` | +| `"false"` | +| `"OC"` | +| `"PA"` | +| `"PL"` | +| `"PS"` | +| `"PT"` | +| `"RO"` | +| `"RU"` | +| `"SA"` | +| `"SD"` | +| `"SI"` | +| `"SK"` | +| `"SL"` | +| `"SN"` | +| `"SO"` | +| `"SQ"` | +| `"SR"` | +| `"SU"` | +| `"SV"` | +| `"SW"` | +| `"TA"` | +| `"TE"` | +| `"TG"` | +| `"TH"` | +| `"TK"` | +| `"TL"` | +| `"TR"` | +| `"TT"` | +| `"UK"` | +| `"UR"` | +| `"UZ"` | +| `"VI"` | +| `"YI"` | +| `"YO"` | +| `"YUE"` | +| `"ZH"` | +| `"AFRIKAANS"` | +| `"ALBANIAN"` | +| `"AMHARIC"` | +| `"ARABIC"` | +| `"ARMENIAN"` | +| `"ASSAMESE"` | +| `"AZERBAIJANI"` | +| `"BASHKIR"` | +| `"BASQUE"` | +| `"BELARUSIAN"` | +| `"BENGALI"` | +| `"BOSNIAN"` | +| `"BRETON"` | +| `"BULGARIAN"` | +| `"BURMESE"` | +| `"CANTONESE"` | +| `"CASTILIAN"` | +| `"CATALAN"` | +| `"CHINESE"` | +| `"CROATIAN"` | +| `"CZECH"` | +| `"DANISH"` | +| `"DUTCH"` | +| `"ENGLISH"` | +| `"ESTONIAN"` | +| `"FAROESE"` | +| `"FINNISH"` | +| `"FLEMISH"` | +| `"FRENCH"` | +| `"GALICIAN"` | +| `"GEORGIAN"` | +| `"GERMAN"` | +| `"GREEK"` | +| `"GUJARATI"` | +| `"HAITIAN"` | +| `"HAITIAN_CREOLE"` | +| `"HAUSA"` | +| `"HAWAIIAN"` | +| `"HEBREW"` | +| `"HINDI"` | +| `"HUNGARIAN"` | +| `"ICELANDIC"` | +| `"INDONESIAN"` | +| `"ITALIAN"` | +| `"JAPANESE"` | +| `"JAVANESE"` | +| `"KANNADA"` | +| `"KAZAKH"` | +| `"KHMER"` | +| `"KOREAN"` | +| `"LAO"` | +| `"LATIN"` | +| `"LATVIAN"` | +| `"LETZEBURGESCH"` | +| `"LINGALA"` | +| `"LITHUANIAN"` | +| `"LUXEMBOURGISH"` | +| `"MACEDONIAN"` | +| `"MALAGASY"` | +| `"MALAY"` | +| `"MALAYALAM"` | +| `"MALTESE"` | +| `"MANDARIN"` | +| `"MAORI"` | +| `"MARATHI"` | +| `"MOLDAVIAN"` | +| `"MOLDOVAN"` | +| `"MONGOLIAN"` | +| `"MYANMAR"` | +| `"NEPALI"` | +| `"NORWEGIAN"` | +| `"NYNORSK"` | +| `"OCCITAN"` | +| `"PANJABI"` | +| `"PASHTO"` | +| `"PERSIAN"` | +| `"POLISH"` | +| `"PORTUGUESE"` | +| `"PUNJABI"` | +| `"PUSHTO"` | +| `"ROMANIAN"` | +| `"RUSSIAN"` | +| `"SANSKRIT"` | +| `"SERBIAN"` | +| `"SHONA"` | +| `"SINDHI"` | +| `"SINHALA"` | +| `"SINHALESE"` | +| `"SLOVAK"` | +| `"SLOVENIAN"` | +| `"SOMALI"` | +| `"SPANISH"` | +| `"SUNDANESE"` | +| `"SWAHILI"` | +| `"SWEDISH"` | +| `"TAGALOG"` | +| `"TAJIK"` | +| `"TAMIL"` | +| `"TATAR"` | +| `"TELUGU"` | +| `"THAI"` | +| `"TIBETAN"` | +| `"TURKISH"` | +| `"TURKMEN"` | +| `"UKRAINIAN"` | +| `"URDU"` | +| `"UZBEK"` | +| `"VALENCIAN"` | +| `"VIETNAMESE"` | +| `"WELSH"` | +| `"YIDDISH"` | +| `"YORUBA"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TransformMediaItemRequest.md b/docs/v2/MediaSets/models/TransformMediaItemRequest.md new file mode 100644 index 000000000..d2d9e970d --- /dev/null +++ b/docs/v2/MediaSets/models/TransformMediaItemRequest.md @@ -0,0 +1,11 @@ +# TransformMediaItemRequest + +Request to transform a media item. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**transformation** | Transformation | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TransformMediaItemResponse.md b/docs/v2/MediaSets/models/TransformMediaItemResponse.md new file mode 100644 index 000000000..d9ff94f85 --- /dev/null +++ b/docs/v2/MediaSets/models/TransformMediaItemResponse.md @@ -0,0 +1,12 @@ +# TransformMediaItemResponse + +Response from initiating a media item transformation. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**status** | TransformationJobStatus | Yes | | +**job_id** | TransformationJobId | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/Transformation.md b/docs/v2/MediaSets/models/Transformation.md new file mode 100644 index 000000000..7559cea84 --- /dev/null +++ b/docs/v2/MediaSets/models/Transformation.md @@ -0,0 +1,34 @@ +# Transformation + +A transformation to apply to a media item. Each variant specifies the type of transformation +and any parameters required for the operation. + + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +EmailToTextTransformation | emailToText +ImageTransformation | image +SpreadsheetToTextTransformation | spreadsheetToText +VideoToAudioTransformation | videoToAudio +AudioToTextTransformation | audioToText +EmailToAttachmentTransformation | emailToAttachment +VideoToArchiveTransformation | videoToArchive +VideoToTextTransformation | videoToText +ImageToTextTransformation | imageToText +VideoToImageTransformation | videoToImage +VideoTransformation | video +ImageToDocumentTransformation | imageToDocument +DicomToImageTransformation | dicomToImage +DocumentToDocumentTransformation | documentToDocument +DocumentToImageTransformation | documentToImage +ImageToEmbeddingTransformation | imageToEmbedding +AudioTransformation | audio +DocumentToTextTransformation | documentToText + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TransformationJobId.md b/docs/v2/MediaSets/models/TransformationJobId.md new file mode 100644 index 000000000..800b4995d --- /dev/null +++ b/docs/v2/MediaSets/models/TransformationJobId.md @@ -0,0 +1,12 @@ +# TransformationJobId + +An identifier for a media item transformation job. + + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TransformationJobStatus.md b/docs/v2/MediaSets/models/TransformationJobStatus.md new file mode 100644 index 000000000..f202d720f --- /dev/null +++ b/docs/v2/MediaSets/models/TransformationJobStatus.md @@ -0,0 +1,12 @@ +# TransformationJobStatus + +The status of a transformation job. + +| **Value** | +| --------- | +| `"PENDING"` | +| `"FAILED"` | +| `"SUCCESSFUL"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TsAudioContainerFormat.md b/docs/v2/MediaSets/models/TsAudioContainerFormat.md new file mode 100644 index 000000000..a5ab635ef --- /dev/null +++ b/docs/v2/MediaSets/models/TsAudioContainerFormat.md @@ -0,0 +1,11 @@ +# TsAudioContainerFormat + +MPEG Transport Stream audio container format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["ts"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/TsVideoContainerFormat.md b/docs/v2/MediaSets/models/TsVideoContainerFormat.md new file mode 100644 index 000000000..409bca448 --- /dev/null +++ b/docs/v2/MediaSets/models/TsVideoContainerFormat.md @@ -0,0 +1,11 @@ +# TsVideoContainerFormat + +MPEG Transport Stream video container format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["ts"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoChunkOperation.md b/docs/v2/MediaSets/models/VideoChunkOperation.md new file mode 100644 index 000000000..230ff9285 --- /dev/null +++ b/docs/v2/MediaSets/models/VideoChunkOperation.md @@ -0,0 +1,15 @@ +# VideoChunkOperation + +Chunks video into smaller segments of the specified duration. +The final chunk may be smaller than the specified duration. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**chunk_duration_milliseconds** | int | Yes | Duration of each chunk in milliseconds. | +**chunk_index** | int | Yes | The chunk index to retain. | +**type** | Literal["chunk"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoEncodeFormat.md b/docs/v2/MediaSets/models/VideoEncodeFormat.md new file mode 100644 index 000000000..1aede0083 --- /dev/null +++ b/docs/v2/MediaSets/models/VideoEncodeFormat.md @@ -0,0 +1,18 @@ +# VideoEncodeFormat + +The output format for encoding video. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +Mp4VideoContainerFormat | mp4 +MovVideoContainerFormat | mov +MkvVideoContainerFormat | mkv +TsVideoContainerFormat | ts + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoOperation.md b/docs/v2/MediaSets/models/VideoOperation.md new file mode 100644 index 000000000..1609da1ca --- /dev/null +++ b/docs/v2/MediaSets/models/VideoOperation.md @@ -0,0 +1,16 @@ +# VideoOperation + +The operation to perform on the video. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +TranscodeOperation | transcode +VideoChunkOperation | chunk + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToArchiveOperation.md b/docs/v2/MediaSets/models/VideoToArchiveOperation.md new file mode 100644 index 000000000..b2c6b1eee --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToArchiveOperation.md @@ -0,0 +1,11 @@ +# VideoToArchiveOperation + +The operation to perform for video to archive conversion. + +## Type +```python +ExtractSceneFramesOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToArchiveTransformation.md b/docs/v2/MediaSets/models/VideoToArchiveTransformation.md new file mode 100644 index 000000000..9333f690c --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToArchiveTransformation.md @@ -0,0 +1,13 @@ +# VideoToArchiveTransformation + +Extracts video frames to an archive format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | ArchiveEncodeFormat | Yes | | +**operation** | VideoToArchiveOperation | Yes | | +**type** | Literal["videoToArchive"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToAudioOperation.md b/docs/v2/MediaSets/models/VideoToAudioOperation.md new file mode 100644 index 000000000..bd80afedb --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToAudioOperation.md @@ -0,0 +1,11 @@ +# VideoToAudioOperation + +The operation to perform for video to audio conversion. + +## Type +```python +ExtractAudioOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToAudioTransformation.md b/docs/v2/MediaSets/models/VideoToAudioTransformation.md new file mode 100644 index 000000000..aca0c65c1 --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToAudioTransformation.md @@ -0,0 +1,13 @@ +# VideoToAudioTransformation + +Extracts audio from video. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | AudioEncodeFormat | Yes | | +**operation** | VideoToAudioOperation | Yes | | +**type** | Literal["videoToAudio"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToImageOperation.md b/docs/v2/MediaSets/models/VideoToImageOperation.md new file mode 100644 index 000000000..e64577d07 --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToImageOperation.md @@ -0,0 +1,16 @@ +# VideoToImageOperation + +The operation to perform for video to image conversion. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +ExtractFirstFrameOperation | extractFirstFrame +ExtractFramesAtTimestampsOperation | extractFramesAtTimestamps + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToImageTransformation.md b/docs/v2/MediaSets/models/VideoToImageTransformation.md new file mode 100644 index 000000000..97c91edfe --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToImageTransformation.md @@ -0,0 +1,13 @@ +# VideoToImageTransformation + +Extracts video frames as images. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | ImageryEncodeFormat | Yes | | +**operation** | VideoToImageOperation | Yes | | +**type** | Literal["videoToImage"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToTextOperation.md b/docs/v2/MediaSets/models/VideoToTextOperation.md new file mode 100644 index 000000000..338473dbc --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToTextOperation.md @@ -0,0 +1,11 @@ +# VideoToTextOperation + +The operation to perform for video to text conversion. + +## Type +```python +GetTimestampsForSceneFramesOperation +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoToTextTransformation.md b/docs/v2/MediaSets/models/VideoToTextTransformation.md new file mode 100644 index 000000000..3441bcde6 --- /dev/null +++ b/docs/v2/MediaSets/models/VideoToTextTransformation.md @@ -0,0 +1,12 @@ +# VideoToTextTransformation + +Extracts metadata from video as text/JSON. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation** | VideoToTextOperation | Yes | | +**type** | Literal["videoToText"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/VideoTransformation.md b/docs/v2/MediaSets/models/VideoTransformation.md new file mode 100644 index 000000000..d80b61925 --- /dev/null +++ b/docs/v2/MediaSets/models/VideoTransformation.md @@ -0,0 +1,13 @@ +# VideoTransformation + +Transforms video media items. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**encoding** | VideoEncodeFormat | Yes | | +**operation** | VideoOperation | Yes | | +**type** | Literal["video"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/WavEncodeFormat.md b/docs/v2/MediaSets/models/WavEncodeFormat.md new file mode 100644 index 000000000..b7aab7711 --- /dev/null +++ b/docs/v2/MediaSets/models/WavEncodeFormat.md @@ -0,0 +1,13 @@ +# WavEncodeFormat + +WAV audio format with optional sample rate and channel layout. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**sample_rate** | Optional[int] | No | The sample rate in Hz. Defaults to 44100 Hz if not specified. | +**audio_channel_layout** | Optional[AudioChannelLayout] | No | | +**type** | Literal["wav"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/WaveformOperation.md b/docs/v2/MediaSets/models/WaveformOperation.md new file mode 100644 index 000000000..21eab31fc --- /dev/null +++ b/docs/v2/MediaSets/models/WaveformOperation.md @@ -0,0 +1,14 @@ +# WaveformOperation + +Generates waveform visualization data from audio. +Returns JSON with normalized doubles (0-1) representing amplitude. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**peaks_per_second** | int | Yes | The number of peaks per second (1-1000). | +**type** | Literal["waveform"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/MediaSets/models/WebpFormat.md b/docs/v2/MediaSets/models/WebpFormat.md new file mode 100644 index 000000000..519d7f38e --- /dev/null +++ b/docs/v2/MediaSets/models/WebpFormat.md @@ -0,0 +1,11 @@ +# WebpFormat + +WebP image format. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["webp"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/ModelStudio.md b/docs/v2/Models/ModelStudio.md new file mode 100644 index 000000000..303638456 --- /dev/null +++ b/docs/v2/Models/ModelStudio.md @@ -0,0 +1,163 @@ +# ModelStudio + +Method | HTTP request | Release Stage | +------------- | ------------- | ----- | +[**create**](#create) | **POST** /v2/models/modelStudios | Private Beta | +[**get**](#get) | **GET** /v2/models/modelStudios/{modelStudioRid} | Private Beta | +[**launch**](#launch) | **POST** /v2/models/modelStudios/{modelStudioRid}/launch | Private Beta | + +# **create** +Creates a new Model Studio. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**name** | str | The name of the Model Studio. | | +**parent_folder_rid** | FolderRid | The RID of the parent folder where the studio will be created. | | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ModelStudio** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# str | The name of the Model Studio. +name = None +# FolderRid | The RID of the parent folder where the studio will be created. +parent_folder_rid = "ri.compass.main.folder.c410f510-2937-420e-8ea3-8c9bcb3c1791" +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + api_response = client.models.ModelStudio.create( + name=name, parent_folder_rid=parent_folder_rid, preview=preview + ) + print("The create response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ModelStudio.create: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ModelStudio | The created ModelStudio | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + +# **get** +Gets details about a Model Studio by its RID. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_rid** | ModelStudioRid | | | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ModelStudio** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# ModelStudioRid +model_studio_rid = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + api_response = client.models.ModelStudio.get(model_studio_rid, preview=preview) + print("The get response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ModelStudio.get: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ModelStudio | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + +# **launch** +Launches a new training run for the Model Studio using the latest configuration version. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_rid** | ModelStudioRid | | | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ModelStudioRun** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# ModelStudioRid +model_studio_rid = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + api_response = client.models.ModelStudio.launch(model_studio_rid, preview=preview) + print("The launch response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ModelStudio.launch: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ModelStudioRun | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + diff --git a/docs/v2/Models/ModelStudioConfigVersion.md b/docs/v2/Models/ModelStudioConfigVersion.md new file mode 100644 index 000000000..03ac2c284 --- /dev/null +++ b/docs/v2/Models/ModelStudioConfigVersion.md @@ -0,0 +1,244 @@ +# ModelStudioConfigVersion + +Method | HTTP request | Release Stage | +------------- | ------------- | ----- | +[**create**](#create) | **POST** /v2/models/modelStudios/{modelStudioRid}/configVersions | Private Beta | +[**get**](#get) | **GET** /v2/models/modelStudios/{modelStudioRid}/configVersions/{modelStudioConfigVersionVersion} | Private Beta | +[**latest**](#latest) | **GET** /v2/models/modelStudios/{modelStudioRid}/configVersions/latest | Private Beta | +[**list**](#list) | **GET** /v2/models/modelStudios/{modelStudioRid}/configVersions | Private Beta | + +# **create** +Creates a new Model Studio configuration version. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_rid** | ModelStudioRid | | | +**name** | ModelStudioConfigVersionName | Human readable name of the configuration version and experiment. | | +**resources** | ResourceConfiguration | The compute resources allocated for training runs. | | +**trainer_id** | TrainerId | The identifier of the trainer to use for this configuration. | | +**worker_config** | ModelStudioWorkerConfig | The worker configuration including inputs, outputs, and custom settings. | | +**changelog** | Optional[str] | Changelog describing changes in this version. | [optional] | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ModelStudioConfigVersion** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# ModelStudioRid +model_studio_rid = None +# ModelStudioConfigVersionName | Human readable name of the configuration version and experiment. +name = None +# ResourceConfiguration | The compute resources allocated for training runs. +resources = None +# TrainerId | The identifier of the trainer to use for this configuration. +trainer_id = "autogluon" +# ModelStudioWorkerConfig | The worker configuration including inputs, outputs, and custom settings. +worker_config = None +# Optional[str] | Changelog describing changes in this version. +changelog = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + api_response = client.models.ModelStudio.ConfigVersion.create( + model_studio_rid, + name=name, + resources=resources, + trainer_id=trainer_id, + worker_config=worker_config, + changelog=changelog, + preview=preview, + ) + print("The create response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ConfigVersion.create: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ModelStudioConfigVersion | The created ModelStudioConfigVersion | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + +# **get** +Gets a specific Model Studio configuration version. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_rid** | ModelStudioRid | | | +**model_studio_config_version_version** | ModelStudioConfigVersionNumber | The version number of this configuration. | | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ModelStudioConfigVersion** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# ModelStudioRid +model_studio_rid = None +# ModelStudioConfigVersionNumber | The version number of this configuration. +model_studio_config_version_version = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + api_response = client.models.ModelStudio.ConfigVersion.get( + model_studio_rid, model_studio_config_version_version, preview=preview + ) + print("The get response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ConfigVersion.get: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ModelStudioConfigVersion | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + +# **latest** +Gets the latest configuration version for a Model Studio. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_rid** | ModelStudioRid | | | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**Optional[ModelStudioConfigVersion]** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# ModelStudioRid +model_studio_rid = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + api_response = client.models.ModelStudio.ConfigVersion.latest(model_studio_rid, preview=preview) + print("The latest response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ConfigVersion.latest: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | Optional[ModelStudioConfigVersion] | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + +# **list** +Lists all configuration versions for a Model Studio. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_rid** | ModelStudioRid | | | +**page_size** | Optional[PageSize] | The page size to use for the endpoint. | [optional] | +**page_token** | Optional[PageToken] | The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. | [optional] | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ListModelStudioConfigVersionsResponse** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# ModelStudioRid +model_studio_rid = None +# Optional[PageSize] | The page size to use for the endpoint. +page_size = None +# Optional[PageToken] | The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. +page_token = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + for model_studio_config_version in client.models.ModelStudio.ConfigVersion.list( + model_studio_rid, page_size=page_size, page_token=page_token, preview=preview + ): + pprint(model_studio_config_version) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ConfigVersion.list: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ListModelStudioConfigVersionsResponse | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + diff --git a/docs/v2/Models/ModelStudioRun.md b/docs/v2/Models/ModelStudioRun.md new file mode 100644 index 000000000..598acb491 --- /dev/null +++ b/docs/v2/Models/ModelStudioRun.md @@ -0,0 +1,70 @@ +# ModelStudioRun + +Method | HTTP request | Release Stage | +------------- | ------------- | ----- | +[**list**](#list) | **GET** /v2/models/modelStudios/{modelStudioRid}/runs | Private Beta | + +# **list** +Lists all runs for a Model Studio. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_rid** | ModelStudioRid | | | +**config_version** | Optional[ModelStudioConfigVersionNumber] | Filter runs by configuration version. | [optional] | +**page_size** | Optional[PageSize] | The page size to use for the endpoint. | [optional] | +**page_token** | Optional[PageToken] | The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. | [optional] | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ListModelStudioRunsResponse** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# ModelStudioRid +model_studio_rid = None +# Optional[ModelStudioConfigVersionNumber] | Filter runs by configuration version. +config_version = None +# Optional[PageSize] | The page size to use for the endpoint. +page_size = None +# Optional[PageToken] | The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. +page_token = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + for model_studio_run in client.models.ModelStudio.Run.list( + model_studio_rid, + config_version=config_version, + page_size=page_size, + page_token=page_token, + preview=preview, + ): + pprint(model_studio_run) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling Run.list: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ListModelStudioRunsResponse | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + diff --git a/docs/v2/Models/ModelStudioTrainer.md b/docs/v2/Models/ModelStudioTrainer.md new file mode 100644 index 000000000..75d79c230 --- /dev/null +++ b/docs/v2/Models/ModelStudioTrainer.md @@ -0,0 +1,109 @@ +# ModelStudioTrainer + +Method | HTTP request | Release Stage | +------------- | ------------- | ----- | +[**get**](#get) | **GET** /v2/models/modelStudioTrainers/{modelStudioTrainerTrainerId} | Private Beta | +[**list**](#list) | **GET** /v2/models/modelStudioTrainers | Private Beta | + +# **get** +Gets details about a specific trainer by its ID and optional version. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**model_studio_trainer_trainer_id** | TrainerId | | | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | +**version** | Optional[TrainerVersion] | Specific version of the trainer to retrieve. If not specified, returns the latest version. | [optional] | + +### Return type +**ModelStudioTrainer** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# TrainerId +model_studio_trainer_trainer_id = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None +# Optional[TrainerVersion] | Specific version of the trainer to retrieve. If not specified, returns the latest version. +version = None + + +try: + api_response = client.models.ModelStudioTrainer.get( + model_studio_trainer_trainer_id, preview=preview, version=version + ) + print("The get response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ModelStudioTrainer.get: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ModelStudioTrainer | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + +# **list** +Lists all available trainers for Model Studios. + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | + +### Return type +**ListModelStudioTrainersResponse** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None + + +try: + api_response = client.models.ModelStudioTrainer.list(preview=preview) + print("The list response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ModelStudioTrainer.list: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ListModelStudioTrainersResponse | | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + diff --git a/docs/v2/Models/models/ColumnTypeSpecId.md b/docs/v2/Models/models/ColumnTypeSpecId.md new file mode 100644 index 000000000..da0574e30 --- /dev/null +++ b/docs/v2/Models/models/ColumnTypeSpecId.md @@ -0,0 +1,11 @@ +# ColumnTypeSpecId + +An identifier for a column type specification. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/CreateModelStudioConfigVersionRequest.md b/docs/v2/Models/models/CreateModelStudioConfigVersionRequest.md new file mode 100644 index 000000000..8a9dfb17d --- /dev/null +++ b/docs/v2/Models/models/CreateModelStudioConfigVersionRequest.md @@ -0,0 +1,15 @@ +# CreateModelStudioConfigVersionRequest + +CreateModelStudioConfigVersionRequest + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**name** | ModelStudioConfigVersionName | Yes | Human readable name of the configuration version and experiment. | +**resources** | ResourceConfiguration | Yes | The compute resources allocated for training runs. | +**changelog** | Optional[str] | No | Changelog describing changes in this version. | +**worker_config** | ModelStudioWorkerConfig | Yes | The worker configuration including inputs, outputs, and custom settings. | +**trainer_id** | TrainerId | Yes | The identifier of the trainer to use for this configuration. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/CreateModelStudioRequest.md b/docs/v2/Models/models/CreateModelStudioRequest.md new file mode 100644 index 000000000..e61f3b411 --- /dev/null +++ b/docs/v2/Models/models/CreateModelStudioRequest.md @@ -0,0 +1,12 @@ +# CreateModelStudioRequest + +CreateModelStudioRequest + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**name** | str | Yes | The name of the Model Studio. | +**parent_folder_rid** | FolderRid | Yes | The RID of the parent folder where the studio will be created. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/DatasetInput.md b/docs/v2/Models/models/DatasetInput.md new file mode 100644 index 000000000..60e0cf7ba --- /dev/null +++ b/docs/v2/Models/models/DatasetInput.md @@ -0,0 +1,15 @@ +# DatasetInput + +Dataset input configuration. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**rid** | RID | Yes | The RID of the input dataset. | +**column_mapping** | Dict[ColumnTypeSpecId, List[ColumnName]] | Yes | Mapping of column type spec IDs to column names. | +**ignore_columns** | List[ColumnName] | Yes | Columns to ignore from the dataset. | +**select_columns** | List[ColumnName] | Yes | Columns to select from the dataset. If empty, all columns not in ignoreColumns will be used. | +**type** | Literal["dataset"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/InputAlias.md b/docs/v2/Models/models/InputAlias.md new file mode 100644 index 000000000..9ef1776a4 --- /dev/null +++ b/docs/v2/Models/models/InputAlias.md @@ -0,0 +1,11 @@ +# InputAlias + +A string alias used to identify inputs in a Model Studio configuration. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ListModelStudioConfigVersionsResponse.md b/docs/v2/Models/models/ListModelStudioConfigVersionsResponse.md new file mode 100644 index 000000000..2479481f4 --- /dev/null +++ b/docs/v2/Models/models/ListModelStudioConfigVersionsResponse.md @@ -0,0 +1,12 @@ +# ListModelStudioConfigVersionsResponse + +ListModelStudioConfigVersionsResponse + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**data** | List[ModelStudioConfigVersion] | Yes | | +**next_page_token** | Optional[PageToken] | No | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ListModelStudioRunsResponse.md b/docs/v2/Models/models/ListModelStudioRunsResponse.md new file mode 100644 index 000000000..4873d488a --- /dev/null +++ b/docs/v2/Models/models/ListModelStudioRunsResponse.md @@ -0,0 +1,12 @@ +# ListModelStudioRunsResponse + +ListModelStudioRunsResponse + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**data** | List[ModelStudioRun] | Yes | | +**next_page_token** | Optional[PageToken] | No | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ListModelStudioTrainersResponse.md b/docs/v2/Models/models/ListModelStudioTrainersResponse.md new file mode 100644 index 000000000..8ccdd707a --- /dev/null +++ b/docs/v2/Models/models/ListModelStudioTrainersResponse.md @@ -0,0 +1,12 @@ +# ListModelStudioTrainersResponse + +ListModelStudioTrainersResponse + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**data** | List[ModelStudioTrainer] | Yes | | +**next_page_token** | Optional[PageToken] | No | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelOutput.md b/docs/v2/Models/models/ModelOutput.md new file mode 100644 index 000000000..bededd72b --- /dev/null +++ b/docs/v2/Models/models/ModelOutput.md @@ -0,0 +1,12 @@ +# ModelOutput + +Model output configuration. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**model_rid** | RID | Yes | The RID of the output model. | +**type** | Literal["model"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudio.md b/docs/v2/Models/models/ModelStudio.md new file mode 100644 index 000000000..a591c8516 --- /dev/null +++ b/docs/v2/Models/models/ModelStudio.md @@ -0,0 +1,13 @@ +# ModelStudio + +ModelStudio + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**rid** | ModelStudioRid | Yes | | +**folder_rid** | FolderRid | Yes | The parent folder containing this Model Studio. | +**created_time** | CreatedTime | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioConfigVersion.md b/docs/v2/Models/models/ModelStudioConfigVersion.md new file mode 100644 index 000000000..ee6c96631 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioConfigVersion.md @@ -0,0 +1,19 @@ +# ModelStudioConfigVersion + +ModelStudioConfigVersion + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**name** | ModelStudioConfigVersionName | Yes | Human readable name of the configuration version and experiment. | +**version** | ModelStudioConfigVersionNumber | Yes | The version number of this configuration. | +**trainer_id** | TrainerId | Yes | The identifier of the trainer to use for this configuration. | +**trainer** | TrainerVersionLocator | Yes | The trainer and version used for this configuration. | +**worker_config** | ModelStudioWorkerConfig | Yes | The worker configuration including inputs, outputs, and custom settings. | +**resources** | ResourceConfiguration | Yes | The compute resources allocated for training runs. | +**changelog** | Optional[str] | No | Changelog describing changes in this version. | +**created_by** | CreatedBy | Yes | | +**created_time** | CreatedTime | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioConfigVersionName.md b/docs/v2/Models/models/ModelStudioConfigVersionName.md new file mode 100644 index 000000000..1c532d49b --- /dev/null +++ b/docs/v2/Models/models/ModelStudioConfigVersionName.md @@ -0,0 +1,11 @@ +# ModelStudioConfigVersionName + +Human readable name of the configuration version and experiment. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioConfigVersionNumber.md b/docs/v2/Models/models/ModelStudioConfigVersionNumber.md new file mode 100644 index 000000000..0254dda2d --- /dev/null +++ b/docs/v2/Models/models/ModelStudioConfigVersionNumber.md @@ -0,0 +1,11 @@ +# ModelStudioConfigVersionNumber + +The version number of a Model Studio Configuration. + +## Type +```python +int +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioInput.md b/docs/v2/Models/models/ModelStudioInput.md new file mode 100644 index 000000000..e11aa4512 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioInput.md @@ -0,0 +1,11 @@ +# ModelStudioInput + +Input specification for a Model Studio configuration. + +## Type +```python +DatasetInput +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioOutput.md b/docs/v2/Models/models/ModelStudioOutput.md new file mode 100644 index 000000000..c8c9257ae --- /dev/null +++ b/docs/v2/Models/models/ModelStudioOutput.md @@ -0,0 +1,11 @@ +# ModelStudioOutput + +Output specification for a Model Studio configuration. + +## Type +```python +ModelOutput +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioRid.md b/docs/v2/Models/models/ModelStudioRid.md new file mode 100644 index 000000000..6cc416fd7 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioRid.md @@ -0,0 +1,11 @@ +# ModelStudioRid + +The Resource Identifier (RID) of a Model Studio. + +## Type +```python +RID +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioRun.md b/docs/v2/Models/models/ModelStudioRun.md new file mode 100644 index 000000000..5145f9095 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioRun.md @@ -0,0 +1,17 @@ +# ModelStudioRun + +ModelStudioRun + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**run_id** | RunId | Yes | A unique identifier for this run, derived from the studio, config, and build. | +**build_rid** | ModelStudioRunBuildRid | Yes | The RID of the build associated with this run. | +**job_rid** | ModelStudioRunJobRid | Yes | The RID of the job associated with this run. | +**config_version** | ModelStudioConfigVersionNumber | Yes | The configuration version used for this run. | +**started_by** | CreatedBy | Yes | The user who started this run. | +**started_time** | CreatedTime | Yes | When this run was started. | +**resolved_outputs** | Dict[OutputAlias, ModelStudioRunOutput] | Yes | Map of alias to resolved output details (e.g., for models, contains the version RID and experiment). | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioRunBuildRid.md b/docs/v2/Models/models/ModelStudioRunBuildRid.md new file mode 100644 index 000000000..26011a007 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioRunBuildRid.md @@ -0,0 +1,11 @@ +# ModelStudioRunBuildRid + +The RID of the build associated with this run. + +## Type +```python +RID +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioRunJobRid.md b/docs/v2/Models/models/ModelStudioRunJobRid.md new file mode 100644 index 000000000..6104a7107 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioRunJobRid.md @@ -0,0 +1,11 @@ +# ModelStudioRunJobRid + +The RID of the job associated with this run. + +## Type +```python +RID +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioRunModelOutput.md b/docs/v2/Models/models/ModelStudioRunModelOutput.md new file mode 100644 index 000000000..6b6bcc54f --- /dev/null +++ b/docs/v2/Models/models/ModelStudioRunModelOutput.md @@ -0,0 +1,14 @@ +# ModelStudioRunModelOutput + +Resolved model output details for a Model Studio run. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**model_rid** | RID | Yes | The RID of the model. | +**model_version_rid** | RID | Yes | The RID of the model version created by this run. | +**experiment_rid** | Optional[RID] | No | The RID of the experiment associated with this run, if any. | +**type** | Literal["model"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioRunOutput.md b/docs/v2/Models/models/ModelStudioRunOutput.md new file mode 100644 index 000000000..bcd59eccb --- /dev/null +++ b/docs/v2/Models/models/ModelStudioRunOutput.md @@ -0,0 +1,11 @@ +# ModelStudioRunOutput + +Resolved output details for a Model Studio run. + +## Type +```python +ModelStudioRunModelOutput +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioTrainer.md b/docs/v2/Models/models/ModelStudioTrainer.md new file mode 100644 index 000000000..e6dac591e --- /dev/null +++ b/docs/v2/Models/models/ModelStudioTrainer.md @@ -0,0 +1,19 @@ +# ModelStudioTrainer + +ModelStudioTrainer + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**trainer_id** | TrainerId | Yes | | +**version** | TrainerVersion | Yes | The version of this trainer. | +**name** | TrainerName | Yes | Human-readable name of the trainer. | +**type** | TrainerType | Yes | The type/category of this trainer (e.g., TABULAR_CLASSIFICATION, TIME_SERIES). | +**description** | TrainerDescription | Yes | Description of what this trainer does and its capabilities. | +**custom_config_schema** | TrainerSchemaDefinition | Yes | JSON schema defining the custom configuration parameters for this trainer. | +**inputs** | TrainerInputsSpecification | Yes | Input specifications for this trainer. | +**outputs** | TrainerOutputsSpecification | Yes | Output specifications for this trainer. | +**experimental** | ModelStudioTrainerExperimental | Yes | Whether this trainer is experimental and may have breaking changes. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioTrainerExperimental.md b/docs/v2/Models/models/ModelStudioTrainerExperimental.md new file mode 100644 index 000000000..12c34fd20 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioTrainerExperimental.md @@ -0,0 +1,11 @@ +# ModelStudioTrainerExperimental + +Whether this trainer is experimental and may have breaking changes. + +## Type +```python +bool +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ModelStudioWorkerConfig.md b/docs/v2/Models/models/ModelStudioWorkerConfig.md new file mode 100644 index 000000000..1de6a9850 --- /dev/null +++ b/docs/v2/Models/models/ModelStudioWorkerConfig.md @@ -0,0 +1,13 @@ +# ModelStudioWorkerConfig + +Configuration for the Model Studio worker. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**custom_config** | Optional[Dict[str, Any]] | No | Custom configuration matching the trainer's JSON schema. | +**inputs** | Dict[InputAlias, ModelStudioInput] | Yes | Input configurations keyed by alias. | +**outputs** | Dict[OutputAlias, ModelStudioOutput] | Yes | Output configurations keyed by alias. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/OutputAlias.md b/docs/v2/Models/models/OutputAlias.md new file mode 100644 index 000000000..5aa1c8b72 --- /dev/null +++ b/docs/v2/Models/models/OutputAlias.md @@ -0,0 +1,11 @@ +# OutputAlias + +A string alias used to identify outputs in a Model Studio configuration. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/ResourceConfiguration.md b/docs/v2/Models/models/ResourceConfiguration.md new file mode 100644 index 000000000..ec5fcc145 --- /dev/null +++ b/docs/v2/Models/models/ResourceConfiguration.md @@ -0,0 +1,12 @@ +# ResourceConfiguration + +Compute resource configuration for training runs. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**memory** | str | Yes | Memory allocation (e.g., "4Gi"). | +**cpu** | str | Yes | CPU allocation (e.g., "2"). | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/RunId.md b/docs/v2/Models/models/RunId.md new file mode 100644 index 000000000..123e3476d --- /dev/null +++ b/docs/v2/Models/models/RunId.md @@ -0,0 +1,11 @@ +# RunId + +A unique identifier for a Model Studio run, derived from the studio, config, and build. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerDescription.md b/docs/v2/Models/models/TrainerDescription.md new file mode 100644 index 000000000..7a67e9fdf --- /dev/null +++ b/docs/v2/Models/models/TrainerDescription.md @@ -0,0 +1,11 @@ +# TrainerDescription + +Description of what a trainer does and its capabilities. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerId.md b/docs/v2/Models/models/TrainerId.md new file mode 100644 index 000000000..89df81815 --- /dev/null +++ b/docs/v2/Models/models/TrainerId.md @@ -0,0 +1,11 @@ +# TrainerId + +The identifier for a trainer. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerInputsSpecification.md b/docs/v2/Models/models/TrainerInputsSpecification.md new file mode 100644 index 000000000..189ae77e0 --- /dev/null +++ b/docs/v2/Models/models/TrainerInputsSpecification.md @@ -0,0 +1,12 @@ +# TrainerInputsSpecification + +Specification of the inputs required by a trainer. When creating a ModelStudioConfigVersion, the workerConfig.inputs must conform to this specification, providing entries for each required input defined here. + + +## Type +```python +Any +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerName.md b/docs/v2/Models/models/TrainerName.md new file mode 100644 index 000000000..794eed66a --- /dev/null +++ b/docs/v2/Models/models/TrainerName.md @@ -0,0 +1,11 @@ +# TrainerName + +Human-readable name of a trainer. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerOutputsSpecification.md b/docs/v2/Models/models/TrainerOutputsSpecification.md new file mode 100644 index 000000000..c3f01edc2 --- /dev/null +++ b/docs/v2/Models/models/TrainerOutputsSpecification.md @@ -0,0 +1,12 @@ +# TrainerOutputsSpecification + +Specification of the outputs produced by a trainer. When creating a ModelStudioConfigVersion, the workerConfig.outputs must conform to this specification, providing entries for each required output defined here. + + +## Type +```python +Any +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerSchemaDefinition.md b/docs/v2/Models/models/TrainerSchemaDefinition.md new file mode 100644 index 000000000..eb20e412a --- /dev/null +++ b/docs/v2/Models/models/TrainerSchemaDefinition.md @@ -0,0 +1,11 @@ +# TrainerSchemaDefinition + +JSON schema defining the custom configuration parameters for a trainer. + +## Type +```python +Any +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerType.md b/docs/v2/Models/models/TrainerType.md new file mode 100644 index 000000000..f8060c6ad --- /dev/null +++ b/docs/v2/Models/models/TrainerType.md @@ -0,0 +1,11 @@ +# TrainerType + +The type/category of a trainer. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerVersion.md b/docs/v2/Models/models/TrainerVersion.md new file mode 100644 index 000000000..968d7c788 --- /dev/null +++ b/docs/v2/Models/models/TrainerVersion.md @@ -0,0 +1,11 @@ +# TrainerVersion + +A specific version identifier for a trainer. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Models/models/TrainerVersionLocator.md b/docs/v2/Models/models/TrainerVersionLocator.md new file mode 100644 index 000000000..67b389f88 --- /dev/null +++ b/docs/v2/Models/models/TrainerVersionLocator.md @@ -0,0 +1,12 @@ +# TrainerVersionLocator + +Identifies a specific version of a trainer. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**trainer_id** | TrainerId | Yes | | +**version** | str | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/Action.md b/docs/v2/Ontologies/Action.md index d6c08fafc..5aafc0230 100644 --- a/docs/v2/Ontologies/Action.md +++ b/docs/v2/Ontologies/Action.md @@ -30,6 +30,7 @@ Name | Type | Description | Notes | **options** | Optional[ApplyActionRequestOptions] | | [optional] | **sdk_package_rid** | Optional[SdkPackageRid] | The package rid of the generated SDK. | [optional] | **sdk_version** | Optional[SdkVersion] | The version of the generated SDK. | [optional] | +**transaction_id** | Optional[OntologyTransactionId] | The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. | [optional] | ### Return type **SyncApplyActionResponseV2** @@ -57,6 +58,8 @@ options = None sdk_package_rid = None # Optional[SdkVersion] | The version of the generated SDK. sdk_version = None +# Optional[OntologyTransactionId] | The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. +transaction_id = None try: @@ -68,6 +71,7 @@ try: options=options, sdk_package_rid=sdk_package_rid, sdk_version=sdk_version, + transaction_id=transaction_id, ) print("The apply response:\n") pprint(api_response) @@ -190,6 +194,7 @@ Name | Type | Description | Notes | **branch** | Optional[FoundryBranch] | The Foundry branch to apply the action against. If not specified, the default branch is used. Branches are an experimental feature and not all workflows are supported. | [optional] | **sdk_package_rid** | Optional[SdkPackageRid] | The package rid of the generated SDK. | [optional] | **sdk_version** | Optional[SdkVersion] | The version of the generated SDK. | [optional] | +**transaction_id** | Optional[OntologyTransactionId] | The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. | [optional] | ### Return type **SyncApplyActionResponseV2** @@ -222,6 +227,8 @@ branch = None sdk_package_rid = None # Optional[SdkVersion] | The version of the generated SDK. sdk_version = None +# Optional[OntologyTransactionId] | The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. +transaction_id = None try: @@ -233,6 +240,7 @@ try: branch=branch, sdk_package_rid=sdk_package_rid, sdk_version=sdk_version, + transaction_id=transaction_id, ) print("The apply_with_overrides response:\n") pprint(api_response) diff --git a/docs/v2/Ontologies/ObjectType.md b/docs/v2/Ontologies/ObjectType.md index 08288bce5..7fb8f6bc7 100644 --- a/docs/v2/Ontologies/ObjectType.md +++ b/docs/v2/Ontologies/ObjectType.md @@ -3,7 +3,8 @@ Method | HTTP request | Release Stage | ------------- | ------------- | ----- | [**get**](#get) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType} | Stable | -[**get_full_metadata**](#get_full_metadata) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType}/fullMetadata | Private Beta | +[**get_edits_history**](#get_edits_history) | **POST** /v2/ontologies/{ontology}/objectTypes/{objectType}/editsHistory | Private Beta | +[**get_full_metadata**](#get_full_metadata) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType}/fullMetadata | Public Beta | [**get_outgoing_link_type**](#get_outgoing_link_type) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType}/outgoingLinkTypes/{linkType} | Stable | [**list**](#list) | **GET** /v2/ontologies/{ontology}/objectTypes | Stable | [**list_outgoing_link_types**](#list_outgoing_link_types) | **GET** /v2/ontologies/{ontology}/objectTypes/{objectType}/outgoingLinkTypes | Stable | @@ -62,6 +63,94 @@ See [README](../../../README.md#authorization) [[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) +# **get_edits_history** +Returns the history of edits (additions, modifications, deletions) for objects of a +specific object type. This endpoint provides visibility into all actions that have +modified objects of this type. + +The edits are returned in reverse chronological order (most recent first) by default. + +Note that filters are ignored for OSv1 object types. + + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**ontology** | OntologyIdentifier | The ontology RID or API name | | +**object_type** | ObjectTypeApiName | The API name of the object type | | +**branch** | Optional[FoundryBranch] | The Foundry branch from which we will get edits history. If not specified, the default branch is used. Branches are an experimental feature and not all workflows are supported. | [optional] | +**filters** | Optional[EditsHistoryFilter] | | [optional] | +**include_all_previous_properties** | Optional[bool] | | [optional] | +**object_primary_key** | Optional[ObjectPrimaryKeyV2] | | [optional] | +**page_size** | Optional[int] | The maximum number of edits to return per page. Defaults to 100. | [optional] | +**page_token** | Optional[str] | Token for retrieving the next page of results | [optional] | +**sort_order** | Optional[EditsHistorySortOrder] | | [optional] | + +### Return type +**ObjectTypeEditsHistoryResponse** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# OntologyIdentifier | The ontology RID or API name +ontology = "palantir" +# ObjectTypeApiName | The API name of the object type +object_type = "Employee" +# Optional[FoundryBranch] | The Foundry branch from which we will get edits history. If not specified, the default branch is used. Branches are an experimental feature and not all workflows are supported. +branch = None +# Optional[EditsHistoryFilter] +filters = None +# Optional[bool] +include_all_previous_properties = None +# Optional[ObjectPrimaryKeyV2] +object_primary_key = None +# Optional[int] | The maximum number of edits to return per page. Defaults to 100. +page_size = None +# Optional[str] | Token for retrieving the next page of results +page_token = None +# Optional[EditsHistorySortOrder] +sort_order = None + + +try: + api_response = client.ontologies.Ontology.ObjectType.get_edits_history( + ontology, + object_type, + branch=branch, + filters=filters, + include_all_previous_properties=include_all_previous_properties, + object_primary_key=object_primary_key, + page_size=page_size, + page_token=page_token, + sort_order=sort_order, + ) + print("The get_edits_history response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling ObjectType.get_edits_history: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | ObjectTypeEditsHistoryResponse | Success response | application/json | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + # **get_full_metadata** Gets the full metadata for a specific object type with the given API name. diff --git a/docs/v2/Ontologies/OntologyObjectSet.md b/docs/v2/Ontologies/OntologyObjectSet.md index 168f2d8c7..883786fdf 100644 --- a/docs/v2/Ontologies/OntologyObjectSet.md +++ b/docs/v2/Ontologies/OntologyObjectSet.md @@ -588,6 +588,7 @@ Name | Type | Description | Notes | **sdk_version** | Optional[SdkVersion] | The package version of the generated SDK. | [optional] | **select_v2** | Optional[List[PropertyIdentifier]] | The identifiers of the properties to include in the response. Only selectV2 or select should be populated, but not both. | [optional] | **snapshot** | Optional[bool] | A flag to use snapshot consistency when paging. Setting this to true will give you a consistent view from before you start paging through the results, ensuring you do not get duplicate or missing items. Setting this to false will let new results enter as you page, but you may encounter duplicate or missing items. This defaults to false if not specified, which means you will always get the latest results. | [optional] | +**transaction_id** | Optional[OntologyTransactionId] | The ID of an Ontology transaction to read from. Transactions are an experimental feature and all workflows may not be supported. | [optional] | ### Return type **LoadObjectSetV2ObjectsOrInterfacesResponse** @@ -627,6 +628,8 @@ sdk_version = None select_v2 = None # Optional[bool] | A flag to use snapshot consistency when paging. Setting this to true will give you a consistent view from before you start paging through the results, ensuring you do not get duplicate or missing items. Setting this to false will let new results enter as you page, but you may encounter duplicate or missing items. This defaults to false if not specified, which means you will always get the latest results. snapshot = None +# Optional[OntologyTransactionId] | The ID of an Ontology transaction to read from. Transactions are an experimental feature and all workflows may not be supported. +transaction_id = None try: @@ -644,6 +647,7 @@ try: sdk_version=sdk_version, select_v2=select_v2, snapshot=snapshot, + transaction_id=transaction_id, ) print("The load_objects_or_interfaces response:\n") pprint(api_response) diff --git a/docs/v2/Ontologies/OntologyTransaction.md b/docs/v2/Ontologies/OntologyTransaction.md index d858abf44..0f5414727 100644 --- a/docs/v2/Ontologies/OntologyTransaction.md +++ b/docs/v2/Ontologies/OntologyTransaction.md @@ -16,6 +16,8 @@ Name | Type | Description | Notes | **transaction_id** | OntologyTransactionId | The ID of the transaction to apply edits to. Transactions are an experimental feature and all workflows may not be supported. | | **edits** | List[TransactionEdit] | | | **preview** | Optional[PreviewMode] | A boolean flag that, when set to true, enables the use of beta features in preview mode. | [optional] | +**sdk_package_rid** | Optional[SdkPackageRid] | The package rid of the generated SDK. | [optional] | +**sdk_version** | Optional[SdkVersion] | The version of the generated SDK. | [optional] | ### Return type **PostTransactionEditsResponse** @@ -37,11 +39,20 @@ transaction_id = None edits = None # Optional[PreviewMode] | A boolean flag that, when set to true, enables the use of beta features in preview mode. preview = None +# Optional[SdkPackageRid] | The package rid of the generated SDK. +sdk_package_rid = None +# Optional[SdkVersion] | The version of the generated SDK. +sdk_version = None try: api_response = client.ontologies.OntologyTransaction.post_edits( - ontology, transaction_id, edits=edits, preview=preview + ontology, + transaction_id, + edits=edits, + preview=preview, + sdk_package_rid=sdk_package_rid, + sdk_version=sdk_version, ) print("The post_edits response:\n") pprint(api_response) diff --git a/docs/v2/Ontologies/models/ActionParameterV2.md b/docs/v2/Ontologies/models/ActionParameterV2.md index b7a55acc5..955233080 100644 --- a/docs/v2/Ontologies/models/ActionParameterV2.md +++ b/docs/v2/Ontologies/models/ActionParameterV2.md @@ -9,6 +9,7 @@ Details about a parameter of an action. **description** | Optional[str] | No | | **data_type** | ActionParameterType | Yes | | **required** | bool | Yes | | +**type_classes** | List[TypeClass] | Yes | | [[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/AddObjectEdit.md b/docs/v2/Ontologies/models/AddObjectEdit.md index 75a92c4c9..41320caba 100644 --- a/docs/v2/Ontologies/models/AddObjectEdit.md +++ b/docs/v2/Ontologies/models/AddObjectEdit.md @@ -6,7 +6,7 @@ AddObjectEdit | Name | Type | Required | Description | | ------------ | ------------- | ------------- | ------------- | **object_type** | ObjectTypeApiName | Yes | | -**properties** | Dict[PropertyApiName, DataValue] | Yes | | +**properties** | Dict[PropertyApiName, Optional[DataValue]] | Yes | | **type** | Literal["addObject"] | Yes | None | diff --git a/docs/v2/Ontologies/models/BooleanValue.md b/docs/v2/Ontologies/models/BooleanValue.md new file mode 100644 index 000000000..69dbd5eda --- /dev/null +++ b/docs/v2/Ontologies/models/BooleanValue.md @@ -0,0 +1,12 @@ +# BooleanValue + +BooleanValue + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | bool | Yes | | +**type** | Literal["booleanValue"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/CreateEdit.md b/docs/v2/Ontologies/models/CreateEdit.md new file mode 100644 index 000000000..bfa628746 --- /dev/null +++ b/docs/v2/Ontologies/models/CreateEdit.md @@ -0,0 +1,12 @@ +# CreateEdit + +CreateEdit + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**properties** | Dict[PropertyApiName, PropertyValue] | Yes | The property values of the object at the time of creation. Maps property API names to their values. | +**type** | Literal["createEdit"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/DateValue.md b/docs/v2/Ontologies/models/DateValue.md new file mode 100644 index 000000000..5cff3aba9 --- /dev/null +++ b/docs/v2/Ontologies/models/DateValue.md @@ -0,0 +1,12 @@ +# DateValue + +DateValue + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | date | Yes | | +**type** | Literal["dateValue"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/DeleteEdit.md b/docs/v2/Ontologies/models/DeleteEdit.md new file mode 100644 index 000000000..6b0ac40c7 --- /dev/null +++ b/docs/v2/Ontologies/models/DeleteEdit.md @@ -0,0 +1,12 @@ +# DeleteEdit + +DeleteEdit + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**previous_properties** | Dict[PropertyApiName, PropertyValue] | Yes | | +**type** | Literal["deleteEdit"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/DoubleValue.md b/docs/v2/Ontologies/models/DoubleValue.md new file mode 100644 index 000000000..225f9194d --- /dev/null +++ b/docs/v2/Ontologies/models/DoubleValue.md @@ -0,0 +1,12 @@ +# DoubleValue + +DoubleValue + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | float | Yes | | +**type** | Literal["doubleValue"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/EditHistoryEdit.md b/docs/v2/Ontologies/models/EditHistoryEdit.md new file mode 100644 index 000000000..b394e471a --- /dev/null +++ b/docs/v2/Ontologies/models/EditHistoryEdit.md @@ -0,0 +1,17 @@ +# EditHistoryEdit + +EditHistoryEdit + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +CreateEdit | createEdit +DeleteEdit | deleteEdit +ModifyEdit | modifyEdit + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/EditsHistoryFilter.md b/docs/v2/Ontologies/models/EditsHistoryFilter.md new file mode 100644 index 000000000..93ed62311 --- /dev/null +++ b/docs/v2/Ontologies/models/EditsHistoryFilter.md @@ -0,0 +1,16 @@ +# EditsHistoryFilter + +EditsHistoryFilter + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +EditsHistoryTimestampFilter | timestampFilter +EditsHistoryOperationIdsFilter | operationIdsFilter + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/EditsHistoryOperationIdsFilter.md b/docs/v2/Ontologies/models/EditsHistoryOperationIdsFilter.md new file mode 100644 index 000000000..78c27823c --- /dev/null +++ b/docs/v2/Ontologies/models/EditsHistoryOperationIdsFilter.md @@ -0,0 +1,12 @@ +# EditsHistoryOperationIdsFilter + +EditsHistoryOperationIdsFilter + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**operation_ids** | List[ActionRid] | Yes | | +**type** | Literal["operationIdsFilter"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/EditsHistorySortOrder.md b/docs/v2/Ontologies/models/EditsHistorySortOrder.md new file mode 100644 index 000000000..122c706a6 --- /dev/null +++ b/docs/v2/Ontologies/models/EditsHistorySortOrder.md @@ -0,0 +1,11 @@ +# EditsHistorySortOrder + +EditsHistorySortOrder + +| **Value** | +| --------- | +| `"newest_first"` | +| `"oldest_first"` | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/EditsHistoryTimestampFilter.md b/docs/v2/Ontologies/models/EditsHistoryTimestampFilter.md new file mode 100644 index 000000000..fd9be7718 --- /dev/null +++ b/docs/v2/Ontologies/models/EditsHistoryTimestampFilter.md @@ -0,0 +1,13 @@ +# EditsHistoryTimestampFilter + +EditsHistoryTimestampFilter + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**start_time** | Optional[datetime] | No | Filter edits to only those that occurred after this timestamp (inclusive). ISO 8601 format. Example: "2024-01-01T00:00:00Z" | +**end_time** | Optional[datetime] | No | Filter edits to only those that occurred before this timestamp (inclusive). ISO 8601 format. Example: "2024-12-31T23:59:59Z" | +**type** | Literal["timestampFilter"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/EqualsQueryV2.md b/docs/v2/Ontologies/models/EqualsQueryV2.md index d960e118b..c5a01ff9d 100644 --- a/docs/v2/Ontologies/models/EqualsQueryV2.md +++ b/docs/v2/Ontologies/models/EqualsQueryV2.md @@ -3,6 +3,8 @@ Returns objects where the specified field is equal to a value. Allows you to specify a property to query on by a variety of means. Either `field` or `propertyIdentifier` must be supplied, but not both. +For string properties, full term matching only works when **Selectable** is enabled for the property in Ontology Manager. + ## Properties | Name | Type | Required | Description | diff --git a/docs/v2/Ontologies/models/FuzzyRule.md b/docs/v2/Ontologies/models/FuzzyRule.md new file mode 100644 index 000000000..22a8b3960 --- /dev/null +++ b/docs/v2/Ontologies/models/FuzzyRule.md @@ -0,0 +1,16 @@ +# FuzzyRule + +Matches intervals containing terms that are similar to the provided term, within an edit distance +defined by fuzziness. An edit is a single character change needed to make a term match, including +character insertion, deletion, substitution, or transposition of two adjacent characters. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**term** | str | Yes | The term to match. | +**fuzziness** | Optional[int] | No | Maximum edit distance allowed for matching. Valid values are 0, 1, or 2. Defaults to 2. | +**type** | Literal["fuzzy"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/InQuery.md b/docs/v2/Ontologies/models/InQuery.md index b3d88ebf1..e1565566e 100644 --- a/docs/v2/Ontologies/models/InQuery.md +++ b/docs/v2/Ontologies/models/InQuery.md @@ -4,6 +4,8 @@ Returns objects where the specified field equals any of the provided values. All specify a property to query on by a variety of means. If an empty array is provided as the value, then the filter will match all objects in the object set. Either `field` or `propertyIdentifier` must be supplied, but not both. +For string properties, full term matching only works when **Selectable** is enabled for the property in Ontology Manager. + ## Properties | Name | Type | Required | Description | diff --git a/docs/v2/Ontologies/models/IntegerValue.md b/docs/v2/Ontologies/models/IntegerValue.md new file mode 100644 index 000000000..bebe84321 --- /dev/null +++ b/docs/v2/Ontologies/models/IntegerValue.md @@ -0,0 +1,12 @@ +# IntegerValue + +IntegerValue + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | int | Yes | | +**type** | Literal["integerValue"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/InterfaceDefinedPropertyType.md b/docs/v2/Ontologies/models/InterfaceDefinedPropertyType.md index ee30f90c6..c2a5efedf 100644 --- a/docs/v2/Ontologies/models/InterfaceDefinedPropertyType.md +++ b/docs/v2/Ontologies/models/InterfaceDefinedPropertyType.md @@ -14,6 +14,7 @@ implementing object property types. **data_type** | ObjectPropertyType | Yes | | **value_type_api_name** | Optional[ValueTypeApiName] | No | | **require_implementation** | bool | Yes | Whether each implementing object type must declare an implementation for this property. | +**type_classes** | List[TypeClass] | Yes | | **type** | Literal["interfaceDefinedPropertyType"] | Yes | None | diff --git a/docs/v2/Ontologies/models/InterfaceSharedPropertyType.md b/docs/v2/Ontologies/models/InterfaceSharedPropertyType.md index c8c66b034..b96d20621 100644 --- a/docs/v2/Ontologies/models/InterfaceSharedPropertyType.md +++ b/docs/v2/Ontologies/models/InterfaceSharedPropertyType.md @@ -15,6 +15,7 @@ object type that implements the interface, or whether it is optional. **value_type_api_name** | Optional[ValueTypeApiName] | No | | **value_formatting** | Optional[PropertyValueFormattingRule] | No | | **required** | bool | Yes | Whether each implementing object type must declare an implementation for this property. | +**type_classes** | List[TypeClass] | Yes | | **type** | Literal["interfaceSharedPropertyType"] | Yes | None | diff --git a/docs/v2/Ontologies/models/IntervalQueryRule.md b/docs/v2/Ontologies/models/IntervalQueryRule.md index e1499af69..9356660ae 100644 --- a/docs/v2/Ontologies/models/IntervalQueryRule.md +++ b/docs/v2/Ontologies/models/IntervalQueryRule.md @@ -13,6 +13,7 @@ AllOfRule | allOf MatchRule | match AnyOfRule | anyOf PrefixOnLastTokenRule | prefixOnLastToken +FuzzyRule | fuzzy [[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/LoadObjectSetV2ObjectsOrInterfacesResponse.md b/docs/v2/Ontologies/models/LoadObjectSetV2ObjectsOrInterfacesResponse.md index 6043a267f..3b75024e2 100644 --- a/docs/v2/Ontologies/models/LoadObjectSetV2ObjectsOrInterfacesResponse.md +++ b/docs/v2/Ontologies/models/LoadObjectSetV2ObjectsOrInterfacesResponse.md @@ -1,6 +1,6 @@ # LoadObjectSetV2ObjectsOrInterfacesResponse -Represents the API response when loading an `ObjectSet`. Objects in the returned set can either have properties +Represents the API response when loading an `ObjectSet`. Objects in the returned set can either have properties defined by an interface that the objects belong to or properties defined by the object type of the object. @@ -10,6 +10,7 @@ defined by an interface that the objects belong to or properties defined by the **data** | List[OntologyObjectV2] | Yes | The list of objects in the current page. | **next_page_token** | Optional[PageToken] | No | | **total_count** | TotalCount | Yes | | +**transaction_id** | Optional[OntologyTransactionId] | No | | [[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/LongValue.md b/docs/v2/Ontologies/models/LongValue.md new file mode 100644 index 000000000..e32a5a547 --- /dev/null +++ b/docs/v2/Ontologies/models/LongValue.md @@ -0,0 +1,12 @@ +# LongValue + +LongValue + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | Long | Yes | | +**type** | Literal["longValue"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/ModifyEdit.md b/docs/v2/Ontologies/models/ModifyEdit.md new file mode 100644 index 000000000..cbcf99231 --- /dev/null +++ b/docs/v2/Ontologies/models/ModifyEdit.md @@ -0,0 +1,14 @@ +# ModifyEdit + +ModifyEdit + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**includes_all_previous_values** | Optional[bool] | No | | +**previous_properties** | Dict[PropertyApiName, PropertyValue] | Yes | The property values before the modification. Only includes properties that were changed. Maps property API names to their previous values. | +**properties** | Dict[PropertyApiName, PropertyValue] | Yes | | +**type** | Literal["modifyEdit"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/ModifyObjectEdit.md b/docs/v2/Ontologies/models/ModifyObjectEdit.md index 3c0573788..05350d906 100644 --- a/docs/v2/Ontologies/models/ModifyObjectEdit.md +++ b/docs/v2/Ontologies/models/ModifyObjectEdit.md @@ -7,7 +7,7 @@ ModifyObjectEdit | ------------ | ------------- | ------------- | ------------- | **object_type** | ObjectTypeApiName | Yes | | **primary_key** | PropertyValue | Yes | | -**properties** | Dict[PropertyApiName, DataValue] | Yes | | +**properties** | Dict[PropertyApiName, Optional[DataValue]] | Yes | | **type** | Literal["modifyObject"] | Yes | None | diff --git a/docs/v2/Ontologies/models/ObjectEditHistoryEntry.md b/docs/v2/Ontologies/models/ObjectEditHistoryEntry.md new file mode 100644 index 000000000..f81daa276 --- /dev/null +++ b/docs/v2/Ontologies/models/ObjectEditHistoryEntry.md @@ -0,0 +1,18 @@ +# ObjectEditHistoryEntry + +Represents a single object edit operation in the history. This captures when an object was +created, modified, or deleted as part of an action execution. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**object_primary_key** | ObjectPrimaryKeyV2 | Yes | | +**operation_id** | ActionRid | Yes | | +**action_type_rid** | ActionTypeRid | Yes | | +**user_id** | str | Yes | The user ID or principal that performed the action | +**timestamp** | datetime | Yes | When this edit occurred (ISO 8601 format) | +**edit** | EditHistoryEdit | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/ObjectPrimaryKeyV2.md b/docs/v2/Ontologies/models/ObjectPrimaryKeyV2.md new file mode 100644 index 000000000..69dc14f66 --- /dev/null +++ b/docs/v2/Ontologies/models/ObjectPrimaryKeyV2.md @@ -0,0 +1,11 @@ +# ObjectPrimaryKeyV2 + +ObjectPrimaryKeyV2 + +## Type +```python +Dict[PropertyApiName, PrimaryKeyValueV2] +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/ObjectTypeEditsHistoryRequest.md b/docs/v2/Ontologies/models/ObjectTypeEditsHistoryRequest.md new file mode 100644 index 000000000..d8ce542ad --- /dev/null +++ b/docs/v2/Ontologies/models/ObjectTypeEditsHistoryRequest.md @@ -0,0 +1,20 @@ +# ObjectTypeEditsHistoryRequest + +Request object for querying object type edits history, containing both filters and pagination parameters + +If objectPrimaryKey property is set, the method will return edits history for the particular object. +Otherwise, the method will return edits history for all objects of this object type. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**object_primary_key** | Optional[ObjectPrimaryKeyV2] | No | | +**filters** | Optional[EditsHistoryFilter] | No | | +**sort_order** | Optional[EditsHistorySortOrder] | No | | +**include_all_previous_properties** | Optional[bool] | No | | +**page_size** | Optional[int] | No | The maximum number of edits to return per page. Defaults to 100. | +**page_token** | Optional[str] | No | Token for retrieving the next page of results | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/ObjectTypeEditsHistoryResponse.md b/docs/v2/Ontologies/models/ObjectTypeEditsHistoryResponse.md new file mode 100644 index 000000000..4bd047615 --- /dev/null +++ b/docs/v2/Ontologies/models/ObjectTypeEditsHistoryResponse.md @@ -0,0 +1,15 @@ +# ObjectTypeEditsHistoryResponse + +Response containing the history of edits for objects of a specific object type. +Only contains object edits (create, modify, delete) - link edits are not included. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**data** | List[ObjectEditHistoryEntry] | Yes | List of historical edits for this object type | +**total_count** | Optional[int] | No | Count of items in the data array above | +**next_page_token** | Optional[str] | No | Token for retrieving the next page of results | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/PrimaryKeyValueV2.md b/docs/v2/Ontologies/models/PrimaryKeyValueV2.md new file mode 100644 index 000000000..059125b2d --- /dev/null +++ b/docs/v2/Ontologies/models/PrimaryKeyValueV2.md @@ -0,0 +1,21 @@ +# PrimaryKeyValueV2 + +PrimaryKeyValueV2 + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +DateValue | dateValue +StringValue | stringValue +TimestampValue | timestampValue +BooleanValue | booleanValue +IntegerValue | integerValue +DoubleValue | doubleValue +LongValue | longValue + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/PropertyTypeRid.md b/docs/v2/Ontologies/models/PropertyTypeRid.md index 116c24440..e55c75cc5 100644 --- a/docs/v2/Ontologies/models/PropertyTypeRid.md +++ b/docs/v2/Ontologies/models/PropertyTypeRid.md @@ -1,6 +1,6 @@ # PropertyTypeRid -PropertyTypeRid +The unique resource identifier of a property. ## Type ```python diff --git a/docs/v2/Ontologies/models/PropertyV2.md b/docs/v2/Ontologies/models/PropertyV2.md index 5bbb4c3ac..cdef7a428 100644 --- a/docs/v2/Ontologies/models/PropertyV2.md +++ b/docs/v2/Ontologies/models/PropertyV2.md @@ -13,6 +13,7 @@ Details about some property of an object. **visibility** | Optional[PropertyTypeVisibility] | No | | **value_type_api_name** | Optional[ValueTypeApiName] | No | | **value_formatting** | Optional[PropertyValueFormattingRule] | No | | +**type_classes** | List[TypeClass] | Yes | | [[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/SharedPropertyType.md b/docs/v2/Ontologies/models/SharedPropertyType.md index 270d9b058..8eca52de4 100644 --- a/docs/v2/Ontologies/models/SharedPropertyType.md +++ b/docs/v2/Ontologies/models/SharedPropertyType.md @@ -12,6 +12,7 @@ A property type that can be shared across object types. **data_type** | ObjectPropertyType | Yes | | **value_type_api_name** | Optional[ValueTypeApiName] | No | | **value_formatting** | Optional[PropertyValueFormattingRule] | No | | +**type_classes** | List[TypeClass] | Yes | | [[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/StringValue.md b/docs/v2/Ontologies/models/StringValue.md new file mode 100644 index 000000000..7a361a6cc --- /dev/null +++ b/docs/v2/Ontologies/models/StringValue.md @@ -0,0 +1,12 @@ +# StringValue + +StringValue + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | str | Yes | | +**type** | Literal["stringValue"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/StructFieldType.md b/docs/v2/Ontologies/models/StructFieldType.md index b017293ee..1fb916bcd 100644 --- a/docs/v2/Ontologies/models/StructFieldType.md +++ b/docs/v2/Ontologies/models/StructFieldType.md @@ -8,6 +8,7 @@ StructFieldType **api_name** | StructFieldApiName | Yes | | **rid** | StructFieldTypeRid | Yes | | **data_type** | ObjectPropertyType | Yes | | +**type_classes** | List[TypeClass] | Yes | | [[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/TimestampValue.md b/docs/v2/Ontologies/models/TimestampValue.md new file mode 100644 index 000000000..9da3e90f2 --- /dev/null +++ b/docs/v2/Ontologies/models/TimestampValue.md @@ -0,0 +1,12 @@ +# TimestampValue + +TimestampValue + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | datetime | Yes | | +**type** | Literal["timestampValue"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Ontologies/models/TypeClass.md b/docs/v2/Ontologies/models/TypeClass.md new file mode 100644 index 000000000..224572c6d --- /dev/null +++ b/docs/v2/Ontologies/models/TypeClass.md @@ -0,0 +1,13 @@ +# TypeClass + +Additional metadata that can be interpreted by user applications that interact with the Ontology + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**kind** | str | Yes | A namespace for the type class. | +**name** | str | Yes | The value of the type class. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Orchestration/models/Build.md b/docs/v2/Orchestration/models/Build.md index 30b71af62..ea221ffd5 100644 --- a/docs/v2/Orchestration/models/Build.md +++ b/docs/v2/Orchestration/models/Build.md @@ -15,6 +15,7 @@ Build **retry_backoff_duration** | RetryBackoffDuration | Yes | | **abort_on_failure** | AbortOnFailure | Yes | | **status** | BuildStatus | Yes | | +**finished_time** | Optional[datetime] | No | The time the build finished processing. Will be empty while the build is still running. | **schedule_rid** | Optional[ScheduleRid] | No | Schedule RID of the Schedule that triggered this build. If a user triggered the build, Schedule RID will be empty. | diff --git a/docs/v2/SqlQueries/SqlQuery.md b/docs/v2/SqlQueries/SqlQuery.md index a0779be8d..0878e0812 100644 --- a/docs/v2/SqlQueries/SqlQuery.md +++ b/docs/v2/SqlQueries/SqlQuery.md @@ -4,6 +4,7 @@ Method | HTTP request | Release Stage | ------------- | ------------- | ----- | [**cancel**](#cancel) | **POST** /v2/sqlQueries/{sqlQueryId}/cancel | Stable | [**execute**](#execute) | **POST** /v2/sqlQueries/execute | Stable | +[**execute_ontology**](#execute_ontology) | **POST** /v2/sqlQueries/executeOntology | Private Beta | [**get_results**](#get_results) | **GET** /v2/sqlQueries/{sqlQueryId}/getResults | Stable | [**get_status**](#get_status) | **GET** /v2/sqlQueries/{sqlQueryId}/getStatus | Stable | @@ -110,6 +111,69 @@ See [README](../../../README.md#authorization) [[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) +# **execute_ontology** +Executes a SQL query against the Ontology. Results are returned synchronously in +[Apache Arrow](https://arrow.apache.org/) format. + + +### Parameters + +Name | Type | Description | Notes | +------------- | ------------- | ------------- | ------------- | +**query** | str | The SQL query to execute. | | +**dry_run** | Optional[bool] | If true, parse and validate the query without executing it. Defaults to false. | [optional] | +**parameters** | Optional[Parameters] | Parameters for the SQL query. Can be either unnamed positional parameters or a named parameter mapping. | [optional] | +**preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | +**row_limit** | Optional[int] | Maximum number of rows to return. | [optional] | + +### Return type +**bytes** + +### Example + +```python +from foundry_sdk import FoundryClient +import foundry_sdk +from pprint import pprint + +client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.palantirfoundry.com") + +# str | The SQL query to execute. +query = "SELECT * FROM ri.ontology.main.object-type.xxx" +# Optional[bool] | If true, parse and validate the query without executing it. Defaults to false. +dry_run = None +# Optional[Parameters] | Parameters for the SQL query. Can be either unnamed positional parameters or a named parameter mapping. +parameters = None +# Optional[PreviewMode] | Enables the use of preview functionality. +preview = None +# Optional[int] | Maximum number of rows to return. +row_limit = None + + +try: + api_response = client.sql_queries.SqlQuery.execute_ontology( + query=query, dry_run=dry_run, parameters=parameters, preview=preview, row_limit=row_limit + ) + print("The execute_ontology response:\n") + pprint(api_response) +except foundry_sdk.PalantirRPCException as e: + print("HTTP error when calling SqlQuery.execute_ontology: %s\n" % e) + +``` + + + +### Authorization + +See [README](../../../README.md#authorization) + +### HTTP response details +| Status Code | Type | Description | Content Type | +|-------------|-------------|-------------|------------------| +**200** | bytes | | application/octet-stream | + +[[Back to top]](#) [[Back to API list]](../../../README.md#apis-v2-link) [[Back to Model list]](../../../README.md#models-v2-link) [[Back to README]](../../../README.md) + # **get_results** Gets the results of a query. The results of the query are returned in the [Apache Arrow](https://arrow.apache.org/) format. diff --git a/docs/v2/SqlQueries/models/AnyColumnType.md b/docs/v2/SqlQueries/models/AnyColumnType.md new file mode 100644 index 000000000..a789b4581 --- /dev/null +++ b/docs/v2/SqlQueries/models/AnyColumnType.md @@ -0,0 +1,11 @@ +# AnyColumnType + +AnyColumnType + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["any"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ColumnType.md b/docs/v2/SqlQueries/models/ColumnType.md new file mode 100644 index 000000000..6a340169d --- /dev/null +++ b/docs/v2/SqlQueries/models/ColumnType.md @@ -0,0 +1,29 @@ +# ColumnType + +The type of a column in a SQL query result or parameter. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +DateType | date +StructColumnType | struct +StringType | string +DoubleType | double +IntegerType | integer +FloatType | float +ListColumnType | list +AnyColumnType | any +LongType | long +BooleanType | boolean +BinaryType | binary +ShortType | short +DecimalColumnType | decimal +MapColumnType | map +TimestampType | timestamp + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/DecimalColumnType.md b/docs/v2/SqlQueries/models/DecimalColumnType.md new file mode 100644 index 000000000..c9cd9dc9e --- /dev/null +++ b/docs/v2/SqlQueries/models/DecimalColumnType.md @@ -0,0 +1,13 @@ +# DecimalColumnType + +DecimalColumnType + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**precision** | int | Yes | | +**scale** | int | Yes | | +**type** | Literal["decimal"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ExecuteOntologySqlQueryRequest.md b/docs/v2/SqlQueries/models/ExecuteOntologySqlQueryRequest.md new file mode 100644 index 000000000..13ce37554 --- /dev/null +++ b/docs/v2/SqlQueries/models/ExecuteOntologySqlQueryRequest.md @@ -0,0 +1,14 @@ +# ExecuteOntologySqlQueryRequest + +ExecuteOntologySqlQueryRequest + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**query** | str | Yes | The SQL query to execute. | +**parameters** | Optional[Parameters] | No | Parameters for the SQL query. Can be either unnamed positional parameters or a named parameter mapping. | +**row_limit** | Optional[int] | No | Maximum number of rows to return. | +**dry_run** | Optional[bool] | No | If true, parse and validate the query without executing it. Defaults to false. | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ListColumnType.md b/docs/v2/SqlQueries/models/ListColumnType.md new file mode 100644 index 000000000..f8ce18c3c --- /dev/null +++ b/docs/v2/SqlQueries/models/ListColumnType.md @@ -0,0 +1,12 @@ +# ListColumnType + +ListColumnType + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**element_type** | ColumnType | Yes | | +**type** | Literal["list"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/MapColumnType.md b/docs/v2/SqlQueries/models/MapColumnType.md new file mode 100644 index 000000000..04678779b --- /dev/null +++ b/docs/v2/SqlQueries/models/MapColumnType.md @@ -0,0 +1,13 @@ +# MapColumnType + +MapColumnType + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**key_type** | ColumnType | Yes | | +**value_type** | ColumnType | Yes | | +**type** | Literal["map"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/MapParameterKey.md b/docs/v2/SqlQueries/models/MapParameterKey.md new file mode 100644 index 000000000..9dfbe4d2f --- /dev/null +++ b/docs/v2/SqlQueries/models/MapParameterKey.md @@ -0,0 +1,11 @@ +# MapParameterKey + +A key for a map parameter value. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/NamedParameterMapping.md b/docs/v2/SqlQueries/models/NamedParameterMapping.md new file mode 100644 index 000000000..f699aee6f --- /dev/null +++ b/docs/v2/SqlQueries/models/NamedParameterMapping.md @@ -0,0 +1,12 @@ +# NamedParameterMapping + +A named mapping of parameter names to values. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**mapping** | ParameterMapping | Yes | | +**type** | Literal["namedParameterMapping"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterAnyValue.md b/docs/v2/SqlQueries/models/ParameterAnyValue.md new file mode 100644 index 000000000..6e427be31 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterAnyValue.md @@ -0,0 +1,12 @@ +# ParameterAnyValue + +An untyped parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | Any | Yes | | +**type** | Literal["any"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterBinaryValue.md b/docs/v2/SqlQueries/models/ParameterBinaryValue.md new file mode 100644 index 000000000..afbe39306 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterBinaryValue.md @@ -0,0 +1,12 @@ +# ParameterBinaryValue + +A binary parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | bytes | Yes | | +**type** | Literal["binary"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterBooleanValue.md b/docs/v2/SqlQueries/models/ParameterBooleanValue.md new file mode 100644 index 000000000..5497f2819 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterBooleanValue.md @@ -0,0 +1,12 @@ +# ParameterBooleanValue + +A boolean parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | bool | Yes | | +**type** | Literal["boolean"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterDateValue.md b/docs/v2/SqlQueries/models/ParameterDateValue.md new file mode 100644 index 000000000..d2db08536 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterDateValue.md @@ -0,0 +1,12 @@ +# ParameterDateValue + +A date parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | date | Yes | | +**type** | Literal["date"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterDecimalValue.md b/docs/v2/SqlQueries/models/ParameterDecimalValue.md new file mode 100644 index 000000000..d0c48076b --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterDecimalValue.md @@ -0,0 +1,12 @@ +# ParameterDecimalValue + +A decimal parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | decimal.Decimal | Yes | | +**type** | Literal["decimal"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterDoubleValue.md b/docs/v2/SqlQueries/models/ParameterDoubleValue.md new file mode 100644 index 000000000..336eb8f87 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterDoubleValue.md @@ -0,0 +1,12 @@ +# ParameterDoubleValue + +A double parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | float | Yes | | +**type** | Literal["double"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterFloatValue.md b/docs/v2/SqlQueries/models/ParameterFloatValue.md new file mode 100644 index 000000000..cbc59df80 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterFloatValue.md @@ -0,0 +1,12 @@ +# ParameterFloatValue + +A float parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | float | Yes | | +**type** | Literal["float"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterIntegerValue.md b/docs/v2/SqlQueries/models/ParameterIntegerValue.md new file mode 100644 index 000000000..77ac366ab --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterIntegerValue.md @@ -0,0 +1,12 @@ +# ParameterIntegerValue + +An integer parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | int | Yes | | +**type** | Literal["integer"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterListValue.md b/docs/v2/SqlQueries/models/ParameterListValue.md new file mode 100644 index 000000000..dcfd09596 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterListValue.md @@ -0,0 +1,14 @@ +# ParameterListValue + +A parameter value that is a list of other parameter values. All values in the list must be of the same type. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**values** | List[ParameterValue] | Yes | | +**element_type** | ColumnType | Yes | | +**type** | Literal["list"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterLongValue.md b/docs/v2/SqlQueries/models/ParameterLongValue.md new file mode 100644 index 000000000..5cca9c544 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterLongValue.md @@ -0,0 +1,12 @@ +# ParameterLongValue + +A long integer parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | Long | Yes | | +**type** | Literal["long"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterMapValue.md b/docs/v2/SqlQueries/models/ParameterMapValue.md new file mode 100644 index 000000000..cd56117cc --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterMapValue.md @@ -0,0 +1,12 @@ +# ParameterMapValue + +A map parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**values** | Dict[MapParameterKey, ParameterValue] | Yes | | +**type** | Literal["map"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterMapping.md b/docs/v2/SqlQueries/models/ParameterMapping.md new file mode 100644 index 000000000..52c7b4a54 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterMapping.md @@ -0,0 +1,11 @@ +# ParameterMapping + +A mapping of named parameters to their values. + +## Type +```python +Dict[ParameterName, ParameterValue] +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterName.md b/docs/v2/SqlQueries/models/ParameterName.md new file mode 100644 index 000000000..441f723a4 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterName.md @@ -0,0 +1,11 @@ +# ParameterName + +The name of a SQL query parameter. + +## Type +```python +str +``` + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterNullValue.md b/docs/v2/SqlQueries/models/ParameterNullValue.md new file mode 100644 index 000000000..17e7d6997 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterNullValue.md @@ -0,0 +1,11 @@ +# ParameterNullValue + +A null parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**type** | Literal["null"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterShortValue.md b/docs/v2/SqlQueries/models/ParameterShortValue.md new file mode 100644 index 000000000..d55f9d85a --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterShortValue.md @@ -0,0 +1,12 @@ +# ParameterShortValue + +A short integer parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | int | Yes | | +**type** | Literal["short"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterStringValue.md b/docs/v2/SqlQueries/models/ParameterStringValue.md new file mode 100644 index 000000000..0344ab161 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterStringValue.md @@ -0,0 +1,12 @@ +# ParameterStringValue + +A string parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | str | Yes | | +**type** | Literal["string"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterStructValue.md b/docs/v2/SqlQueries/models/ParameterStructValue.md new file mode 100644 index 000000000..d84d16269 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterStructValue.md @@ -0,0 +1,13 @@ +# ParameterStructValue + +A struct composed of ordered elements, each with a name and value. + + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**struct_elements** | List[StructElement] | Yes | | +**type** | Literal["struct"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterTimestampValue.md b/docs/v2/SqlQueries/models/ParameterTimestampValue.md new file mode 100644 index 000000000..25f4929b3 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterTimestampValue.md @@ -0,0 +1,12 @@ +# ParameterTimestampValue + +A timestamp parameter value. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | datetime | Yes | | +**type** | Literal["timestamp"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/ParameterValue.md b/docs/v2/SqlQueries/models/ParameterValue.md new file mode 100644 index 000000000..f69d56998 --- /dev/null +++ b/docs/v2/SqlQueries/models/ParameterValue.md @@ -0,0 +1,30 @@ +# ParameterValue + +A typed parameter value for SQL query execution. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +ParameterDateValue | date +ParameterStructValue | struct +ParameterStringValue | string +ParameterDoubleValue | double +ParameterIntegerValue | integer +ParameterFloatValue | float +ParameterListValue | list +ParameterAnyValue | any +ParameterLongValue | long +ParameterBooleanValue | boolean +ParameterNullValue | null +ParameterBinaryValue | binary +ParameterShortValue | short +ParameterDecimalValue | decimal +ParameterMapValue | map +ParameterTimestampValue | timestamp + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/Parameters.md b/docs/v2/SqlQueries/models/Parameters.md new file mode 100644 index 000000000..a8f2ed582 --- /dev/null +++ b/docs/v2/SqlQueries/models/Parameters.md @@ -0,0 +1,18 @@ +# Parameters + +Parameters for SQL query execution. Can be either unnamed positional parameters +or named parameter mappings. + + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +UnnamedParameterValues | unnamedParameterValues +NamedParameterMapping | namedParameterMapping + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/StructColumnFieldType.md b/docs/v2/SqlQueries/models/StructColumnFieldType.md new file mode 100644 index 000000000..e439ee417 --- /dev/null +++ b/docs/v2/SqlQueries/models/StructColumnFieldType.md @@ -0,0 +1,12 @@ +# StructColumnFieldType + +StructColumnFieldType + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**name** | str | Yes | | +**type** | ColumnType | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/StructColumnType.md b/docs/v2/SqlQueries/models/StructColumnType.md new file mode 100644 index 000000000..6a1a563f3 --- /dev/null +++ b/docs/v2/SqlQueries/models/StructColumnType.md @@ -0,0 +1,12 @@ +# StructColumnType + +StructColumnType + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**fields** | List[StructColumnFieldType] | Yes | | +**type** | Literal["struct"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/StructElement.md b/docs/v2/SqlQueries/models/StructElement.md new file mode 100644 index 000000000..ddfb36182 --- /dev/null +++ b/docs/v2/SqlQueries/models/StructElement.md @@ -0,0 +1,12 @@ +# StructElement + +Represents an entry in a struct. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**struct_element_name** | StructElementName | Yes | | +**struct_element_value** | ParameterValue | Yes | | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/StructElementName.md b/docs/v2/SqlQueries/models/StructElementName.md new file mode 100644 index 000000000..20f835a64 --- /dev/null +++ b/docs/v2/SqlQueries/models/StructElementName.md @@ -0,0 +1,16 @@ +# StructElementName + +The name of a struct element. + +This is a discriminator type and does not contain any fields. Instead, it is a union +of of the models listed below. + +This discriminator class uses the `type` field to differentiate between classes. + +| Class | Value +| ------------ | ------------- +StructFieldRid | structFieldRid +StructFieldKeyValue | structFieldKey + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/StructFieldKeyValue.md b/docs/v2/SqlQueries/models/StructFieldKeyValue.md new file mode 100644 index 000000000..007a1eb7a --- /dev/null +++ b/docs/v2/SqlQueries/models/StructFieldKeyValue.md @@ -0,0 +1,12 @@ +# StructFieldKeyValue + +A string key for a struct field. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | str | Yes | | +**type** | Literal["structFieldKey"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/StructFieldRid.md b/docs/v2/SqlQueries/models/StructFieldRid.md new file mode 100644 index 000000000..bc42fe3db --- /dev/null +++ b/docs/v2/SqlQueries/models/StructFieldRid.md @@ -0,0 +1,12 @@ +# StructFieldRid + +A unique identifier for a field of a struct property type. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**value** | RID | Yes | | +**type** | Literal["structFieldRid"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/SqlQueries/models/UnnamedParameterValues.md b/docs/v2/SqlQueries/models/UnnamedParameterValues.md new file mode 100644 index 000000000..00c6e15ae --- /dev/null +++ b/docs/v2/SqlQueries/models/UnnamedParameterValues.md @@ -0,0 +1,12 @@ +# UnnamedParameterValues + +An ordered list of unnamed positional parameter values. + +## Properties +| Name | Type | Required | Description | +| ------------ | ------------- | ------------- | ------------- | +**values** | List[ParameterValue] | Yes | | +**type** | Literal["unnamedParameterValues"] | Yes | None | + + +[[Back to Model list]](../../../../README.md#models-v2-link) [[Back to API list]](../../../../README.md#apis-v2-link) [[Back to README]](../../../../README.md) diff --git a/docs/v2/Streams/Stream.md b/docs/v2/Streams/Stream.md index aced1579a..c145f77d8 100644 --- a/docs/v2/Streams/Stream.md +++ b/docs/v2/Streams/Stream.md @@ -4,8 +4,8 @@ Method | HTTP request | Release Stage | ------------- | ------------- | ----- | [**create**](#create) | **POST** /v2/streams/datasets/{datasetRid}/streams | Public Beta | [**get**](#get) | **GET** /v2/streams/datasets/{datasetRid}/streams/{streamBranchName} | Public Beta | -[**get_end_offsets**](#get_end_offsets) | **GET** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getEndOffsets | Private Beta | -[**get_records**](#get_records) | **GET** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getRecords | Private Beta | +[**get_end_offsets**](#get_end_offsets) | **GET** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getEndOffsets | Public Beta | +[**get_records**](#get_records) | **GET** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getRecords | Public Beta | [**publish_binary_record**](#publish_binary_record) | **POST** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/publishBinaryRecord | Public Beta | [**publish_record**](#publish_record) | **POST** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/publishRecord | Public Beta | [**publish_records**](#publish_records) | **POST** /v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/publishRecords | Public Beta | @@ -152,8 +152,8 @@ Name | Type | Description | Notes | ------------- | ------------- | ------------- | ------------- | **dataset_rid** | DatasetRid | | | **stream_branch_name** | BranchName | | | -**view_rid** | ViewRid | The RID from the view to retrieve end offsets for. | | **preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | +**view_rid** | Optional[ViewRid] | If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. | [optional] | ### Return type **GetEndOffsetsResponse** @@ -171,15 +171,15 @@ client = FoundryClient(auth=foundry_sdk.UserTokenAuth(...), hostname="example.pa dataset_rid = None # BranchName stream_branch_name = None -# ViewRid | The RID from the view to retrieve end offsets for. -view_rid = None # Optional[PreviewMode] | Enables the use of preview functionality. preview = None +# Optional[ViewRid] | If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. +view_rid = None try: api_response = client.streams.Dataset.Stream.get_end_offsets( - dataset_rid, stream_branch_name, view_rid=view_rid, preview=preview + dataset_rid, stream_branch_name, preview=preview, view_rid=view_rid ) print("The get_end_offsets response:\n") pprint(api_response) @@ -214,9 +214,9 @@ Name | Type | Description | Notes | **stream_branch_name** | BranchName | | | **limit** | int | The total number of records to be retrieved. The response may contain fewer records than requested depending on number of records in the partition and server-defined limits. | | **partition_id** | PartitionId | The ID of the partition to retrieve records from. | | -**view_rid** | ViewRid | The Rid from the view to retrieve records from. | | **preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | **start_offset** | Optional[Long] | The inclusive beginning of the range to be retrieved. Leave empty when reading from the beginning of the partition. | [optional] | +**view_rid** | Optional[ViewRid] | If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. | [optional] | ### Return type **GetRecordsResponse** @@ -235,15 +235,15 @@ dataset_rid = None # BranchName stream_branch_name = None # int | The total number of records to be retrieved. The response may contain fewer records than requested depending on number of records in the partition and server-defined limits. -limit = None +limit = 100 # PartitionId | The ID of the partition to retrieve records from. partition_id = None -# ViewRid | The Rid from the view to retrieve records from. -view_rid = None # Optional[PreviewMode] | Enables the use of preview functionality. preview = None # Optional[Long] | The inclusive beginning of the range to be retrieved. Leave empty when reading from the beginning of the partition. start_offset = None +# Optional[ViewRid] | If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. +view_rid = None try: @@ -252,9 +252,9 @@ try: stream_branch_name, limit=limit, partition_id=partition_id, - view_rid=view_rid, preview=preview, start_offset=start_offset, + view_rid=view_rid, ) print("The get_records response:\n") pprint(api_response) @@ -288,7 +288,7 @@ Name | Type | Description | Notes | **stream_branch_name** | BranchName | | | **body** | bytes | The binary record to publish to the stream | | **preview** | Optional[PreviewMode] | Enables the use of preview functionality. | [optional] | -**view_rid** | Optional[ViewRid] | If provided, this operation will only write to the stream corresponding to the specified view RID. If not provided, this operation will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. | [optional] | +**view_rid** | Optional[ViewRid] | If provided, this endpoint will only write to the stream corresponding to the specified view RID. If not provided, this endpoint will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. | [optional] | ### Return type **None** @@ -310,7 +310,7 @@ stream_branch_name = None body = None # Optional[PreviewMode] | Enables the use of preview functionality. preview = None -# Optional[ViewRid] | If provided, this operation will only write to the stream corresponding to the specified view RID. If not provided, this operation will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. +# Optional[ViewRid] | If provided, this endpoint will only write to the stream corresponding to the specified view RID. If not provided, this endpoint will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. view_rid = None diff --git a/foundry_sdk/_version.py b/foundry_sdk/_version.py index 3cf855f02..6506d4238 100644 --- a/foundry_sdk/_version.py +++ b/foundry_sdk/_version.py @@ -17,4 +17,4 @@ # using the autorelease bot __version__ = "0.0.0" -__openapi_document_version__ = "1.1453.0" +__openapi_document_version__ = "1.1483.0" diff --git a/foundry_sdk/v1/ontologies/errors.py b/foundry_sdk/v1/ontologies/errors.py index 73be876b6..48d4598b2 100644 --- a/foundry_sdk/v1/ontologies/errors.py +++ b/foundry_sdk/v1/ontologies/errors.py @@ -515,6 +515,22 @@ class HighScaleComputationNotEnabled(errors.InternalServerError): error_instance_id: str +class IncompatibleNestedObjectSetParameters(typing_extensions.TypedDict): + """ + A wrapper object set type is incompatible with one or more of the nested object set types. + For example, an interfaceLinkSearchAround object set wrapping a non-interface object set. + """ + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class IncompatibleNestedObjectSet(errors.BadRequestError): + name: typing.Literal["IncompatibleNestedObjectSet"] + parameters: IncompatibleNestedObjectSetParameters + error_instance_id: str + + class InterfaceBasedObjectSetNotSupportedParameters(typing_extensions.TypedDict): """The requested object set type is not supported for interface-based object sets.""" @@ -2390,6 +2406,7 @@ class ViewObjectPermissionDenied(errors.PermissionDeniedError): "FunctionExecutionTimedOut", "FunctionInvalidInput", "HighScaleComputationNotEnabled", + "IncompatibleNestedObjectSet", "InterfaceBasedObjectSetNotSupported", "InterfaceLinkTypeNotFound", "InterfacePropertiesHaveDifferentIds", diff --git a/foundry_sdk/v1/ontologies/models.py b/foundry_sdk/v1/ontologies/models.py index 145f23acc..fd78dd1f3 100644 --- a/foundry_sdk/v1/ontologies/models.py +++ b/foundry_sdk/v1/ontologies/models.py @@ -403,7 +403,11 @@ class EntrySetType(core.ModelBase): class EqualsQuery(core.ModelBase): - """Returns objects where the specified field is equal to a value.""" + """ + Returns objects where the specified field is equal to a value. + + For string properties, full term matching only works when **Selectable** is enabled for the property in Ontology Manager. + """ field: FieldNameV1 value: PropertyValue @@ -1028,7 +1032,7 @@ class Property(core.ModelBase): PropertyTypeRid = core.RID -"""PropertyTypeRid""" +"""The unique resource identifier of a property.""" PropertyValue = typing.Any diff --git a/foundry_sdk/v2/admin/_client.py b/foundry_sdk/v2/admin/_client.py index a0cd99426..5aa415329 100644 --- a/foundry_sdk/v2/admin/_client.py +++ b/foundry_sdk/v2/admin/_client.py @@ -78,6 +78,18 @@ def MarkingCategory(self): config=self._config, ) + @cached_property + def Permissions(self): + from foundry_sdk.v2.admin.marking_category_permissions import ( + MarkingCategoryPermissionsClient, + ) # NOQA + + return MarkingCategoryPermissionsClient( + auth=self._auth, + hostname=self._hostname, + config=self._config, + ) + @cached_property def Organization(self): from foundry_sdk.v2.admin.organization import OrganizationClient @@ -128,6 +140,9 @@ def __init__( from foundry_sdk.v2.admin.group import AsyncGroupClient from foundry_sdk.v2.admin.marking import AsyncMarkingClient from foundry_sdk.v2.admin.marking_category import AsyncMarkingCategoryClient + from foundry_sdk.v2.admin.marking_category_permissions import ( + AsyncMarkingCategoryPermissionsClient, + ) # NOQA from foundry_sdk.v2.admin.organization import AsyncOrganizationClient from foundry_sdk.v2.admin.role import AsyncRoleClient from foundry_sdk.v2.admin.user import AsyncUserClient @@ -142,6 +157,10 @@ def __init__( auth=auth, hostname=hostname, config=config ) + self.Permissions = AsyncMarkingCategoryPermissionsClient( + auth=auth, hostname=hostname, config=config + ) + self.Organization = AsyncOrganizationClient(auth=auth, hostname=hostname, config=config) self.Role = AsyncRoleClient(auth=auth, hostname=hostname, config=config) diff --git a/foundry_sdk/v2/admin/errors.py b/foundry_sdk/v2/admin/errors.py index ff482838d..d4ca9c561 100644 --- a/foundry_sdk/v2/admin/errors.py +++ b/foundry_sdk/v2/admin/errors.py @@ -144,8 +144,47 @@ class CreateGroupPermissionDenied(errors.PermissionDeniedError): error_instance_id: str +class CreateMarkingCategoryMissingInitialAdminRoleParameters(typing_extensions.TypedDict): + """At least one ADMINISTER role assignment must be provided when creating a marking category.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class CreateMarkingCategoryMissingInitialAdminRole(errors.BadRequestError): + name: typing.Literal["CreateMarkingCategoryMissingInitialAdminRole"] + parameters: CreateMarkingCategoryMissingInitialAdminRoleParameters + error_instance_id: str + + +class CreateMarkingCategoryMissingOrganizationParameters(typing_extensions.TypedDict): + """At least one organization must be provided when creating a marking category.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class CreateMarkingCategoryMissingOrganization(errors.BadRequestError): + name: typing.Literal["CreateMarkingCategoryMissingOrganization"] + parameters: CreateMarkingCategoryMissingOrganizationParameters + error_instance_id: str + + +class CreateMarkingCategoryPermissionDeniedParameters(typing_extensions.TypedDict): + """Could not create the MarkingCategory.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class CreateMarkingCategoryPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["CreateMarkingCategoryPermissionDenied"] + parameters: CreateMarkingCategoryPermissionDeniedParameters + error_instance_id: str + + class CreateMarkingMissingInitialAdminRoleParameters(typing_extensions.TypedDict): - """At least one ADMIN role assignment must be provided when creating a marking.""" + """At least one ADMINISTER role assignment must be provided when creating a marking.""" __pydantic_config__ = {"extra": "allow"} # type: ignore @@ -868,6 +907,21 @@ class ReplaceGroupProviderInfoPermissionDenied(errors.PermissionDeniedError): error_instance_id: str +class ReplaceMarkingCategoryPermissionDeniedParameters(typing_extensions.TypedDict): + """Could not replace the MarkingCategory.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + markingCategoryId: admin_models.MarkingCategoryId + + +@dataclass +class ReplaceMarkingCategoryPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["ReplaceMarkingCategoryPermissionDenied"] + parameters: ReplaceMarkingCategoryPermissionDeniedParameters + error_instance_id: str + + class ReplaceMarkingPermissionDeniedParameters(typing_extensions.TypedDict): """Could not replace the Marking.""" @@ -1038,6 +1092,9 @@ class UserProviderInfoNotFound(errors.NotFoundError): "AuthenticationProviderNotFound", "CannotReplaceProviderInfoForPrincipalInProtectedRealm", "CreateGroupPermissionDenied", + "CreateMarkingCategoryMissingInitialAdminRole", + "CreateMarkingCategoryMissingOrganization", + "CreateMarkingCategoryPermissionDenied", "CreateMarkingMissingInitialAdminRole", "CreateMarkingPermissionDenied", "CreateOrganizationMissingInitialAdminRole", @@ -1087,6 +1144,7 @@ class UserProviderInfoNotFound(errors.NotFoundError): "RemoveOrganizationRoleAssignmentsPermissionDenied", "ReplaceGroupMembershipExpirationPolicyPermissionDenied", "ReplaceGroupProviderInfoPermissionDenied", + "ReplaceMarkingCategoryPermissionDenied", "ReplaceMarkingPermissionDenied", "ReplaceOrganizationPermissionDenied", "ReplaceUserProviderInfoPermissionDenied", diff --git a/foundry_sdk/v2/admin/marking.py b/foundry_sdk/v2/admin/marking.py index 3c55ab6ee..0cd043ad7 100644 --- a/foundry_sdk/v2/admin/marking.py +++ b/foundry_sdk/v2/admin/marking.py @@ -91,7 +91,7 @@ def create( :type category_id: MarkingCategoryId :param initial_members: Users and Groups that will be able to view resources protected by this Marking. This can be changed later through the MarkingMember operations. :type initial_members: List[PrincipalId] - :param initial_role_assignments: The initial roles that will be assigned when the Marking is created. At least one ADMIN role must be provided. This can be changed later through the MarkingRoleAssignment operations. WARNING: If you do not include your own principal ID or the ID of a Group that you are a member of, you will create a Marking that you cannot administer. + :param initial_role_assignments: The initial roles that will be assigned when the Marking is created. At least one ADMINISTER role must be provided. This can be changed later through the MarkingRoleAssignment operations. WARNING: If you do not include your own principal ID or the ID of a Group that you are a member of, you will create a Marking that you cannot administer. :type initial_role_assignments: List[MarkingRoleUpdate] :param name: :type name: MarkingName @@ -102,7 +102,7 @@ def create( :return: Returns the result object. :rtype: admin_models.Marking - :raises CreateMarkingMissingInitialAdminRole: At least one ADMIN role assignment must be provided when creating a marking. + :raises CreateMarkingMissingInitialAdminRole: At least one ADMINISTER role assignment must be provided when creating a marking. :raises CreateMarkingPermissionDenied: Could not create the Marking. :raises GetMarkingCategoryPermissionDenied: The provided token does not have permission to view the marking category. :raises MarkingCategoryNotFound: The given MarkingCategory could not be found. @@ -437,7 +437,7 @@ def create( :type category_id: MarkingCategoryId :param initial_members: Users and Groups that will be able to view resources protected by this Marking. This can be changed later through the MarkingMember operations. :type initial_members: List[PrincipalId] - :param initial_role_assignments: The initial roles that will be assigned when the Marking is created. At least one ADMIN role must be provided. This can be changed later through the MarkingRoleAssignment operations. WARNING: If you do not include your own principal ID or the ID of a Group that you are a member of, you will create a Marking that you cannot administer. + :param initial_role_assignments: The initial roles that will be assigned when the Marking is created. At least one ADMINISTER role must be provided. This can be changed later through the MarkingRoleAssignment operations. WARNING: If you do not include your own principal ID or the ID of a Group that you are a member of, you will create a Marking that you cannot administer. :type initial_role_assignments: List[MarkingRoleUpdate] :param name: :type name: MarkingName @@ -448,7 +448,7 @@ def create( :return: Returns the result object. :rtype: typing.Awaitable[admin_models.Marking] - :raises CreateMarkingMissingInitialAdminRole: At least one ADMIN role assignment must be provided when creating a marking. + :raises CreateMarkingMissingInitialAdminRole: At least one ADMINISTER role assignment must be provided when creating a marking. :raises CreateMarkingPermissionDenied: Could not create the Marking. :raises GetMarkingCategoryPermissionDenied: The provided token does not have permission to view the marking category. :raises MarkingCategoryNotFound: The given MarkingCategory could not be found. diff --git a/foundry_sdk/v2/admin/marking_category.py b/foundry_sdk/v2/admin/marking_category.py index 827357142..cc81257a0 100644 --- a/foundry_sdk/v2/admin/marking_category.py +++ b/foundry_sdk/v2/admin/marking_category.py @@ -49,6 +49,69 @@ def __init__( self.with_streaming_response = _MarkingCategoryClientStreaming(self) self.with_raw_response = _MarkingCategoryClientRaw(self) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def create( + self, + *, + description: admin_models.MarkingCategoryDescription, + initial_permissions: admin_models.MarkingCategoryPermissions, + name: admin_models.MarkingCategoryName, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> admin_models.MarkingCategory: + """ + Creates a new MarkingCategory. + :param description: + :type description: MarkingCategoryDescription + :param initial_permissions: The initial permissions for the Marking Category. This can be changed later through MarkingCategoryPermission operations. The provided permissions must include at least one ADMINISTER role assignment. WARNING: If you do not list your own principal ID or the ID of a Group that you are a member of as an ADMINISTER, you will create a Marking Category that you cannot administer. + :type initial_permissions: MarkingCategoryPermissions + :param name: + :type name: MarkingCategoryName + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: admin_models.MarkingCategory + + :raises CreateMarkingCategoryMissingInitialAdminRole: At least one ADMINISTER role assignment must be provided when creating a marking category. + :raises CreateMarkingCategoryMissingOrganization: At least one organization must be provided when creating a marking category. + :raises CreateMarkingCategoryPermissionDenied: Could not create the MarkingCategory. + :raises PrincipalNotFound: A principal (User or Group) with the given PrincipalId could not be found + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/admin/markingCategories", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=admin_models.CreateMarkingCategoryRequest( + initial_permissions=initial_permissions, + name=name, + description=description, + ), + response_type=admin_models.MarkingCategory, + request_timeout=request_timeout, + throwable_errors={ + "CreateMarkingCategoryMissingInitialAdminRole": admin_errors.CreateMarkingCategoryMissingInitialAdminRole, + "CreateMarkingCategoryMissingOrganization": admin_errors.CreateMarkingCategoryMissingOrganization, + "CreateMarkingCategoryPermissionDenied": admin_errors.CreateMarkingCategoryPermissionDenied, + "PrincipalNotFound": admin_errors.PrincipalNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -150,23 +213,93 @@ def list( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def replace( + self, + marking_category_id: admin_models.MarkingCategoryId, + *, + description: admin_models.MarkingCategoryDescription, + name: admin_models.MarkingCategoryName, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> admin_models.MarkingCategory: + """ + Replace the MarkingCategory with the specified id. + :param marking_category_id: + :type marking_category_id: MarkingCategoryId + :param description: + :type description: MarkingCategoryDescription + :param name: + :type name: MarkingCategoryName + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: admin_models.MarkingCategory + + :raises GetMarkingCategoryPermissionDenied: The provided token does not have permission to view the marking category. + :raises MarkingCategoryNotFound: The given MarkingCategory could not be found. + :raises ReplaceMarkingCategoryPermissionDenied: Could not replace the MarkingCategory. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="PUT", + resource_path="/v2/admin/markingCategories/{markingCategoryId}", + query_params={ + "preview": preview, + }, + path_params={ + "markingCategoryId": marking_category_id, + }, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=admin_models.ReplaceMarkingCategoryRequest( + name=name, + description=description, + ), + response_type=admin_models.MarkingCategory, + request_timeout=request_timeout, + throwable_errors={ + "GetMarkingCategoryPermissionDenied": admin_errors.GetMarkingCategoryPermissionDenied, + "MarkingCategoryNotFound": admin_errors.MarkingCategoryNotFound, + "ReplaceMarkingCategoryPermissionDenied": admin_errors.ReplaceMarkingCategoryPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + class _MarkingCategoryClientRaw: def __init__(self, client: MarkingCategoryClient) -> None: + def create(_: admin_models.MarkingCategory): ... def get(_: admin_models.MarkingCategory): ... def list(_: admin_models.ListMarkingCategoriesResponse): ... + def replace(_: admin_models.MarkingCategory): ... + self.create = core.with_raw_response(create, client.create) self.get = core.with_raw_response(get, client.get) self.list = core.with_raw_response(list, client.list) + self.replace = core.with_raw_response(replace, client.replace) class _MarkingCategoryClientStreaming: def __init__(self, client: MarkingCategoryClient) -> None: + def create(_: admin_models.MarkingCategory): ... def get(_: admin_models.MarkingCategory): ... def list(_: admin_models.ListMarkingCategoriesResponse): ... + def replace(_: admin_models.MarkingCategory): ... + self.create = core.with_streaming_response(create, client.create) self.get = core.with_streaming_response(get, client.get) self.list = core.with_streaming_response(list, client.list) + self.replace = core.with_streaming_response(replace, client.replace) class AsyncMarkingCategoryClient: @@ -192,6 +325,69 @@ def __init__( self.with_streaming_response = _AsyncMarkingCategoryClientStreaming(self) self.with_raw_response = _AsyncMarkingCategoryClientRaw(self) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def create( + self, + *, + description: admin_models.MarkingCategoryDescription, + initial_permissions: admin_models.MarkingCategoryPermissions, + name: admin_models.MarkingCategoryName, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[admin_models.MarkingCategory]: + """ + Creates a new MarkingCategory. + :param description: + :type description: MarkingCategoryDescription + :param initial_permissions: The initial permissions for the Marking Category. This can be changed later through MarkingCategoryPermission operations. The provided permissions must include at least one ADMINISTER role assignment. WARNING: If you do not list your own principal ID or the ID of a Group that you are a member of as an ADMINISTER, you will create a Marking Category that you cannot administer. + :type initial_permissions: MarkingCategoryPermissions + :param name: + :type name: MarkingCategoryName + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[admin_models.MarkingCategory] + + :raises CreateMarkingCategoryMissingInitialAdminRole: At least one ADMINISTER role assignment must be provided when creating a marking category. + :raises CreateMarkingCategoryMissingOrganization: At least one organization must be provided when creating a marking category. + :raises CreateMarkingCategoryPermissionDenied: Could not create the MarkingCategory. + :raises PrincipalNotFound: A principal (User or Group) with the given PrincipalId could not be found + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/admin/markingCategories", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=admin_models.CreateMarkingCategoryRequest( + initial_permissions=initial_permissions, + name=name, + description=description, + ), + response_type=admin_models.MarkingCategory, + request_timeout=request_timeout, + throwable_errors={ + "CreateMarkingCategoryMissingInitialAdminRole": admin_errors.CreateMarkingCategoryMissingInitialAdminRole, + "CreateMarkingCategoryMissingOrganization": admin_errors.CreateMarkingCategoryMissingOrganization, + "CreateMarkingCategoryPermissionDenied": admin_errors.CreateMarkingCategoryPermissionDenied, + "PrincipalNotFound": admin_errors.PrincipalNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -293,20 +489,90 @@ def list( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def replace( + self, + marking_category_id: admin_models.MarkingCategoryId, + *, + description: admin_models.MarkingCategoryDescription, + name: admin_models.MarkingCategoryName, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[admin_models.MarkingCategory]: + """ + Replace the MarkingCategory with the specified id. + :param marking_category_id: + :type marking_category_id: MarkingCategoryId + :param description: + :type description: MarkingCategoryDescription + :param name: + :type name: MarkingCategoryName + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[admin_models.MarkingCategory] + + :raises GetMarkingCategoryPermissionDenied: The provided token does not have permission to view the marking category. + :raises MarkingCategoryNotFound: The given MarkingCategory could not be found. + :raises ReplaceMarkingCategoryPermissionDenied: Could not replace the MarkingCategory. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="PUT", + resource_path="/v2/admin/markingCategories/{markingCategoryId}", + query_params={ + "preview": preview, + }, + path_params={ + "markingCategoryId": marking_category_id, + }, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=admin_models.ReplaceMarkingCategoryRequest( + name=name, + description=description, + ), + response_type=admin_models.MarkingCategory, + request_timeout=request_timeout, + throwable_errors={ + "GetMarkingCategoryPermissionDenied": admin_errors.GetMarkingCategoryPermissionDenied, + "MarkingCategoryNotFound": admin_errors.MarkingCategoryNotFound, + "ReplaceMarkingCategoryPermissionDenied": admin_errors.ReplaceMarkingCategoryPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + class _AsyncMarkingCategoryClientRaw: def __init__(self, client: AsyncMarkingCategoryClient) -> None: + def create(_: admin_models.MarkingCategory): ... def get(_: admin_models.MarkingCategory): ... def list(_: admin_models.ListMarkingCategoriesResponse): ... + def replace(_: admin_models.MarkingCategory): ... + self.create = core.async_with_raw_response(create, client.create) self.get = core.async_with_raw_response(get, client.get) self.list = core.async_with_raw_response(list, client.list) + self.replace = core.async_with_raw_response(replace, client.replace) class _AsyncMarkingCategoryClientStreaming: def __init__(self, client: AsyncMarkingCategoryClient) -> None: + def create(_: admin_models.MarkingCategory): ... def get(_: admin_models.MarkingCategory): ... def list(_: admin_models.ListMarkingCategoriesResponse): ... + def replace(_: admin_models.MarkingCategory): ... + self.create = core.async_with_streaming_response(create, client.create) self.get = core.async_with_streaming_response(get, client.get) self.list = core.async_with_streaming_response(list, client.list) + self.replace = core.async_with_streaming_response(replace, client.replace) diff --git a/foundry_sdk/v2/admin/marking_category_permissions.py b/foundry_sdk/v2/admin/marking_category_permissions.py new file mode 100644 index 000000000..0846cf092 --- /dev/null +++ b/foundry_sdk/v2/admin/marking_category_permissions.py @@ -0,0 +1,90 @@ +# Copyright 2024 Palantir Technologies, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import typing + +import pydantic +import typing_extensions + +from foundry_sdk import _core as core +from foundry_sdk import _errors as errors + + +class MarkingCategoryPermissionsClient: + """ + The API client for the MarkingCategoryPermissions Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.ApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _MarkingCategoryPermissionsClientStreaming(self) + self.with_raw_response = _MarkingCategoryPermissionsClientRaw(self) + + +class _MarkingCategoryPermissionsClientRaw: + def __init__(self, client: MarkingCategoryPermissionsClient) -> None: + pass + + +class _MarkingCategoryPermissionsClientStreaming: + def __init__(self, client: MarkingCategoryPermissionsClient) -> None: + pass + + +class AsyncMarkingCategoryPermissionsClient: + """ + The API client for the MarkingCategoryPermissions Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.AsyncApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _AsyncMarkingCategoryPermissionsClientStreaming(self) + self.with_raw_response = _AsyncMarkingCategoryPermissionsClientRaw(self) + + +class _AsyncMarkingCategoryPermissionsClientRaw: + def __init__(self, client: AsyncMarkingCategoryPermissionsClient) -> None: + pass + + +class _AsyncMarkingCategoryPermissionsClientStreaming: + def __init__(self, client: AsyncMarkingCategoryPermissionsClient) -> None: + pass diff --git a/foundry_sdk/v2/admin/models.py b/foundry_sdk/v2/admin/models.py index 5eb6ee1ab..0b3d10b48 100644 --- a/foundry_sdk/v2/admin/models.py +++ b/foundry_sdk/v2/admin/models.py @@ -135,12 +135,28 @@ class CreateGroupRequest(core.ModelBase): """A map of the Group's attributes. Attributes prefixed with "multipass:" are reserved for internal use by Foundry and are subject to change.""" +class CreateMarkingCategoryRequest(core.ModelBase): + """CreateMarkingCategoryRequest""" + + initial_permissions: MarkingCategoryPermissions = pydantic.Field(alias=str("initialPermissions")) # type: ignore[literal-required] + """ + The initial permissions for the Marking Category. This can be changed later through MarkingCategoryPermission operations. + The provided permissions must include at least one ADMINISTER role assignment. + + WARNING: If you do not list your own principal ID or the ID of a Group that you are a member of as an + ADMINISTER, you will create a Marking Category that you cannot administer. + """ + + name: MarkingCategoryName + description: MarkingCategoryDescription + + class CreateMarkingRequest(core.ModelBase): """CreateMarkingRequest""" initial_role_assignments: typing.List[MarkingRoleUpdate] = pydantic.Field(alias=str("initialRoleAssignments")) # type: ignore[literal-required] """ - The initial roles that will be assigned when the Marking is created. At least one ADMIN role must be + The initial roles that will be assigned when the Marking is created. At least one ADMINISTER role must be provided. This can be changed later through the MarkingRoleAssignment operations. WARNING: If you do not include your own principal ID or the ID of a Group that you are a member of, @@ -438,7 +454,7 @@ class MarkingCategory(core.ModelBase): id: MarkingCategoryId name: MarkingCategoryName - description: typing.Optional[str] = None + description: MarkingCategoryDescription category_type: MarkingCategoryType = pydantic.Field(alias=str("categoryType")) # type: ignore[literal-required] marking_type: MarkingType = pydantic.Field(alias=str("markingType")) # type: ignore[literal-required] markings: typing.List[core_models.MarkingId] @@ -446,6 +462,10 @@ class MarkingCategory(core.ModelBase): created_by: typing.Optional[core_models.CreatedBy] = pydantic.Field(alias=str("createdBy"), default=None) # type: ignore[literal-required] +MarkingCategoryDescription = str +"""MarkingCategoryDescription""" + + MarkingCategoryId = str """ The ID of a marking category. For user-created categories, this will be a UUID. Markings associated with @@ -457,6 +477,38 @@ class MarkingCategory(core.ModelBase): """MarkingCategoryName""" +class MarkingCategoryPermissions(core.ModelBase): + """MarkingCategoryPermissions""" + + organization_rids: typing.List[core_models.OrganizationRid] = pydantic.Field(alias=str("organizationRids")) # type: ignore[literal-required] + """Users must be members of at least one of the Organizations in this list to view Markings in the category, regardless of their assigned roles.""" + + roles: typing.List[MarkingCategoryRoleAssignment] + is_public: MarkingCategoryPermissionsIsPublic = pydantic.Field(alias=str("isPublic")) # type: ignore[literal-required] + """If true, all users who are members of at least one of the Organizations from organizationRids can view the Markings in the category. If false, only users who are explicitly granted the VIEW role can view the Markings in the category.""" + + +MarkingCategoryPermissionsIsPublic = bool +"""If true, all users who are members of at least one of the Organizations from organizationRids can view the Markings in the category. If false, only users who are explicitly granted the VIEW role can view the Markings in the category.""" + + +MarkingCategoryRole = typing.Literal["ADMINISTER", "VIEW"] +""" +Represents the operations that a user can perform with regards to a Marking Category. + * ADMINISTER: The user can update a Marking Category's metadata and permissions + * VIEW: The user can view the Marking Category and the Markings within it. + +NOTE: Permissions to administer or view a Marking Category do not confer any permissions to administer or view data protected by the Markings within that category. +""" + + +class MarkingCategoryRoleAssignment(core.ModelBase): + """MarkingCategoryRoleAssignment""" + + role: MarkingCategoryRole + principal_id: core_models.PrincipalId = pydantic.Field(alias=str("principalId")) # type: ignore[literal-required] + + MarkingCategoryType = typing.Literal["CONJUNCTIVE", "DISJUNCTIVE"] """MarkingCategoryType""" @@ -621,6 +673,13 @@ class ReplaceGroupProviderInfoRequest(core.ModelBase): """ +class ReplaceMarkingCategoryRequest(core.ModelBase): + """ReplaceMarkingCategoryRequest""" + + name: MarkingCategoryName + description: MarkingCategoryDescription + + class ReplaceMarkingRequest(core.ModelBase): """ReplaceMarkingRequest""" @@ -802,6 +861,7 @@ class UserSearchFilter(core.ModelBase): "CertificateInfo", "CertificateUsageType", "CreateGroupRequest", + "CreateMarkingCategoryRequest", "CreateMarkingRequest", "CreateOrganizationRequest", "Enrollment", @@ -841,8 +901,13 @@ class UserSearchFilter(core.ModelBase): "ListUsersResponse", "Marking", "MarkingCategory", + "MarkingCategoryDescription", "MarkingCategoryId", "MarkingCategoryName", + "MarkingCategoryPermissions", + "MarkingCategoryPermissionsIsPublic", + "MarkingCategoryRole", + "MarkingCategoryRoleAssignment", "MarkingCategoryType", "MarkingMember", "MarkingName", @@ -865,6 +930,7 @@ class UserSearchFilter(core.ModelBase): "RemoveOrganizationRoleAssignmentsRequest", "ReplaceGroupMembershipExpirationPolicyRequest", "ReplaceGroupProviderInfoRequest", + "ReplaceMarkingCategoryRequest", "ReplaceMarkingRequest", "ReplaceOrganizationRequest", "ReplaceUserProviderInfoRequest", diff --git a/foundry_sdk/v2/cli.py b/foundry_sdk/v2/cli.py index cae073bd9..b98a56662 100644 --- a/foundry_sdk/v2/cli.py +++ b/foundry_sdk/v2/cli.py @@ -619,11 +619,53 @@ def admin_organization_organization_role_assignment_op_remove( click.echo(repr(result)) +@admin.group("marking_category_permissions") +def admin_marking_category_permissions(): + pass + + @admin.group("marking_category") def admin_marking_category(): pass +@admin_marking_category.command("create") +@click.option("--description", type=str, required=True, help="""""") +@click.option( + "--initial_permissions", + type=str, + required=True, + help="""The initial permissions for the Marking Category. This can be changed later through MarkingCategoryPermission operations. +The provided permissions must include at least one ADMINISTER role assignment. + +WARNING: If you do not list your own principal ID or the ID of a Group that you are a member of as an +ADMINISTER, you will create a Marking Category that you cannot administer. +""", +) +@click.option("--name", type=str, required=True, help="""""") +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def admin_marking_category_op_create( + client: FoundryClient, + description: str, + initial_permissions: str, + name: str, + preview: typing.Optional[bool], +): + """ + Creates a new MarkingCategory. + """ + result = client.admin.MarkingCategory.create( + description=description, + initial_permissions=json.loads(initial_permissions), + name=name, + preview=preview, + ) + click.echo(repr(result)) + + @admin_marking_category.command("get") @click.argument("marking_category_id", type=str, required=True) @click.option( @@ -678,6 +720,33 @@ def admin_marking_category_op_list( click.echo(repr(result)) +@admin_marking_category.command("replace") +@click.argument("marking_category_id", type=str, required=True) +@click.option("--description", type=str, required=True, help="""""") +@click.option("--name", type=str, required=True, help="""""") +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def admin_marking_category_op_replace( + client: FoundryClient, + marking_category_id: str, + description: str, + name: str, + preview: typing.Optional[bool], +): + """ + Replace the MarkingCategory with the specified id. + """ + result = client.admin.MarkingCategory.replace( + marking_category_id=marking_category_id, + description=description, + name=name, + preview=preview, + ) + click.echo(repr(result)) + + @admin.group("marking") def admin_marking(): pass @@ -696,7 +765,7 @@ def admin_marking(): "--initial_role_assignments", type=str, required=True, - help="""The initial roles that will be assigned when the Marking is created. At least one ADMIN role must be + help="""The initial roles that will be assigned when the Marking is created. At least one ADMINISTER role must be provided. This can be changed later through the MarkingRoleAssignment operations. WARNING: If you do not include your own principal ID or the ID of a Group that you are a member of, @@ -3529,7 +3598,11 @@ def datasets_dataset_op_get_schedules( preview: typing.Optional[bool], ): """ - Get the RIDs of the Schedules that target the given Dataset + Get the RIDs of the Schedules that target the given Dataset. + + Note: It may take up to an hour for recent changes to schedules to be reflected in this response, + especially for schedules managed by Marketplace. This operation will return outdated results in the + meantime. """ result = client.datasets.Dataset.get_schedules( @@ -5494,6 +5567,17 @@ def functions_query_op_get( @functions_query.command("get_by_rid") @click.option("--rid", type=str, required=True, help="""""") +@click.option( + "--include_prerelease", + type=bool, + required=False, + help="""When no version is specified and this flag is set to true, the latest version resolution will consider +prerelease versions (e.g., 1.2.3-beta could be returned as the latest). When false, only stable +versions are considered when determining the latest version. + +Defaults to false. +""", +) @click.option( "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) @@ -5502,6 +5586,7 @@ def functions_query_op_get( def functions_query_op_get_by_rid( client: FoundryClient, rid: str, + include_prerelease: typing.Optional[bool], preview: typing.Optional[bool], version: typing.Optional[str], ): @@ -5511,12 +5596,39 @@ def functions_query_op_get_by_rid( """ result = client.functions.Query.get_by_rid( rid=rid, + include_prerelease=include_prerelease, preview=preview, version=version, ) click.echo(repr(result)) +@functions_query.command("get_by_rid_batch") +@click.argument("body", type=str, required=True) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def functions_query_op_get_by_rid_batch( + client: FoundryClient, + body: str, + preview: typing.Optional[bool], +): + """ + Gets a list of query types by RID in bulk. By default, this gets the latest version of each query. + + Queries are filtered from the response if they don't exist or the requesting token lacks the required + permissions. + + The maximum batch size for this endpoint is 100. + """ + result = client.functions.Query.get_by_rid_batch( + body=json.loads(body), + preview=preview, + ) + click.echo(repr(result)) + + @functions_query.command("streaming_execute") @click.argument("query_api_name", type=str, required=True) @click.option("--parameters", type=str, required=True, help="""""") @@ -5906,6 +6018,42 @@ def media_sets_media_set_op_create( click.echo(repr(result)) +@media_sets_media_set.command("get_result") +@click.argument("media_set_rid", type=str, required=True) +@click.argument("media_item_rid", type=str, required=True) +@click.argument("transformation_job_id", type=str, required=True) +@click.option( + "--preview", + type=bool, + required=False, + help="""A boolean flag that, when set to true, enables the use of beta features in preview mode. +""", +) +@click.option("--token", type=str, required=False, help="""""") +@click.pass_obj +def media_sets_media_set_op_get_result( + client: FoundryClient, + media_set_rid: str, + media_item_rid: str, + transformation_job_id: str, + preview: typing.Optional[bool], + token: typing.Optional[str], +): + """ + Gets the result of a completed transformation job. Returns the transformed media content as binary data. + This endpoint will return an error if the transformation job has not completed successfully. + + """ + result = client.media_sets.MediaSet.get_result( + media_set_rid=media_set_rid, + media_item_rid=media_item_rid, + transformation_job_id=transformation_job_id, + preview=preview, + token=token, + ) + click.echo(result) + + @media_sets_media_set.command("get_rid_by_path") @click.argument("media_set_rid", type=str, required=True) @click.option( @@ -5965,6 +6113,41 @@ def media_sets_media_set_op_get_rid_by_path( click.echo(repr(result)) +@media_sets_media_set.command("get_status") +@click.argument("media_set_rid", type=str, required=True) +@click.argument("media_item_rid", type=str, required=True) +@click.argument("transformation_job_id", type=str, required=True) +@click.option( + "--preview", + type=bool, + required=False, + help="""A boolean flag that, when set to true, enables the use of beta features in preview mode. +""", +) +@click.option("--token", type=str, required=False, help="""""") +@click.pass_obj +def media_sets_media_set_op_get_status( + client: FoundryClient, + media_set_rid: str, + media_item_rid: str, + transformation_job_id: str, + preview: typing.Optional[bool], + token: typing.Optional[str], +): + """ + Gets the status of a transformation job. + + """ + result = client.media_sets.MediaSet.get_status( + media_set_rid=media_set_rid, + media_item_rid=media_item_rid, + transformation_job_id=transformation_job_id, + preview=preview, + token=token, + ) + click.echo(repr(result)) + + @media_sets_media_set.command("info") @click.argument("media_set_rid", type=str, required=True) @click.argument("media_item_rid", type=str, required=True) @@ -6160,6 +6343,45 @@ def media_sets_media_set_op_retrieve( click.echo(result) +@media_sets_media_set.command("transform") +@click.argument("media_set_rid", type=str, required=True) +@click.argument("media_item_rid", type=str, required=True) +@click.option("--transformation", type=str, required=True, help="""""") +@click.option( + "--preview", + type=bool, + required=False, + help="""A boolean flag that, when set to true, enables the use of beta features in preview mode. +""", +) +@click.option("--token", type=str, required=False, help="""""") +@click.pass_obj +def media_sets_media_set_op_transform( + client: FoundryClient, + media_set_rid: str, + media_item_rid: str, + transformation: str, + preview: typing.Optional[bool], + token: typing.Optional[str], +): + """ + Initiates a transformation on a media item. Returns a job ID that can be used to check the status and retrieve + the result of the transformation. + + Transforming a media item requires that you are able to read the media item, either via `api:mediasets-read` or + via a `MediaItemReadToken` + + """ + result = client.media_sets.MediaSet.transform( + media_set_rid=media_set_rid, + media_item_rid=media_item_rid, + transformation=json.loads(transformation), + preview=preview, + token=token, + ) + click.echo(repr(result)) + + @media_sets_media_set.command("upload") @click.argument("media_set_rid", type=str, required=True) @click.argument("body", type=click.File("rb"), required=True) @@ -6238,12 +6460,27 @@ def media_sets_media_set_op_upload( "--filename", type=str, required=True, - help="""The path to write the media item to. Required if the backing media set requires paths. + help="""A user-defined label for a media item within a media set. Required if the backing media set requires paths. +Uploading multiple files to the same path will result in only the most recent file being associated with the +path. """, ) @click.option( "--attribution", type=str, required=False, help="""used for passing through usage attribution""" ) +@click.option( + "--media_item_rid", + type=str, + required=False, + help="""An optional RID to use for the media item to create. If omitted, the server will automatically generate a +RID. In most cases, the server-generated RID should be preferred; only specify a custom RID if your +workflow strictly requires deterministic or client-controlled identifiers. +The RID must be in the format of `ri.mio..media-item.`, where `` is the same as +the instance part of the media set RID, and `` is a UUID. +An `InvalidMediaItemRid` error will be thrown if the RID is not in the expected format. +A `MediaItemRidAlreadyExists` error will be thrown if the media set already contains a media item with the same RID. +""", +) @click.option( "--preview", type=bool, @@ -6257,6 +6494,7 @@ def media_sets_media_set_op_upload_media( body: io.BufferedReader, filename: str, attribution: typing.Optional[str], + media_item_rid: typing.Optional[str], preview: typing.Optional[bool], ): """ @@ -6272,6 +6510,7 @@ def media_sets_media_set_op_upload_media( body=body.read(), filename=filename, attribution=attribution, + media_item_rid=media_item_rid, preview=preview, ) click.echo(repr(result)) @@ -6282,167 +6521,488 @@ def models(): pass -@models.group("model") -def models_model(): +@models.group("model_studio_trainer") +def models_model_studio_trainer(): pass -@models_model.command("create") -@click.option("--name", type=str, required=True, help="""""") -@click.option("--parent_folder_rid", type=str, required=True, help="""""") +@models_model_studio_trainer.command("get") +@click.argument("model_studio_trainer_trainer_id", type=str, required=True) @click.option( "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) +@click.option( + "--version", + type=str, + required=False, + help="""Specific version of the trainer to retrieve. If not specified, returns the latest version.""", +) @click.pass_obj -def models_model_op_create( +def models_model_studio_trainer_op_get( client: FoundryClient, - name: str, - parent_folder_rid: str, + model_studio_trainer_trainer_id: str, preview: typing.Optional[bool], + version: typing.Optional[str], ): """ - Creates a new Model with no versions. + Gets details about a specific trainer by its ID and optional version. """ - result = client.models.Model.create( - name=name, - parent_folder_rid=parent_folder_rid, + result = client.models.ModelStudioTrainer.get( + model_studio_trainer_trainer_id=model_studio_trainer_trainer_id, preview=preview, + version=version, ) click.echo(repr(result)) -@models_model.command("get") -@click.argument("model_rid", type=str, required=True) +@models_model_studio_trainer.command("list") @click.option( "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) @click.pass_obj -def models_model_op_get( +def models_model_studio_trainer_op_list( client: FoundryClient, - model_rid: str, preview: typing.Optional[bool], ): """ - Retrieves a Model by its Resource Identifier (RID). + Lists all available trainers for Model Studios. """ - result = client.models.Model.get( - model_rid=model_rid, + result = client.models.ModelStudioTrainer.list( preview=preview, ) click.echo(repr(result)) -@models_model.group("model_version") -def models_model_model_version(): +@models.group("model_studio") +def models_model_studio(): pass -@models_model_model_version.command("create") -@click.argument("model_rid", type=str, required=True) -@click.option("--backing_repositories", type=str, required=True, help="""""") -@click.option("--conda_requirements", type=str, required=True, help="""""") -@click.option("--model_api", type=str, required=True, help="""""") -@click.option("--model_files", type=str, required=True, help="""""") +@models_model_studio.command("create") +@click.option("--name", type=str, required=True, help="""The name of the Model Studio.""") +@click.option( + "--parent_folder_rid", + type=str, + required=True, + help="""The RID of the parent folder where the studio will be created.""", +) @click.option( "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) @click.pass_obj -def models_model_model_version_op_create( +def models_model_studio_op_create( client: FoundryClient, - model_rid: str, - backing_repositories: str, - conda_requirements: str, - model_api: str, - model_files: str, + name: str, + parent_folder_rid: str, preview: typing.Optional[bool], ): """ - Creates a new Model Version on an existing model. + Creates a new Model Studio. """ - result = client.models.Model.Version.create( - model_rid=model_rid, - backing_repositories=json.loads(backing_repositories), - conda_requirements=json.loads(conda_requirements), - model_api=json.loads(model_api), - model_files=json.loads(model_files), + result = client.models.ModelStudio.create( + name=name, + parent_folder_rid=parent_folder_rid, preview=preview, ) click.echo(repr(result)) -@models_model_model_version.command("get") -@click.argument("model_rid", type=str, required=True) -@click.argument("model_version_rid", type=str, required=True) +@models_model_studio.command("get") +@click.argument("model_studio_rid", type=str, required=True) @click.option( "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) @click.pass_obj -def models_model_model_version_op_get( +def models_model_studio_op_get( client: FoundryClient, - model_rid: str, - model_version_rid: str, + model_studio_rid: str, preview: typing.Optional[bool], ): """ - Retrieves a Model Version by its Resource Identifier (RID). + Gets details about a Model Studio by its RID. """ - result = client.models.Model.Version.get( - model_rid=model_rid, - model_version_rid=model_version_rid, + result = client.models.ModelStudio.get( + model_studio_rid=model_studio_rid, preview=preview, ) click.echo(repr(result)) -@models_model_model_version.command("list") -@click.argument("model_rid", type=str, required=True) -@click.option( - "--page_size", type=int, required=False, help="""The page size to use for the endpoint.""" -) -@click.option( - "--page_token", - type=str, - required=False, - help="""The page token indicates where to start paging. This should be omitted from the first page's request. -To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response -and use it to populate the `pageToken` field of the next request.""", -) +@models_model_studio.command("launch") +@click.argument("model_studio_rid", type=str, required=True) @click.option( "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) @click.pass_obj -def models_model_model_version_op_list( +def models_model_studio_op_launch( client: FoundryClient, - model_rid: str, - page_size: typing.Optional[int], - page_token: typing.Optional[str], + model_studio_rid: str, preview: typing.Optional[bool], ): """ - Lists all Model Versions for a given Model. + Launches a new training run for the Model Studio using the latest configuration version. """ - result = client.models.Model.Version.list( - model_rid=model_rid, - page_size=page_size, - page_token=page_token, + result = client.models.ModelStudio.launch( + model_studio_rid=model_studio_rid, preview=preview, ) click.echo(repr(result)) -@cli.group("ontologies") -def ontologies(): - pass - - -@ontologies.group("time_series_value_bank_property") -def ontologies_time_series_value_bank_property(): +@models_model_studio.group("model_studio_config_version") +def models_model_studio_model_studio_config_version(): pass -@ontologies_time_series_value_bank_property.command("get_latest_value") -@click.argument("ontology", type=str, required=True) -@click.argument("object_type", type=str, required=True) +@models_model_studio_model_studio_config_version.command("create") +@click.argument("model_studio_rid", type=str, required=True) +@click.option( + "--name", + type=str, + required=True, + help="""Human readable name of the configuration version and experiment.""", +) +@click.option( + "--resources", + type=str, + required=True, + help="""The compute resources allocated for training runs.""", +) +@click.option( + "--trainer_id", + type=str, + required=True, + help="""The identifier of the trainer to use for this configuration.""", +) +@click.option( + "--worker_config", + type=str, + required=True, + help="""The worker configuration including inputs, outputs, and custom settings.""", +) +@click.option( + "--changelog", + type=str, + required=False, + help="""Changelog describing changes in this version.""", +) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_studio_model_studio_config_version_op_create( + client: FoundryClient, + model_studio_rid: str, + name: str, + resources: str, + trainer_id: str, + worker_config: str, + changelog: typing.Optional[str], + preview: typing.Optional[bool], +): + """ + Creates a new Model Studio configuration version. + """ + result = client.models.ModelStudio.ConfigVersion.create( + model_studio_rid=model_studio_rid, + name=name, + resources=json.loads(resources), + trainer_id=trainer_id, + worker_config=json.loads(worker_config), + changelog=changelog, + preview=preview, + ) + click.echo(repr(result)) + + +@models_model_studio_model_studio_config_version.command("get") +@click.argument("model_studio_rid", type=str, required=True) +@click.argument("model_studio_config_version_version", type=int, required=True) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_studio_model_studio_config_version_op_get( + client: FoundryClient, + model_studio_rid: str, + model_studio_config_version_version: int, + preview: typing.Optional[bool], +): + """ + Gets a specific Model Studio configuration version. + """ + result = client.models.ModelStudio.ConfigVersion.get( + model_studio_rid=model_studio_rid, + model_studio_config_version_version=model_studio_config_version_version, + preview=preview, + ) + click.echo(repr(result)) + + +@models_model_studio_model_studio_config_version.command("latest") +@click.argument("model_studio_rid", type=str, required=True) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_studio_model_studio_config_version_op_latest( + client: FoundryClient, + model_studio_rid: str, + preview: typing.Optional[bool], +): + """ + Gets the latest configuration version for a Model Studio. + """ + result = client.models.ModelStudio.ConfigVersion.latest( + model_studio_rid=model_studio_rid, + preview=preview, + ) + click.echo(repr(result)) + + +@models_model_studio_model_studio_config_version.command("list") +@click.argument("model_studio_rid", type=str, required=True) +@click.option( + "--page_size", type=int, required=False, help="""The page size to use for the endpoint.""" +) +@click.option( + "--page_token", + type=str, + required=False, + help="""The page token indicates where to start paging. This should be omitted from the first page's request. +To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response +and use it to populate the `pageToken` field of the next request.""", +) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_studio_model_studio_config_version_op_list( + client: FoundryClient, + model_studio_rid: str, + page_size: typing.Optional[int], + page_token: typing.Optional[str], + preview: typing.Optional[bool], +): + """ + Lists all configuration versions for a Model Studio. + """ + result = client.models.ModelStudio.ConfigVersion.list( + model_studio_rid=model_studio_rid, + page_size=page_size, + page_token=page_token, + preview=preview, + ) + click.echo(repr(result)) + + +@models_model_studio.group("model_studio_run") +def models_model_studio_model_studio_run(): + pass + + +@models_model_studio_model_studio_run.command("list") +@click.argument("model_studio_rid", type=str, required=True) +@click.option( + "--config_version", type=int, required=False, help="""Filter runs by configuration version.""" +) +@click.option( + "--page_size", type=int, required=False, help="""The page size to use for the endpoint.""" +) +@click.option( + "--page_token", + type=str, + required=False, + help="""The page token indicates where to start paging. This should be omitted from the first page's request. +To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response +and use it to populate the `pageToken` field of the next request.""", +) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_studio_model_studio_run_op_list( + client: FoundryClient, + model_studio_rid: str, + config_version: typing.Optional[int], + page_size: typing.Optional[int], + page_token: typing.Optional[str], + preview: typing.Optional[bool], +): + """ + Lists all runs for a Model Studio. + """ + result = client.models.ModelStudio.Run.list( + model_studio_rid=model_studio_rid, + config_version=config_version, + page_size=page_size, + page_token=page_token, + preview=preview, + ) + click.echo(repr(result)) + + +@models.group("model") +def models_model(): + pass + + +@models_model.command("create") +@click.option("--name", type=str, required=True, help="""""") +@click.option("--parent_folder_rid", type=str, required=True, help="""""") +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_op_create( + client: FoundryClient, + name: str, + parent_folder_rid: str, + preview: typing.Optional[bool], +): + """ + Creates a new Model with no versions. + """ + result = client.models.Model.create( + name=name, + parent_folder_rid=parent_folder_rid, + preview=preview, + ) + click.echo(repr(result)) + + +@models_model.command("get") +@click.argument("model_rid", type=str, required=True) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_op_get( + client: FoundryClient, + model_rid: str, + preview: typing.Optional[bool], +): + """ + Retrieves a Model by its Resource Identifier (RID). + """ + result = client.models.Model.get( + model_rid=model_rid, + preview=preview, + ) + click.echo(repr(result)) + + +@models_model.group("model_version") +def models_model_model_version(): + pass + + +@models_model_model_version.command("create") +@click.argument("model_rid", type=str, required=True) +@click.option("--backing_repositories", type=str, required=True, help="""""") +@click.option("--conda_requirements", type=str, required=True, help="""""") +@click.option("--model_api", type=str, required=True, help="""""") +@click.option("--model_files", type=str, required=True, help="""""") +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_model_version_op_create( + client: FoundryClient, + model_rid: str, + backing_repositories: str, + conda_requirements: str, + model_api: str, + model_files: str, + preview: typing.Optional[bool], +): + """ + Creates a new Model Version on an existing model. + """ + result = client.models.Model.Version.create( + model_rid=model_rid, + backing_repositories=json.loads(backing_repositories), + conda_requirements=json.loads(conda_requirements), + model_api=json.loads(model_api), + model_files=json.loads(model_files), + preview=preview, + ) + click.echo(repr(result)) + + +@models_model_model_version.command("get") +@click.argument("model_rid", type=str, required=True) +@click.argument("model_version_rid", type=str, required=True) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_model_version_op_get( + client: FoundryClient, + model_rid: str, + model_version_rid: str, + preview: typing.Optional[bool], +): + """ + Retrieves a Model Version by its Resource Identifier (RID). + """ + result = client.models.Model.Version.get( + model_rid=model_rid, + model_version_rid=model_version_rid, + preview=preview, + ) + click.echo(repr(result)) + + +@models_model_model_version.command("list") +@click.argument("model_rid", type=str, required=True) +@click.option( + "--page_size", type=int, required=False, help="""The page size to use for the endpoint.""" +) +@click.option( + "--page_token", + type=str, + required=False, + help="""The page token indicates where to start paging. This should be omitted from the first page's request. +To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response +and use it to populate the `pageToken` field of the next request.""", +) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.pass_obj +def models_model_model_version_op_list( + client: FoundryClient, + model_rid: str, + page_size: typing.Optional[int], + page_token: typing.Optional[str], + preview: typing.Optional[bool], +): + """ + Lists all Model Versions for a given Model. + """ + result = client.models.Model.Version.list( + model_rid=model_rid, + page_size=page_size, + page_token=page_token, + preview=preview, + ) + click.echo(repr(result)) + + +@cli.group("ontologies") +def ontologies(): + pass + + +@ontologies.group("time_series_value_bank_property") +def ontologies_time_series_value_bank_property(): + pass + + +@ontologies_time_series_value_bank_property.command("get_latest_value") +@click.argument("ontology", type=str, required=True) +@click.argument("object_type", type=str, required=True) @click.argument("primary_key", type=str, required=True) @click.argument("property_name", type=str, required=True) @click.option( @@ -6854,6 +7414,20 @@ def ontologies_ontology_transaction(): help="""A boolean flag that, when set to true, enables the use of beta features in preview mode. """, ) +@click.option( + "--sdk_package_rid", + type=str, + required=False, + help="""The package rid of the generated SDK. +""", +) +@click.option( + "--sdk_version", + type=str, + required=False, + help="""The version of the generated SDK. +""", +) @click.pass_obj def ontologies_ontology_transaction_op_post_edits( client: FoundryClient, @@ -6861,6 +7435,8 @@ def ontologies_ontology_transaction_op_post_edits( transaction_id: str, edits: str, preview: typing.Optional[bool], + sdk_package_rid: typing.Optional[str], + sdk_version: typing.Optional[str], ): """ Applies a set of edits to a transaction in order. @@ -6871,6 +7447,8 @@ def ontologies_ontology_transaction_op_post_edits( transaction_id=transaction_id, edits=json.loads(edits), preview=preview, + sdk_package_rid=sdk_package_rid, + sdk_version=sdk_version, ) click.echo(repr(result)) @@ -7428,6 +8006,14 @@ def ontologies_ontology_object_set_op_load_multiple_object_types( This defaults to false if not specified, which means you will always get the latest results. """, ) +@click.option( + "--transaction_id", + type=str, + required=False, + help="""The ID of an Ontology transaction to read from. +Transactions are an experimental feature and all workflows may not be supported. +""", +) @click.pass_obj def ontologies_ontology_object_set_op_load_objects_or_interfaces( client: FoundryClient, @@ -7444,6 +8030,7 @@ def ontologies_ontology_object_set_op_load_objects_or_interfaces( sdk_version: typing.Optional[str], select_v2: typing.Optional[str], snapshot: typing.Optional[bool], + transaction_id: typing.Optional[str], ): """ Load the ontology objects present in the `ObjectSet` from the provided object set definition. If the requested @@ -7477,6 +8064,7 @@ def ontologies_ontology_object_set_op_load_objects_or_interfaces( sdk_version=sdk_version, select_v2=None if select_v2 is None else json.loads(select_v2), snapshot=snapshot, + transaction_id=transaction_id, ) click.echo(repr(result)) @@ -8727,6 +9315,72 @@ def ontologies_ontology_object_type_op_get( click.echo(repr(result)) +@ontologies_ontology_object_type.command("get_edits_history") +@click.argument("ontology", type=str, required=True) +@click.argument("object_type", type=str, required=True) +@click.option( + "--branch", + type=str, + required=False, + help="""The Foundry branch from which we will get edits history. If not specified, the default branch is used. +Branches are an experimental feature and not all workflows are supported. +""", +) +@click.option("--filters", type=str, required=False, help="""""") +@click.option("--include_all_previous_properties", type=bool, required=False, help="""""") +@click.option("--object_primary_key", type=str, required=False, help="""""") +@click.option( + "--page_size", + type=int, + required=False, + help="""The maximum number of edits to return per page. Defaults to 100.""", +) +@click.option( + "--page_token", + type=str, + required=False, + help="""Token for retrieving the next page of results""", +) +@click.option( + "--sort_order", type=click.Choice(["newest_first", "oldest_first"]), required=False, help="""""" +) +@click.pass_obj +def ontologies_ontology_object_type_op_get_edits_history( + client: FoundryClient, + ontology: str, + object_type: str, + branch: typing.Optional[str], + filters: typing.Optional[str], + include_all_previous_properties: typing.Optional[bool], + object_primary_key: typing.Optional[str], + page_size: typing.Optional[int], + page_token: typing.Optional[str], + sort_order: typing.Optional[typing.Literal["newest_first", "oldest_first"]], +): + """ + Returns the history of edits (additions, modifications, deletions) for objects of a + specific object type. This endpoint provides visibility into all actions that have + modified objects of this type. + + The edits are returned in reverse chronological order (most recent first) by default. + + Note that filters are ignored for OSv1 object types. + + """ + result = client.ontologies.Ontology.ObjectType.get_edits_history( + ontology=ontology, + object_type=object_type, + branch=branch, + filters=None if filters is None else json.loads(filters), + include_all_previous_properties=include_all_previous_properties, + object_primary_key=None if object_primary_key is None else json.loads(object_primary_key), + page_size=page_size, + page_token=page_token, + sort_order=sort_order, + ) + click.echo(repr(result)) + + @ontologies_ontology_object_type.command("get_full_metadata") @click.argument("ontology", type=str, required=True) @click.argument("object_type", type=str, required=True) @@ -9923,6 +10577,14 @@ def ontologies_action(): help="""The version of the generated SDK. """, ) +@click.option( + "--transaction_id", + type=str, + required=False, + help="""The ID of an Ontology transaction to apply the action against. +Transactions are an experimental feature and all workflows may not be supported. +""", +) @click.pass_obj def ontologies_action_op_apply( client: FoundryClient, @@ -9933,6 +10595,7 @@ def ontologies_action_op_apply( options: typing.Optional[str], sdk_package_rid: typing.Optional[str], sdk_version: typing.Optional[str], + transaction_id: typing.Optional[str], ): """ Applies an action using the given parameters. @@ -9955,6 +10618,7 @@ def ontologies_action_op_apply( options=None if options is None else json.loads(options), sdk_package_rid=sdk_package_rid, sdk_version=sdk_version, + transaction_id=transaction_id, ) click.echo(repr(result)) @@ -10048,6 +10712,14 @@ def ontologies_action_op_apply_batch( help="""The version of the generated SDK. """, ) +@click.option( + "--transaction_id", + type=str, + required=False, + help="""The ID of an Ontology transaction to apply the action against. +Transactions are an experimental feature and all workflows may not be supported. +""", +) @click.pass_obj def ontologies_action_op_apply_with_overrides( client: FoundryClient, @@ -10058,6 +10730,7 @@ def ontologies_action_op_apply_with_overrides( branch: typing.Optional[str], sdk_package_rid: typing.Optional[str], sdk_version: typing.Optional[str], + transaction_id: typing.Optional[str], ): """ Same as regular apply action operation, but allows specifying overrides for UniqueIdentifier and @@ -10072,6 +10745,7 @@ def ontologies_action_op_apply_with_overrides( branch=branch, sdk_package_rid=sdk_package_rid, sdk_version=sdk_version, + transaction_id=transaction_id, ) click.echo(repr(result)) @@ -10660,6 +11334,63 @@ def sql_queries_sql_query_op_execute( click.echo(repr(result)) +@sql_queries_sql_query.command("execute_ontology") +@click.option( + "--query", + type=str, + required=True, + help="""The SQL query to execute. +""", +) +@click.option( + "--dry_run", + type=bool, + required=False, + help="""If true, parse and validate the query without executing it. Defaults to false. +""", +) +@click.option( + "--parameters", + type=str, + required=False, + help="""Parameters for the SQL query. Can be either unnamed positional parameters +or a named parameter mapping. +""", +) +@click.option( + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" +) +@click.option( + "--row_limit", + type=int, + required=False, + help="""Maximum number of rows to return. +""", +) +@click.pass_obj +def sql_queries_sql_query_op_execute_ontology( + client: FoundryClient, + query: str, + dry_run: typing.Optional[bool], + parameters: typing.Optional[str], + preview: typing.Optional[bool], + row_limit: typing.Optional[int], +): + """ + Executes a SQL query against the Ontology. Results are returned synchronously in + [Apache Arrow](https://arrow.apache.org/) format. + + """ + result = client.sql_queries.SqlQuery.execute_ontology( + query=query, + dry_run=dry_run, + parameters=None if parameters is None else json.loads(parameters), + preview=preview, + row_limit=row_limit, + ) + click.echo(result) + + @sql_queries_sql_query.command("get_results") @click.argument("sql_query_id", type=str, required=True) @click.pass_obj @@ -10883,21 +11614,26 @@ def streams_dataset_stream_op_get( @click.argument("dataset_rid", type=str, required=True) @click.argument("stream_branch_name", type=str, required=True) @click.option( - "--view_rid", - type=str, - required=True, - help="""The RID from the view to retrieve end offsets for.""", + "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) @click.option( - "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" + "--view_rid", + type=str, + required=False, + help="""If provided, this endpoint will only read from the stream corresponding to the specified view RID. If +not provided, this endpoint will read from the latest stream on the branch. + +Providing this value is an advanced configuration, to be used when additional control over the +underlying streaming data structures is needed. +""", ) @click.pass_obj def streams_dataset_stream_op_get_end_offsets( client: FoundryClient, dataset_rid: str, stream_branch_name: str, - view_rid: str, preview: typing.Optional[bool], + view_rid: typing.Optional[str], ): """ Get the end offsets for all partitions of a stream. The end offset is the offset of the next record that will be written to the partition. @@ -10906,8 +11642,8 @@ def streams_dataset_stream_op_get_end_offsets( result = client.streams.Dataset.Stream.get_end_offsets( dataset_rid=dataset_rid, stream_branch_name=stream_branch_name, - view_rid=view_rid, preview=preview, + view_rid=view_rid, ) click.echo(repr(result)) @@ -10929,12 +11665,6 @@ def streams_dataset_stream_op_get_end_offsets( required=True, help="""The ID of the partition to retrieve records from.""", ) -@click.option( - "--view_rid", - type=str, - required=True, - help="""The Rid from the view to retrieve records from.""", -) @click.option( "--preview", type=bool, required=False, help="""Enables the use of preview functionality.""" ) @@ -10945,6 +11675,17 @@ def streams_dataset_stream_op_get_end_offsets( help="""The inclusive beginning of the range to be retrieved. Leave empty when reading from the beginning of the partition. """, ) +@click.option( + "--view_rid", + type=str, + required=False, + help="""If provided, this endpoint will only read from the stream corresponding to the specified view RID. If +not provided, this endpoint will read from the latest stream on the branch. + +Providing this value is an advanced configuration, to be used when additional control over the +underlying streaming data structures is needed. +""", +) @click.pass_obj def streams_dataset_stream_op_get_records( client: FoundryClient, @@ -10952,9 +11693,9 @@ def streams_dataset_stream_op_get_records( stream_branch_name: str, limit: int, partition_id: str, - view_rid: str, preview: typing.Optional[bool], start_offset: typing.Optional[int], + view_rid: typing.Optional[str], ): """ Get a batch of records from a stream for a given partition. Offsets are ordered from [0, inf) but may be sparse (e.g.: 0, 2, 3, 5). @@ -10966,9 +11707,9 @@ def streams_dataset_stream_op_get_records( stream_branch_name=stream_branch_name, limit=limit, partition_id=partition_id, - view_rid=view_rid, preview=preview, start_offset=start_offset, + view_rid=view_rid, ) click.echo(repr(result)) @@ -10984,8 +11725,8 @@ def streams_dataset_stream_op_get_records( "--view_rid", type=str, required=False, - help="""If provided, this operation will only write to the stream corresponding to the specified view RID. If -not provided, this operation will write to the latest stream on the branch. + help="""If provided, this endpoint will only write to the stream corresponding to the specified view RID. If +not provided, this endpoint will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. diff --git a/foundry_sdk/v2/core/errors.py b/foundry_sdk/v2/core/errors.py index befd7bfdd..51d97a044 100644 --- a/foundry_sdk/v2/core/errors.py +++ b/foundry_sdk/v2/core/errors.py @@ -316,6 +316,21 @@ class MissingPostBody(errors.BadRequestError): error_instance_id: str +class NotAuthorizedToDeclassifyMarkingsParameters(typing_extensions.TypedDict): + """The caller does not have DECLASSIFY permission on these markings or the markings do not exist.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + markingIds: typing.List[core_models.MarkingId] + + +@dataclass +class NotAuthorizedToDeclassifyMarkings(errors.PermissionDeniedError): + name: typing.Literal["NotAuthorizedToDeclassifyMarkings"] + parameters: NotAuthorizedToDeclassifyMarkingsParameters + error_instance_id: str + + class ResourceNameAlreadyExistsParameters(typing_extensions.TypedDict): """The provided resource name is already in use by another resource in the same folder.""" @@ -381,6 +396,7 @@ class UnknownDistanceUnit(errors.BadRequestError): "InvalidTimeZone", "MissingBatchRequest", "MissingPostBody", + "NotAuthorizedToDeclassifyMarkings", "ResourceNameAlreadyExists", "SchemaIsNotStreamSchema", "UnknownDistanceUnit", diff --git a/foundry_sdk/v2/core/models.py b/foundry_sdk/v2/core/models.py index c4d81a9bf..4fb9c8d4a 100644 --- a/foundry_sdk/v2/core/models.py +++ b/foundry_sdk/v2/core/models.py @@ -95,6 +95,10 @@ class CipherTextType(core.ModelBase): type: typing.Literal["cipherText"] = "cipherText" +ColumnName = str +"""The name of a column in a dataset.""" + + ComputeSeconds = float """A measurement of compute usage expressed in [compute-seconds](https://palantir.com/docs/foundry/resource-management/usage-types#compute-second). For more information, please refer to the [Usage types](https://palantir.com/docs/foundry/resource-management/usage-types) documentation.""" @@ -942,6 +946,7 @@ class VectorType(core.ModelBase): "CheckReportRid", "CheckRid", "CipherTextType", + "ColumnName", "ComputeSeconds", "ContentLength", "ContentType", diff --git a/foundry_sdk/v2/datasets/dataset.py b/foundry_sdk/v2/datasets/dataset.py index 32785757d..0a243472b 100644 --- a/foundry_sdk/v2/datasets/dataset.py +++ b/foundry_sdk/v2/datasets/dataset.py @@ -333,7 +333,11 @@ def get_schedules( _sdk_internal: core.SdkInternal = {}, ) -> core.ResourceIterator[core_models.ScheduleRid]: """ - Get the RIDs of the Schedules that target the given Dataset + Get the RIDs of the Schedules that target the given Dataset. + + Note: It may take up to an hour for recent changes to schedules to be reflected in this response, + especially for schedules managed by Marketplace. This operation will return outdated results in the + meantime. :param dataset_rid: :type dataset_rid: DatasetRid @@ -1164,7 +1168,11 @@ def get_schedules( _sdk_internal: core.SdkInternal = {}, ) -> core.AsyncResourceIterator[core_models.ScheduleRid]: """ - Get the RIDs of the Schedules that target the given Dataset + Get the RIDs of the Schedules that target the given Dataset. + + Note: It may take up to an hour for recent changes to schedules to be reflected in this response, + especially for schedules managed by Marketplace. This operation will return outdated results in the + meantime. :param dataset_rid: :type dataset_rid: DatasetRid diff --git a/foundry_sdk/v2/datasets/models.py b/foundry_sdk/v2/datasets/models.py index 7c85f7b94..d21089161 100644 --- a/foundry_sdk/v2/datasets/models.py +++ b/foundry_sdk/v2/datasets/models.py @@ -373,6 +373,12 @@ class ViewBackingDataset(core.ModelBase): """The branch of the backing dataset. If not specified, defaults to the branch of the View.""" dataset_rid: core_models.DatasetRid = pydantic.Field(alias=str("datasetRid")) # type: ignore[literal-required] + stop_propagating_marking_ids: typing.List[core_models.MarkingId] = pydantic.Field(alias=str("stopPropagatingMarkingIds")) # type: ignore[literal-required] + """ + Markings listed here will not be inherited from this backing dataset. The caller must have the DECLASSIFY + permission on each marking listed here. If multiple backing datasets have the same marking applied, + the marking must be listed for each backing dataset or it will still be inherited. + """ class ViewPrimaryKey(core.ModelBase): diff --git a/foundry_sdk/v2/datasets/view.py b/foundry_sdk/v2/datasets/view.py index 488b317f4..84f31d832 100644 --- a/foundry_sdk/v2/datasets/view.py +++ b/foundry_sdk/v2/datasets/view.py @@ -20,6 +20,7 @@ from foundry_sdk import _core as core from foundry_sdk import _errors as errors +from foundry_sdk.v2.core import errors as core_errors from foundry_sdk.v2.core import models as core_models from foundry_sdk.v2.datasets import errors as datasets_errors from foundry_sdk.v2.datasets import models as datasets_models @@ -83,6 +84,7 @@ def add_backing_datasets( :raises AddBackingDatasetsPermissionDenied: Could not addBackingDatasets the View. :raises InputBackingDatasetNotInOutputViewProject: One or more backing datasets do not live in the same project as the view. Either move the input datasets to the same project as the view or add them as project references. :raises InvalidViewBackingDataset: Either you do not have access to one or more of the backing datasets or it does not exist. + :raises NotAuthorizedToDeclassifyMarkings: The caller does not have DECLASSIFY permission on these markings or the markings do not exist. :raises ViewNotFound: The requested View could not be found. Either the view does not exist, the branch is not valid or the client token does not have access to it. """ @@ -110,6 +112,7 @@ def add_backing_datasets( "AddBackingDatasetsPermissionDenied": datasets_errors.AddBackingDatasetsPermissionDenied, "InputBackingDatasetNotInOutputViewProject": datasets_errors.InputBackingDatasetNotInOutputViewProject, "InvalidViewBackingDataset": datasets_errors.InvalidViewBackingDataset, + "NotAuthorizedToDeclassifyMarkings": core_errors.NotAuthorizedToDeclassifyMarkings, "ViewNotFound": datasets_errors.ViewNotFound, }, response_mode=_sdk_internal.get("response_mode"), @@ -235,6 +238,7 @@ def create( :raises InvalidViewPrimaryKeyColumnType: The type of each referenced column in the primary key must be one of the following: BYTE, SHORT, DECIMAL, INTEGER, LONG, STRING, BOOLEAN, TIMESTAMP or DATE. :raises InvalidViewPrimaryKeyDeletionColumn: The deletion column must be a boolean. :raises NotAllColumnsInPrimaryKeyArePresent: Not all columns in the View's primary key are present in the dataset(s). + :raises NotAuthorizedToDeclassifyMarkings: The caller does not have DECLASSIFY permission on these markings or the markings do not exist. :raises ResourceNameAlreadyExists: The provided resource name is already in use by another resource in the same folder. :raises ViewDatasetCleanupFailed: Failed to delete dataset following View creation failure. :raises ViewNotFound: The requested View could not be found. Either the view does not exist, the branch is not valid or the client token does not have access to it. @@ -274,6 +278,7 @@ def create( "InvalidViewPrimaryKeyColumnType": datasets_errors.InvalidViewPrimaryKeyColumnType, "InvalidViewPrimaryKeyDeletionColumn": datasets_errors.InvalidViewPrimaryKeyDeletionColumn, "NotAllColumnsInPrimaryKeyArePresent": datasets_errors.NotAllColumnsInPrimaryKeyArePresent, + "NotAuthorizedToDeclassifyMarkings": core_errors.NotAuthorizedToDeclassifyMarkings, "ResourceNameAlreadyExists": filesystem_errors.ResourceNameAlreadyExists, "ViewDatasetCleanupFailed": datasets_errors.ViewDatasetCleanupFailed, "ViewNotFound": datasets_errors.ViewNotFound, @@ -436,6 +441,7 @@ def replace_backing_datasets( :raises InputBackingDatasetNotInOutputViewProject: One or more backing datasets do not live in the same project as the view. Either move the input datasets to the same project as the view or add them as project references. :raises InvalidViewBackingDataset: Either you do not have access to one or more of the backing datasets or it does not exist. + :raises NotAuthorizedToDeclassifyMarkings: The caller does not have DECLASSIFY permission on these markings or the markings do not exist. :raises ReplaceBackingDatasetsPermissionDenied: Could not replaceBackingDatasets the View. :raises ViewNotFound: The requested View could not be found. Either the view does not exist, the branch is not valid or the client token does not have access to it. """ @@ -463,6 +469,7 @@ def replace_backing_datasets( throwable_errors={ "InputBackingDatasetNotInOutputViewProject": datasets_errors.InputBackingDatasetNotInOutputViewProject, "InvalidViewBackingDataset": datasets_errors.InvalidViewBackingDataset, + "NotAuthorizedToDeclassifyMarkings": core_errors.NotAuthorizedToDeclassifyMarkings, "ReplaceBackingDatasetsPermissionDenied": datasets_errors.ReplaceBackingDatasetsPermissionDenied, "ViewNotFound": datasets_errors.ViewNotFound, }, @@ -573,6 +580,7 @@ def add_backing_datasets( :raises AddBackingDatasetsPermissionDenied: Could not addBackingDatasets the View. :raises InputBackingDatasetNotInOutputViewProject: One or more backing datasets do not live in the same project as the view. Either move the input datasets to the same project as the view or add them as project references. :raises InvalidViewBackingDataset: Either you do not have access to one or more of the backing datasets or it does not exist. + :raises NotAuthorizedToDeclassifyMarkings: The caller does not have DECLASSIFY permission on these markings or the markings do not exist. :raises ViewNotFound: The requested View could not be found. Either the view does not exist, the branch is not valid or the client token does not have access to it. """ @@ -600,6 +608,7 @@ def add_backing_datasets( "AddBackingDatasetsPermissionDenied": datasets_errors.AddBackingDatasetsPermissionDenied, "InputBackingDatasetNotInOutputViewProject": datasets_errors.InputBackingDatasetNotInOutputViewProject, "InvalidViewBackingDataset": datasets_errors.InvalidViewBackingDataset, + "NotAuthorizedToDeclassifyMarkings": core_errors.NotAuthorizedToDeclassifyMarkings, "ViewNotFound": datasets_errors.ViewNotFound, }, response_mode=_sdk_internal.get("response_mode"), @@ -725,6 +734,7 @@ def create( :raises InvalidViewPrimaryKeyColumnType: The type of each referenced column in the primary key must be one of the following: BYTE, SHORT, DECIMAL, INTEGER, LONG, STRING, BOOLEAN, TIMESTAMP or DATE. :raises InvalidViewPrimaryKeyDeletionColumn: The deletion column must be a boolean. :raises NotAllColumnsInPrimaryKeyArePresent: Not all columns in the View's primary key are present in the dataset(s). + :raises NotAuthorizedToDeclassifyMarkings: The caller does not have DECLASSIFY permission on these markings or the markings do not exist. :raises ResourceNameAlreadyExists: The provided resource name is already in use by another resource in the same folder. :raises ViewDatasetCleanupFailed: Failed to delete dataset following View creation failure. :raises ViewNotFound: The requested View could not be found. Either the view does not exist, the branch is not valid or the client token does not have access to it. @@ -764,6 +774,7 @@ def create( "InvalidViewPrimaryKeyColumnType": datasets_errors.InvalidViewPrimaryKeyColumnType, "InvalidViewPrimaryKeyDeletionColumn": datasets_errors.InvalidViewPrimaryKeyDeletionColumn, "NotAllColumnsInPrimaryKeyArePresent": datasets_errors.NotAllColumnsInPrimaryKeyArePresent, + "NotAuthorizedToDeclassifyMarkings": core_errors.NotAuthorizedToDeclassifyMarkings, "ResourceNameAlreadyExists": filesystem_errors.ResourceNameAlreadyExists, "ViewDatasetCleanupFailed": datasets_errors.ViewDatasetCleanupFailed, "ViewNotFound": datasets_errors.ViewNotFound, @@ -926,6 +937,7 @@ def replace_backing_datasets( :raises InputBackingDatasetNotInOutputViewProject: One or more backing datasets do not live in the same project as the view. Either move the input datasets to the same project as the view or add them as project references. :raises InvalidViewBackingDataset: Either you do not have access to one or more of the backing datasets or it does not exist. + :raises NotAuthorizedToDeclassifyMarkings: The caller does not have DECLASSIFY permission on these markings or the markings do not exist. :raises ReplaceBackingDatasetsPermissionDenied: Could not replaceBackingDatasets the View. :raises ViewNotFound: The requested View could not be found. Either the view does not exist, the branch is not valid or the client token does not have access to it. """ @@ -953,6 +965,7 @@ def replace_backing_datasets( throwable_errors={ "InputBackingDatasetNotInOutputViewProject": datasets_errors.InputBackingDatasetNotInOutputViewProject, "InvalidViewBackingDataset": datasets_errors.InvalidViewBackingDataset, + "NotAuthorizedToDeclassifyMarkings": core_errors.NotAuthorizedToDeclassifyMarkings, "ReplaceBackingDatasetsPermissionDenied": datasets_errors.ReplaceBackingDatasetsPermissionDenied, "ViewNotFound": datasets_errors.ViewNotFound, }, diff --git a/foundry_sdk/v2/functions/errors.py b/foundry_sdk/v2/functions/errors.py index 7ee8a1884..101c52f2d 100644 --- a/foundry_sdk/v2/functions/errors.py +++ b/foundry_sdk/v2/functions/errors.py @@ -86,16 +86,16 @@ class FunctionNotFound(errors.NotFoundError): error_instance_id: str -class GetByRidQueriesPermissionDeniedParameters(typing_extensions.TypedDict): +class GetByRidPermissionDeniedParameters(typing_extensions.TypedDict): """Could not getByRid the Query.""" __pydantic_config__ = {"extra": "allow"} # type: ignore @dataclass -class GetByRidQueriesPermissionDenied(errors.PermissionDeniedError): - name: typing.Literal["GetByRidQueriesPermissionDenied"] - parameters: GetByRidQueriesPermissionDeniedParameters +class GetByRidPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["GetByRidPermissionDenied"] + parameters: GetByRidPermissionDeniedParameters error_instance_id: str @@ -330,7 +330,7 @@ class VersionIdNotFound(errors.NotFoundError): "ExecuteQueryPermissionDenied", "FunctionHasNoPublishedVersion", "FunctionNotFound", - "GetByRidQueriesPermissionDenied", + "GetByRidPermissionDenied", "InvalidQueryOutputValue", "InvalidQueryParameterValue", "MissingParameter", diff --git a/foundry_sdk/v2/functions/models.py b/foundry_sdk/v2/functions/models.py index 692c46903..a3b4cc899 100644 --- a/foundry_sdk/v2/functions/models.py +++ b/foundry_sdk/v2/functions/models.py @@ -93,13 +93,28 @@ class ExecuteQueryResponse(core.ModelBase): """ -class GetByRidQueriesRequest(core.ModelBase): - """GetByRidQueriesRequest""" +class GetByRidQueriesBatchRequestElement(core.ModelBase): + """GetByRidQueriesBatchRequestElement""" + + include_prerelease: typing.Optional[bool] = pydantic.Field(alias=str("includePrerelease"), default=None) # type: ignore[literal-required] + """ + When no version is specified and this flag is set to true, the latest version resolution will consider + prerelease versions (e.g., 1.2.3-beta could be returned as the latest). When false, only stable + versions are considered when determining the latest version. + + Defaults to false. + """ rid: FunctionRid version: typing.Optional[FunctionVersion] = None +class GetByRidQueriesBatchResponse(core.ModelBase): + """GetByRidQueriesBatchResponse""" + + data: typing.List[Query] + + class LengthConstraint(core.ModelBase): """LengthConstraint""" @@ -588,7 +603,8 @@ class VersionId(core.ModelBase): "ExecuteQueryResponse", "FunctionRid", "FunctionVersion", - "GetByRidQueriesRequest", + "GetByRidQueriesBatchRequestElement", + "GetByRidQueriesBatchResponse", "LengthConstraint", "MapConstraint", "NullableConstraint", diff --git a/foundry_sdk/v2/functions/query.py b/foundry_sdk/v2/functions/query.py index 55155c9b7..41dbab0ff 100644 --- a/foundry_sdk/v2/functions/query.py +++ b/foundry_sdk/v2/functions/query.py @@ -15,6 +15,7 @@ import typing +import annotated_types import pydantic import typing_extensions @@ -191,6 +192,7 @@ def get_by_rid( self, *, rid: functions_models.FunctionRid, + include_prerelease: typing.Optional[bool] = None, preview: typing.Optional[core_models.PreviewMode] = None, version: typing.Optional[functions_models.FunctionVersion] = None, request_timeout: typing.Optional[core.Timeout] = None, @@ -201,6 +203,8 @@ def get_by_rid( :param rid: :type rid: FunctionRid + :param include_prerelease: When no version is specified and this flag is set to true, the latest version resolution will consider prerelease versions (e.g., 1.2.3-beta could be returned as the latest). When false, only stable versions are considered when determining the latest version. Defaults to false. + :type include_prerelease: Optional[bool] :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] :param version: @@ -210,30 +214,80 @@ def get_by_rid( :return: Returns the result object. :rtype: functions_models.Query - :raises GetByRidQueriesPermissionDenied: Could not getByRid the Query. + :raises GetByRidPermissionDenied: Could not getByRid the Query. """ return self._api_client.call_api( core.RequestInfo( - method="POST", + method="GET", resource_path="/v2/functions/queries/getByRid", query_params={ + "rid": rid, + "includePrerelease": include_prerelease, "preview": preview, + "version": version, }, path_params={}, header_params={ - "Content-Type": "application/json", "Accept": "application/json", }, - body=functions_models.GetByRidQueriesRequest( - rid=rid, - version=version, - ), + body=None, response_type=functions_models.Query, request_timeout=request_timeout, throwable_errors={ - "GetByRidQueriesPermissionDenied": functions_errors.GetByRidQueriesPermissionDenied, + "GetByRidPermissionDenied": functions_errors.GetByRidPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_by_rid_batch( + self, + body: typing_extensions.Annotated[ + typing.List[functions_models.GetByRidQueriesBatchRequestElement], + annotated_types.Len(min_length=1, max_length=100), + ], + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> functions_models.GetByRidQueriesBatchResponse: + """ + Gets a list of query types by RID in bulk. By default, this gets the latest version of each query. + + Queries are filtered from the response if they don't exist or the requesting token lacks the required + permissions. + + The maximum batch size for this endpoint is 100. + :param body: Body of the request + :type body: List[GetByRidQueriesBatchRequestElement] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: functions_models.GetByRidQueriesBatchResponse + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/functions/queries/getByRidBatch", + query_params={ + "preview": preview, }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=body, + response_type=functions_models.GetByRidQueriesBatchResponse, + request_timeout=request_timeout, + throwable_errors={}, response_mode=_sdk_internal.get("response_mode"), ), ) @@ -349,11 +403,13 @@ def __init__(self, client: QueryClient) -> None: def execute(_: functions_models.ExecuteQueryResponse): ... def get(_: functions_models.Query): ... def get_by_rid(_: functions_models.Query): ... + def get_by_rid_batch(_: functions_models.GetByRidQueriesBatchResponse): ... def streaming_execute(_: bytes): ... self.execute = core.with_raw_response(execute, client.execute) self.get = core.with_raw_response(get, client.get) self.get_by_rid = core.with_raw_response(get_by_rid, client.get_by_rid) + self.get_by_rid_batch = core.with_raw_response(get_by_rid_batch, client.get_by_rid_batch) self.streaming_execute = core.with_raw_response(streaming_execute, client.streaming_execute) @@ -362,11 +418,15 @@ def __init__(self, client: QueryClient) -> None: def execute(_: functions_models.ExecuteQueryResponse): ... def get(_: functions_models.Query): ... def get_by_rid(_: functions_models.Query): ... + def get_by_rid_batch(_: functions_models.GetByRidQueriesBatchResponse): ... def streaming_execute(_: bytes): ... self.execute = core.with_streaming_response(execute, client.execute) self.get = core.with_streaming_response(get, client.get) self.get_by_rid = core.with_streaming_response(get_by_rid, client.get_by_rid) + self.get_by_rid_batch = core.with_streaming_response( + get_by_rid_batch, client.get_by_rid_batch + ) self.streaming_execute = core.with_streaming_response( streaming_execute, client.streaming_execute ) @@ -537,6 +597,7 @@ def get_by_rid( self, *, rid: functions_models.FunctionRid, + include_prerelease: typing.Optional[bool] = None, preview: typing.Optional[core_models.PreviewMode] = None, version: typing.Optional[functions_models.FunctionVersion] = None, request_timeout: typing.Optional[core.Timeout] = None, @@ -547,6 +608,8 @@ def get_by_rid( :param rid: :type rid: FunctionRid + :param include_prerelease: When no version is specified and this flag is set to true, the latest version resolution will consider prerelease versions (e.g., 1.2.3-beta could be returned as the latest). When false, only stable versions are considered when determining the latest version. Defaults to false. + :type include_prerelease: Optional[bool] :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] :param version: @@ -556,34 +619,84 @@ def get_by_rid( :return: Returns the result object. :rtype: typing.Awaitable[functions_models.Query] - :raises GetByRidQueriesPermissionDenied: Could not getByRid the Query. + :raises GetByRidPermissionDenied: Could not getByRid the Query. """ return self._api_client.call_api( core.RequestInfo( - method="POST", + method="GET", resource_path="/v2/functions/queries/getByRid", query_params={ + "rid": rid, + "includePrerelease": include_prerelease, "preview": preview, + "version": version, }, path_params={}, header_params={ - "Content-Type": "application/json", "Accept": "application/json", }, - body=functions_models.GetByRidQueriesRequest( - rid=rid, - version=version, - ), + body=None, response_type=functions_models.Query, request_timeout=request_timeout, throwable_errors={ - "GetByRidQueriesPermissionDenied": functions_errors.GetByRidQueriesPermissionDenied, + "GetByRidPermissionDenied": functions_errors.GetByRidPermissionDenied, }, response_mode=_sdk_internal.get("response_mode"), ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_by_rid_batch( + self, + body: typing_extensions.Annotated[ + typing.List[functions_models.GetByRidQueriesBatchRequestElement], + annotated_types.Len(min_length=1, max_length=100), + ], + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[functions_models.GetByRidQueriesBatchResponse]: + """ + Gets a list of query types by RID in bulk. By default, this gets the latest version of each query. + + Queries are filtered from the response if they don't exist or the requesting token lacks the required + permissions. + + The maximum batch size for this endpoint is 100. + :param body: Body of the request + :type body: List[GetByRidQueriesBatchRequestElement] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[functions_models.GetByRidQueriesBatchResponse] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/functions/queries/getByRidBatch", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=body, + response_type=functions_models.GetByRidQueriesBatchResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -695,11 +808,15 @@ def __init__(self, client: AsyncQueryClient) -> None: def execute(_: functions_models.ExecuteQueryResponse): ... def get(_: functions_models.Query): ... def get_by_rid(_: functions_models.Query): ... + def get_by_rid_batch(_: functions_models.GetByRidQueriesBatchResponse): ... def streaming_execute(_: bytes): ... self.execute = core.async_with_raw_response(execute, client.execute) self.get = core.async_with_raw_response(get, client.get) self.get_by_rid = core.async_with_raw_response(get_by_rid, client.get_by_rid) + self.get_by_rid_batch = core.async_with_raw_response( + get_by_rid_batch, client.get_by_rid_batch + ) self.streaming_execute = core.async_with_raw_response( streaming_execute, client.streaming_execute ) @@ -710,11 +827,15 @@ def __init__(self, client: AsyncQueryClient) -> None: def execute(_: functions_models.ExecuteQueryResponse): ... def get(_: functions_models.Query): ... def get_by_rid(_: functions_models.Query): ... + def get_by_rid_batch(_: functions_models.GetByRidQueriesBatchResponse): ... def streaming_execute(_: bytes): ... self.execute = core.async_with_streaming_response(execute, client.execute) self.get = core.async_with_streaming_response(get, client.get) self.get_by_rid = core.async_with_streaming_response(get_by_rid, client.get_by_rid) + self.get_by_rid_batch = core.async_with_streaming_response( + get_by_rid_batch, client.get_by_rid_batch + ) self.streaming_execute = core.async_with_streaming_response( streaming_execute, client.streaming_execute ) diff --git a/foundry_sdk/v2/media_sets/errors.py b/foundry_sdk/v2/media_sets/errors.py index 4723463fb..d8011c143 100644 --- a/foundry_sdk/v2/media_sets/errors.py +++ b/foundry_sdk/v2/media_sets/errors.py @@ -51,6 +51,25 @@ class GetMediaItemRidByPathPermissionDenied(errors.PermissionDeniedError): error_instance_id: str +class InvalidMediaItemRidParameters(typing_extensions.TypedDict): + """The provided media item RID is invalid.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + mediaItemRid: core_models.MediaItemRid + reason: str + invalidFieldName: typing_extensions.NotRequired[str] + expectedFieldValue: typing_extensions.NotRequired[str] + actualFieldValue: typing_extensions.NotRequired[str] + + +@dataclass +class InvalidMediaItemRid(errors.BadRequestError): + name: typing.Literal["InvalidMediaItemRid"] + parameters: InvalidMediaItemRidParameters + error_instance_id: str + + class InvalidMediaItemSchemaParameters(typing_extensions.TypedDict): """The media item does not match the schema of the media set.""" @@ -131,6 +150,21 @@ class MediaItemNotFound(errors.NotFoundError): error_instance_id: str +class MediaItemRidAlreadyExistsParameters(typing_extensions.TypedDict): + """A media item with the specified RID already exists.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + mediaItemRid: core_models.MediaItemRid + + +@dataclass +class MediaItemRidAlreadyExists(errors.ConflictError): + name: typing.Literal["MediaItemRidAlreadyExists"] + parameters: MediaItemRidAlreadyExistsParameters + error_instance_id: str + + class MediaItemXmlUnparsableParameters(typing_extensions.TypedDict): """The document cannot be parsed due to an unrecognized XML structure.""" @@ -239,6 +273,32 @@ class TemporaryMediaUploadUnknownFailure(errors.InternalServerError): error_instance_id: str +class TransformationNotFoundParameters(typing_extensions.TypedDict): + """The requested transformation could not be found.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class TransformationNotFound(errors.NotFoundError): + name: typing.Literal["TransformationNotFound"] + parameters: TransformationNotFoundParameters + error_instance_id: str + + +class TransformationUnavailableParameters(typing_extensions.TypedDict): + """The requested transformation is not currently available.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class TransformationUnavailable(errors.BadRequestError): + name: typing.Literal["TransformationUnavailable"] + parameters: TransformationUnavailableParameters + error_instance_id: str + + class TransformedMediaItemNotFoundParameters(typing_extensions.TypedDict): """The requested media item could not be found, or the client token does not have access to it.""" @@ -271,11 +331,13 @@ class UnexpectedMetadataType(errors.InternalServerError): __all__ = [ "ConflictingMediaSetIdentifiers", "GetMediaItemRidByPathPermissionDenied", + "InvalidMediaItemRid", "InvalidMediaItemSchema", "MediaItemHasUnsupportedSecuritySettings", "MediaItemImageUnparsable", "MediaItemIsPasswordProtected", "MediaItemNotFound", + "MediaItemRidAlreadyExists", "MediaItemXmlUnparsable", "MediaSetNotFound", "MediaSetOpenTransactionAlreadyExists", @@ -283,6 +345,8 @@ class UnexpectedMetadataType(errors.InternalServerError): "MissingMediaItemPath", "TemporaryMediaUploadInsufficientPermissions", "TemporaryMediaUploadUnknownFailure", + "TransformationNotFound", + "TransformationUnavailable", "TransformedMediaItemNotFound", "UnexpectedMetadataType", ] diff --git a/foundry_sdk/v2/media_sets/media_set.py b/foundry_sdk/v2/media_sets/media_set.py index e48118e39..11d774e1c 100644 --- a/foundry_sdk/v2/media_sets/media_set.py +++ b/foundry_sdk/v2/media_sets/media_set.py @@ -243,6 +243,64 @@ def create( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_result( + self, + media_set_rid: core_models.MediaSetRid, + media_item_rid: core_models.MediaItemRid, + transformation_job_id: media_sets_models.TransformationJobId, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + token: typing.Optional[core_models.MediaItemReadToken] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> bytes: + """ + Gets the result of a completed transformation job. Returns the transformed media content as binary data. + This endpoint will return an error if the transformation job has not completed successfully. + + :param media_set_rid: The RID of the media set. + :type media_set_rid: MediaSetRid + :param media_item_rid: The RID of the media item. + :type media_item_rid: MediaItemRid + :param transformation_job_id: The ID of the transformation job. + :type transformation_job_id: TransformationJobId + :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. + :type preview: Optional[PreviewMode] + :param token: + :type token: Optional[MediaItemReadToken] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: bytes + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transformationJobs/{transformationJobId}/result", + query_params={ + "preview": preview, + }, + path_params={ + "mediaSetRid": media_set_rid, + "mediaItemRid": media_item_rid, + "transformationJobId": transformation_job_id, + }, + header_params={ + "Token": token, + "Accept": "*/*", + }, + body=None, + response_type=bytes, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -304,6 +362,63 @@ def get_rid_by_path( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_status( + self, + media_set_rid: core_models.MediaSetRid, + media_item_rid: core_models.MediaItemRid, + transformation_job_id: media_sets_models.TransformationJobId, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + token: typing.Optional[core_models.MediaItemReadToken] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> media_sets_models.GetTransformationJobStatusResponse: + """ + Gets the status of a transformation job. + + :param media_set_rid: The RID of the media set. + :type media_set_rid: MediaSetRid + :param media_item_rid: The RID of the media item. + :type media_item_rid: MediaItemRid + :param transformation_job_id: The ID of the transformation job. + :type transformation_job_id: TransformationJobId + :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. + :type preview: Optional[PreviewMode] + :param token: + :type token: Optional[MediaItemReadToken] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: media_sets_models.GetTransformationJobStatusResponse + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transformationJobs/{transformationJobId}", + query_params={ + "preview": preview, + }, + path_params={ + "mediaSetRid": media_set_rid, + "mediaItemRid": media_item_rid, + "transformationJobId": transformation_job_id, + }, + header_params={ + "Token": token, + "Accept": "application/json", + }, + body=None, + response_type=media_sets_models.GetTransformationJobStatusResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -625,6 +740,69 @@ def retrieve( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def transform( + self, + media_set_rid: core_models.MediaSetRid, + media_item_rid: core_models.MediaItemRid, + *, + transformation: media_sets_models.Transformation, + preview: typing.Optional[core_models.PreviewMode] = None, + token: typing.Optional[core_models.MediaItemReadToken] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> media_sets_models.TransformMediaItemResponse: + """ + Initiates a transformation on a media item. Returns a job ID that can be used to check the status and retrieve + the result of the transformation. + + Transforming a media item requires that you are able to read the media item, either via `api:mediasets-read` or + via a `MediaItemReadToken` + + :param media_set_rid: The RID of the media set. + :type media_set_rid: MediaSetRid + :param media_item_rid: The RID of the media item. + :type media_item_rid: MediaItemRid + :param transformation: + :type transformation: Transformation + :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. + :type preview: Optional[PreviewMode] + :param token: + :type token: Optional[MediaItemReadToken] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: media_sets_models.TransformMediaItemResponse + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transform", + query_params={ + "preview": preview, + }, + path_params={ + "mediaSetRid": media_set_rid, + "mediaItemRid": media_item_rid, + }, + header_params={ + "Token": token, + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=media_sets_models.TransformMediaItemRequest( + transformation=transformation, + ), + response_type=media_sets_models.TransformMediaItemResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -705,6 +883,7 @@ def upload_media( *, filename: core_models.MediaItemPath, attribution: typing.Optional[core_models.Attribution] = None, + media_item_rid: typing.Optional[core_models.MediaItemRid] = None, preview: typing.Optional[core_models.PreviewMode] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, @@ -719,10 +898,12 @@ def upload_media( :param body: Body of the request :type body: bytes - :param filename: The path to write the media item to. Required if the backing media set requires paths. + :param filename: A user-defined label for a media item within a media set. Required if the backing media set requires paths. Uploading multiple files to the same path will result in only the most recent file being associated with the path. :type filename: MediaItemPath :param attribution: used for passing through usage attribution :type attribution: Optional[Attribution] + :param media_item_rid: An optional RID to use for the media item to create. If omitted, the server will automatically generate a RID. In most cases, the server-generated RID should be preferred; only specify a custom RID if your workflow strictly requires deterministic or client-controlled identifiers. The RID must be in the format of `ri.mio..media-item.`, where `` is the same as the instance part of the media set RID, and `` is a UUID. An `InvalidMediaItemRid` error will be thrown if the RID is not in the expected format. A `MediaItemRidAlreadyExists` error will be thrown if the media set already contains a media item with the same RID. + :type media_item_rid: Optional[MediaItemRid] :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. :type preview: Optional[PreviewMode] :param request_timeout: timeout setting for this request in seconds. @@ -737,6 +918,7 @@ def upload_media( resource_path="/v2/mediasets/media/upload", query_params={ "filename": filename, + "mediaItemRid": media_item_rid, "preview": preview, }, path_params={}, @@ -760,13 +942,16 @@ def abort(_: None): ... def calculate(_: media_sets_models.TrackedTransformationResponse): ... def commit(_: None): ... def create(_: media_sets_models.TransactionId): ... + def get_result(_: bytes): ... def get_rid_by_path(_: media_sets_models.GetMediaItemRidByPathResponse): ... + def get_status(_: media_sets_models.GetTransformationJobStatusResponse): ... def info(_: media_sets_models.GetMediaItemInfoResponse): ... def metadata(_: media_sets_models.MediaItemMetadata): ... def read(_: bytes): ... def read_original(_: bytes): ... def reference(_: core_models.MediaReference): ... def retrieve(_: bytes): ... + def transform(_: media_sets_models.TransformMediaItemResponse): ... def upload(_: media_sets_models.PutMediaItemResponse): ... def upload_media(_: core_models.MediaReference): ... @@ -774,13 +959,16 @@ def upload_media(_: core_models.MediaReference): ... self.calculate = core.with_raw_response(calculate, client.calculate) self.commit = core.with_raw_response(commit, client.commit) self.create = core.with_raw_response(create, client.create) + self.get_result = core.with_raw_response(get_result, client.get_result) self.get_rid_by_path = core.with_raw_response(get_rid_by_path, client.get_rid_by_path) + self.get_status = core.with_raw_response(get_status, client.get_status) self.info = core.with_raw_response(info, client.info) self.metadata = core.with_raw_response(metadata, client.metadata) self.read = core.with_raw_response(read, client.read) self.read_original = core.with_raw_response(read_original, client.read_original) self.reference = core.with_raw_response(reference, client.reference) self.retrieve = core.with_raw_response(retrieve, client.retrieve) + self.transform = core.with_raw_response(transform, client.transform) self.upload = core.with_raw_response(upload, client.upload) self.upload_media = core.with_raw_response(upload_media, client.upload_media) @@ -789,25 +977,31 @@ class _MediaSetClientStreaming: def __init__(self, client: MediaSetClient) -> None: def calculate(_: media_sets_models.TrackedTransformationResponse): ... def create(_: media_sets_models.TransactionId): ... + def get_result(_: bytes): ... def get_rid_by_path(_: media_sets_models.GetMediaItemRidByPathResponse): ... + def get_status(_: media_sets_models.GetTransformationJobStatusResponse): ... def info(_: media_sets_models.GetMediaItemInfoResponse): ... def metadata(_: media_sets_models.MediaItemMetadata): ... def read(_: bytes): ... def read_original(_: bytes): ... def reference(_: core_models.MediaReference): ... def retrieve(_: bytes): ... + def transform(_: media_sets_models.TransformMediaItemResponse): ... def upload(_: media_sets_models.PutMediaItemResponse): ... def upload_media(_: core_models.MediaReference): ... self.calculate = core.with_streaming_response(calculate, client.calculate) self.create = core.with_streaming_response(create, client.create) + self.get_result = core.with_streaming_response(get_result, client.get_result) self.get_rid_by_path = core.with_streaming_response(get_rid_by_path, client.get_rid_by_path) + self.get_status = core.with_streaming_response(get_status, client.get_status) self.info = core.with_streaming_response(info, client.info) self.metadata = core.with_streaming_response(metadata, client.metadata) self.read = core.with_streaming_response(read, client.read) self.read_original = core.with_streaming_response(read_original, client.read_original) self.reference = core.with_streaming_response(reference, client.reference) self.retrieve = core.with_streaming_response(retrieve, client.retrieve) + self.transform = core.with_streaming_response(transform, client.transform) self.upload = core.with_streaming_response(upload, client.upload) self.upload_media = core.with_streaming_response(upload_media, client.upload_media) @@ -1031,6 +1225,64 @@ def create( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_result( + self, + media_set_rid: core_models.MediaSetRid, + media_item_rid: core_models.MediaItemRid, + transformation_job_id: media_sets_models.TransformationJobId, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + token: typing.Optional[core_models.MediaItemReadToken] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[bytes]: + """ + Gets the result of a completed transformation job. Returns the transformed media content as binary data. + This endpoint will return an error if the transformation job has not completed successfully. + + :param media_set_rid: The RID of the media set. + :type media_set_rid: MediaSetRid + :param media_item_rid: The RID of the media item. + :type media_item_rid: MediaItemRid + :param transformation_job_id: The ID of the transformation job. + :type transformation_job_id: TransformationJobId + :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. + :type preview: Optional[PreviewMode] + :param token: + :type token: Optional[MediaItemReadToken] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[bytes] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transformationJobs/{transformationJobId}/result", + query_params={ + "preview": preview, + }, + path_params={ + "mediaSetRid": media_set_rid, + "mediaItemRid": media_item_rid, + "transformationJobId": transformation_job_id, + }, + header_params={ + "Token": token, + "Accept": "*/*", + }, + body=None, + response_type=bytes, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -1092,6 +1344,63 @@ def get_rid_by_path( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_status( + self, + media_set_rid: core_models.MediaSetRid, + media_item_rid: core_models.MediaItemRid, + transformation_job_id: media_sets_models.TransformationJobId, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + token: typing.Optional[core_models.MediaItemReadToken] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[media_sets_models.GetTransformationJobStatusResponse]: + """ + Gets the status of a transformation job. + + :param media_set_rid: The RID of the media set. + :type media_set_rid: MediaSetRid + :param media_item_rid: The RID of the media item. + :type media_item_rid: MediaItemRid + :param transformation_job_id: The ID of the transformation job. + :type transformation_job_id: TransformationJobId + :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. + :type preview: Optional[PreviewMode] + :param token: + :type token: Optional[MediaItemReadToken] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[media_sets_models.GetTransformationJobStatusResponse] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transformationJobs/{transformationJobId}", + query_params={ + "preview": preview, + }, + path_params={ + "mediaSetRid": media_set_rid, + "mediaItemRid": media_item_rid, + "transformationJobId": transformation_job_id, + }, + header_params={ + "Token": token, + "Accept": "application/json", + }, + body=None, + response_type=media_sets_models.GetTransformationJobStatusResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -1413,6 +1722,69 @@ def retrieve( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def transform( + self, + media_set_rid: core_models.MediaSetRid, + media_item_rid: core_models.MediaItemRid, + *, + transformation: media_sets_models.Transformation, + preview: typing.Optional[core_models.PreviewMode] = None, + token: typing.Optional[core_models.MediaItemReadToken] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[media_sets_models.TransformMediaItemResponse]: + """ + Initiates a transformation on a media item. Returns a job ID that can be used to check the status and retrieve + the result of the transformation. + + Transforming a media item requires that you are able to read the media item, either via `api:mediasets-read` or + via a `MediaItemReadToken` + + :param media_set_rid: The RID of the media set. + :type media_set_rid: MediaSetRid + :param media_item_rid: The RID of the media item. + :type media_item_rid: MediaItemRid + :param transformation: + :type transformation: Transformation + :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. + :type preview: Optional[PreviewMode] + :param token: + :type token: Optional[MediaItemReadToken] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[media_sets_models.TransformMediaItemResponse] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/mediasets/{mediaSetRid}/items/{mediaItemRid}/transform", + query_params={ + "preview": preview, + }, + path_params={ + "mediaSetRid": media_set_rid, + "mediaItemRid": media_item_rid, + }, + header_params={ + "Token": token, + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=media_sets_models.TransformMediaItemRequest( + transformation=transformation, + ), + response_type=media_sets_models.TransformMediaItemResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -1493,6 +1865,7 @@ def upload_media( *, filename: core_models.MediaItemPath, attribution: typing.Optional[core_models.Attribution] = None, + media_item_rid: typing.Optional[core_models.MediaItemRid] = None, preview: typing.Optional[core_models.PreviewMode] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, @@ -1507,10 +1880,12 @@ def upload_media( :param body: Body of the request :type body: bytes - :param filename: The path to write the media item to. Required if the backing media set requires paths. + :param filename: A user-defined label for a media item within a media set. Required if the backing media set requires paths. Uploading multiple files to the same path will result in only the most recent file being associated with the path. :type filename: MediaItemPath :param attribution: used for passing through usage attribution :type attribution: Optional[Attribution] + :param media_item_rid: An optional RID to use for the media item to create. If omitted, the server will automatically generate a RID. In most cases, the server-generated RID should be preferred; only specify a custom RID if your workflow strictly requires deterministic or client-controlled identifiers. The RID must be in the format of `ri.mio..media-item.`, where `` is the same as the instance part of the media set RID, and `` is a UUID. An `InvalidMediaItemRid` error will be thrown if the RID is not in the expected format. A `MediaItemRidAlreadyExists` error will be thrown if the media set already contains a media item with the same RID. + :type media_item_rid: Optional[MediaItemRid] :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. :type preview: Optional[PreviewMode] :param request_timeout: timeout setting for this request in seconds. @@ -1525,6 +1900,7 @@ def upload_media( resource_path="/v2/mediasets/media/upload", query_params={ "filename": filename, + "mediaItemRid": media_item_rid, "preview": preview, }, path_params={}, @@ -1548,13 +1924,16 @@ def abort(_: None): ... def calculate(_: media_sets_models.TrackedTransformationResponse): ... def commit(_: None): ... def create(_: media_sets_models.TransactionId): ... + def get_result(_: bytes): ... def get_rid_by_path(_: media_sets_models.GetMediaItemRidByPathResponse): ... + def get_status(_: media_sets_models.GetTransformationJobStatusResponse): ... def info(_: media_sets_models.GetMediaItemInfoResponse): ... def metadata(_: media_sets_models.MediaItemMetadata): ... def read(_: bytes): ... def read_original(_: bytes): ... def reference(_: core_models.MediaReference): ... def retrieve(_: bytes): ... + def transform(_: media_sets_models.TransformMediaItemResponse): ... def upload(_: media_sets_models.PutMediaItemResponse): ... def upload_media(_: core_models.MediaReference): ... @@ -1562,13 +1941,16 @@ def upload_media(_: core_models.MediaReference): ... self.calculate = core.async_with_raw_response(calculate, client.calculate) self.commit = core.async_with_raw_response(commit, client.commit) self.create = core.async_with_raw_response(create, client.create) + self.get_result = core.async_with_raw_response(get_result, client.get_result) self.get_rid_by_path = core.async_with_raw_response(get_rid_by_path, client.get_rid_by_path) + self.get_status = core.async_with_raw_response(get_status, client.get_status) self.info = core.async_with_raw_response(info, client.info) self.metadata = core.async_with_raw_response(metadata, client.metadata) self.read = core.async_with_raw_response(read, client.read) self.read_original = core.async_with_raw_response(read_original, client.read_original) self.reference = core.async_with_raw_response(reference, client.reference) self.retrieve = core.async_with_raw_response(retrieve, client.retrieve) + self.transform = core.async_with_raw_response(transform, client.transform) self.upload = core.async_with_raw_response(upload, client.upload) self.upload_media = core.async_with_raw_response(upload_media, client.upload_media) @@ -1577,26 +1959,32 @@ class _AsyncMediaSetClientStreaming: def __init__(self, client: AsyncMediaSetClient) -> None: def calculate(_: media_sets_models.TrackedTransformationResponse): ... def create(_: media_sets_models.TransactionId): ... + def get_result(_: bytes): ... def get_rid_by_path(_: media_sets_models.GetMediaItemRidByPathResponse): ... + def get_status(_: media_sets_models.GetTransformationJobStatusResponse): ... def info(_: media_sets_models.GetMediaItemInfoResponse): ... def metadata(_: media_sets_models.MediaItemMetadata): ... def read(_: bytes): ... def read_original(_: bytes): ... def reference(_: core_models.MediaReference): ... def retrieve(_: bytes): ... + def transform(_: media_sets_models.TransformMediaItemResponse): ... def upload(_: media_sets_models.PutMediaItemResponse): ... def upload_media(_: core_models.MediaReference): ... self.calculate = core.async_with_streaming_response(calculate, client.calculate) self.create = core.async_with_streaming_response(create, client.create) + self.get_result = core.async_with_streaming_response(get_result, client.get_result) self.get_rid_by_path = core.async_with_streaming_response( get_rid_by_path, client.get_rid_by_path ) + self.get_status = core.async_with_streaming_response(get_status, client.get_status) self.info = core.async_with_streaming_response(info, client.info) self.metadata = core.async_with_streaming_response(metadata, client.metadata) self.read = core.async_with_streaming_response(read, client.read) self.read_original = core.async_with_streaming_response(read_original, client.read_original) self.reference = core.async_with_streaming_response(reference, client.reference) self.retrieve = core.async_with_streaming_response(retrieve, client.retrieve) + self.transform = core.async_with_streaming_response(transform, client.transform) self.upload = core.async_with_streaming_response(upload, client.upload) self.upload_media = core.async_with_streaming_response(upload_media, client.upload_media) diff --git a/foundry_sdk/v2/media_sets/models.py b/foundry_sdk/v2/media_sets/models.py index 8cdf00b42..f9c7b6e0b 100644 --- a/foundry_sdk/v2/media_sets/models.py +++ b/foundry_sdk/v2/media_sets/models.py @@ -35,10 +35,64 @@ class AffineTransform(core.ModelBase): y_scale: typing.Optional[float] = pydantic.Field(alias=str("yScale"), default=None) # type: ignore[literal-required] +class AnnotateImageOperation(core.ModelBase): + """Annotates an image with bounding boxes, labels, and colors.""" + + annotations: typing.List[Annotation] + """The list of annotations to draw on the image.""" + + type: typing.Literal["annotate"] = "annotate" + + +class Annotation(core.ModelBase): + """An annotation to draw on an image.""" + + geometry: AnnotateGeometry + label: typing.Optional[str] = None + """An optional text label to display with the annotation.""" + + color: typing.Optional[Color] = None + thickness: typing.Optional[float] = None + """The thickness of the annotation lines.""" + + font_size: typing.Optional[int] = pydantic.Field(alias=str("fontSize"), default=None) # type: ignore[literal-required] + """The font size for the label text.""" + + +class AudioChannelOperation(core.ModelBase): + """Selects a specific channel from multi-channel audio.""" + + encode_format: AudioEncodeFormat = pydantic.Field(alias=str("encodeFormat")) # type: ignore[literal-required] + channel: int + """The channel number to select.""" + + type: typing.Literal["channel"] = "channel" + + +class AudioChunkOperation(core.ModelBase): + """Chunks audio into smaller segments of the specified duration.""" + + chunk_duration_milliseconds: int = pydantic.Field(alias=str("chunkDurationMilliseconds")) # type: ignore[literal-required] + """Duration of each chunk in milliseconds.""" + + encode_format: AudioEncodeFormat = pydantic.Field(alias=str("encodeFormat")) # type: ignore[literal-required] + chunk_index: int = pydantic.Field(alias=str("chunkIndex")) # type: ignore[literal-required] + """The chunk index to retain.""" + + type: typing.Literal["chunk"] = "chunk" + + AudioDecodeFormat = typing.Literal["FLAC", "MP2", "MP3", "MP4", "NIST_SPHERE", "OGG", "WAV", "WEBM"] """The format of an audio media item.""" +AudioEncodeFormat = typing_extensions.Annotated[ + typing.Union["Mp3Format", "WavEncodeFormat", "TsAudioContainerFormat"], + pydantic.Field(discriminator="type"), +] +"""The output format for encoding audio.""" + + class AudioMediaItemMetadata(core.ModelBase): """Metadata for audio media items.""" @@ -50,6 +104,13 @@ class AudioMediaItemMetadata(core.ModelBase): type: typing.Literal["audio"] = "audio" +AudioOperation = typing_extensions.Annotated[ + typing.Union["AudioChannelOperation", "AudioChunkOperation", "ConvertAudioOperation"], + pydantic.Field(discriminator="type"), +] +"""The operation to perform on audio.""" + + class AudioSpecification(core.ModelBase): """Technical specifications for audio media items.""" @@ -63,6 +124,30 @@ class AudioSpecification(core.ModelBase): """Number of audio channels in the audio stream.""" +AudioToTextOperation = typing_extensions.Annotated[ + typing.Union["TranscribeOperation", "WaveformOperation"], pydantic.Field(discriminator="type") +] +"""The operation to perform for audio to text conversion.""" + + +class AudioToTextTransformation(core.ModelBase): + """Converts audio to text.""" + + operation: AudioToTextOperation + type: typing.Literal["audioToText"] = "audioToText" + + +class AudioTransformation(core.ModelBase): + """Transforms audio media items.""" + + operation: AudioOperation + type: typing.Literal["audio"] = "audio" + + +AvailableEmbeddingModelIds = typing.Literal["GOOGLE_SIGLIP_2"] +"""Available embedding models that can be used with the service.""" + + class BandInfo(core.ModelBase): """Information about a band in an image.""" @@ -72,6 +157,29 @@ class BandInfo(core.ModelBase): unit_interpretation: typing.Optional[UnitInterpretation] = pydantic.Field(alias=str("unitInterpretation"), default=None) # type: ignore[literal-required] +class BoundingBox(core.ModelBase): + """A rectangular bounding box for annotations.""" + + left: float + """The left coordinate of the bounding box.""" + + top: float + """The top coordinate of the bounding box.""" + + width: float + """The width of the bounding box.""" + + height: float + """The height of the bounding box.""" + + +class BoundingBoxGeometry(core.ModelBase): + """A rectangular bounding box geometry for annotations.""" + + bounding_box: BoundingBox = pydantic.Field(alias=str("boundingBox")) # type: ignore[literal-required] + type: typing.Literal["boundingBox"] = "boundingBox" + + BranchName = str """ A name for a media set branch. Valid branch names must be (a) non-empty, (b) less than 256 characters, and @@ -83,6 +191,22 @@ class BandInfo(core.ModelBase): """A resource identifier that identifies a branch of a media set.""" +class Color(core.ModelBase): + """An RGBA color value.""" + + r: int + """Red component (0-255).""" + + g: int + """Green component (0-255).""" + + b: int + """Blue component (0-255).""" + + a: typing.Optional[float] = None + """Alpha component (0-1, where 0 is transparent and 1 is opaque).""" + + ColorInterpretation = typing.Literal[ "UNDEFINED", "GRAY", @@ -131,6 +255,69 @@ class CommonDicomDataElements(core.ModelBase): """The series time.""" +class ContrastBinarize(core.ModelBase): + """Binarize contrast operation.""" + + threshold: typing.Optional[int] = None + """ + The threshold value (0-255). Pixels with intensity below this value become black, + others become white. If not specified, the threshold is computed automatically. + """ + + type: typing.Literal["binarize"] = "binarize" + + +class ContrastEqualize(core.ModelBase): + """Equalizes the histogram of an image to improve contrast.""" + + type: typing.Literal["equalize"] = "equalize" + + +class ContrastImageOperation(core.ModelBase): + """Applies contrast adjustments to an image.""" + + contrast_type: ContrastType = pydantic.Field(alias=str("contrastType")) # type: ignore[literal-required] + type: typing.Literal["contrast"] = "contrast" + + +class ContrastRayleigh(core.ModelBase): + """Applies Rayleigh distribution-based contrast adjustment.""" + + sigma: float + """The scaling parameter for the Rayleigh distribution (0-1).""" + + type: typing.Literal["rayleigh"] = "rayleigh" + + +ContrastType = typing_extensions.Annotated[ + typing.Union["ContrastEqualize", "ContrastRayleigh", "ContrastBinarize"], + pydantic.Field(discriminator="type"), +] +"""The type of contrast adjustment to apply.""" + + +class ConvertAudioOperation(core.ModelBase): + """Converts audio to the specified format.""" + + encode_format: AudioEncodeFormat = pydantic.Field(alias=str("encodeFormat")) # type: ignore[literal-required] + type: typing.Literal["convert"] = "convert" + + +class ConvertDocumentOperation(core.ModelBase): + """Converts a document to PDF format.""" + + type: typing.Literal["convertDocument"] = "convertDocument" + + +class ConvertSheetToJsonOperation(core.ModelBase): + """Converts a specified sheet to JSON format.""" + + sheet_name: str = pydantic.Field(alias=str("sheetName")) # type: ignore[literal-required] + """The sheet name.""" + + type: typing.Literal["convertSheetToJson"] = "convertSheetToJson" + + class CoordinateReferenceSystem(core.ModelBase): """The coordinate reference system for geo-referenced imagery.""" @@ -138,6 +325,30 @@ class CoordinateReferenceSystem(core.ModelBase): """The Well-Known Text representation of the CRS.""" +class CreatePdfOperation(core.ModelBase): + """Converts an image to a PDF document.""" + + type: typing.Literal["createPdf"] = "createPdf" + + +class CropImageOperation(core.ModelBase): + """Crops an image to a rectangular sub-window.""" + + x_offset: int = pydantic.Field(alias=str("xOffset")) # type: ignore[literal-required] + """The x offset in pixels from the left hand side of the image.""" + + y_offset: int = pydantic.Field(alias=str("yOffset")) # type: ignore[literal-required] + """The y offset in pixels from the top of the image.""" + + width: int + """The width of the cropping box in pixels.""" + + height: int + """The height of the cropping box in pixels.""" + + type: typing.Literal["crop"] = "crop" + + DataType = typing.Literal[ "UNDEFINED", "BYTE", @@ -158,6 +369,18 @@ class CoordinateReferenceSystem(core.ModelBase): """The data type of a band.""" +class DecryptImageOperation(core.ModelBase): + """Decrypts bounding boxes in an image using a commutative encryption algorithm.""" + + polygons: typing.List[ImageRegionPolygon] + """The polygons defining the regions to decrypt.""" + + cipher_license_rid: core.RID = pydantic.Field(alias=str("cipherLicenseRid")) # type: ignore[literal-required] + """The resource identifier for the cipher license.""" + + type: typing.Literal["decrypt"] = "decrypt" + + DicomDataElementKey = str """The key of a DICOM data element.""" @@ -205,6 +428,14 @@ class DicomMetaInformationV1(core.ModelBase): type: typing.Literal["v1"] = "v1" +class DicomToImageTransformation(core.ModelBase): + """Renders DICOM (Digital Imaging and Communications in Medicine) files as images.""" + + encoding: ImageryEncodeFormat + operation: DicomToImageOperation + type: typing.Literal["dicomToImage"] = "dicomToImage" + + class Dimensions(core.ModelBase): """The dimensions of an image.""" @@ -219,6 +450,13 @@ class Dimensions(core.ModelBase): """The format of a document media item.""" +class DocumentExtractLayoutAwareContentOperation(core.ModelBase): + """Extracts content from a document with layout information preserved.""" + + parameters: LayoutAwareExtractionParameters + type: typing.Literal["extractLayoutAwareContent"] = "extractLayoutAwareContent" + + class DocumentMediaItemMetadata(core.ModelBase): """Metadata for document media items.""" @@ -238,6 +476,60 @@ class DocumentMediaItemMetadata(core.ModelBase): type: typing.Literal["document"] = "document" +DocumentToDocumentOperation = typing_extensions.Annotated[ + typing.Union["SlicePdfRangeOperation", "ConvertDocumentOperation"], + pydantic.Field(discriminator="type"), +] +"""The operation to perform for document to document conversion.""" + + +class DocumentToDocumentTransformation(core.ModelBase): + """Transforms documents to documents.""" + + encoding: DocumentEncodeFormat + operation: DocumentToDocumentOperation + type: typing.Literal["documentToDocument"] = "documentToDocument" + + +DocumentToImageOperation = typing_extensions.Annotated[ + typing.Union["RenderPageToFitBoundingBoxOperation", "RenderPageOperation"], + pydantic.Field(discriminator="type"), +] +"""The operation to perform for document to image conversion.""" + + +class DocumentToImageTransformation(core.ModelBase): + """Renders document pages as images.""" + + encoding: ImageryEncodeFormat + operation: DocumentToImageOperation + type: typing.Literal["documentToImage"] = "documentToImage" + + +DocumentToTextOperation = typing_extensions.Annotated[ + typing.Union[ + "ExtractTableOfContentsOperation", + "GetPdfPageDimensionsOperation", + "ExtractAllTextOperation", + "ExtractTextFromPagesToArrayOperation", + "OcrOnPageOperation", + "ExtractFormFieldsOperation", + "ExtractUnstructuredTextFromPageOperation", + "DocumentExtractLayoutAwareContentOperation", + "OcrOnPagesOperation", + ], + pydantic.Field(discriminator="type"), +] +"""The operation to perform for document to text conversion.""" + + +class DocumentToTextTransformation(core.ModelBase): + """Extracts text from documents.""" + + operation: DocumentToTextOperation + type: typing.Literal["documentToText"] = "documentToText" + + class EmailAttachment(core.ModelBase): """Metadata about an email attachment.""" @@ -286,6 +578,126 @@ class EmailMediaItemMetadata(core.ModelBase): type: typing.Literal["email"] = "email" +class EmailToAttachmentTransformation(core.ModelBase): + """Extracts attachments from email.""" + + operation: EmailToAttachmentOperation + type: typing.Literal["emailToAttachment"] = "emailToAttachment" + + +EmailToTextEncodeFormat = typing.Literal["TEXT", "HTML"] +"""The output format for email body extraction.""" + + +class EmailToTextTransformation(core.ModelBase): + """Extracts text content from email.""" + + operation: EmailToTextOperation + type: typing.Literal["emailToText"] = "emailToText" + + +class EncryptImageOperation(core.ModelBase): + """Encrypts bounding boxes in an image using a commutative encryption algorithm.""" + + polygons: typing.List[ImageRegionPolygon] + """The polygons defining the regions to encrypt.""" + + cipher_license_rid: core.RID = pydantic.Field(alias=str("cipherLicenseRid")) # type: ignore[literal-required] + """The resource identifier for the cipher license.""" + + type: typing.Literal["encrypt"] = "encrypt" + + +class ExtractAllTextOperation(core.ModelBase): + """ + Extracts text across all pages of the document. + For PDF documents, includes all text. For DocX documents, includes only regular paragraphs. + """ + + type: typing.Literal["extractAllText"] = "extractAllText" + + +class ExtractAudioOperation(core.ModelBase): + """Extracts the first audio stream from the video unchanged.""" + + type: typing.Literal["extractAudio"] = "extractAudio" + + +class ExtractFirstFrameOperation(core.ModelBase): + """ + Extracts the first full scene frame from the video. + If both width and height are not specified, preserves the original size. + If only one dimension is specified, the other is calculated to preserve aspect ratio. + """ + + height: typing.Optional[int] = None + """The desired height in pixels.""" + + width: typing.Optional[int] = None + """The desired width in pixels.""" + + type: typing.Literal["extractFirstFrame"] = "extractFirstFrame" + + +class ExtractFormFieldsOperation(core.ModelBase): + """Extracts form field data from a PDF document.""" + + type: typing.Literal["extractFormFields"] = "extractFormFields" + + +class ExtractFramesAtTimestampsOperation(core.ModelBase): + """ + Extracts frames from the video at specified timestamps. + If only one dimension is specified, the other is calculated to preserve aspect ratio. + """ + + height: typing.Optional[int] = None + """The desired height in pixels.""" + + width: typing.Optional[int] = None + """The desired width in pixels.""" + + timestamp: float + """The timestamp in seconds.""" + + type: typing.Literal["extractFramesAtTimestamps"] = "extractFramesAtTimestamps" + + +class ExtractSceneFramesOperation(core.ModelBase): + """Extracts all scene frames from a video as images in an archive.""" + + encoding: ImageryEncodeFormat + scene_score: typing.Optional[SceneScore] = pydantic.Field(alias=str("sceneScore"), default=None) # type: ignore[literal-required] + type: typing.Literal["extractSceneFrames"] = "extractSceneFrames" + + +class ExtractTableOfContentsOperation(core.ModelBase): + """Extracts the table of contents from a document.""" + + type: typing.Literal["extractTableOfContents"] = "extractTableOfContents" + + +class ExtractTextFromPagesToArrayOperation(core.ModelBase): + """Extracts text from multiple pages into a list of strings.""" + + start_page: typing.Optional[int] = pydantic.Field(alias=str("startPage"), default=None) # type: ignore[literal-required] + """The zero-indexed start page. Defaults to the first page if not specified.""" + + end_page: typing.Optional[int] = pydantic.Field(alias=str("endPage"), default=None) # type: ignore[literal-required] + """The zero-indexed end page (inclusive). Defaults to the last page if not specified.""" + + type: typing.Literal["extractTextFromPagesToArray"] = "extractTextFromPagesToArray" + + +class ExtractUnstructuredTextFromPageOperation(core.ModelBase): + """Extracts unstructured text from a specified page.""" + + page_number: int = pydantic.Field(alias=str("pageNumber")) # type: ignore[literal-required] + """The page number.""" + + type: typing.Literal["extractUnstructuredTextFromPage"] = "extractUnstructuredTextFromPage" + + FlipAxis = typing.Literal["HORIZONTAL", "VERTICAL", "UNKNOWN"] """The flip axis from EXIF orientation.""" @@ -296,6 +708,13 @@ class GcpList(core.ModelBase): gcps: typing.List[GroundControlPoint] +class GenerateEmbeddingOperation(core.ModelBase): + """Generates a vector embedding for an image using the specified model.""" + + model_id: AvailableEmbeddingModelIds = pydantic.Field(alias=str("modelId")) # type: ignore[literal-required] + type: typing.Literal["generateEmbedding"] = "generateEmbedding" + + class GeoMetadata(core.ModelBase): """Embedded geo-referencing data for an image.""" @@ -305,6 +724,25 @@ class GeoMetadata(core.ModelBase): gps_data: typing.Optional[GpsMetadata] = pydantic.Field(alias=str("gpsData"), default=None) # type: ignore[literal-required] +class GetEmailAttachmentOperation(core.ModelBase): + """Retrieves the bytes of an email attachment by index.""" + + mime_type: str = pydantic.Field(alias=str("mimeType")) # type: ignore[literal-required] + """The MIME type of the attachment. Must match the metadata attachment MIME type.""" + + attachment_index: int = pydantic.Field(alias=str("attachmentIndex")) # type: ignore[literal-required] + """The attachment index.""" + + type: typing.Literal["getEmailAttachment"] = "getEmailAttachment" + + +class GetEmailBodyOperation(core.ModelBase): + """Gets the email body in the specified format.""" + + output_format: EmailToTextEncodeFormat = pydantic.Field(alias=str("outputFormat")) # type: ignore[literal-required] + type: typing.Literal["getEmailBody"] = "getEmailBody" + + class GetMediaItemInfoResponse(core.ModelBase): """GetMediaItemInfoResponse""" @@ -312,6 +750,7 @@ class GetMediaItemInfoResponse(core.ModelBase): path: typing.Optional[core_models.MediaItemPath] = None logical_timestamp: LogicalTimestamp = pydantic.Field(alias=str("logicalTimestamp")) # type: ignore[literal-required] attribution: typing.Optional[MediaAttribution] = None + originally_uploaded_file_mime_type: typing.Optional[core_models.MediaType] = pydantic.Field(alias=str("originallyUploadedFileMimeType"), default=None) # type: ignore[literal-required] class GetMediaItemRidByPathResponse(core.ModelBase): @@ -320,6 +759,26 @@ class GetMediaItemRidByPathResponse(core.ModelBase): media_item_rid: typing.Optional[core_models.MediaItemRid] = pydantic.Field(alias=str("mediaItemRid"), default=None) # type: ignore[literal-required] +class GetPdfPageDimensionsOperation(core.ModelBase): + """Returns the dimensions of each page in a PDF document as JSON (in points).""" + + type: typing.Literal["getPdfPageDimensions"] = "getPdfPageDimensions" + + +class GetTimestampsForSceneFramesOperation(core.ModelBase): + """Returns a list of timestamps for scene frames in the video as JSON.""" + + scene_score: typing.Optional[SceneScore] = pydantic.Field(alias=str("sceneScore"), default=None) # type: ignore[literal-required] + type: typing.Literal["getTimestampsForSceneFrames"] = "getTimestampsForSceneFrames" + + +class GetTransformationJobStatusResponse(core.ModelBase): + """Response containing the status of a transformation job.""" + + status: TransformationJobStatus + job_id: TransformationJobId = pydantic.Field(alias=str("jobId")) # type: ignore[literal-required] + + class GpsMetadata(core.ModelBase): """GPS location metadata extracted from EXIF data embedded in the image.""" @@ -328,6 +787,12 @@ class GpsMetadata(core.ModelBase): altitude: typing.Optional[float] = None +class GrayscaleImageOperation(core.ModelBase): + """Converts an image to grayscale.""" + + type: typing.Literal["grayscale"] = "grayscale" + + class GroundControlPoint(core.ModelBase): """A ground control point for geo-referencing.""" @@ -372,10 +837,108 @@ class GroupWrapper(core.ModelBase): """The key of an image attribute within a domain.""" +class ImageExtractLayoutAwareContentOperation(core.ModelBase): + """Extracts text from an image with layout information preserved.""" + + parameters: LayoutAwareExtractionParameters + type: typing.Literal["extractLayoutAwareContent"] = "extractLayoutAwareContent" + + +class ImageOcrOperation(core.ModelBase): + """Performs OCR (Optical Character Recognition) on an image.""" + + parameters: OcrParameters + type: typing.Literal["ocr"] = "ocr" + + +ImageOperation = typing_extensions.Annotated[ + typing.Union[ + "RotateImageOperation", + "ResizeToFitBoundingBoxOperation", + "EncryptImageOperation", + "ContrastImageOperation", + "TileImageOperation", + "ResizeImageOperation", + "AnnotateImageOperation", + "DecryptImageOperation", + "CropImageOperation", + "GrayscaleImageOperation", + ], + pydantic.Field(discriminator="type"), +] +"""An operation to perform on an image.""" + + +class ImagePixelCoordinate(core.ModelBase): + """Coordinate of a pixel in an image (x, y). Top left corner of the image is (0, 0).""" + + x: int + """Coordinate on the x-axis (width).""" + + y: int + """Coordinate on the y-axis (height).""" + + +ImageRegionPolygon = typing.List["ImagePixelCoordinate"] +""" +Polygon drawn by connecting adjacent coordinates in the list with straight lines. +A line is drawn between the last and first coordinates in the list to create a closed shape. +Used to define regions in an image for operations like encryption/decryption. +""" + + +class ImageToDocumentTransformation(core.ModelBase): + """Converts images to documents.""" + + operation: ImageToDocumentOperation + type: typing.Literal["imageToDocument"] = "imageToDocument" + + +class ImageToEmbeddingTransformation(core.ModelBase): + """Generates embeddings from images.""" + + operation: ImageToEmbeddingOperation + type: typing.Literal["imageToEmbedding"] = "imageToEmbedding" + + +ImageToTextOperation = typing_extensions.Annotated[ + typing.Union["ImageExtractLayoutAwareContentOperation", "ImageOcrOperation"], + pydantic.Field(discriminator="type"), +] +"""The operation to perform for image to text conversion.""" + + +class ImageToTextTransformation(core.ModelBase): + """Extracts text from images.""" + + operation: ImageToTextOperation + type: typing.Literal["imageToText"] = "imageToText" + + +class ImageTransformation(core.ModelBase): + """ + Transforms images with multiple operations applied in sequence. + Operations are applied in the order they appear in the list. + """ + + encoding: ImageryEncodeFormat + operations: typing.List[ImageOperation] + """The list of operations to apply to the image, in order.""" + + type: typing.Literal["image"] = "image" + + ImageryDecodeFormat = typing.Literal["BMP", "TIFF", "NITF", "JP2K", "JPG", "PNG", "WEBP"] """The format of an imagery media item.""" +ImageryEncodeFormat = typing_extensions.Annotated[ + typing.Union["JpgFormat", "TiffFormat", "PngFormat", "WebpFormat"], + pydantic.Field(discriminator="type"), +] +"""The output format for encoding imagery.""" + + class ImageryMediaItemMetadata(core.ModelBase): """Metadata for imagery (image) media items.""" @@ -407,6 +970,19 @@ class ImageryMediaItemMetadata(core.ModelBase): type: typing.Literal["imagery"] = "imagery" +class JpgFormat(core.ModelBase): + """JPEG image format.""" + + type: typing.Literal["jpg"] = "jpg" + + +class LayoutAwareExtractionParameters(core.ModelBase): + """Parameters for layout-aware content extraction.""" + + languages: typing.List[OcrLanguage] + """The languages to use for extraction.""" + + LogicalTimestamp = core.Long """ A number representing a logical ordering to be used for transactions, etc. @@ -455,6 +1031,7 @@ class MediaAttribution(core.ModelBase): "SpreadsheetMediaItemMetadata", "UntypedMediaItemMetadata", "AudioMediaItemMetadata", + "Model3dMediaItemMetadata", "VideoMediaItemMetadata", "DicomMediaItemMetadata", "EmailMediaItemMetadata", @@ -471,6 +1048,12 @@ class MediaAttribution(core.ModelBase): """Format of the media item attempted to be decoded based on the XML structure.""" +class MkvVideoContainerFormat(core.ModelBase): + """MKV (Matroska) video container format.""" + + type: typing.Literal["mkv"] = "mkv" + + Modality = typing.Literal[ "AR", "ASMT", @@ -567,6 +1150,288 @@ class MediaAttribution(core.ModelBase): """ +Model3dDecodeFormat = typing.Literal["LAS", "PLY", "OBJ"] +"""The format of a 3D model media item.""" + + +class Model3dMediaItemMetadata(core.ModelBase): + """Metadata for 3D model media items.""" + + format: Model3dDecodeFormat + model_type: Model3dType = pydantic.Field(alias=str("modelType")) # type: ignore[literal-required] + size_bytes: int = pydantic.Field(alias=str("sizeBytes")) # type: ignore[literal-required] + """The size of the media item in bytes.""" + + type: typing.Literal["model3d"] = "model3d" + + +Model3dType = typing.Literal["POINT_CLOUD", "MESH"] +"""The type of 3D model representation.""" + + +class MovVideoContainerFormat(core.ModelBase): + """MOV (QuickTime) video container format.""" + + type: typing.Literal["mov"] = "mov" + + +class Mp3Format(core.ModelBase): + """MP3 audio format.""" + + type: typing.Literal["mp3"] = "mp3" + + +class Mp4VideoContainerFormat(core.ModelBase): + """MP4 video container format.""" + + type: typing.Literal["mp4"] = "mp4" + + +class NumberOfChannels(core.ModelBase): + """Specifies the number of audio channels. Defaults to 2 (stereo).""" + + number_of_channels: int = pydantic.Field(alias=str("numberOfChannels")) # type: ignore[literal-required] + """The number of audio channels.""" + + type: typing.Literal["numberOfChannels"] = "numberOfChannels" + + +class OcrHocrOutputFormat(core.ModelBase): + """hOCR (HTML-based OCR) output format.""" + + type: typing.Literal["hocr"] = "hocr" + + +OcrLanguage = typing.Literal[ + "AFR", + "AMH", + "ARA", + "ASM", + "AZE", + "AZE_CYRL", + "BEL", + "BEN", + "BOD", + "BOS", + "BRE", + "BUL", + "CAT", + "CEB", + "CES", + "CHI_SIM", + "CHI_SIM_VERT", + "CHI_TRA", + "CHI_TRA_VERT", + "CHR", + "COS", + "CYM", + "DAN", + "DEU", + "DIV", + "DZO", + "ELL", + "ENG", + "ENM", + "EPO", + "EST", + "EUS", + "FAO", + "FAS", + "FIL", + "FIN", + "FRA", + "FRM", + "FRY", + "GLA", + "GLE", + "GLG", + "GRC", + "GUJ", + "HAT", + "HEB", + "HIN", + "HRV", + "HUN", + "HYE", + "IKU", + "IND", + "ISL", + "ITA", + "ITA_OLD", + "JAV", + "JPN", + "JPN_VERT", + "KAN", + "KAT", + "KAT_OLD", + "KAZ", + "KHM", + "KIR", + "KMR", + "KOR", + "KOR_VERT", + "LAO", + "LAT", + "LAV", + "LIT", + "LTZ", + "MAL", + "MAR", + "MKD", + "MLT", + "MON", + "MRI", + "MSA", + "MYA", + "NEP", + "NLD", + "NOR", + "OCI", + "ORI", + "OSD", + "PAN", + "POL", + "POR", + "PUS", + "QUE", + "RON", + "RUS", + "SAN", + "SIN", + "SLK", + "SLV", + "SND", + "SPA", + "SPA_OLD", + "SQI", + "SRP", + "SRP_LATN", + "SUN", + "SWA", + "SWE", + "SYR", + "TAM", + "TAT", + "TEL", + "TGK", + "THA", + "TIR", + "TON", + "TUR", + "UIG", + "UKR", + "URD", + "UZB", + "UZB_CYRL", + "VIE", + "YID", + "YOR", +] +"""Language codes for OCR.""" + + +OcrLanguageOrScript = typing_extensions.Annotated[ + typing.Union["OcrLanguageWrapper", "OcrScriptWrapper"], pydantic.Field(discriminator="type") +] +"""Either a specific language or a script for OCR.""" + + +class OcrLanguageWrapper(core.ModelBase): + """Wrapper for an OCR language.""" + + language: OcrLanguage + type: typing.Literal["language"] = "language" + + +class OcrOnPageOperation(core.ModelBase): + """Performs OCR (Optical Character Recognition) on a specific page of a document.""" + + page_number: int = pydantic.Field(alias=str("pageNumber")) # type: ignore[literal-required] + """The page number to perform OCR on.""" + + parameters: OcrParameters + type: typing.Literal["ocrOnPage"] = "ocrOnPage" + + +class OcrOnPagesOperation(core.ModelBase): + """Creates access patterns for OCR across pages of a document.""" + + parameters: OcrParameters + page_number: int = pydantic.Field(alias=str("pageNumber")) # type: ignore[literal-required] + """The page number.""" + + type: typing.Literal["ocrOnPages"] = "ocrOnPages" + + +OcrOutputFormat = typing_extensions.Annotated[ + typing.Union["OcrHocrOutputFormat", "OcrTextOutputFormat"], pydantic.Field(discriminator="type") +] +"""The output format for OCR results.""" + + +class OcrParameters(core.ModelBase): + """Parameters for OCR (Optical Character Recognition) operations.""" + + output_format: OcrOutputFormat = pydantic.Field(alias=str("outputFormat")) # type: ignore[literal-required] + languages: typing.List[OcrLanguageOrScript] + """The languages or scripts to use for OCR.""" + + +OcrScript = typing.Literal[ + "ARABIC", + "ARMENIAN", + "BENGALI", + "CANADIAN_ABORIGINAL", + "CHEROKEE", + "CYRILLIC", + "DEVANAGARI", + "ETHIOPIC", + "FRAKTUR", + "GEORGIAN", + "GREEK", + "GUJARATI", + "GURMUKHI", + "HAN_SIMPLIFIED", + "HAN_SIMPLIFIED_VERT", + "HAN_TRADITIONAL", + "HAN_TRADITIONAL_VERT", + "HANGUL", + "HANGUL_VERT", + "HEBREW", + "JAPANESE", + "JAPANESE_VERT", + "KANNADA", + "KHMER", + "LAO", + "LATIN", + "MALAYALAM", + "MYANMAR", + "ORIYA", + "SINHALA", + "SYRIAC", + "TAMIL", + "TELUGU", + "THAANA", + "THAI", + "TIBETAN", + "VIETNAMESE", +] +"""Script codes for OCR.""" + + +class OcrScriptWrapper(core.ModelBase): + """Wrapper for an OCR script.""" + + script: OcrScript + type: typing.Literal["script"] = "script" + + +class OcrTextOutputFormat(core.ModelBase): + """Plain text output format for OCR.""" + + type: typing.Literal["text"] = "text" + + class Orientation(core.ModelBase): """The orientation information as encoded in EXIF metadata.""" @@ -578,16 +1443,157 @@ class Orientation(core.ModelBase): """The palette interpretation of a band.""" +class PdfFormat(core.ModelBase): + """PDF document format.""" + + type: typing.Literal["pdf"] = "pdf" + + +PerformanceMode = typing.Literal["MORE_ECONOMICAL", "MORE_PERFORMANT"] +"""The performance mode for transcription.""" + + +class PlainTextNoSegmentData(core.ModelBase): + """Plain text transcription output format.""" + + add_timestamps: bool = pydantic.Field(alias=str("addTimestamps")) # type: ignore[literal-required] + """Whether to include timestamps in the output.""" + + type: typing.Literal["plainTextNoSegmentData"] = "plainTextNoSegmentData" + + +class PngFormat(core.ModelBase): + """PNG image format.""" + + type: typing.Literal["png"] = "png" + + +class Pttml(core.ModelBase): + """PTTML (Palantir Timed Text Markup Language) transcription output format.""" + + type: typing.Literal["pttml"] = "pttml" + + class PutMediaItemResponse(core.ModelBase): """PutMediaItemResponse""" media_item_rid: core_models.MediaItemRid = pydantic.Field(alias=str("mediaItemRid")) # type: ignore[literal-required] +class RenderImageLayerOperation(core.ModelBase): + """ + Renders a frame of a DICOM file as an image. + If only one dimension is specified, the other is calculated to preserve aspect ratio. + """ + + layer_number: typing.Optional[int] = pydantic.Field(alias=str("layerNumber"), default=None) # type: ignore[literal-required] + """The layer number to render. If not specified, renders the middle layer.""" + + height: typing.Optional[int] = None + """The desired height in pixels.""" + + width: typing.Optional[int] = None + """The desired width in pixels.""" + + type: typing.Literal["renderImageLayer"] = "renderImageLayer" + + +class RenderPageOperation(core.ModelBase): + """ + Renders a PDF page as an image. + If only one dimension is specified, the other is calculated to preserve aspect ratio. + """ + + page_number: typing.Optional[int] = pydantic.Field(alias=str("pageNumber"), default=None) # type: ignore[literal-required] + """The zero-indexed page number to render. Defaults to the first page if not specified.""" + + height: typing.Optional[int] = None + """The desired height in pixels.""" + + width: typing.Optional[int] = None + """The desired width in pixels.""" + + type: typing.Literal["renderPage"] = "renderPage" + + +class RenderPageToFitBoundingBoxOperation(core.ModelBase): + """Renders a PDF page to maximally fit within a bounding box while preserving aspect ratio.""" + + page_number: typing.Optional[int] = pydantic.Field(alias=str("pageNumber"), default=None) # type: ignore[literal-required] + """The zero-indexed page number to render. Defaults to the first page if not specified.""" + + width: int + """The width of the bounding box in pixels.""" + + height: int + """The height of the bounding box in pixels.""" + + type: typing.Literal["renderPageToFitBoundingBox"] = "renderPageToFitBoundingBox" + + +class ResizeImageOperation(core.ModelBase): + """ + Resizes an image to the specified dimensions. + If only one dimension is specified, the other is calculated to preserve aspect ratio. + """ + + height: typing.Optional[int] = None + """The desired height in pixels.""" + + width: typing.Optional[int] = None + """The desired width in pixels.""" + + auto_orient: typing.Optional[bool] = pydantic.Field(alias=str("autoOrient"), default=None) # type: ignore[literal-required] + """Whether to automatically orient the image based on EXIF metadata.""" + + type: typing.Literal["resize"] = "resize" + + +class ResizeToFitBoundingBoxOperation(core.ModelBase): + """Resizes an image to maximally fit within a bounding box while preserving aspect ratio.""" + + width: int + """The width of the bounding box in pixels.""" + + height: int + """The height of the bounding box in pixels.""" + + type: typing.Literal["resizeToFitBoundingBox"] = "resizeToFitBoundingBox" + + +class RotateImageOperation(core.ModelBase): + """Rotates an image clockwise by the specified angle.""" + + angle: RotationAngle + type: typing.Literal["rotate"] = "rotate" + + RotationAngle = typing.Literal["DEGREE_90", "DEGREE_180", "DEGREE_270", "UNKNOWN"] """The rotation angle from EXIF orientation.""" +SceneScore = typing.Literal["MORE_SENSITIVE", "STANDARD", "LESS_SENSITIVE"] +"""The sensitivity threshold for scene detection.""" + + +class SlicePdfRangeOperation(core.ModelBase): + """Slices a PDF to a specified page range.""" + + start_page_inclusive: int = pydantic.Field(alias=str("startPageInclusive")) # type: ignore[literal-required] + """The zero-indexed start page (inclusive).""" + + end_page_exclusive: int = pydantic.Field(alias=str("endPageExclusive")) # type: ignore[literal-required] + """The zero-indexed end page (exclusive).""" + + strictly_enforce_end_page: typing.Optional[bool] = pydantic.Field(alias=str("strictlyEnforceEndPage"), default=None) # type: ignore[literal-required] + """ + If true (default), the operation fails if endPage exceeds the document's page count. + If false, ends at min(endPage, lastPage). + """ + + type: typing.Literal["slicePdfRange"] = "slicePdfRange" + + SpreadsheetDecodeFormat = typing.Literal["XLSX"] """The format of a spreadsheet media item.""" @@ -611,6 +1617,43 @@ class SpreadsheetMediaItemMetadata(core.ModelBase): type: typing.Literal["spreadsheet"] = "spreadsheet" +class SpreadsheetToTextTransformation(core.ModelBase): + """Converts spreadsheet data to text/JSON.""" + + operation: SpreadsheetToTextOperation + type: typing.Literal["spreadsheetToText"] = "spreadsheetToText" + + +class TarFormat(core.ModelBase): + """TAR archive format.""" + + type: typing.Literal["tar"] = "tar" + + +class TiffFormat(core.ModelBase): + """TIFF image format.""" + + type: typing.Literal["tiff"] = "tiff" + + +class TileImageOperation(core.ModelBase): + """ + Generates Slippy map tiles (EPSG 3857) from a geo-embedded image. + Only supported for geo-embedded TIFF and NITF images with at most 100M square pixels. + """ + + zoom: int + """The zoom level of the tile.""" + + x: int + """The x coordinate of the tile.""" + + y: int + """The y coordinate of the tile.""" + + type: typing.Literal["tile"] = "tile" + + class TrackedTransformationFailedResponse(core.ModelBase): """TrackedTransformationFailedResponse""" @@ -644,6 +1687,322 @@ class TrackedTransformationSuccessfulResponse(core.ModelBase): """An identifier which represents a transaction on a media set.""" +class TranscodeOperation(core.ModelBase): + """Encodes video to the specified format.""" + + type: typing.Literal["transcode"] = "transcode" + + +class TranscribeJson(core.ModelBase): + """JSON transcription output format.""" + + type: typing.Literal["json"] = "json" + + +class TranscribeOperation(core.ModelBase): + """Transcribes speech in audio to text.""" + + language: typing.Optional[TranscriptionLanguage] = None + diarize: typing.Optional[bool] = None + """ + Whether to perform speaker diarization. Defaults to false. + Not supported in economical performance mode. + """ + + output_format: typing.Optional[TranscribeTextEncodeFormat] = pydantic.Field(alias=str("outputFormat"), default=None) # type: ignore[literal-required] + performance_mode: typing.Optional[PerformanceMode] = pydantic.Field(alias=str("performanceMode"), default=None) # type: ignore[literal-required] + type: typing.Literal["transcribe"] = "transcribe" + + +TranscribeTextEncodeFormat = typing_extensions.Annotated[ + typing.Union["PlainTextNoSegmentData", "TranscribeJson", "Pttml"], + pydantic.Field(discriminator="type"), +] +"""The output format for transcription results.""" + + +TranscriptionLanguage = typing.Literal[ + "AF", + "AM", + "AR", + "AS", + "AZ", + "BA", + "BE", + "BG", + "BN", + "BO", + "BR", + "BS", + "CA", + "CS", + "CY", + "DA", + "DE", + "EL", + "EN", + "ES", + "ET", + "EU", + "FA", + "FI", + "FO", + "FR", + "GL", + "GU", + "HA", + "HAW", + "HE", + "HI", + "HR", + "HT", + "HU", + "HY", + "ID", + "IS", + "IT", + "JA", + "JW", + "KA", + "KK", + "KM", + "KN", + "KO", + "LA", + "LB", + "LN", + "LO", + "LT", + "LV", + "MG", + "MI", + "MK", + "ML", + "MN", + "MR", + "MS", + "MT", + "MY", + "NE", + "NL", + "NN", + "false", + "OC", + "PA", + "PL", + "PS", + "PT", + "RO", + "RU", + "SA", + "SD", + "SI", + "SK", + "SL", + "SN", + "SO", + "SQ", + "SR", + "SU", + "SV", + "SW", + "TA", + "TE", + "TG", + "TH", + "TK", + "TL", + "TR", + "TT", + "UK", + "UR", + "UZ", + "VI", + "YI", + "YO", + "YUE", + "ZH", + "AFRIKAANS", + "ALBANIAN", + "AMHARIC", + "ARABIC", + "ARMENIAN", + "ASSAMESE", + "AZERBAIJANI", + "BASHKIR", + "BASQUE", + "BELARUSIAN", + "BENGALI", + "BOSNIAN", + "BRETON", + "BULGARIAN", + "BURMESE", + "CANTONESE", + "CASTILIAN", + "CATALAN", + "CHINESE", + "CROATIAN", + "CZECH", + "DANISH", + "DUTCH", + "ENGLISH", + "ESTONIAN", + "FAROESE", + "FINNISH", + "FLEMISH", + "FRENCH", + "GALICIAN", + "GEORGIAN", + "GERMAN", + "GREEK", + "GUJARATI", + "HAITIAN", + "HAITIAN_CREOLE", + "HAUSA", + "HAWAIIAN", + "HEBREW", + "HINDI", + "HUNGARIAN", + "ICELANDIC", + "INDONESIAN", + "ITALIAN", + "JAPANESE", + "JAVANESE", + "KANNADA", + "KAZAKH", + "KHMER", + "KOREAN", + "LAO", + "LATIN", + "LATVIAN", + "LETZEBURGESCH", + "LINGALA", + "LITHUANIAN", + "LUXEMBOURGISH", + "MACEDONIAN", + "MALAGASY", + "MALAY", + "MALAYALAM", + "MALTESE", + "MANDARIN", + "MAORI", + "MARATHI", + "MOLDAVIAN", + "MOLDOVAN", + "MONGOLIAN", + "MYANMAR", + "NEPALI", + "NORWEGIAN", + "NYNORSK", + "OCCITAN", + "PANJABI", + "PASHTO", + "PERSIAN", + "POLISH", + "PORTUGUESE", + "PUNJABI", + "PUSHTO", + "ROMANIAN", + "RUSSIAN", + "SANSKRIT", + "SERBIAN", + "SHONA", + "SINDHI", + "SINHALA", + "SINHALESE", + "SLOVAK", + "SLOVENIAN", + "SOMALI", + "SPANISH", + "SUNDANESE", + "SWAHILI", + "SWEDISH", + "TAGALOG", + "TAJIK", + "TAMIL", + "TATAR", + "TELUGU", + "THAI", + "TIBETAN", + "TURKISH", + "TURKMEN", + "UKRAINIAN", + "URDU", + "UZBEK", + "VALENCIAN", + "VIETNAMESE", + "WELSH", + "YIDDISH", + "YORUBA", +] +""" +Language codes for audio transcription. +If not specified, the language will be auto-detected from the first 30 seconds of audio. +""" + + +class TransformMediaItemRequest(core.ModelBase): + """Request to transform a media item.""" + + transformation: Transformation + + +class TransformMediaItemResponse(core.ModelBase): + """Response from initiating a media item transformation.""" + + status: TransformationJobStatus + job_id: TransformationJobId = pydantic.Field(alias=str("jobId")) # type: ignore[literal-required] + + +Transformation = typing_extensions.Annotated[ + typing.Union[ + "EmailToTextTransformation", + "ImageTransformation", + "SpreadsheetToTextTransformation", + "VideoToAudioTransformation", + "AudioToTextTransformation", + "EmailToAttachmentTransformation", + "VideoToArchiveTransformation", + "VideoToTextTransformation", + "ImageToTextTransformation", + "VideoToImageTransformation", + "VideoTransformation", + "ImageToDocumentTransformation", + "DicomToImageTransformation", + "DocumentToDocumentTransformation", + "DocumentToImageTransformation", + "ImageToEmbeddingTransformation", + "AudioTransformation", + "DocumentToTextTransformation", + ], + pydantic.Field(discriminator="type"), +] +""" +A transformation to apply to a media item. Each variant specifies the type of transformation +and any parameters required for the operation. +""" + + +TransformationJobId = str +"""An identifier for a media item transformation job.""" + + +TransformationJobStatus = typing.Literal["PENDING", "FAILED", "SUCCESSFUL"] +"""The status of a transformation job.""" + + +class TsAudioContainerFormat(core.ModelBase): + """MPEG Transport Stream audio container format.""" + + type: typing.Literal["ts"] = "ts" + + +class TsVideoContainerFormat(core.ModelBase): + """MPEG Transport Stream video container format.""" + + type: typing.Literal["ts"] = "ts" + + class UnitInterpretation(core.ModelBase): """The unit interpretation for a band.""" @@ -661,10 +2020,37 @@ class UntypedMediaItemMetadata(core.ModelBase): type: typing.Literal["untyped"] = "untyped" +class VideoChunkOperation(core.ModelBase): + """ + Chunks video into smaller segments of the specified duration. + The final chunk may be smaller than the specified duration. + """ + + chunk_duration_milliseconds: int = pydantic.Field(alias=str("chunkDurationMilliseconds")) # type: ignore[literal-required] + """Duration of each chunk in milliseconds.""" + + chunk_index: int = pydantic.Field(alias=str("chunkIndex")) # type: ignore[literal-required] + """The chunk index to retain.""" + + type: typing.Literal["chunk"] = "chunk" + + VideoDecodeFormat = typing.Literal["MP4", "MKV", "MOV", "TS"] """The format of a video media item.""" +VideoEncodeFormat = typing_extensions.Annotated[ + typing.Union[ + "Mp4VideoContainerFormat", + "MovVideoContainerFormat", + "MkvVideoContainerFormat", + "TsVideoContainerFormat", + ], + pydantic.Field(discriminator="type"), +] +"""The output format for encoding video.""" + + class VideoMediaItemMetadata(core.ModelBase): """Metadata for video media items.""" @@ -676,6 +2062,12 @@ class VideoMediaItemMetadata(core.ModelBase): type: typing.Literal["video"] = "video" +VideoOperation = typing_extensions.Annotated[ + typing.Union["TranscodeOperation", "VideoChunkOperation"], pydantic.Field(discriminator="type") +] +"""The operation to perform on the video.""" + + class VideoSpecification(core.ModelBase): """Technical specifications for video media items.""" @@ -686,50 +2078,268 @@ class VideoSpecification(core.ModelBase): """Approximate duration of the video, in seconds with up to two decimal digits (rounded up).""" +class VideoToArchiveTransformation(core.ModelBase): + """Extracts video frames to an archive format.""" + + encoding: ArchiveEncodeFormat + operation: VideoToArchiveOperation + type: typing.Literal["videoToArchive"] = "videoToArchive" + + +class VideoToAudioTransformation(core.ModelBase): + """Extracts audio from video.""" + + encoding: AudioEncodeFormat + operation: VideoToAudioOperation + type: typing.Literal["videoToAudio"] = "videoToAudio" + + +VideoToImageOperation = typing_extensions.Annotated[ + typing.Union["ExtractFirstFrameOperation", "ExtractFramesAtTimestampsOperation"], + pydantic.Field(discriminator="type"), +] +"""The operation to perform for video to image conversion.""" + + +class VideoToImageTransformation(core.ModelBase): + """Extracts video frames as images.""" + + encoding: ImageryEncodeFormat + operation: VideoToImageOperation + type: typing.Literal["videoToImage"] = "videoToImage" + + +class VideoToTextTransformation(core.ModelBase): + """Extracts metadata from video as text/JSON.""" + + operation: VideoToTextOperation + type: typing.Literal["videoToText"] = "videoToText" + + +class VideoTransformation(core.ModelBase): + """Transforms video media items.""" + + encoding: VideoEncodeFormat + operation: VideoOperation + type: typing.Literal["video"] = "video" + + +class WavEncodeFormat(core.ModelBase): + """WAV audio format with optional sample rate and channel layout.""" + + sample_rate: typing.Optional[int] = pydantic.Field(alias=str("sampleRate"), default=None) # type: ignore[literal-required] + """The sample rate in Hz. Defaults to 44100 Hz if not specified.""" + + audio_channel_layout: typing.Optional[AudioChannelLayout] = pydantic.Field(alias=str("audioChannelLayout"), default=None) # type: ignore[literal-required] + type: typing.Literal["wav"] = "wav" + + +class WaveformOperation(core.ModelBase): + """ + Generates waveform visualization data from audio. + Returns JSON with normalized doubles (0-1) representing amplitude. + """ + + peaks_per_second: int = pydantic.Field(alias=str("peaksPerSecond")) # type: ignore[literal-required] + """The number of peaks per second (1-1000).""" + + type: typing.Literal["waveform"] = "waveform" + + +class WebpFormat(core.ModelBase): + """WebP image format.""" + + type: typing.Literal["webp"] = "webp" + + +AnnotateGeometry = BoundingBoxGeometry +"""The geometry for an annotation.""" + + +ArchiveEncodeFormat = TarFormat +"""The output format for encoding archives.""" + + +AudioChannelLayout = NumberOfChannels +"""The audio channel layout configuration.""" + + DicomMetaInformation = DicomMetaInformationV1 """DICOM meta information.""" +DicomToImageOperation = RenderImageLayerOperation +"""The operation to perform for DICOM to image conversion.""" + + +DocumentEncodeFormat = PdfFormat +"""The output format for encoding documents.""" + + +EmailToAttachmentOperation = GetEmailAttachmentOperation +"""The operation to perform for email to attachment extraction.""" + + +EmailToTextOperation = GetEmailBodyOperation +"""The operation to perform for email to text extraction.""" + + +ImageToDocumentOperation = CreatePdfOperation +"""The operation to perform for image to document conversion.""" + + +ImageToEmbeddingOperation = GenerateEmbeddingOperation +"""The operation to perform for image to embedding conversion.""" + + +SpreadsheetToTextOperation = ConvertSheetToJsonOperation +"""The operation to perform for spreadsheet to text conversion.""" + + +VideoToArchiveOperation = ExtractSceneFramesOperation +"""The operation to perform for video to archive conversion.""" + + +VideoToAudioOperation = ExtractAudioOperation +"""The operation to perform for video to audio conversion.""" + + +VideoToTextOperation = GetTimestampsForSceneFramesOperation +"""The operation to perform for video to text conversion.""" + + +core.resolve_forward_references(AudioEncodeFormat, globalns=globals(), localns=locals()) +core.resolve_forward_references(AudioOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(AudioToTextOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(ContrastType, globalns=globals(), localns=locals()) +core.resolve_forward_references(DocumentToDocumentOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(DocumentToImageOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(DocumentToTextOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(ImageOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(ImageRegionPolygon, globalns=globals(), localns=locals()) +core.resolve_forward_references(ImageToTextOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(ImageryEncodeFormat, globalns=globals(), localns=locals()) core.resolve_forward_references(MailboxOrGroup, globalns=globals(), localns=locals()) core.resolve_forward_references(MediaItemMetadata, globalns=globals(), localns=locals()) +core.resolve_forward_references(OcrLanguageOrScript, globalns=globals(), localns=locals()) +core.resolve_forward_references(OcrOutputFormat, globalns=globals(), localns=locals()) core.resolve_forward_references(TrackedTransformationResponse, globalns=globals(), localns=locals()) +core.resolve_forward_references(TranscribeTextEncodeFormat, globalns=globals(), localns=locals()) +core.resolve_forward_references(Transformation, globalns=globals(), localns=locals()) +core.resolve_forward_references(VideoEncodeFormat, globalns=globals(), localns=locals()) +core.resolve_forward_references(VideoOperation, globalns=globals(), localns=locals()) +core.resolve_forward_references(VideoToImageOperation, globalns=globals(), localns=locals()) __all__ = [ "AffineTransform", + "AnnotateGeometry", + "AnnotateImageOperation", + "Annotation", + "ArchiveEncodeFormat", + "AudioChannelLayout", + "AudioChannelOperation", + "AudioChunkOperation", "AudioDecodeFormat", + "AudioEncodeFormat", "AudioMediaItemMetadata", + "AudioOperation", "AudioSpecification", + "AudioToTextOperation", + "AudioToTextTransformation", + "AudioTransformation", + "AvailableEmbeddingModelIds", "BandInfo", + "BoundingBox", + "BoundingBoxGeometry", "BranchName", "BranchRid", + "Color", "ColorInterpretation", "CommonDicomDataElements", + "ContrastBinarize", + "ContrastEqualize", + "ContrastImageOperation", + "ContrastRayleigh", + "ContrastType", + "ConvertAudioOperation", + "ConvertDocumentOperation", + "ConvertSheetToJsonOperation", "CoordinateReferenceSystem", + "CreatePdfOperation", + "CropImageOperation", "DataType", + "DecryptImageOperation", "DicomDataElementKey", "DicomMediaItemMetadata", "DicomMediaType", "DicomMetaInformation", "DicomMetaInformationV1", + "DicomToImageOperation", + "DicomToImageTransformation", "Dimensions", "DocumentDecodeFormat", + "DocumentEncodeFormat", + "DocumentExtractLayoutAwareContentOperation", "DocumentMediaItemMetadata", + "DocumentToDocumentOperation", + "DocumentToDocumentTransformation", + "DocumentToImageOperation", + "DocumentToImageTransformation", + "DocumentToTextOperation", + "DocumentToTextTransformation", "EmailAttachment", "EmailDecodeFormat", "EmailMediaItemMetadata", + "EmailToAttachmentOperation", + "EmailToAttachmentTransformation", + "EmailToTextEncodeFormat", + "EmailToTextOperation", + "EmailToTextTransformation", + "EncryptImageOperation", + "ExtractAllTextOperation", + "ExtractAudioOperation", + "ExtractFirstFrameOperation", + "ExtractFormFieldsOperation", + "ExtractFramesAtTimestampsOperation", + "ExtractSceneFramesOperation", + "ExtractTableOfContentsOperation", + "ExtractTextFromPagesToArrayOperation", + "ExtractUnstructuredTextFromPageOperation", "FlipAxis", "GcpList", + "GenerateEmbeddingOperation", "GeoMetadata", + "GetEmailAttachmentOperation", + "GetEmailBodyOperation", "GetMediaItemInfoResponse", "GetMediaItemRidByPathResponse", + "GetPdfPageDimensionsOperation", + "GetTimestampsForSceneFramesOperation", + "GetTransformationJobStatusResponse", "GpsMetadata", + "GrayscaleImageOperation", "GroundControlPoint", "Group", "GroupWrapper", "ImageAttributeDomain", "ImageAttributeKey", + "ImageExtractLayoutAwareContentOperation", + "ImageOcrOperation", + "ImageOperation", + "ImagePixelCoordinate", + "ImageRegionPolygon", + "ImageToDocumentOperation", + "ImageToDocumentTransformation", + "ImageToEmbeddingOperation", + "ImageToEmbeddingTransformation", + "ImageToTextOperation", + "ImageToTextTransformation", + "ImageTransformation", "ImageryDecodeFormat", + "ImageryEncodeFormat", "ImageryMediaItemMetadata", + "JpgFormat", + "LayoutAwareExtractionParameters", "LogicalTimestamp", "Mailbox", "MailboxOrGroup", @@ -737,21 +2347,85 @@ class VideoSpecification(core.ModelBase): "MediaAttribution", "MediaItemMetadata", "MediaItemXmlFormat", + "MkvVideoContainerFormat", "Modality", + "Model3dDecodeFormat", + "Model3dMediaItemMetadata", + "Model3dType", + "MovVideoContainerFormat", + "Mp3Format", + "Mp4VideoContainerFormat", + "NumberOfChannels", + "OcrHocrOutputFormat", + "OcrLanguage", + "OcrLanguageOrScript", + "OcrLanguageWrapper", + "OcrOnPageOperation", + "OcrOnPagesOperation", + "OcrOutputFormat", + "OcrParameters", + "OcrScript", + "OcrScriptWrapper", + "OcrTextOutputFormat", "Orientation", "PaletteInterpretation", + "PdfFormat", + "PerformanceMode", + "PlainTextNoSegmentData", + "PngFormat", + "Pttml", "PutMediaItemResponse", + "RenderImageLayerOperation", + "RenderPageOperation", + "RenderPageToFitBoundingBoxOperation", + "ResizeImageOperation", + "ResizeToFitBoundingBoxOperation", + "RotateImageOperation", "RotationAngle", + "SceneScore", + "SlicePdfRangeOperation", "SpreadsheetDecodeFormat", "SpreadsheetMediaItemMetadata", + "SpreadsheetToTextOperation", + "SpreadsheetToTextTransformation", + "TarFormat", + "TiffFormat", + "TileImageOperation", "TrackedTransformationFailedResponse", "TrackedTransformationPendingResponse", "TrackedTransformationResponse", "TrackedTransformationSuccessfulResponse", "TransactionId", + "TranscodeOperation", + "TranscribeJson", + "TranscribeOperation", + "TranscribeTextEncodeFormat", + "TranscriptionLanguage", + "TransformMediaItemRequest", + "TransformMediaItemResponse", + "Transformation", + "TransformationJobId", + "TransformationJobStatus", + "TsAudioContainerFormat", + "TsVideoContainerFormat", "UnitInterpretation", "UntypedMediaItemMetadata", + "VideoChunkOperation", "VideoDecodeFormat", + "VideoEncodeFormat", "VideoMediaItemMetadata", + "VideoOperation", "VideoSpecification", + "VideoToArchiveOperation", + "VideoToArchiveTransformation", + "VideoToAudioOperation", + "VideoToAudioTransformation", + "VideoToImageOperation", + "VideoToImageTransformation", + "VideoToTextOperation", + "VideoToTextTransformation", + "VideoTransformation", + "WavEncodeFormat", + "WaveformOperation", + "WebpFormat", ] diff --git a/foundry_sdk/v2/models/_client.py b/foundry_sdk/v2/models/_client.py index e4d3fd923..cb9f27627 100644 --- a/foundry_sdk/v2/models/_client.py +++ b/foundry_sdk/v2/models/_client.py @@ -48,6 +48,26 @@ def Model(self): config=self._config, ) + @cached_property + def ModelStudio(self): + from foundry_sdk.v2.models.model_studio import ModelStudioClient + + return ModelStudioClient( + auth=self._auth, + hostname=self._hostname, + config=self._config, + ) + + @cached_property + def ModelStudioTrainer(self): + from foundry_sdk.v2.models.model_studio_trainer import ModelStudioTrainerClient + + return ModelStudioTrainerClient( + auth=self._auth, + hostname=self._hostname, + config=self._config, + ) + class AsyncModelsClient: """ @@ -65,5 +85,13 @@ def __init__( config: typing.Optional[core.Config] = None, ): from foundry_sdk.v2.models.model import AsyncModelClient + from foundry_sdk.v2.models.model_studio import AsyncModelStudioClient + from foundry_sdk.v2.models.model_studio_trainer import AsyncModelStudioTrainerClient # NOQA self.Model = AsyncModelClient(auth=auth, hostname=hostname, config=config) + + self.ModelStudio = AsyncModelStudioClient(auth=auth, hostname=hostname, config=config) + + self.ModelStudioTrainer = AsyncModelStudioTrainerClient( + auth=auth, hostname=hostname, config=config + ) diff --git a/foundry_sdk/v2/models/errors.py b/foundry_sdk/v2/models/errors.py index 788dc1e22..566f9cffb 100644 --- a/foundry_sdk/v2/models/errors.py +++ b/foundry_sdk/v2/models/errors.py @@ -38,6 +38,22 @@ class CondaSolveFailureForProvidedPackages(errors.BadRequestError): error_instance_id: str +class CreateConfigValidationErrorParameters(typing_extensions.TypedDict): + """The provided configuration is invalid.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + studioRid: models_models.ModelStudioRid + validationFailures: str + + +@dataclass +class CreateConfigValidationError(errors.BadRequestError): + name: typing.Literal["CreateConfigValidationError"] + parameters: CreateConfigValidationErrorParameters + error_instance_id: str + + class CreateModelPermissionDeniedParameters(typing_extensions.TypedDict): """Could not create the Model.""" @@ -51,6 +67,34 @@ class CreateModelPermissionDenied(errors.PermissionDeniedError): error_instance_id: str +class CreateModelStudioConfigVersionPermissionDeniedParameters(typing_extensions.TypedDict): + """Could not create the ModelStudioConfigVersion.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + modelStudioRid: models_models.ModelStudioRid + + +@dataclass +class CreateModelStudioConfigVersionPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["CreateModelStudioConfigVersionPermissionDenied"] + parameters: CreateModelStudioConfigVersionPermissionDeniedParameters + error_instance_id: str + + +class CreateModelStudioPermissionDeniedParameters(typing_extensions.TypedDict): + """Permission denied to create a Model Studio.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class CreateModelStudioPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["CreateModelStudioPermissionDenied"] + parameters: CreateModelStudioPermissionDeniedParameters + error_instance_id: str + + class CreateModelVersionPermissionDeniedParameters(typing_extensions.TypedDict): """Could not create the ModelVersion.""" @@ -82,6 +126,49 @@ class InvalidModelApi(errors.BadRequestError): error_instance_id: str +class InvalidModelStudioCreateRequestParameters(typing_extensions.TypedDict): + """The request to create a Model Studio contains invalid arguments.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class InvalidModelStudioCreateRequest(errors.BadRequestError): + name: typing.Literal["InvalidModelStudioCreateRequest"] + parameters: InvalidModelStudioCreateRequestParameters + error_instance_id: str + + +class LatestModelStudioConfigVersionsPermissionDeniedParameters(typing_extensions.TypedDict): + """Could not latest the ModelStudioConfigVersion.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + modelStudioRid: models_models.ModelStudioRid + + +@dataclass +class LatestModelStudioConfigVersionsPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["LatestModelStudioConfigVersionsPermissionDenied"] + parameters: LatestModelStudioConfigVersionsPermissionDeniedParameters + error_instance_id: str + + +class LaunchModelStudioPermissionDeniedParameters(typing_extensions.TypedDict): + """Permission denied to launch a Model Studio run.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + studioRid: models_models.ModelStudioRid + + +@dataclass +class LaunchModelStudioPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["LaunchModelStudioPermissionDenied"] + parameters: LaunchModelStudioPermissionDeniedParameters + error_instance_id: str + + class ModelNotFoundParameters(typing_extensions.TypedDict): """The given Model could not be found.""" @@ -97,6 +184,52 @@ class ModelNotFound(errors.NotFoundError): error_instance_id: str +class ModelStudioConfigVersionNotFoundParameters(typing_extensions.TypedDict): + """The requested Model Studio configuration version was not found.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + studioRid: models_models.ModelStudioRid + configVersion: models_models.ModelStudioConfigVersionNumber + + +@dataclass +class ModelStudioConfigVersionNotFound(errors.NotFoundError): + name: typing.Literal["ModelStudioConfigVersionNotFound"] + parameters: ModelStudioConfigVersionNotFoundParameters + error_instance_id: str + + +class ModelStudioNotFoundParameters(typing_extensions.TypedDict): + """The requested Model Studio was not found.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + studioRid: models_models.ModelStudioRid + + +@dataclass +class ModelStudioNotFound(errors.NotFoundError): + name: typing.Literal["ModelStudioNotFound"] + parameters: ModelStudioNotFoundParameters + error_instance_id: str + + +class ModelStudioTrainerNotFoundParameters(typing_extensions.TypedDict): + """The given ModelStudioTrainer could not be found.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + modelStudioTrainerTrainerId: models_models.TrainerId + + +@dataclass +class ModelStudioTrainerNotFound(errors.NotFoundError): + name: typing.Literal["ModelStudioTrainerNotFound"] + parameters: ModelStudioTrainerNotFoundParameters + error_instance_id: str + + class ModelVersionNotFoundParameters(typing_extensions.TypedDict): """The given ModelVersion could not be found.""" @@ -113,11 +246,36 @@ class ModelVersionNotFound(errors.NotFoundError): error_instance_id: str +class TrainerNotFoundParameters(typing_extensions.TypedDict): + """The specified trainer does not exist.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + trainerId: str + + +@dataclass +class TrainerNotFound(errors.NotFoundError): + name: typing.Literal["TrainerNotFound"] + parameters: TrainerNotFoundParameters + error_instance_id: str + + __all__ = [ "CondaSolveFailureForProvidedPackages", + "CreateConfigValidationError", "CreateModelPermissionDenied", + "CreateModelStudioConfigVersionPermissionDenied", + "CreateModelStudioPermissionDenied", "CreateModelVersionPermissionDenied", "InvalidModelApi", + "InvalidModelStudioCreateRequest", + "LatestModelStudioConfigVersionsPermissionDenied", + "LaunchModelStudioPermissionDenied", "ModelNotFound", + "ModelStudioConfigVersionNotFound", + "ModelStudioNotFound", + "ModelStudioTrainerNotFound", "ModelVersionNotFound", + "TrainerNotFound", ] diff --git a/foundry_sdk/v2/models/model_studio.py b/foundry_sdk/v2/models/model_studio.py new file mode 100644 index 000000000..042357d02 --- /dev/null +++ b/foundry_sdk/v2/models/model_studio.py @@ -0,0 +1,470 @@ +# Copyright 2024 Palantir Technologies, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import typing +from functools import cached_property + +import pydantic +import typing_extensions + +from foundry_sdk import _core as core +from foundry_sdk import _errors as errors +from foundry_sdk.v2.core import models as core_models +from foundry_sdk.v2.filesystem import errors as filesystem_errors +from foundry_sdk.v2.filesystem import models as filesystem_models +from foundry_sdk.v2.models import errors as models_errors +from foundry_sdk.v2.models import models as models_models + + +class ModelStudioClient: + """ + The API client for the ModelStudio Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.ApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _ModelStudioClientStreaming(self) + self.with_raw_response = _ModelStudioClientRaw(self) + + @cached_property + def Run(self): + from foundry_sdk.v2.models.model_studio_run import ModelStudioRunClient + + return ModelStudioRunClient( + auth=self._auth, + hostname=self._hostname, + config=self._config, + ) + + @cached_property + def ConfigVersion(self): + from foundry_sdk.v2.models.model_studio_config_version import ( + ModelStudioConfigVersionClient, + ) # NOQA + + return ModelStudioConfigVersionClient( + auth=self._auth, + hostname=self._hostname, + config=self._config, + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def create( + self, + *, + name: str, + parent_folder_rid: filesystem_models.FolderRid, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> models_models.ModelStudio: + """ + Creates a new Model Studio. + :param name: The name of the Model Studio. + :type name: str + :param parent_folder_rid: The RID of the parent folder where the studio will be created. + :type parent_folder_rid: FolderRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: models_models.ModelStudio + + :raises CreateModelStudioPermissionDenied: Permission denied to create a Model Studio. + :raises InvalidDisplayName: The display name of a Resource should not be exactly `.` or `..`, contain a forward slash `/` and must be less than or equal to 700 characters. + :raises ResourceNameAlreadyExists: The provided resource name is already in use by another resource in the same folder. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/models/modelStudios", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=models_models.CreateModelStudioRequest( + name=name, + parent_folder_rid=parent_folder_rid, + ), + response_type=models_models.ModelStudio, + request_timeout=request_timeout, + throwable_errors={ + "CreateModelStudioPermissionDenied": models_errors.CreateModelStudioPermissionDenied, + "InvalidDisplayName": filesystem_errors.InvalidDisplayName, + "ResourceNameAlreadyExists": filesystem_errors.ResourceNameAlreadyExists, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> models_models.ModelStudio: + """ + Gets details about a Model Studio by its RID. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: models_models.ModelStudio + + :raises ModelStudioNotFound: The requested Model Studio was not found. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudio, + request_timeout=request_timeout, + throwable_errors={ + "ModelStudioNotFound": models_errors.ModelStudioNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def launch( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> models_models.ModelStudioRun: + """ + Launches a new training run for the Model Studio using the latest configuration version. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: models_models.ModelStudioRun + + :raises LaunchModelStudioPermissionDenied: Permission denied to launch a Model Studio run. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/models/modelStudios/{modelStudioRid}/launch", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudioRun, + request_timeout=request_timeout, + throwable_errors={ + "LaunchModelStudioPermissionDenied": models_errors.LaunchModelStudioPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + +class _ModelStudioClientRaw: + def __init__(self, client: ModelStudioClient) -> None: + def create(_: models_models.ModelStudio): ... + def get(_: models_models.ModelStudio): ... + def launch(_: models_models.ModelStudioRun): ... + + self.create = core.with_raw_response(create, client.create) + self.get = core.with_raw_response(get, client.get) + self.launch = core.with_raw_response(launch, client.launch) + + +class _ModelStudioClientStreaming: + def __init__(self, client: ModelStudioClient) -> None: + def create(_: models_models.ModelStudio): ... + def get(_: models_models.ModelStudio): ... + def launch(_: models_models.ModelStudioRun): ... + + self.create = core.with_streaming_response(create, client.create) + self.get = core.with_streaming_response(get, client.get) + self.launch = core.with_streaming_response(launch, client.launch) + + +class AsyncModelStudioClient: + """ + The API client for the ModelStudio Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.AsyncApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _AsyncModelStudioClientStreaming(self) + self.with_raw_response = _AsyncModelStudioClientRaw(self) + + @cached_property + def Run(self): + from foundry_sdk.v2.models.model_studio_run import AsyncModelStudioRunClient + + return AsyncModelStudioRunClient( + auth=self._auth, + hostname=self._hostname, + config=self._config, + ) + + @cached_property + def ConfigVersion(self): + from foundry_sdk.v2.models.model_studio_config_version import ( + AsyncModelStudioConfigVersionClient, + ) # NOQA + + return AsyncModelStudioConfigVersionClient( + auth=self._auth, + hostname=self._hostname, + config=self._config, + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def create( + self, + *, + name: str, + parent_folder_rid: filesystem_models.FolderRid, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[models_models.ModelStudio]: + """ + Creates a new Model Studio. + :param name: The name of the Model Studio. + :type name: str + :param parent_folder_rid: The RID of the parent folder where the studio will be created. + :type parent_folder_rid: FolderRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[models_models.ModelStudio] + + :raises CreateModelStudioPermissionDenied: Permission denied to create a Model Studio. + :raises InvalidDisplayName: The display name of a Resource should not be exactly `.` or `..`, contain a forward slash `/` and must be less than or equal to 700 characters. + :raises ResourceNameAlreadyExists: The provided resource name is already in use by another resource in the same folder. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/models/modelStudios", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=models_models.CreateModelStudioRequest( + name=name, + parent_folder_rid=parent_folder_rid, + ), + response_type=models_models.ModelStudio, + request_timeout=request_timeout, + throwable_errors={ + "CreateModelStudioPermissionDenied": models_errors.CreateModelStudioPermissionDenied, + "InvalidDisplayName": filesystem_errors.InvalidDisplayName, + "ResourceNameAlreadyExists": filesystem_errors.ResourceNameAlreadyExists, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[models_models.ModelStudio]: + """ + Gets details about a Model Studio by its RID. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[models_models.ModelStudio] + + :raises ModelStudioNotFound: The requested Model Studio was not found. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudio, + request_timeout=request_timeout, + throwable_errors={ + "ModelStudioNotFound": models_errors.ModelStudioNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def launch( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[models_models.ModelStudioRun]: + """ + Launches a new training run for the Model Studio using the latest configuration version. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[models_models.ModelStudioRun] + + :raises LaunchModelStudioPermissionDenied: Permission denied to launch a Model Studio run. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/models/modelStudios/{modelStudioRid}/launch", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudioRun, + request_timeout=request_timeout, + throwable_errors={ + "LaunchModelStudioPermissionDenied": models_errors.LaunchModelStudioPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + +class _AsyncModelStudioClientRaw: + def __init__(self, client: AsyncModelStudioClient) -> None: + def create(_: models_models.ModelStudio): ... + def get(_: models_models.ModelStudio): ... + def launch(_: models_models.ModelStudioRun): ... + + self.create = core.async_with_raw_response(create, client.create) + self.get = core.async_with_raw_response(get, client.get) + self.launch = core.async_with_raw_response(launch, client.launch) + + +class _AsyncModelStudioClientStreaming: + def __init__(self, client: AsyncModelStudioClient) -> None: + def create(_: models_models.ModelStudio): ... + def get(_: models_models.ModelStudio): ... + def launch(_: models_models.ModelStudioRun): ... + + self.create = core.async_with_streaming_response(create, client.create) + self.get = core.async_with_streaming_response(get, client.get) + self.launch = core.async_with_streaming_response(launch, client.launch) diff --git a/foundry_sdk/v2/models/model_studio_config_version.py b/foundry_sdk/v2/models/model_studio_config_version.py new file mode 100644 index 000000000..20280d3d2 --- /dev/null +++ b/foundry_sdk/v2/models/model_studio_config_version.py @@ -0,0 +1,569 @@ +# Copyright 2024 Palantir Technologies, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import typing + +import pydantic +import typing_extensions + +from foundry_sdk import _core as core +from foundry_sdk import _errors as errors +from foundry_sdk.v2.core import models as core_models +from foundry_sdk.v2.models import errors as models_errors +from foundry_sdk.v2.models import models as models_models + + +class ModelStudioConfigVersionClient: + """ + The API client for the ModelStudioConfigVersion Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.ApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _ModelStudioConfigVersionClientStreaming(self) + self.with_raw_response = _ModelStudioConfigVersionClientRaw(self) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def create( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + name: models_models.ModelStudioConfigVersionName, + resources: models_models.ResourceConfiguration, + trainer_id: models_models.TrainerId, + worker_config: models_models.ModelStudioWorkerConfig, + changelog: typing.Optional[str] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> models_models.ModelStudioConfigVersion: + """ + Creates a new Model Studio configuration version. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param name: Human readable name of the configuration version and experiment. + :type name: ModelStudioConfigVersionName + :param resources: The compute resources allocated for training runs. + :type resources: ResourceConfiguration + :param trainer_id: The identifier of the trainer to use for this configuration. + :type trainer_id: TrainerId + :param worker_config: The worker configuration including inputs, outputs, and custom settings. + :type worker_config: ModelStudioWorkerConfig + :param changelog: Changelog describing changes in this version. + :type changelog: Optional[str] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: models_models.ModelStudioConfigVersion + + :raises CreateModelStudioConfigVersionPermissionDenied: Could not create the ModelStudioConfigVersion. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=models_models.CreateModelStudioConfigVersionRequest( + name=name, + resources=resources, + changelog=changelog, + worker_config=worker_config, + trainer_id=trainer_id, + ), + response_type=models_models.ModelStudioConfigVersion, + request_timeout=request_timeout, + throwable_errors={ + "CreateModelStudioConfigVersionPermissionDenied": models_errors.CreateModelStudioConfigVersionPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get( + self, + model_studio_rid: models_models.ModelStudioRid, + model_studio_config_version_version: models_models.ModelStudioConfigVersionNumber, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> models_models.ModelStudioConfigVersion: + """ + Gets a specific Model Studio configuration version. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param model_studio_config_version_version: The version number of this configuration. + :type model_studio_config_version_version: ModelStudioConfigVersionNumber + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: models_models.ModelStudioConfigVersion + + :raises ModelStudioConfigVersionNotFound: The requested Model Studio configuration version was not found. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions/{modelStudioConfigVersionVersion}", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + "modelStudioConfigVersionVersion": model_studio_config_version_version, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudioConfigVersion, + request_timeout=request_timeout, + throwable_errors={ + "ModelStudioConfigVersionNotFound": models_errors.ModelStudioConfigVersionNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def latest( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Optional[models_models.ModelStudioConfigVersion]: + """ + Gets the latest configuration version for a Model Studio. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Optional[models_models.ModelStudioConfigVersion] + + :raises LatestModelStudioConfigVersionsPermissionDenied: Could not latest the ModelStudioConfigVersion. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions/latest", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=typing.Optional[models_models.ModelStudioConfigVersion], + request_timeout=request_timeout, + throwable_errors={ + "LatestModelStudioConfigVersionsPermissionDenied": models_errors.LatestModelStudioConfigVersionsPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def list( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + page_size: typing.Optional[core_models.PageSize] = None, + page_token: typing.Optional[core_models.PageToken] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> core.ResourceIterator[models_models.ModelStudioConfigVersion]: + """ + Lists all configuration versions for a Model Studio. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param page_size: The page size to use for the endpoint. + :type page_size: Optional[PageSize] + :param page_token: The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. + :type page_token: Optional[PageToken] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: core.ResourceIterator[models_models.ModelStudioConfigVersion] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions", + query_params={ + "pageSize": page_size, + "pageToken": page_token, + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ListModelStudioConfigVersionsResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode", "ITERATOR"), + ), + ) + + +class _ModelStudioConfigVersionClientRaw: + def __init__(self, client: ModelStudioConfigVersionClient) -> None: + def create(_: models_models.ModelStudioConfigVersion): ... + def get(_: models_models.ModelStudioConfigVersion): ... + def latest(_: typing.Optional[models_models.ModelStudioConfigVersion]): ... + def list(_: models_models.ListModelStudioConfigVersionsResponse): ... + + self.create = core.with_raw_response(create, client.create) + self.get = core.with_raw_response(get, client.get) + self.latest = core.with_raw_response(latest, client.latest) + self.list = core.with_raw_response(list, client.list) + + +class _ModelStudioConfigVersionClientStreaming: + def __init__(self, client: ModelStudioConfigVersionClient) -> None: + def create(_: models_models.ModelStudioConfigVersion): ... + def get(_: models_models.ModelStudioConfigVersion): ... + def latest(_: typing.Optional[models_models.ModelStudioConfigVersion]): ... + def list(_: models_models.ListModelStudioConfigVersionsResponse): ... + + self.create = core.with_streaming_response(create, client.create) + self.get = core.with_streaming_response(get, client.get) + self.latest = core.with_streaming_response(latest, client.latest) + self.list = core.with_streaming_response(list, client.list) + + +class AsyncModelStudioConfigVersionClient: + """ + The API client for the ModelStudioConfigVersion Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.AsyncApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _AsyncModelStudioConfigVersionClientStreaming(self) + self.with_raw_response = _AsyncModelStudioConfigVersionClientRaw(self) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def create( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + name: models_models.ModelStudioConfigVersionName, + resources: models_models.ResourceConfiguration, + trainer_id: models_models.TrainerId, + worker_config: models_models.ModelStudioWorkerConfig, + changelog: typing.Optional[str] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[models_models.ModelStudioConfigVersion]: + """ + Creates a new Model Studio configuration version. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param name: Human readable name of the configuration version and experiment. + :type name: ModelStudioConfigVersionName + :param resources: The compute resources allocated for training runs. + :type resources: ResourceConfiguration + :param trainer_id: The identifier of the trainer to use for this configuration. + :type trainer_id: TrainerId + :param worker_config: The worker configuration including inputs, outputs, and custom settings. + :type worker_config: ModelStudioWorkerConfig + :param changelog: Changelog describing changes in this version. + :type changelog: Optional[str] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[models_models.ModelStudioConfigVersion] + + :raises CreateModelStudioConfigVersionPermissionDenied: Could not create the ModelStudioConfigVersion. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=models_models.CreateModelStudioConfigVersionRequest( + name=name, + resources=resources, + changelog=changelog, + worker_config=worker_config, + trainer_id=trainer_id, + ), + response_type=models_models.ModelStudioConfigVersion, + request_timeout=request_timeout, + throwable_errors={ + "CreateModelStudioConfigVersionPermissionDenied": models_errors.CreateModelStudioConfigVersionPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get( + self, + model_studio_rid: models_models.ModelStudioRid, + model_studio_config_version_version: models_models.ModelStudioConfigVersionNumber, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[models_models.ModelStudioConfigVersion]: + """ + Gets a specific Model Studio configuration version. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param model_studio_config_version_version: The version number of this configuration. + :type model_studio_config_version_version: ModelStudioConfigVersionNumber + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[models_models.ModelStudioConfigVersion] + + :raises ModelStudioConfigVersionNotFound: The requested Model Studio configuration version was not found. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions/{modelStudioConfigVersionVersion}", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + "modelStudioConfigVersionVersion": model_studio_config_version_version, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudioConfigVersion, + request_timeout=request_timeout, + throwable_errors={ + "ModelStudioConfigVersionNotFound": models_errors.ModelStudioConfigVersionNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def latest( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[typing.Optional[models_models.ModelStudioConfigVersion]]: + """ + Gets the latest configuration version for a Model Studio. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[typing.Optional[models_models.ModelStudioConfigVersion]] + + :raises LatestModelStudioConfigVersionsPermissionDenied: Could not latest the ModelStudioConfigVersion. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions/latest", + query_params={ + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=typing.Optional[models_models.ModelStudioConfigVersion], + request_timeout=request_timeout, + throwable_errors={ + "LatestModelStudioConfigVersionsPermissionDenied": models_errors.LatestModelStudioConfigVersionsPermissionDenied, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def list( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + page_size: typing.Optional[core_models.PageSize] = None, + page_token: typing.Optional[core_models.PageToken] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> core.AsyncResourceIterator[models_models.ModelStudioConfigVersion]: + """ + Lists all configuration versions for a Model Studio. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param page_size: The page size to use for the endpoint. + :type page_size: Optional[PageSize] + :param page_token: The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. + :type page_token: Optional[PageToken] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: core.AsyncResourceIterator[models_models.ModelStudioConfigVersion] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/configVersions", + query_params={ + "pageSize": page_size, + "pageToken": page_token, + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ListModelStudioConfigVersionsResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode", "ITERATOR"), + ), + ) + + +class _AsyncModelStudioConfigVersionClientRaw: + def __init__(self, client: AsyncModelStudioConfigVersionClient) -> None: + def create(_: models_models.ModelStudioConfigVersion): ... + def get(_: models_models.ModelStudioConfigVersion): ... + def latest(_: typing.Optional[models_models.ModelStudioConfigVersion]): ... + def list(_: models_models.ListModelStudioConfigVersionsResponse): ... + + self.create = core.async_with_raw_response(create, client.create) + self.get = core.async_with_raw_response(get, client.get) + self.latest = core.async_with_raw_response(latest, client.latest) + self.list = core.async_with_raw_response(list, client.list) + + +class _AsyncModelStudioConfigVersionClientStreaming: + def __init__(self, client: AsyncModelStudioConfigVersionClient) -> None: + def create(_: models_models.ModelStudioConfigVersion): ... + def get(_: models_models.ModelStudioConfigVersion): ... + def latest(_: typing.Optional[models_models.ModelStudioConfigVersion]): ... + def list(_: models_models.ListModelStudioConfigVersionsResponse): ... + + self.create = core.async_with_streaming_response(create, client.create) + self.get = core.async_with_streaming_response(get, client.get) + self.latest = core.async_with_streaming_response(latest, client.latest) + self.list = core.async_with_streaming_response(list, client.list) diff --git a/foundry_sdk/v2/models/model_studio_run.py b/foundry_sdk/v2/models/model_studio_run.py new file mode 100644 index 000000000..ddc851416 --- /dev/null +++ b/foundry_sdk/v2/models/model_studio_run.py @@ -0,0 +1,212 @@ +# Copyright 2024 Palantir Technologies, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import typing + +import pydantic +import typing_extensions + +from foundry_sdk import _core as core +from foundry_sdk import _errors as errors +from foundry_sdk.v2.core import models as core_models +from foundry_sdk.v2.models import models as models_models + + +class ModelStudioRunClient: + """ + The API client for the ModelStudioRun Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.ApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _ModelStudioRunClientStreaming(self) + self.with_raw_response = _ModelStudioRunClientRaw(self) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def list( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + config_version: typing.Optional[models_models.ModelStudioConfigVersionNumber] = None, + page_size: typing.Optional[core_models.PageSize] = None, + page_token: typing.Optional[core_models.PageToken] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> core.ResourceIterator[models_models.ModelStudioRun]: + """ + Lists all runs for a Model Studio. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param config_version: Filter runs by configuration version. + :type config_version: Optional[ModelStudioConfigVersionNumber] + :param page_size: The page size to use for the endpoint. + :type page_size: Optional[PageSize] + :param page_token: The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. + :type page_token: Optional[PageToken] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: core.ResourceIterator[models_models.ModelStudioRun] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/runs", + query_params={ + "configVersion": config_version, + "pageSize": page_size, + "pageToken": page_token, + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ListModelStudioRunsResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode", "ITERATOR"), + ), + ) + + +class _ModelStudioRunClientRaw: + def __init__(self, client: ModelStudioRunClient) -> None: + def list(_: models_models.ListModelStudioRunsResponse): ... + + self.list = core.with_raw_response(list, client.list) + + +class _ModelStudioRunClientStreaming: + def __init__(self, client: ModelStudioRunClient) -> None: + def list(_: models_models.ListModelStudioRunsResponse): ... + + self.list = core.with_streaming_response(list, client.list) + + +class AsyncModelStudioRunClient: + """ + The API client for the ModelStudioRun Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.AsyncApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _AsyncModelStudioRunClientStreaming(self) + self.with_raw_response = _AsyncModelStudioRunClientRaw(self) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def list( + self, + model_studio_rid: models_models.ModelStudioRid, + *, + config_version: typing.Optional[models_models.ModelStudioConfigVersionNumber] = None, + page_size: typing.Optional[core_models.PageSize] = None, + page_token: typing.Optional[core_models.PageToken] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> core.AsyncResourceIterator[models_models.ModelStudioRun]: + """ + Lists all runs for a Model Studio. + :param model_studio_rid: + :type model_studio_rid: ModelStudioRid + :param config_version: Filter runs by configuration version. + :type config_version: Optional[ModelStudioConfigVersionNumber] + :param page_size: The page size to use for the endpoint. + :type page_size: Optional[PageSize] + :param page_token: The page token indicates where to start paging. This should be omitted from the first page's request. To fetch the next page, clients should take the value from the `nextPageToken` field of the previous response and use it to populate the `pageToken` field of the next request. + :type page_token: Optional[PageToken] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: core.AsyncResourceIterator[models_models.ModelStudioRun] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudios/{modelStudioRid}/runs", + query_params={ + "configVersion": config_version, + "pageSize": page_size, + "pageToken": page_token, + "preview": preview, + }, + path_params={ + "modelStudioRid": model_studio_rid, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ListModelStudioRunsResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode", "ITERATOR"), + ), + ) + + +class _AsyncModelStudioRunClientRaw: + def __init__(self, client: AsyncModelStudioRunClient) -> None: + def list(_: models_models.ListModelStudioRunsResponse): ... + + self.list = core.async_with_raw_response(list, client.list) + + +class _AsyncModelStudioRunClientStreaming: + def __init__(self, client: AsyncModelStudioRunClient) -> None: + def list(_: models_models.ListModelStudioRunsResponse): ... + + self.list = core.async_with_streaming_response(list, client.list) diff --git a/foundry_sdk/v2/models/model_studio_trainer.py b/foundry_sdk/v2/models/model_studio_trainer.py new file mode 100644 index 000000000..e3060220f --- /dev/null +++ b/foundry_sdk/v2/models/model_studio_trainer.py @@ -0,0 +1,291 @@ +# Copyright 2024 Palantir Technologies, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + + +import typing + +import pydantic +import typing_extensions + +from foundry_sdk import _core as core +from foundry_sdk import _errors as errors +from foundry_sdk.v2.core import models as core_models +from foundry_sdk.v2.models import errors as models_errors +from foundry_sdk.v2.models import models as models_models + + +class ModelStudioTrainerClient: + """ + The API client for the ModelStudioTrainer Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.ApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _ModelStudioTrainerClientStreaming(self) + self.with_raw_response = _ModelStudioTrainerClientRaw(self) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get( + self, + model_studio_trainer_trainer_id: models_models.TrainerId, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + version: typing.Optional[models_models.TrainerVersion] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> models_models.ModelStudioTrainer: + """ + Gets details about a specific trainer by its ID and optional version. + :param model_studio_trainer_trainer_id: + :type model_studio_trainer_trainer_id: TrainerId + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param version: Specific version of the trainer to retrieve. If not specified, returns the latest version. + :type version: Optional[TrainerVersion] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: models_models.ModelStudioTrainer + + :raises ModelStudioTrainerNotFound: The given ModelStudioTrainer could not be found. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudioTrainers/{modelStudioTrainerTrainerId}", + query_params={ + "preview": preview, + "version": version, + }, + path_params={ + "modelStudioTrainerTrainerId": model_studio_trainer_trainer_id, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudioTrainer, + request_timeout=request_timeout, + throwable_errors={ + "ModelStudioTrainerNotFound": models_errors.ModelStudioTrainerNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def list( + self, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> models_models.ListModelStudioTrainersResponse: + """ + Lists all available trainers for Model Studios. + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: models_models.ListModelStudioTrainersResponse + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudioTrainers", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ListModelStudioTrainersResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + +class _ModelStudioTrainerClientRaw: + def __init__(self, client: ModelStudioTrainerClient) -> None: + def get(_: models_models.ModelStudioTrainer): ... + def list(_: models_models.ListModelStudioTrainersResponse): ... + + self.get = core.with_raw_response(get, client.get) + self.list = core.with_raw_response(list, client.list) + + +class _ModelStudioTrainerClientStreaming: + def __init__(self, client: ModelStudioTrainerClient) -> None: + def get(_: models_models.ModelStudioTrainer): ... + def list(_: models_models.ListModelStudioTrainersResponse): ... + + self.get = core.with_streaming_response(get, client.get) + self.list = core.with_streaming_response(list, client.list) + + +class AsyncModelStudioTrainerClient: + """ + The API client for the ModelStudioTrainer Resource. + + :param auth: Your auth configuration. + :param hostname: Your Foundry hostname (for example, "myfoundry.palantirfoundry.com"). This can also include your API gateway service URI. + :param config: Optionally specify the configuration for the HTTP session. + """ + + def __init__( + self, + auth: core.Auth, + hostname: str, + config: typing.Optional[core.Config] = None, + ): + self._auth = auth + self._hostname = hostname + self._config = config + self._api_client = core.AsyncApiClient(auth=auth, hostname=hostname, config=config) + + self.with_streaming_response = _AsyncModelStudioTrainerClientStreaming(self) + self.with_raw_response = _AsyncModelStudioTrainerClientRaw(self) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get( + self, + model_studio_trainer_trainer_id: models_models.TrainerId, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + version: typing.Optional[models_models.TrainerVersion] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[models_models.ModelStudioTrainer]: + """ + Gets details about a specific trainer by its ID and optional version. + :param model_studio_trainer_trainer_id: + :type model_studio_trainer_trainer_id: TrainerId + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param version: Specific version of the trainer to retrieve. If not specified, returns the latest version. + :type version: Optional[TrainerVersion] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[models_models.ModelStudioTrainer] + + :raises ModelStudioTrainerNotFound: The given ModelStudioTrainer could not be found. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudioTrainers/{modelStudioTrainerTrainerId}", + query_params={ + "preview": preview, + "version": version, + }, + path_params={ + "modelStudioTrainerTrainerId": model_studio_trainer_trainer_id, + }, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ModelStudioTrainer, + request_timeout=request_timeout, + throwable_errors={ + "ModelStudioTrainerNotFound": models_errors.ModelStudioTrainerNotFound, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def list( + self, + *, + preview: typing.Optional[core_models.PreviewMode] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[models_models.ListModelStudioTrainersResponse]: + """ + Lists all available trainers for Model Studios. + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[models_models.ListModelStudioTrainersResponse] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="GET", + resource_path="/v2/models/modelStudioTrainers", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Accept": "application/json", + }, + body=None, + response_type=models_models.ListModelStudioTrainersResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + + +class _AsyncModelStudioTrainerClientRaw: + def __init__(self, client: AsyncModelStudioTrainerClient) -> None: + def get(_: models_models.ModelStudioTrainer): ... + def list(_: models_models.ListModelStudioTrainersResponse): ... + + self.get = core.async_with_raw_response(get, client.get) + self.list = core.async_with_raw_response(list, client.list) + + +class _AsyncModelStudioTrainerClientStreaming: + def __init__(self, client: AsyncModelStudioTrainerClient) -> None: + def get(_: models_models.ModelStudioTrainer): ... + def list(_: models_models.ListModelStudioTrainersResponse): ... + + self.get = core.async_with_streaming_response(get, client.get) + self.list = core.async_with_streaming_response(list, client.list) diff --git a/foundry_sdk/v2/models/models.py b/foundry_sdk/v2/models/models.py index 6cb328c96..039c40c61 100644 --- a/foundry_sdk/v2/models/models.py +++ b/foundry_sdk/v2/models/models.py @@ -24,6 +24,9 @@ from foundry_sdk.v2.core import models as core_models from foundry_sdk.v2.filesystem import models as filesystem_models +ColumnTypeSpecId = str +"""An identifier for a column type specification.""" + class CreateModelRequest(core.ModelBase): """CreateModelRequest""" @@ -32,6 +35,35 @@ class CreateModelRequest(core.ModelBase): parent_folder_rid: filesystem_models.FolderRid = pydantic.Field(alias=str("parentFolderRid")) # type: ignore[literal-required] +class CreateModelStudioConfigVersionRequest(core.ModelBase): + """CreateModelStudioConfigVersionRequest""" + + name: ModelStudioConfigVersionName + """Human readable name of the configuration version and experiment.""" + + resources: ResourceConfiguration + """The compute resources allocated for training runs.""" + + changelog: typing.Optional[str] = None + """Changelog describing changes in this version.""" + + worker_config: ModelStudioWorkerConfig = pydantic.Field(alias=str("workerConfig")) # type: ignore[literal-required] + """The worker configuration including inputs, outputs, and custom settings.""" + + trainer_id: TrainerId = pydantic.Field(alias=str("trainerId")) # type: ignore[literal-required] + """The identifier of the trainer to use for this configuration.""" + + +class CreateModelStudioRequest(core.ModelBase): + """CreateModelStudioRequest""" + + name: str + """The name of the Model Studio.""" + + parent_folder_rid: filesystem_models.FolderRid = pydantic.Field(alias=str("parentFolderRid")) # type: ignore[literal-required] + """The RID of the parent folder where the studio will be created.""" + + class CreateModelVersionRequest(core.ModelBase): """CreateModelVersionRequest""" @@ -41,6 +73,24 @@ class CreateModelVersionRequest(core.ModelBase): model_api: ModelApi = pydantic.Field(alias=str("modelApi")) # type: ignore[literal-required] +class DatasetInput(core.ModelBase): + """Dataset input configuration.""" + + rid: core.RID + """The RID of the input dataset.""" + + column_mapping: typing.Dict[ColumnTypeSpecId, typing.List[core_models.ColumnName]] = pydantic.Field(alias=str("columnMapping")) # type: ignore[literal-required] + """Mapping of column type spec IDs to column names.""" + + ignore_columns: typing.List[core_models.ColumnName] = pydantic.Field(alias=str("ignoreColumns")) # type: ignore[literal-required] + """Columns to ignore from the dataset.""" + + select_columns: typing.List[core_models.ColumnName] = pydantic.Field(alias=str("selectColumns")) # type: ignore[literal-required] + """Columns to select from the dataset. If empty, all columns not in ignoreColumns will be used.""" + + type: typing.Literal["dataset"] = "dataset" + + class DillModelFiles(core.ModelBase): """DillModelFiles""" @@ -48,6 +98,31 @@ class DillModelFiles(core.ModelBase): type: typing.Literal["dill"] = "dill" +InputAlias = str +"""A string alias used to identify inputs in a Model Studio configuration.""" + + +class ListModelStudioConfigVersionsResponse(core.ModelBase): + """ListModelStudioConfigVersionsResponse""" + + data: typing.List[ModelStudioConfigVersion] + next_page_token: typing.Optional[core_models.PageToken] = pydantic.Field(alias=str("nextPageToken"), default=None) # type: ignore[literal-required] + + +class ListModelStudioRunsResponse(core.ModelBase): + """ListModelStudioRunsResponse""" + + data: typing.List[ModelStudioRun] + next_page_token: typing.Optional[core_models.PageToken] = pydantic.Field(alias=str("nextPageToken"), default=None) # type: ignore[literal-required] + + +class ListModelStudioTrainersResponse(core.ModelBase): + """ListModelStudioTrainersResponse""" + + data: typing.List[ModelStudioTrainer] + next_page_token: typing.Optional[core_models.PageToken] = pydantic.Field(alias=str("nextPageToken"), default=None) # type: ignore[literal-required] + + class ListModelVersionsResponse(core.ModelBase): """ListModelVersionsResponse""" @@ -166,10 +241,163 @@ class ModelApiTabularType(core.ModelBase): """ModelName""" +class ModelOutput(core.ModelBase): + """Model output configuration.""" + + model_rid: core.RID = pydantic.Field(alias=str("modelRid")) # type: ignore[literal-required] + """The RID of the output model.""" + + type: typing.Literal["model"] = "model" + + ModelRid = core.RID """The Resource Identifier (RID) of a Model.""" +class ModelStudio(core.ModelBase): + """ModelStudio""" + + rid: ModelStudioRid + folder_rid: filesystem_models.FolderRid = pydantic.Field(alias=str("folderRid")) # type: ignore[literal-required] + """The parent folder containing this Model Studio.""" + + created_time: core_models.CreatedTime = pydantic.Field(alias=str("createdTime")) # type: ignore[literal-required] + + +class ModelStudioConfigVersion(core.ModelBase): + """ModelStudioConfigVersion""" + + name: ModelStudioConfigVersionName + """Human readable name of the configuration version and experiment.""" + + version: ModelStudioConfigVersionNumber + """The version number of this configuration.""" + + trainer_id: TrainerId = pydantic.Field(alias=str("trainerId")) # type: ignore[literal-required] + """The identifier of the trainer to use for this configuration.""" + + trainer: TrainerVersionLocator + """The trainer and version used for this configuration.""" + + worker_config: ModelStudioWorkerConfig = pydantic.Field(alias=str("workerConfig")) # type: ignore[literal-required] + """The worker configuration including inputs, outputs, and custom settings.""" + + resources: ResourceConfiguration + """The compute resources allocated for training runs.""" + + changelog: typing.Optional[str] = None + """Changelog describing changes in this version.""" + + created_by: core_models.CreatedBy = pydantic.Field(alias=str("createdBy")) # type: ignore[literal-required] + created_time: core_models.CreatedTime = pydantic.Field(alias=str("createdTime")) # type: ignore[literal-required] + + +ModelStudioConfigVersionName = str +"""Human readable name of the configuration version and experiment.""" + + +ModelStudioConfigVersionNumber = int +"""The version number of a Model Studio Configuration.""" + + +ModelStudioRid = core.RID +"""The Resource Identifier (RID) of a Model Studio.""" + + +class ModelStudioRun(core.ModelBase): + """ModelStudioRun""" + + run_id: RunId = pydantic.Field(alias=str("runId")) # type: ignore[literal-required] + """A unique identifier for this run, derived from the studio, config, and build.""" + + build_rid: ModelStudioRunBuildRid = pydantic.Field(alias=str("buildRid")) # type: ignore[literal-required] + """The RID of the build associated with this run.""" + + job_rid: ModelStudioRunJobRid = pydantic.Field(alias=str("jobRid")) # type: ignore[literal-required] + """The RID of the job associated with this run.""" + + config_version: ModelStudioConfigVersionNumber = pydantic.Field(alias=str("configVersion")) # type: ignore[literal-required] + """The configuration version used for this run.""" + + started_by: core_models.CreatedBy = pydantic.Field(alias=str("startedBy")) # type: ignore[literal-required] + """The user who started this run.""" + + started_time: core_models.CreatedTime = pydantic.Field(alias=str("startedTime")) # type: ignore[literal-required] + """When this run was started.""" + + resolved_outputs: typing.Dict[OutputAlias, ModelStudioRunOutput] = pydantic.Field(alias=str("resolvedOutputs")) # type: ignore[literal-required] + """Map of alias to resolved output details (e.g., for models, contains the version RID and experiment).""" + + +ModelStudioRunBuildRid = core.RID +"""The RID of the build associated with this run.""" + + +ModelStudioRunJobRid = core.RID +"""The RID of the job associated with this run.""" + + +class ModelStudioRunModelOutput(core.ModelBase): + """Resolved model output details for a Model Studio run.""" + + model_rid: core.RID = pydantic.Field(alias=str("modelRid")) # type: ignore[literal-required] + """The RID of the model.""" + + model_version_rid: core.RID = pydantic.Field(alias=str("modelVersionRid")) # type: ignore[literal-required] + """The RID of the model version created by this run.""" + + experiment_rid: typing.Optional[core.RID] = pydantic.Field(alias=str("experimentRid"), default=None) # type: ignore[literal-required] + """The RID of the experiment associated with this run, if any.""" + + type: typing.Literal["model"] = "model" + + +class ModelStudioTrainer(core.ModelBase): + """ModelStudioTrainer""" + + trainer_id: TrainerId = pydantic.Field(alias=str("trainerId")) # type: ignore[literal-required] + version: TrainerVersion + """The version of this trainer.""" + + name: TrainerName + """Human-readable name of the trainer.""" + + type: TrainerType + """The type/category of this trainer (e.g., TABULAR_CLASSIFICATION, TIME_SERIES).""" + + description: TrainerDescription + """Description of what this trainer does and its capabilities.""" + + custom_config_schema: TrainerSchemaDefinition = pydantic.Field(alias=str("customConfigSchema")) # type: ignore[literal-required] + """JSON schema defining the custom configuration parameters for this trainer.""" + + inputs: TrainerInputsSpecification + """Input specifications for this trainer.""" + + outputs: TrainerOutputsSpecification + """Output specifications for this trainer.""" + + experimental: ModelStudioTrainerExperimental + """Whether this trainer is experimental and may have breaking changes.""" + + +ModelStudioTrainerExperimental = bool +"""Whether this trainer is experimental and may have breaking changes.""" + + +class ModelStudioWorkerConfig(core.ModelBase): + """Configuration for the Model Studio worker.""" + + custom_config: typing.Optional[typing.Dict[str, typing.Any]] = pydantic.Field(alias=str("customConfig"), default=None) # type: ignore[literal-required] + """Custom configuration matching the trainer's JSON schema.""" + + inputs: typing.Dict[InputAlias, ModelStudioInput] + """Input configurations keyed by alias.""" + + outputs: typing.Dict[OutputAlias, ModelStudioOutput] + """Output configurations keyed by alias.""" + + class ModelVersion(core.ModelBase): """ModelVersion""" @@ -183,6 +411,63 @@ class ModelVersion(core.ModelBase): """The Resource Identifier (RID) of a Model Version.""" +OutputAlias = str +"""A string alias used to identify outputs in a Model Studio configuration.""" + + +class ResourceConfiguration(core.ModelBase): + """Compute resource configuration for training runs.""" + + memory: str + """Memory allocation (e.g., "4Gi").""" + + cpu: str + """CPU allocation (e.g., "2").""" + + +RunId = str +"""A unique identifier for a Model Studio run, derived from the studio, config, and build.""" + + +TrainerDescription = str +"""Description of what a trainer does and its capabilities.""" + + +TrainerId = str +"""The identifier for a trainer.""" + + +TrainerInputsSpecification = typing.Any +"""Specification of the inputs required by a trainer. When creating a ModelStudioConfigVersion, the workerConfig.inputs must conform to this specification, providing entries for each required input defined here.""" + + +TrainerName = str +"""Human-readable name of a trainer.""" + + +TrainerOutputsSpecification = typing.Any +"""Specification of the outputs produced by a trainer. When creating a ModelStudioConfigVersion, the workerConfig.outputs must conform to this specification, providing entries for each required output defined here.""" + + +TrainerSchemaDefinition = typing.Any +"""JSON schema defining the custom configuration parameters for a trainer.""" + + +TrainerType = str +"""The type/category of a trainer.""" + + +TrainerVersion = str +"""A specific version identifier for a trainer.""" + + +class TrainerVersionLocator(core.ModelBase): + """Identifies a specific version of a trainer.""" + + trainer_id: TrainerId = pydantic.Field(alias=str("trainerId")) # type: ignore[literal-required] + version: str + + ModelFiles = DillModelFiles """ The serialized data of a machine learning model. This can include the model's parameters, architecture, and any other relevant information needed to reconstruct the model. @@ -190,14 +475,34 @@ class ModelVersion(core.ModelBase): """ +ModelStudioInput = DatasetInput +"""Input specification for a Model Studio configuration.""" + + +ModelStudioOutput = ModelOutput +"""Output specification for a Model Studio configuration.""" + + +ModelStudioRunOutput = ModelStudioRunModelOutput +"""Resolved output details for a Model Studio run.""" + + core.resolve_forward_references(ModelApiDataType, globalns=globals(), localns=locals()) core.resolve_forward_references(ModelApiInput, globalns=globals(), localns=locals()) core.resolve_forward_references(ModelApiOutput, globalns=globals(), localns=locals()) __all__ = [ + "ColumnTypeSpecId", "CreateModelRequest", + "CreateModelStudioConfigVersionRequest", + "CreateModelStudioRequest", "CreateModelVersionRequest", + "DatasetInput", "DillModelFiles", + "InputAlias", + "ListModelStudioConfigVersionsResponse", + "ListModelStudioRunsResponse", + "ListModelStudioTrainersResponse", "ListModelVersionsResponse", "Model", "ModelApi", @@ -213,7 +518,35 @@ class ModelVersion(core.ModelBase): "ModelApiTabularType", "ModelFiles", "ModelName", + "ModelOutput", "ModelRid", + "ModelStudio", + "ModelStudioConfigVersion", + "ModelStudioConfigVersionName", + "ModelStudioConfigVersionNumber", + "ModelStudioInput", + "ModelStudioOutput", + "ModelStudioRid", + "ModelStudioRun", + "ModelStudioRunBuildRid", + "ModelStudioRunJobRid", + "ModelStudioRunModelOutput", + "ModelStudioRunOutput", + "ModelStudioTrainer", + "ModelStudioTrainerExperimental", + "ModelStudioWorkerConfig", "ModelVersion", "ModelVersionRid", + "OutputAlias", + "ResourceConfiguration", + "RunId", + "TrainerDescription", + "TrainerId", + "TrainerInputsSpecification", + "TrainerName", + "TrainerOutputsSpecification", + "TrainerSchemaDefinition", + "TrainerType", + "TrainerVersion", + "TrainerVersionLocator", ] diff --git a/foundry_sdk/v2/ontologies/action.py b/foundry_sdk/v2/ontologies/action.py index 061e4b3c1..b402b8013 100644 --- a/foundry_sdk/v2/ontologies/action.py +++ b/foundry_sdk/v2/ontologies/action.py @@ -62,6 +62,7 @@ def apply( options: typing.Optional[ontologies_models.ApplyActionRequestOptions] = None, sdk_package_rid: typing.Optional[ontologies_models.SdkPackageRid] = None, sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, + transaction_id: typing.Optional[ontologies_models.OntologyTransactionId] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> ontologies_models.SyncApplyActionResponseV2: @@ -91,6 +92,8 @@ def apply( :type sdk_package_rid: Optional[SdkPackageRid] :param sdk_version: The version of the generated SDK. :type sdk_version: Optional[SdkVersion] + :param transaction_id: The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. + :type transaction_id: Optional[OntologyTransactionId] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -105,6 +108,7 @@ def apply( "branch": branch, "sdkPackageRid": sdk_package_rid, "sdkVersion": sdk_version, + "transactionId": transaction_id, }, path_params={ "ontology": ontology, @@ -213,6 +217,7 @@ def apply_with_overrides( branch: typing.Optional[core_models.FoundryBranch] = None, sdk_package_rid: typing.Optional[ontologies_models.SdkPackageRid] = None, sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, + transaction_id: typing.Optional[ontologies_models.OntologyTransactionId] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> ontologies_models.SyncApplyActionResponseV2: @@ -234,6 +239,8 @@ def apply_with_overrides( :type sdk_package_rid: Optional[SdkPackageRid] :param sdk_version: The version of the generated SDK. :type sdk_version: Optional[SdkVersion] + :param transaction_id: The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. + :type transaction_id: Optional[OntologyTransactionId] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -248,6 +255,7 @@ def apply_with_overrides( "branch": branch, "sdkPackageRid": sdk_package_rid, "sdkVersion": sdk_version, + "transactionId": transaction_id, }, path_params={ "ontology": ontology, @@ -333,6 +341,7 @@ def apply( options: typing.Optional[ontologies_models.ApplyActionRequestOptions] = None, sdk_package_rid: typing.Optional[ontologies_models.SdkPackageRid] = None, sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, + transaction_id: typing.Optional[ontologies_models.OntologyTransactionId] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> typing.Awaitable[ontologies_models.SyncApplyActionResponseV2]: @@ -362,6 +371,8 @@ def apply( :type sdk_package_rid: Optional[SdkPackageRid] :param sdk_version: The version of the generated SDK. :type sdk_version: Optional[SdkVersion] + :param transaction_id: The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. + :type transaction_id: Optional[OntologyTransactionId] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -376,6 +387,7 @@ def apply( "branch": branch, "sdkPackageRid": sdk_package_rid, "sdkVersion": sdk_version, + "transactionId": transaction_id, }, path_params={ "ontology": ontology, @@ -484,6 +496,7 @@ def apply_with_overrides( branch: typing.Optional[core_models.FoundryBranch] = None, sdk_package_rid: typing.Optional[ontologies_models.SdkPackageRid] = None, sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, + transaction_id: typing.Optional[ontologies_models.OntologyTransactionId] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> typing.Awaitable[ontologies_models.SyncApplyActionResponseV2]: @@ -505,6 +518,8 @@ def apply_with_overrides( :type sdk_package_rid: Optional[SdkPackageRid] :param sdk_version: The version of the generated SDK. :type sdk_version: Optional[SdkVersion] + :param transaction_id: The ID of an Ontology transaction to apply the action against. Transactions are an experimental feature and all workflows may not be supported. + :type transaction_id: Optional[OntologyTransactionId] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -519,6 +534,7 @@ def apply_with_overrides( "branch": branch, "sdkPackageRid": sdk_package_rid, "sdkVersion": sdk_version, + "transactionId": transaction_id, }, path_params={ "ontology": ontology, diff --git a/foundry_sdk/v2/ontologies/errors.py b/foundry_sdk/v2/ontologies/errors.py index ed422aff0..6d88f0d3c 100644 --- a/foundry_sdk/v2/ontologies/errors.py +++ b/foundry_sdk/v2/ontologies/errors.py @@ -515,6 +515,22 @@ class HighScaleComputationNotEnabled(errors.InternalServerError): error_instance_id: str +class IncompatibleNestedObjectSetParameters(typing_extensions.TypedDict): + """ + A wrapper object set type is incompatible with one or more of the nested object set types. + For example, an interfaceLinkSearchAround object set wrapping a non-interface object set. + """ + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class IncompatibleNestedObjectSet(errors.BadRequestError): + name: typing.Literal["IncompatibleNestedObjectSet"] + parameters: IncompatibleNestedObjectSetParameters + error_instance_id: str + + class InterfaceBasedObjectSetNotSupportedParameters(typing_extensions.TypedDict): """The requested object set type is not supported for interface-based object sets.""" @@ -2390,6 +2406,7 @@ class ViewObjectPermissionDenied(errors.PermissionDeniedError): "FunctionExecutionTimedOut", "FunctionInvalidInput", "HighScaleComputationNotEnabled", + "IncompatibleNestedObjectSet", "InterfaceBasedObjectSetNotSupported", "InterfaceLinkTypeNotFound", "InterfacePropertiesHaveDifferentIds", diff --git a/foundry_sdk/v2/ontologies/models.py b/foundry_sdk/v2/ontologies/models.py index 59adf7e3e..12056c1a6 100644 --- a/foundry_sdk/v2/ontologies/models.py +++ b/foundry_sdk/v2/ontologies/models.py @@ -16,6 +16,7 @@ from __future__ import annotations import typing +from datetime import date import pydantic import typing_extensions @@ -106,6 +107,7 @@ class ActionParameterV2(core.ModelBase): description: typing.Optional[str] = None data_type: ActionParameterType = pydantic.Field(alias=str("dataType")) # type: ignore[literal-required] required: bool + type_classes: typing.List[TypeClass] = pydantic.Field(alias=str("typeClasses")) # type: ignore[literal-required] ActionResults = typing_extensions.Annotated[ @@ -191,7 +193,7 @@ class AddObjectEdit(core.ModelBase): """AddObjectEdit""" object_type: ObjectTypeApiName = pydantic.Field(alias=str("objectType")) # type: ignore[literal-required] - properties: typing.Dict[PropertyApiName, DataValue] + properties: typing.Dict[PropertyApiName, typing.Optional[DataValue]] type: typing.Literal["addObject"] = "addObject" @@ -609,6 +611,13 @@ class BlueprintIcon(core.ModelBase): type: typing.Literal["blueprint"] = "blueprint" +class BooleanValue(core.ModelBase): + """BooleanValue""" + + value: bool + type: typing.Literal["booleanValue"] = "booleanValue" + + class BoundingBoxValue(core.ModelBase): """The top left and bottom right coordinate points that make up the bounding box.""" @@ -737,6 +746,18 @@ class CountObjectsResponseV2(core.ModelBase): count: typing.Optional[int] = None +class CreateEdit(core.ModelBase): + """CreateEdit""" + + properties: typing.Dict[PropertyApiName, PropertyValue] + """ + The property values of the object at the time of creation. + Maps property API names to their values. + """ + + type: typing.Literal["createEdit"] = "createEdit" + + class CreateInterfaceLinkLogicRule(core.ModelBase): """CreateInterfaceLinkLogicRule""" @@ -874,6 +895,13 @@ class CurrentUserArgument(core.ModelBase): """ +class DateValue(core.ModelBase): + """DateValue""" + + value: date + type: typing.Literal["dateValue"] = "dateValue" + + DatetimeFormat = typing_extensions.Annotated[ typing.Union["DatetimeStringFormat", "DatetimeLocalizedFormat"], pydantic.Field(discriminator="type"), @@ -935,6 +963,13 @@ class DecryptionResult(core.ModelBase): plaintext: typing.Optional[Plaintext] = None +class DeleteEdit(core.ModelBase): + """DeleteEdit""" + + previous_properties: typing.Dict[PropertyApiName, PropertyValue] = pydantic.Field(alias=str("previousProperties")) # type: ignore[literal-required] + type: typing.Literal["deleteEdit"] = "deleteEdit" + + class DeleteInterfaceLinkLogicRule(core.ModelBase): """DeleteInterfaceLinkLogicRule""" @@ -1100,6 +1135,13 @@ class DoesNotIntersectPolygonQuery(core.ModelBase): type: typing.Literal["doesNotIntersectPolygon"] = "doesNotIntersectPolygon" +class DoubleValue(core.ModelBase): + """DoubleValue""" + + value: float + type: typing.Literal["doubleValue"] = "doubleValue" + + class DoubleVector(core.ModelBase): """ The vector to search with. The vector must be of the same dimension as the vectors stored in the provided @@ -1124,6 +1166,48 @@ class DoubleVector(core.ModelBase): """Specifies the maximum precision to apply when formatting a duration.""" +EditHistoryEdit = typing_extensions.Annotated[ + typing.Union["CreateEdit", "DeleteEdit", "ModifyEdit"], pydantic.Field(discriminator="type") +] +"""EditHistoryEdit""" + + +EditsHistoryFilter = typing_extensions.Annotated[ + typing.Union["EditsHistoryTimestampFilter", "EditsHistoryOperationIdsFilter"], + pydantic.Field(discriminator="type"), +] +"""EditsHistoryFilter""" + + +class EditsHistoryOperationIdsFilter(core.ModelBase): + """EditsHistoryOperationIdsFilter""" + + operation_ids: typing.List[ActionRid] = pydantic.Field(alias=str("operationIds")) # type: ignore[literal-required] + type: typing.Literal["operationIdsFilter"] = "operationIdsFilter" + + +EditsHistorySortOrder = typing.Literal["newest_first", "oldest_first"] +"""EditsHistorySortOrder""" + + +class EditsHistoryTimestampFilter(core.ModelBase): + """EditsHistoryTimestampFilter""" + + start_time: typing.Optional[core.AwareDatetime] = pydantic.Field(alias=str("startTime"), default=None) # type: ignore[literal-required] + """ + Filter edits to only those that occurred after this timestamp (inclusive). + ISO 8601 format. Example: "2024-01-01T00:00:00Z" + """ + + end_time: typing.Optional[core.AwareDatetime] = pydantic.Field(alias=str("endTime"), default=None) # type: ignore[literal-required] + """ + Filter edits to only those that occurred before this timestamp (inclusive). + ISO 8601 format. Example: "2024-12-31T23:59:59Z" + """ + + type: typing.Literal["timestampFilter"] = "timestampFilter" + + class EntrySetType(core.ModelBase): """EntrySetType""" @@ -1143,6 +1227,8 @@ class EqualsQueryV2(core.ModelBase): """ Returns objects where the specified field is equal to a value. Allows you to specify a property to query on by a variety of means. Either `field` or `propertyIdentifier` must be supplied, but not both. + + For string properties, full term matching only works when **Selectable** is enabled for the property in Ontology Manager. """ field: typing.Optional[PropertyApiName] = None @@ -1258,6 +1344,22 @@ class FunctionLogicRule(core.ModelBase): """ +class FuzzyRule(core.ModelBase): + """ + Matches intervals containing terms that are similar to the provided term, within an edit distance + defined by fuzziness. An edit is a single character change needed to make a term match, including + character insertion, deletion, substitution, or transposition of two adjacent characters. + """ + + term: str + """The term to match.""" + + fuzziness: typing.Optional[int] = None + """Maximum edit distance allowed for matching. Valid values are 0, 1, or 2. Defaults to 2.""" + + type: typing.Literal["fuzzy"] = "fuzzy" + + FuzzyV2 = bool """Setting fuzzy to `true` allows approximate matching in search queries that support it.""" @@ -1342,6 +1444,8 @@ class InQuery(core.ModelBase): Returns objects where the specified field equals any of the provided values. Allows you to specify a property to query on by a variety of means. If an empty array is provided as the value, then the filter will match all objects in the object set. Either `field` or `propertyIdentifier` must be supplied, but not both. + + For string properties, full term matching only works when **Selectable** is enabled for the property in Ontology Manager. """ field: typing.Optional[PropertyApiName] = None @@ -1350,6 +1454,13 @@ class InQuery(core.ModelBase): type: typing.Literal["in"] = "in" +class IntegerValue(core.ModelBase): + """IntegerValue""" + + value: int + type: typing.Literal["integerValue"] = "integerValue" + + class InterfaceDefinedPropertyType(core.ModelBase): """ An interface property type with an additional field to indicate constraints that need to be satisfied by @@ -1367,6 +1478,7 @@ class InterfaceDefinedPropertyType(core.ModelBase): require_implementation: bool = pydantic.Field(alias=str("requireImplementation")) # type: ignore[literal-required] """Whether each implementing object type must declare an implementation for this property.""" + type_classes: typing.List[TypeClass] = pydantic.Field(alias=str("typeClasses")) # type: ignore[literal-required] type: typing.Literal["interfaceDefinedPropertyType"] = "interfaceDefinedPropertyType" @@ -1513,6 +1625,7 @@ class InterfaceSharedPropertyType(core.ModelBase): required: bool """Whether each implementing object type must declare an implementation for this property.""" + type_classes: typing.List[TypeClass] = pydantic.Field(alias=str("typeClasses")) # type: ignore[literal-required] type: typing.Literal["interfaceSharedPropertyType"] = "interfaceSharedPropertyType" @@ -1645,7 +1758,7 @@ class IntervalQuery(core.ModelBase): IntervalQueryRule = typing_extensions.Annotated[ - typing.Union["AllOfRule", "MatchRule", "AnyOfRule", "PrefixOnLastTokenRule"], + typing.Union["AllOfRule", "MatchRule", "AnyOfRule", "PrefixOnLastTokenRule", "FuzzyRule"], pydantic.Field(discriminator="type"), ] """Sub-rule used for evaluating an IntervalQuery""" @@ -2046,6 +2159,7 @@ class LoadObjectSetV2ObjectsOrInterfacesResponse(core.ModelBase): next_page_token: typing.Optional[core_models.PageToken] = pydantic.Field(alias=str("nextPageToken"), default=None) # type: ignore[literal-required] total_count: core_models.TotalCount = pydantic.Field(alias=str("totalCount")) # type: ignore[literal-required] + transaction_id: typing.Optional[OntologyTransactionId] = pydantic.Field(alias=str("transactionId"), default=None) # type: ignore[literal-required] class LoadOntologyMetadataRequest(core.ModelBase): @@ -2090,6 +2204,13 @@ class LoadOntologyMetadataRequest(core.ModelBase): """Represents an argument for a logic rule operation. An argument can be passed in via the action parameters, as a static value, or as some other value.""" +class LongValue(core.ModelBase): + """LongValue""" + + value: core.Long + type: typing.Literal["longValue"] = "longValue" + + class LtQueryV2(core.ModelBase): """ Returns objects where the specified field is less than a value. Allows you to specify a property to query on @@ -2160,6 +2281,21 @@ class MinAggregationV2(core.ModelBase): type: typing.Literal["min"] = "min" +class ModifyEdit(core.ModelBase): + """ModifyEdit""" + + includes_all_previous_values: typing.Optional[bool] = pydantic.Field(alias=str("includesAllPreviousValues"), default=None) # type: ignore[literal-required] + previous_properties: typing.Dict[PropertyApiName, PropertyValue] = pydantic.Field(alias=str("previousProperties")) # type: ignore[literal-required] + """ + The property values before the modification. + Only includes properties that were changed. + Maps property API names to their previous values. + """ + + properties: typing.Dict[PropertyApiName, PropertyValue] + type: typing.Literal["modifyEdit"] = "modifyEdit" + + class ModifyInterfaceLogicRule(core.ModelBase): """ModifyInterfaceLogicRule""" @@ -2189,7 +2325,7 @@ class ModifyObjectEdit(core.ModelBase): object_type: ObjectTypeApiName = pydantic.Field(alias=str("objectType")) # type: ignore[literal-required] primary_key: PropertyValue = pydantic.Field(alias=str("primaryKey")) # type: ignore[literal-required] - properties: typing.Dict[PropertyApiName, DataValue] + properties: typing.Dict[PropertyApiName, typing.Optional[DataValue]] type: typing.Literal["modifyObject"] = "modifyObject" @@ -2451,6 +2587,24 @@ class NumberFormatStandardUnit(core.ModelBase): """ObjectEdit""" +class ObjectEditHistoryEntry(core.ModelBase): + """ + Represents a single object edit operation in the history. This captures when an object was + created, modified, or deleted as part of an action execution. + """ + + object_primary_key: ObjectPrimaryKeyV2 = pydantic.Field(alias=str("objectPrimaryKey")) # type: ignore[literal-required] + operation_id: ActionRid = pydantic.Field(alias=str("operationId")) # type: ignore[literal-required] + action_type_rid: ActionTypeRid = pydantic.Field(alias=str("actionTypeRid")) # type: ignore[literal-required] + user_id: str = pydantic.Field(alias=str("userId")) # type: ignore[literal-required] + """The user ID or principal that performed the action""" + + timestamp: core.AwareDatetime + """When this edit occurred (ISO 8601 format)""" + + edit: EditHistoryEdit + + class ObjectEdits(core.ModelBase): """ObjectEdits""" @@ -2485,6 +2639,10 @@ class ObjectParameterPropertyArgument(core.ModelBase): """ObjectPrimaryKey""" +ObjectPrimaryKeyV2 = typing.Dict["PropertyApiName", "PrimaryKeyValueV2"] +"""ObjectPrimaryKeyV2""" + + ObjectPropertyType = typing_extensions.Annotated[ typing.Union[ core_models.DateType, @@ -2794,6 +2952,41 @@ class ObjectTypeEdits(core.ModelBase): type: typing.Literal["largeScaleEdits"] = "largeScaleEdits" +class ObjectTypeEditsHistoryRequest(core.ModelBase): + """ + Request object for querying object type edits history, containing both filters and pagination parameters + + If objectPrimaryKey property is set, the method will return edits history for the particular object. + Otherwise, the method will return edits history for all objects of this object type. + """ + + object_primary_key: typing.Optional[ObjectPrimaryKeyV2] = pydantic.Field(alias=str("objectPrimaryKey"), default=None) # type: ignore[literal-required] + filters: typing.Optional[EditsHistoryFilter] = None + sort_order: typing.Optional[EditsHistorySortOrder] = pydantic.Field(alias=str("sortOrder"), default=None) # type: ignore[literal-required] + include_all_previous_properties: typing.Optional[bool] = pydantic.Field(alias=str("includeAllPreviousProperties"), default=None) # type: ignore[literal-required] + page_size: typing.Optional[int] = pydantic.Field(alias=str("pageSize"), default=None) # type: ignore[literal-required] + """The maximum number of edits to return per page. Defaults to 100.""" + + page_token: typing.Optional[str] = pydantic.Field(alias=str("pageToken"), default=None) # type: ignore[literal-required] + """Token for retrieving the next page of results""" + + +class ObjectTypeEditsHistoryResponse(core.ModelBase): + """ + Response containing the history of edits for objects of a specific object type. + Only contains object edits (create, modify, delete) - link edits are not included. + """ + + data: typing.List[ObjectEditHistoryEntry] + """List of historical edits for this object type""" + + total_count: typing.Optional[int] = pydantic.Field(alias=str("totalCount"), default=None) # type: ignore[literal-required] + """Count of items in the data array above""" + + next_page_token: typing.Optional[str] = pydantic.Field(alias=str("nextPageToken"), default=None) # type: ignore[literal-required] + """Token for retrieving the next page of results""" + + class ObjectTypeFullMetadata(core.ModelBase): """ObjectTypeFullMetadata""" @@ -3201,6 +3394,21 @@ class PrefixOnLastTokenRule(core.ModelBase): """Represents the primary key value that is used as a unique identifier for an object.""" +PrimaryKeyValueV2 = typing_extensions.Annotated[ + typing.Union[ + "DateValue", + "StringValue", + "TimestampValue", + "BooleanValue", + "IntegerValue", + "DoubleValue", + "LongValue", + ], + pydantic.Field(discriminator="type"), +] +"""PrimaryKeyValueV2""" + + PropertyApiName = str """ The name of the property in the API. To find the API name for your property, use the `Get object type` @@ -3390,7 +3598,7 @@ class PropertyTypeReference(core.ModelBase): PropertyTypeRid = core.RID -"""PropertyTypeRid""" +"""The unique resource identifier of a property.""" PropertyTypeStatus = typing_extensions.Annotated[ @@ -3420,6 +3628,7 @@ class PropertyV2(core.ModelBase): visibility: typing.Optional[PropertyTypeVisibility] = None value_type_api_name: typing.Optional[ValueTypeApiName] = pydantic.Field(alias=str("valueTypeApiName"), default=None) # type: ignore[literal-required] value_formatting: typing.Optional[PropertyValueFormattingRule] = pydantic.Field(alias=str("valueFormatting"), default=None) # type: ignore[literal-required] + type_classes: typing.List[TypeClass] = pydantic.Field(alias=str("typeClasses")) # type: ignore[literal-required] PropertyValue = typing.Any @@ -4161,6 +4370,7 @@ class SharedPropertyType(core.ModelBase): data_type: ObjectPropertyType = pydantic.Field(alias=str("dataType")) # type: ignore[literal-required] value_type_api_name: typing.Optional[ValueTypeApiName] = pydantic.Field(alias=str("valueTypeApiName"), default=None) # type: ignore[literal-required] value_formatting: typing.Optional[PropertyValueFormattingRule] = pydantic.Field(alias=str("valueFormatting"), default=None) # type: ignore[literal-required] + type_classes: typing.List[TypeClass] = pydantic.Field(alias=str("typeClasses")) # type: ignore[literal-required] SharedPropertyTypeApiName = str @@ -4272,6 +4482,13 @@ class StringRegexMatchConstraint(core.ModelBase): type: typing.Literal["stringRegexMatch"] = "stringRegexMatch" +class StringValue(core.ModelBase): + """StringValue""" + + value: str + type: typing.Literal["stringValue"] = "stringValue" + + class StructConstraint(core.ModelBase): """StructConstraint""" @@ -4361,6 +4578,7 @@ class StructFieldType(core.ModelBase): api_name: StructFieldApiName = pydantic.Field(alias=str("apiName")) # type: ignore[literal-required] rid: StructFieldTypeRid data_type: ObjectPropertyType = pydantic.Field(alias=str("dataType")) # type: ignore[literal-required] + type_classes: typing.List[TypeClass] = pydantic.Field(alias=str("typeClasses")) # type: ignore[literal-required] StructFieldTypeRid = core.RID @@ -4624,6 +4842,13 @@ class TimeseriesEntry(core.ModelBase): """An object which is either an enum String, double number, or a geopoint.""" +class TimestampValue(core.ModelBase): + """TimestampValue""" + + value: core.AwareDatetime + type: typing.Literal["timestampValue"] = "timestampValue" + + TransactionEdit = typing_extensions.Annotated[ typing.Union[ "ModifyObjectEdit", "DeleteObjectEdit", "AddObjectEdit", "DeleteLinkEdit", "AddLinkEdit" @@ -4641,6 +4866,16 @@ class TwoDimensionalAggregation(core.ModelBase): type: typing.Literal["twoDimensionalAggregation"] = "twoDimensionalAggregation" +class TypeClass(core.ModelBase): + """Additional metadata that can be interpreted by user applications that interact with the Ontology""" + + kind: str + """A namespace for the type class.""" + + name: str + """The value of the type class.""" + + class UnevaluableConstraint(core.ModelBase): """ The parameter cannot be evaluated because it depends on another parameter or object set that can't be evaluated. @@ -4949,6 +5184,8 @@ class WithinPolygonQuery(core.ModelBase): core.resolve_forward_references(DerivedPropertyDefinition, globalns=globals(), localns=locals()) core.resolve_forward_references(DisjunctiveMarkingSummary, globalns=globals(), localns=locals()) core.resolve_forward_references(DurationFormatStyle, globalns=globals(), localns=locals()) +core.resolve_forward_references(EditHistoryEdit, globalns=globals(), localns=locals()) +core.resolve_forward_references(EditsHistoryFilter, globalns=globals(), localns=locals()) core.resolve_forward_references( InterfaceLinkTypeLinkedEntityApiName, globalns=globals(), localns=locals() ) @@ -4976,6 +5213,7 @@ class WithinPolygonQuery(core.ModelBase): ) core.resolve_forward_references(ObjectEdit, globalns=globals(), localns=locals()) core.resolve_forward_references(ObjectPrimaryKey, globalns=globals(), localns=locals()) +core.resolve_forward_references(ObjectPrimaryKeyV2, globalns=globals(), localns=locals()) core.resolve_forward_references(ObjectPropertyType, globalns=globals(), localns=locals()) core.resolve_forward_references(ObjectSet, globalns=globals(), localns=locals()) core.resolve_forward_references(ObjectSetSubscribeResponse, globalns=globals(), localns=locals()) @@ -4983,6 +5221,7 @@ class WithinPolygonQuery(core.ModelBase): core.resolve_forward_references(OntologyDataType, globalns=globals(), localns=locals()) core.resolve_forward_references(OntologyObjectV2, globalns=globals(), localns=locals()) core.resolve_forward_references(ParameterEvaluatedConstraint, globalns=globals(), localns=locals()) +core.resolve_forward_references(PrimaryKeyValueV2, globalns=globals(), localns=locals()) core.resolve_forward_references(PropertyIdentifier, globalns=globals(), localns=locals()) core.resolve_forward_references(PropertyLoadLevel, globalns=globals(), localns=locals()) core.resolve_forward_references( @@ -5089,6 +5328,7 @@ class WithinPolygonQuery(core.ModelBase): "BatchReturnEditsMode", "BatchedFunctionLogicRule", "BlueprintIcon", + "BooleanValue", "BoundingBoxValue", "CenterPoint", "CenterPointTypes", @@ -5102,6 +5342,7 @@ class WithinPolygonQuery(core.ModelBase): "ContainsQueryV2", "CountAggregationV2", "CountObjectsResponseV2", + "CreateEdit", "CreateInterfaceLinkLogicRule", "CreateInterfaceLogicRule", "CreateInterfaceObjectRule", @@ -5116,6 +5357,7 @@ class WithinPolygonQuery(core.ModelBase): "CurrentTimeArgument", "CurrentUserArgument", "DataValue", + "DateValue", "DatetimeFormat", "DatetimeLocalizedFormat", "DatetimeLocalizedFormatType", @@ -5124,6 +5366,7 @@ class WithinPolygonQuery(core.ModelBase): "DatetimeTimezoneStatic", "DatetimeTimezoneUser", "DecryptionResult", + "DeleteEdit", "DeleteInterfaceLinkLogicRule", "DeleteInterfaceObjectRule", "DeleteLink", @@ -5141,10 +5384,16 @@ class WithinPolygonQuery(core.ModelBase): "DividePropertyExpression", "DoesNotIntersectBoundingBoxQuery", "DoesNotIntersectPolygonQuery", + "DoubleValue", "DoubleVector", "DurationBaseValue", "DurationFormatStyle", "DurationPrecision", + "EditHistoryEdit", + "EditsHistoryFilter", + "EditsHistoryOperationIdsFilter", + "EditsHistorySortOrder", + "EditsHistoryTimestampFilter", "EntrySetType", "EnumConstraint", "EqualsQueryV2", @@ -5165,6 +5414,7 @@ class WithinPolygonQuery(core.ModelBase): "FunctionParameterName", "FunctionRid", "FunctionVersion", + "FuzzyRule", "FuzzyV2", "GeotemporalSeriesEntry", "GeotimeSeriesValue", @@ -5176,6 +5426,7 @@ class WithinPolygonQuery(core.ModelBase): "HumanReadableFormat", "Icon", "InQuery", + "IntegerValue", "InterfaceDefinedPropertyType", "InterfaceLinkType", "InterfaceLinkTypeApiName", @@ -5243,6 +5494,7 @@ class WithinPolygonQuery(core.ModelBase): "LoadOntologyMetadataRequest", "LogicRule", "LogicRuleArgument", + "LongValue", "LtQueryV2", "LteQueryV2", "MarkingId", @@ -5251,6 +5503,7 @@ class WithinPolygonQuery(core.ModelBase): "MediaMetadata", "MethodObjectSet", "MinAggregationV2", + "ModifyEdit", "ModifyInterfaceLogicRule", "ModifyInterfaceObjectRule", "ModifyObject", @@ -5280,10 +5533,12 @@ class WithinPolygonQuery(core.ModelBase): "NumberRoundingMode", "NumberScaleType", "ObjectEdit", + "ObjectEditHistoryEntry", "ObjectEdits", "ObjectLoadingResponseOptions", "ObjectParameterPropertyArgument", "ObjectPrimaryKey", + "ObjectPrimaryKeyV2", "ObjectPropertyType", "ObjectPropertyValueConstraint", "ObjectQueryResultConstraint", @@ -5314,6 +5569,8 @@ class WithinPolygonQuery(core.ModelBase): "ObjectState", "ObjectTypeApiName", "ObjectTypeEdits", + "ObjectTypeEditsHistoryRequest", + "ObjectTypeEditsHistoryResponse", "ObjectTypeFullMetadata", "ObjectTypeId", "ObjectTypeInterfaceImplementation", @@ -5360,6 +5617,7 @@ class WithinPolygonQuery(core.ModelBase): "PreciseTimeUnit", "PrefixOnLastTokenRule", "PrimaryKeyValue", + "PrimaryKeyValueV2", "PropertyApiName", "PropertyApiNameSelector", "PropertyBooleanFormattingRule", @@ -5464,6 +5722,7 @@ class WithinPolygonQuery(core.ModelBase): "StringConstant", "StringLengthConstraint", "StringRegexMatchConstraint", + "StringValue", "StructConstraint", "StructEvaluatedConstraint", "StructFieldApiName", @@ -5502,8 +5761,10 @@ class WithinPolygonQuery(core.ModelBase): "TimeSeriesWindowType", "TimeUnit", "TimeseriesEntry", + "TimestampValue", "TransactionEdit", "TwoDimensionalAggregation", + "TypeClass", "UnevaluableConstraint", "UniqueIdentifierArgument", "UniqueIdentifierLinkId", diff --git a/foundry_sdk/v2/ontologies/object_type.py b/foundry_sdk/v2/ontologies/object_type.py index 48b04de05..72124890e 100644 --- a/foundry_sdk/v2/ontologies/object_type.py +++ b/foundry_sdk/v2/ontologies/object_type.py @@ -96,6 +96,87 @@ def get( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_edits_history( + self, + ontology: ontologies_models.OntologyIdentifier, + object_type: ontologies_models.ObjectTypeApiName, + *, + branch: typing.Optional[core_models.FoundryBranch] = None, + filters: typing.Optional[ontologies_models.EditsHistoryFilter] = None, + include_all_previous_properties: typing.Optional[bool] = None, + object_primary_key: typing.Optional[ontologies_models.ObjectPrimaryKeyV2] = None, + page_size: typing.Optional[int] = None, + page_token: typing.Optional[str] = None, + sort_order: typing.Optional[ontologies_models.EditsHistorySortOrder] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> ontologies_models.ObjectTypeEditsHistoryResponse: + """ + Returns the history of edits (additions, modifications, deletions) for objects of a + specific object type. This endpoint provides visibility into all actions that have + modified objects of this type. + + The edits are returned in reverse chronological order (most recent first) by default. + + Note that filters are ignored for OSv1 object types. + + :param ontology: The ontology RID or API name + :type ontology: OntologyIdentifier + :param object_type: The API name of the object type + :type object_type: ObjectTypeApiName + :param branch: The Foundry branch from which we will get edits history. If not specified, the default branch is used. Branches are an experimental feature and not all workflows are supported. + :type branch: Optional[FoundryBranch] + :param filters: + :type filters: Optional[EditsHistoryFilter] + :param include_all_previous_properties: + :type include_all_previous_properties: Optional[bool] + :param object_primary_key: + :type object_primary_key: Optional[ObjectPrimaryKeyV2] + :param page_size: The maximum number of edits to return per page. Defaults to 100. + :type page_size: Optional[int] + :param page_token: Token for retrieving the next page of results + :type page_token: Optional[str] + :param sort_order: + :type sort_order: Optional[EditsHistorySortOrder] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: ontologies_models.ObjectTypeEditsHistoryResponse + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/ontologies/{ontology}/objectTypes/{objectType}/editsHistory", + query_params={ + "branch": branch, + }, + path_params={ + "ontology": ontology, + "objectType": object_type, + }, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=ontologies_models.ObjectTypeEditsHistoryRequest( + object_primary_key=object_primary_key, + filters=filters, + sort_order=sort_order, + include_all_previous_properties=include_all_previous_properties, + page_size=page_size, + page_token=page_token, + ), + response_type=ontologies_models.ObjectTypeEditsHistoryResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -328,12 +409,14 @@ def list_outgoing_link_types( class _ObjectTypeClientRaw: def __init__(self, client: ObjectTypeClient) -> None: def get(_: ontologies_models.ObjectTypeV2): ... + def get_edits_history(_: ontologies_models.ObjectTypeEditsHistoryResponse): ... def get_full_metadata(_: ontologies_models.ObjectTypeFullMetadata): ... def get_outgoing_link_type(_: ontologies_models.LinkTypeSideV2): ... def list(_: ontologies_models.ListObjectTypesV2Response): ... def list_outgoing_link_types(_: ontologies_models.ListOutgoingLinkTypesResponseV2): ... self.get = core.with_raw_response(get, client.get) + self.get_edits_history = core.with_raw_response(get_edits_history, client.get_edits_history) self.get_full_metadata = core.with_raw_response(get_full_metadata, client.get_full_metadata) self.get_outgoing_link_type = core.with_raw_response( get_outgoing_link_type, client.get_outgoing_link_type @@ -347,12 +430,16 @@ def list_outgoing_link_types(_: ontologies_models.ListOutgoingLinkTypesResponseV class _ObjectTypeClientStreaming: def __init__(self, client: ObjectTypeClient) -> None: def get(_: ontologies_models.ObjectTypeV2): ... + def get_edits_history(_: ontologies_models.ObjectTypeEditsHistoryResponse): ... def get_full_metadata(_: ontologies_models.ObjectTypeFullMetadata): ... def get_outgoing_link_type(_: ontologies_models.LinkTypeSideV2): ... def list(_: ontologies_models.ListObjectTypesV2Response): ... def list_outgoing_link_types(_: ontologies_models.ListOutgoingLinkTypesResponseV2): ... self.get = core.with_streaming_response(get, client.get) + self.get_edits_history = core.with_streaming_response( + get_edits_history, client.get_edits_history + ) self.get_full_metadata = core.with_streaming_response( get_full_metadata, client.get_full_metadata ) @@ -437,6 +524,87 @@ def get( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def get_edits_history( + self, + ontology: ontologies_models.OntologyIdentifier, + object_type: ontologies_models.ObjectTypeApiName, + *, + branch: typing.Optional[core_models.FoundryBranch] = None, + filters: typing.Optional[ontologies_models.EditsHistoryFilter] = None, + include_all_previous_properties: typing.Optional[bool] = None, + object_primary_key: typing.Optional[ontologies_models.ObjectPrimaryKeyV2] = None, + page_size: typing.Optional[int] = None, + page_token: typing.Optional[str] = None, + sort_order: typing.Optional[ontologies_models.EditsHistorySortOrder] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[ontologies_models.ObjectTypeEditsHistoryResponse]: + """ + Returns the history of edits (additions, modifications, deletions) for objects of a + specific object type. This endpoint provides visibility into all actions that have + modified objects of this type. + + The edits are returned in reverse chronological order (most recent first) by default. + + Note that filters are ignored for OSv1 object types. + + :param ontology: The ontology RID or API name + :type ontology: OntologyIdentifier + :param object_type: The API name of the object type + :type object_type: ObjectTypeApiName + :param branch: The Foundry branch from which we will get edits history. If not specified, the default branch is used. Branches are an experimental feature and not all workflows are supported. + :type branch: Optional[FoundryBranch] + :param filters: + :type filters: Optional[EditsHistoryFilter] + :param include_all_previous_properties: + :type include_all_previous_properties: Optional[bool] + :param object_primary_key: + :type object_primary_key: Optional[ObjectPrimaryKeyV2] + :param page_size: The maximum number of edits to return per page. Defaults to 100. + :type page_size: Optional[int] + :param page_token: Token for retrieving the next page of results + :type page_token: Optional[str] + :param sort_order: + :type sort_order: Optional[EditsHistorySortOrder] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[ontologies_models.ObjectTypeEditsHistoryResponse] + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/ontologies/{ontology}/objectTypes/{objectType}/editsHistory", + query_params={ + "branch": branch, + }, + path_params={ + "ontology": ontology, + "objectType": object_type, + }, + header_params={ + "Content-Type": "application/json", + "Accept": "application/json", + }, + body=ontologies_models.ObjectTypeEditsHistoryRequest( + object_primary_key=object_primary_key, + filters=filters, + sort_order=sort_order, + include_all_previous_properties=include_all_previous_properties, + page_size=page_size, + page_token=page_token, + ), + response_type=ontologies_models.ObjectTypeEditsHistoryResponse, + request_timeout=request_timeout, + throwable_errors={}, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -669,12 +837,16 @@ def list_outgoing_link_types( class _AsyncObjectTypeClientRaw: def __init__(self, client: AsyncObjectTypeClient) -> None: def get(_: ontologies_models.ObjectTypeV2): ... + def get_edits_history(_: ontologies_models.ObjectTypeEditsHistoryResponse): ... def get_full_metadata(_: ontologies_models.ObjectTypeFullMetadata): ... def get_outgoing_link_type(_: ontologies_models.LinkTypeSideV2): ... def list(_: ontologies_models.ListObjectTypesV2Response): ... def list_outgoing_link_types(_: ontologies_models.ListOutgoingLinkTypesResponseV2): ... self.get = core.async_with_raw_response(get, client.get) + self.get_edits_history = core.async_with_raw_response( + get_edits_history, client.get_edits_history + ) self.get_full_metadata = core.async_with_raw_response( get_full_metadata, client.get_full_metadata ) @@ -690,12 +862,16 @@ def list_outgoing_link_types(_: ontologies_models.ListOutgoingLinkTypesResponseV class _AsyncObjectTypeClientStreaming: def __init__(self, client: AsyncObjectTypeClient) -> None: def get(_: ontologies_models.ObjectTypeV2): ... + def get_edits_history(_: ontologies_models.ObjectTypeEditsHistoryResponse): ... def get_full_metadata(_: ontologies_models.ObjectTypeFullMetadata): ... def get_outgoing_link_type(_: ontologies_models.LinkTypeSideV2): ... def list(_: ontologies_models.ListObjectTypesV2Response): ... def list_outgoing_link_types(_: ontologies_models.ListOutgoingLinkTypesResponseV2): ... self.get = core.async_with_streaming_response(get, client.get) + self.get_edits_history = core.async_with_streaming_response( + get_edits_history, client.get_edits_history + ) self.get_full_metadata = core.async_with_streaming_response( get_full_metadata, client.get_full_metadata ) diff --git a/foundry_sdk/v2/ontologies/ontology_object_set.py b/foundry_sdk/v2/ontologies/ontology_object_set.py index a15b24680..a915a1fef 100644 --- a/foundry_sdk/v2/ontologies/ontology_object_set.py +++ b/foundry_sdk/v2/ontologies/ontology_object_set.py @@ -557,6 +557,7 @@ def load_objects_or_interfaces( sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, select_v2: typing.Optional[typing.List[ontologies_models.PropertyIdentifier]] = None, snapshot: typing.Optional[bool] = None, + transaction_id: typing.Optional[ontologies_models.OntologyTransactionId] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> ontologies_models.LoadObjectSetV2ObjectsOrInterfacesResponse: @@ -603,6 +604,8 @@ def load_objects_or_interfaces( :type select_v2: Optional[List[PropertyIdentifier]] :param snapshot: A flag to use snapshot consistency when paging. Setting this to true will give you a consistent view from before you start paging through the results, ensuring you do not get duplicate or missing items. Setting this to false will let new results enter as you page, but you may encounter duplicate or missing items. This defaults to false if not specified, which means you will always get the latest results. :type snapshot: Optional[bool] + :param transaction_id: The ID of an Ontology transaction to read from. Transactions are an experimental feature and all workflows may not be supported. + :type transaction_id: Optional[OntologyTransactionId] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -618,6 +621,7 @@ def load_objects_or_interfaces( "preview": preview, "sdkPackageRid": sdk_package_rid, "sdkVersion": sdk_version, + "transactionId": transaction_id, }, path_params={ "ontology": ontology, @@ -1233,6 +1237,7 @@ def load_objects_or_interfaces( sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, select_v2: typing.Optional[typing.List[ontologies_models.PropertyIdentifier]] = None, snapshot: typing.Optional[bool] = None, + transaction_id: typing.Optional[ontologies_models.OntologyTransactionId] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> typing.Awaitable[ontologies_models.LoadObjectSetV2ObjectsOrInterfacesResponse]: @@ -1279,6 +1284,8 @@ def load_objects_or_interfaces( :type select_v2: Optional[List[PropertyIdentifier]] :param snapshot: A flag to use snapshot consistency when paging. Setting this to true will give you a consistent view from before you start paging through the results, ensuring you do not get duplicate or missing items. Setting this to false will let new results enter as you page, but you may encounter duplicate or missing items. This defaults to false if not specified, which means you will always get the latest results. :type snapshot: Optional[bool] + :param transaction_id: The ID of an Ontology transaction to read from. Transactions are an experimental feature and all workflows may not be supported. + :type transaction_id: Optional[OntologyTransactionId] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -1294,6 +1301,7 @@ def load_objects_or_interfaces( "preview": preview, "sdkPackageRid": sdk_package_rid, "sdkVersion": sdk_version, + "transactionId": transaction_id, }, path_params={ "ontology": ontology, diff --git a/foundry_sdk/v2/ontologies/ontology_transaction.py b/foundry_sdk/v2/ontologies/ontology_transaction.py index 5b351e2bf..2cbe66967 100644 --- a/foundry_sdk/v2/ontologies/ontology_transaction.py +++ b/foundry_sdk/v2/ontologies/ontology_transaction.py @@ -57,6 +57,8 @@ def post_edits( *, edits: typing.List[ontologies_models.TransactionEdit], preview: typing.Optional[core_models.PreviewMode] = None, + sdk_package_rid: typing.Optional[ontologies_models.SdkPackageRid] = None, + sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> ontologies_models.PostTransactionEditsResponse: @@ -71,6 +73,10 @@ def post_edits( :type edits: List[TransactionEdit] :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. :type preview: Optional[PreviewMode] + :param sdk_package_rid: The package rid of the generated SDK. + :type sdk_package_rid: Optional[SdkPackageRid] + :param sdk_version: The version of the generated SDK. + :type sdk_version: Optional[SdkVersion] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -83,6 +89,8 @@ def post_edits( resource_path="/v2/ontologies/{ontology}/transactions/{transactionId}/edits", query_params={ "preview": preview, + "sdkPackageRid": sdk_package_rid, + "sdkVersion": sdk_version, }, path_params={ "ontology": ontology, @@ -150,6 +158,8 @@ def post_edits( *, edits: typing.List[ontologies_models.TransactionEdit], preview: typing.Optional[core_models.PreviewMode] = None, + sdk_package_rid: typing.Optional[ontologies_models.SdkPackageRid] = None, + sdk_version: typing.Optional[ontologies_models.SdkVersion] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> typing.Awaitable[ontologies_models.PostTransactionEditsResponse]: @@ -164,6 +174,10 @@ def post_edits( :type edits: List[TransactionEdit] :param preview: A boolean flag that, when set to true, enables the use of beta features in preview mode. :type preview: Optional[PreviewMode] + :param sdk_package_rid: The package rid of the generated SDK. + :type sdk_package_rid: Optional[SdkPackageRid] + :param sdk_version: The version of the generated SDK. + :type sdk_version: Optional[SdkVersion] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -176,6 +190,8 @@ def post_edits( resource_path="/v2/ontologies/{ontology}/transactions/{transactionId}/edits", query_params={ "preview": preview, + "sdkPackageRid": sdk_package_rid, + "sdkVersion": sdk_version, }, path_params={ "ontology": ontology, diff --git a/foundry_sdk/v2/orchestration/models.py b/foundry_sdk/v2/orchestration/models.py index 3211bfbee..a842494a8 100644 --- a/foundry_sdk/v2/orchestration/models.py +++ b/foundry_sdk/v2/orchestration/models.py @@ -81,6 +81,9 @@ class Build(core.ModelBase): retry_backoff_duration: RetryBackoffDuration = pydantic.Field(alias=str("retryBackoffDuration")) # type: ignore[literal-required] abort_on_failure: AbortOnFailure = pydantic.Field(alias=str("abortOnFailure")) # type: ignore[literal-required] status: BuildStatus + finished_time: typing.Optional[core.AwareDatetime] = pydantic.Field(alias=str("finishedTime"), default=None) # type: ignore[literal-required] + """The time the build finished processing. Will be empty while the build is still running.""" + schedule_rid: typing.Optional[core_models.ScheduleRid] = pydantic.Field(alias=str("scheduleRid"), default=None) # type: ignore[literal-required] """Schedule RID of the Schedule that triggered this build. If a user triggered the build, Schedule RID will be empty.""" diff --git a/foundry_sdk/v2/sql_queries/errors.py b/foundry_sdk/v2/sql_queries/errors.py index 3d996d5ca..ef0bf524c 100644 --- a/foundry_sdk/v2/sql_queries/errors.py +++ b/foundry_sdk/v2/sql_queries/errors.py @@ -39,6 +39,19 @@ class CancelSqlQueryPermissionDenied(errors.PermissionDeniedError): error_instance_id: str +class ExecuteOntologySqlQueryPermissionDeniedParameters(typing_extensions.TypedDict): + """Could not executeOntology the SqlQuery.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + +@dataclass +class ExecuteOntologySqlQueryPermissionDenied(errors.PermissionDeniedError): + name: typing.Literal["ExecuteOntologySqlQueryPermissionDenied"] + parameters: ExecuteOntologySqlQueryPermissionDeniedParameters + error_instance_id: str + + class ExecuteSqlQueryPermissionDeniedParameters(typing_extensions.TypedDict): """Could not execute the SqlQuery.""" @@ -84,6 +97,21 @@ class GetStatusSqlQueryPermissionDenied(errors.PermissionDeniedError): error_instance_id: str +class OntologyQueryFailedParameters(typing_extensions.TypedDict): + """The Ontology query failed.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + errorMessage: str + + +@dataclass +class OntologyQueryFailed(errors.InternalServerError): + name: typing.Literal["OntologyQueryFailed"] + parameters: OntologyQueryFailedParameters + error_instance_id: str + + class QueryCanceledParameters(typing_extensions.TypedDict): """The query was canceled.""" @@ -178,9 +206,11 @@ class ReadQueryInputsPermissionDenied(errors.PermissionDeniedError): __all__ = [ "CancelSqlQueryPermissionDenied", + "ExecuteOntologySqlQueryPermissionDenied", "ExecuteSqlQueryPermissionDenied", "GetResultsSqlQueryPermissionDenied", "GetStatusSqlQueryPermissionDenied", + "OntologyQueryFailed", "QueryCanceled", "QueryFailed", "QueryParseError", diff --git a/foundry_sdk/v2/sql_queries/models.py b/foundry_sdk/v2/sql_queries/models.py index e69a3f0a4..0a7136439 100644 --- a/foundry_sdk/v2/sql_queries/models.py +++ b/foundry_sdk/v2/sql_queries/models.py @@ -15,7 +15,9 @@ from __future__ import annotations +import decimal import typing +from datetime import date import pydantic import typing_extensions @@ -24,12 +26,68 @@ from foundry_sdk.v2.core import models as core_models +class AnyColumnType(core.ModelBase): + """AnyColumnType""" + + type: typing.Literal["any"] = "any" + + class CanceledQueryStatus(core.ModelBase): """CanceledQueryStatus""" type: typing.Literal["canceled"] = "canceled" +ColumnType = typing_extensions.Annotated[ + typing.Union[ + core_models.DateType, + "StructColumnType", + core_models.StringType, + core_models.DoubleType, + core_models.IntegerType, + core_models.FloatType, + "ListColumnType", + "AnyColumnType", + core_models.LongType, + core_models.BooleanType, + core_models.BinaryType, + core_models.ShortType, + "DecimalColumnType", + "MapColumnType", + core_models.TimestampType, + ], + pydantic.Field(discriminator="type"), +] +"""The type of a column in a SQL query result or parameter.""" + + +class DecimalColumnType(core.ModelBase): + """DecimalColumnType""" + + precision: int + scale: int + type: typing.Literal["decimal"] = "decimal" + + +class ExecuteOntologySqlQueryRequest(core.ModelBase): + """ExecuteOntologySqlQueryRequest""" + + query: str + """The SQL query to execute.""" + + parameters: typing.Optional[Parameters] = None + """ + Parameters for the SQL query. Can be either unnamed positional parameters + or a named parameter mapping. + """ + + row_limit: typing.Optional[int] = pydantic.Field(alias=str("rowLimit"), default=None) # type: ignore[literal-required] + """Maximum number of rows to return.""" + + dry_run: typing.Optional[bool] = pydantic.Field(alias=str("dryRun"), default=None) # type: ignore[literal-required] + """If true, parse and validate the query without executing it. Defaults to false.""" + + class ExecuteSqlQueryRequest(core.ModelBase): """ExecuteSqlQueryRequest""" @@ -60,6 +118,186 @@ class FailedQueryStatus(core.ModelBase): type: typing.Literal["failed"] = "failed" +class ListColumnType(core.ModelBase): + """ListColumnType""" + + element_type: ColumnType = pydantic.Field(alias=str("elementType")) # type: ignore[literal-required] + type: typing.Literal["list"] = "list" + + +class MapColumnType(core.ModelBase): + """MapColumnType""" + + key_type: ColumnType = pydantic.Field(alias=str("keyType")) # type: ignore[literal-required] + value_type: ColumnType = pydantic.Field(alias=str("valueType")) # type: ignore[literal-required] + type: typing.Literal["map"] = "map" + + +MapParameterKey = str +"""A key for a map parameter value.""" + + +class NamedParameterMapping(core.ModelBase): + """A named mapping of parameter names to values.""" + + mapping: ParameterMapping + type: typing.Literal["namedParameterMapping"] = "namedParameterMapping" + + +class ParameterAnyValue(core.ModelBase): + """An untyped parameter value.""" + + value: typing.Any + type: typing.Literal["any"] = "any" + + +class ParameterBinaryValue(core.ModelBase): + """A binary parameter value.""" + + value: bytes + type: typing.Literal["binary"] = "binary" + + +class ParameterBooleanValue(core.ModelBase): + """A boolean parameter value.""" + + value: bool + type: typing.Literal["boolean"] = "boolean" + + +class ParameterDateValue(core.ModelBase): + """A date parameter value.""" + + value: date + type: typing.Literal["date"] = "date" + + +class ParameterDecimalValue(core.ModelBase): + """A decimal parameter value.""" + + value: decimal.Decimal + type: typing.Literal["decimal"] = "decimal" + + +class ParameterDoubleValue(core.ModelBase): + """A double parameter value.""" + + value: float + type: typing.Literal["double"] = "double" + + +class ParameterFloatValue(core.ModelBase): + """A float parameter value.""" + + value: float + type: typing.Literal["float"] = "float" + + +class ParameterIntegerValue(core.ModelBase): + """An integer parameter value.""" + + value: int + type: typing.Literal["integer"] = "integer" + + +class ParameterListValue(core.ModelBase): + """A parameter value that is a list of other parameter values. All values in the list must be of the same type.""" + + values: typing.List[ParameterValue] + element_type: ColumnType = pydantic.Field(alias=str("elementType")) # type: ignore[literal-required] + type: typing.Literal["list"] = "list" + + +class ParameterLongValue(core.ModelBase): + """A long integer parameter value.""" + + value: core.Long + type: typing.Literal["long"] = "long" + + +class ParameterMapValue(core.ModelBase): + """A map parameter value.""" + + values: typing.Dict[MapParameterKey, ParameterValue] + type: typing.Literal["map"] = "map" + + +ParameterMapping = typing.Dict["ParameterName", "ParameterValue"] +"""A mapping of named parameters to their values.""" + + +ParameterName = str +"""The name of a SQL query parameter.""" + + +class ParameterNullValue(core.ModelBase): + """A null parameter value.""" + + type: typing.Literal["null"] = "null" + + +class ParameterShortValue(core.ModelBase): + """A short integer parameter value.""" + + value: int + type: typing.Literal["short"] = "short" + + +class ParameterStringValue(core.ModelBase): + """A string parameter value.""" + + value: str + type: typing.Literal["string"] = "string" + + +class ParameterStructValue(core.ModelBase): + """A struct composed of ordered elements, each with a name and value.""" + + struct_elements: typing.List[StructElement] = pydantic.Field(alias=str("structElements")) # type: ignore[literal-required] + type: typing.Literal["struct"] = "struct" + + +class ParameterTimestampValue(core.ModelBase): + """A timestamp parameter value.""" + + value: core.AwareDatetime + type: typing.Literal["timestamp"] = "timestamp" + + +ParameterValue = typing_extensions.Annotated[ + typing.Union[ + "ParameterDateValue", + "ParameterStructValue", + "ParameterStringValue", + "ParameterDoubleValue", + "ParameterIntegerValue", + "ParameterFloatValue", + "ParameterListValue", + "ParameterAnyValue", + "ParameterLongValue", + "ParameterBooleanValue", + "ParameterNullValue", + "ParameterBinaryValue", + "ParameterShortValue", + "ParameterDecimalValue", + "ParameterMapValue", + "ParameterTimestampValue", + ], + pydantic.Field(discriminator="type"), +] +"""A typed parameter value for SQL query execution.""" + + +Parameters = typing_extensions.Annotated[ + typing.Union["UnnamedParameterValues", "NamedParameterMapping"], + pydantic.Field(discriminator="type"), +] +""" +Parameters for SQL query execution. Can be either unnamed positional parameters +or named parameter mappings. +""" + + QueryStatus = typing_extensions.Annotated[ typing.Union[ "RunningQueryStatus", "CanceledQueryStatus", "FailedQueryStatus", "SucceededQueryStatus" @@ -80,6 +318,47 @@ class RunningQueryStatus(core.ModelBase): """The identifier of a SQL Query.""" +class StructColumnFieldType(core.ModelBase): + """StructColumnFieldType""" + + name: str + type: ColumnType + + +class StructColumnType(core.ModelBase): + """StructColumnType""" + + fields: typing.List[StructColumnFieldType] + type: typing.Literal["struct"] = "struct" + + +class StructElement(core.ModelBase): + """Represents an entry in a struct.""" + + struct_element_name: StructElementName = pydantic.Field(alias=str("structElementName")) # type: ignore[literal-required] + struct_element_value: ParameterValue = pydantic.Field(alias=str("structElementValue")) # type: ignore[literal-required] + + +StructElementName = typing_extensions.Annotated[ + typing.Union["StructFieldRid", "StructFieldKeyValue"], pydantic.Field(discriminator="type") +] +"""The name of a struct element.""" + + +class StructFieldKeyValue(core.ModelBase): + """A string key for a struct field.""" + + value: str + type: typing.Literal["structFieldKey"] = "structFieldKey" + + +class StructFieldRid(core.ModelBase): + """A unique identifier for a field of a struct property type.""" + + value: core.RID + type: typing.Literal["structFieldRid"] = "structFieldRid" + + class SucceededQueryStatus(core.ModelBase): """SucceededQueryStatus""" @@ -87,14 +366,61 @@ class SucceededQueryStatus(core.ModelBase): type: typing.Literal["succeeded"] = "succeeded" +class UnnamedParameterValues(core.ModelBase): + """An ordered list of unnamed positional parameter values.""" + + values: typing.List[ParameterValue] + type: typing.Literal["unnamedParameterValues"] = "unnamedParameterValues" + + +core.resolve_forward_references(ColumnType, globalns=globals(), localns=locals()) +core.resolve_forward_references(ParameterMapping, globalns=globals(), localns=locals()) +core.resolve_forward_references(ParameterValue, globalns=globals(), localns=locals()) +core.resolve_forward_references(Parameters, globalns=globals(), localns=locals()) core.resolve_forward_references(QueryStatus, globalns=globals(), localns=locals()) +core.resolve_forward_references(StructElementName, globalns=globals(), localns=locals()) __all__ = [ + "AnyColumnType", "CanceledQueryStatus", + "ColumnType", + "DecimalColumnType", + "ExecuteOntologySqlQueryRequest", "ExecuteSqlQueryRequest", "FailedQueryStatus", + "ListColumnType", + "MapColumnType", + "MapParameterKey", + "NamedParameterMapping", + "ParameterAnyValue", + "ParameterBinaryValue", + "ParameterBooleanValue", + "ParameterDateValue", + "ParameterDecimalValue", + "ParameterDoubleValue", + "ParameterFloatValue", + "ParameterIntegerValue", + "ParameterListValue", + "ParameterLongValue", + "ParameterMapValue", + "ParameterMapping", + "ParameterName", + "ParameterNullValue", + "ParameterShortValue", + "ParameterStringValue", + "ParameterStructValue", + "ParameterTimestampValue", + "ParameterValue", + "Parameters", "QueryStatus", "RunningQueryStatus", "SqlQueryId", + "StructColumnFieldType", + "StructColumnType", + "StructElement", + "StructElementName", + "StructFieldKeyValue", + "StructFieldRid", "SucceededQueryStatus", + "UnnamedParameterValues", ] diff --git a/foundry_sdk/v2/sql_queries/sql_query.py b/foundry_sdk/v2/sql_queries/sql_query.py index 48ba9975d..c8c109c89 100644 --- a/foundry_sdk/v2/sql_queries/sql_query.py +++ b/foundry_sdk/v2/sql_queries/sql_query.py @@ -165,6 +165,73 @@ def execute( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def execute_ontology( + self, + *, + query: str, + dry_run: typing.Optional[bool] = None, + parameters: typing.Optional[sql_queries_models.Parameters] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + row_limit: typing.Optional[int] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> bytes: + """ + Executes a SQL query against the Ontology. Results are returned synchronously in + [Apache Arrow](https://arrow.apache.org/) format. + + :param query: The SQL query to execute. + :type query: str + :param dry_run: If true, parse and validate the query without executing it. Defaults to false. + :type dry_run: Optional[bool] + :param parameters: Parameters for the SQL query. Can be either unnamed positional parameters or a named parameter mapping. + :type parameters: Optional[Parameters] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param row_limit: Maximum number of rows to return. + :type row_limit: Optional[int] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: bytes + + :raises ExecuteOntologySqlQueryPermissionDenied: Could not executeOntology the SqlQuery. + :raises OntologyQueryFailed: The Ontology query failed. + :raises QueryParseError: The query cannot be parsed. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/sqlQueries/executeOntology", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/octet-stream", + }, + body=sql_queries_models.ExecuteOntologySqlQueryRequest( + query=query, + parameters=parameters, + row_limit=row_limit, + dry_run=dry_run, + ), + response_type=bytes, + request_timeout=request_timeout, + throwable_errors={ + "ExecuteOntologySqlQueryPermissionDenied": sql_queries_errors.ExecuteOntologySqlQueryPermissionDenied, + "OntologyQueryFailed": sql_queries_errors.OntologyQueryFailed, + "QueryParseError": sql_queries_errors.QueryParseError, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -287,11 +354,13 @@ class _SqlQueryClientRaw: def __init__(self, client: SqlQueryClient) -> None: def cancel(_: None): ... def execute(_: sql_queries_models.QueryStatus): ... + def execute_ontology(_: bytes): ... def get_results(_: bytes): ... def get_status(_: sql_queries_models.QueryStatus): ... self.cancel = core.with_raw_response(cancel, client.cancel) self.execute = core.with_raw_response(execute, client.execute) + self.execute_ontology = core.with_raw_response(execute_ontology, client.execute_ontology) self.get_results = core.with_raw_response(get_results, client.get_results) self.get_status = core.with_raw_response(get_status, client.get_status) @@ -299,10 +368,14 @@ def get_status(_: sql_queries_models.QueryStatus): ... class _SqlQueryClientStreaming: def __init__(self, client: SqlQueryClient) -> None: def execute(_: sql_queries_models.QueryStatus): ... + def execute_ontology(_: bytes): ... def get_results(_: bytes): ... def get_status(_: sql_queries_models.QueryStatus): ... self.execute = core.with_streaming_response(execute, client.execute) + self.execute_ontology = core.with_streaming_response( + execute_ontology, client.execute_ontology + ) self.get_results = core.with_streaming_response(get_results, client.get_results) self.get_status = core.with_streaming_response(get_status, client.get_status) @@ -447,6 +520,73 @@ def execute( ), ) + @core.maybe_ignore_preview + @pydantic.validate_call + @errors.handle_unexpected + def execute_ontology( + self, + *, + query: str, + dry_run: typing.Optional[bool] = None, + parameters: typing.Optional[sql_queries_models.Parameters] = None, + preview: typing.Optional[core_models.PreviewMode] = None, + row_limit: typing.Optional[int] = None, + request_timeout: typing.Optional[core.Timeout] = None, + _sdk_internal: core.SdkInternal = {}, + ) -> typing.Awaitable[bytes]: + """ + Executes a SQL query against the Ontology. Results are returned synchronously in + [Apache Arrow](https://arrow.apache.org/) format. + + :param query: The SQL query to execute. + :type query: str + :param dry_run: If true, parse and validate the query without executing it. Defaults to false. + :type dry_run: Optional[bool] + :param parameters: Parameters for the SQL query. Can be either unnamed positional parameters or a named parameter mapping. + :type parameters: Optional[Parameters] + :param preview: Enables the use of preview functionality. + :type preview: Optional[PreviewMode] + :param row_limit: Maximum number of rows to return. + :type row_limit: Optional[int] + :param request_timeout: timeout setting for this request in seconds. + :type request_timeout: Optional[int] + :return: Returns the result object. + :rtype: typing.Awaitable[bytes] + + :raises ExecuteOntologySqlQueryPermissionDenied: Could not executeOntology the SqlQuery. + :raises OntologyQueryFailed: The Ontology query failed. + :raises QueryParseError: The query cannot be parsed. + """ + + return self._api_client.call_api( + core.RequestInfo( + method="POST", + resource_path="/v2/sqlQueries/executeOntology", + query_params={ + "preview": preview, + }, + path_params={}, + header_params={ + "Content-Type": "application/json", + "Accept": "application/octet-stream", + }, + body=sql_queries_models.ExecuteOntologySqlQueryRequest( + query=query, + parameters=parameters, + row_limit=row_limit, + dry_run=dry_run, + ), + response_type=bytes, + request_timeout=request_timeout, + throwable_errors={ + "ExecuteOntologySqlQueryPermissionDenied": sql_queries_errors.ExecuteOntologySqlQueryPermissionDenied, + "OntologyQueryFailed": sql_queries_errors.OntologyQueryFailed, + "QueryParseError": sql_queries_errors.QueryParseError, + }, + response_mode=_sdk_internal.get("response_mode"), + ), + ) + @core.maybe_ignore_preview @pydantic.validate_call @errors.handle_unexpected @@ -569,11 +709,15 @@ class _AsyncSqlQueryClientRaw: def __init__(self, client: AsyncSqlQueryClient) -> None: def cancel(_: None): ... def execute(_: sql_queries_models.QueryStatus): ... + def execute_ontology(_: bytes): ... def get_results(_: bytes): ... def get_status(_: sql_queries_models.QueryStatus): ... self.cancel = core.async_with_raw_response(cancel, client.cancel) self.execute = core.async_with_raw_response(execute, client.execute) + self.execute_ontology = core.async_with_raw_response( + execute_ontology, client.execute_ontology + ) self.get_results = core.async_with_raw_response(get_results, client.get_results) self.get_status = core.async_with_raw_response(get_status, client.get_status) @@ -581,9 +725,13 @@ def get_status(_: sql_queries_models.QueryStatus): ... class _AsyncSqlQueryClientStreaming: def __init__(self, client: AsyncSqlQueryClient) -> None: def execute(_: sql_queries_models.QueryStatus): ... + def execute_ontology(_: bytes): ... def get_results(_: bytes): ... def get_status(_: sql_queries_models.QueryStatus): ... self.execute = core.async_with_streaming_response(execute, client.execute) + self.execute_ontology = core.async_with_streaming_response( + execute_ontology, client.execute_ontology + ) self.get_results = core.async_with_streaming_response(get_results, client.get_results) self.get_status = core.async_with_streaming_response(get_status, client.get_status) diff --git a/foundry_sdk/v2/streams/stream.py b/foundry_sdk/v2/streams/stream.py index 1ad068f09..6e145840f 100644 --- a/foundry_sdk/v2/streams/stream.py +++ b/foundry_sdk/v2/streams/stream.py @@ -197,8 +197,8 @@ def get_end_offsets( dataset_rid: core_models.DatasetRid, stream_branch_name: core_models.BranchName, *, - view_rid: streams_models.ViewRid, preview: typing.Optional[core_models.PreviewMode] = None, + view_rid: typing.Optional[streams_models.ViewRid] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> streams_models.GetEndOffsetsResponse: @@ -209,10 +209,10 @@ def get_end_offsets( :type dataset_rid: DatasetRid :param stream_branch_name: :type stream_branch_name: BranchName - :param view_rid: The RID from the view to retrieve end offsets for. - :type view_rid: ViewRid :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] + :param view_rid: If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. + :type view_rid: Optional[ViewRid] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -226,8 +226,8 @@ def get_end_offsets( method="GET", resource_path="/v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getEndOffsets", query_params={ - "viewRid": view_rid, "preview": preview, + "viewRid": view_rid, }, path_params={ "datasetRid": dataset_rid, @@ -256,9 +256,9 @@ def get_records( *, limit: int, partition_id: streams_models.PartitionId, - view_rid: streams_models.ViewRid, preview: typing.Optional[core_models.PreviewMode] = None, start_offset: typing.Optional[core.Long] = None, + view_rid: typing.Optional[streams_models.ViewRid] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> streams_models.GetRecordsResponse: @@ -274,12 +274,12 @@ def get_records( :type limit: int :param partition_id: The ID of the partition to retrieve records from. :type partition_id: PartitionId - :param view_rid: The Rid from the view to retrieve records from. - :type view_rid: ViewRid :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] :param start_offset: The inclusive beginning of the range to be retrieved. Leave empty when reading from the beginning of the partition. :type start_offset: Optional[Long] + :param view_rid: If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. + :type view_rid: Optional[ViewRid] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -295,9 +295,9 @@ def get_records( query_params={ "limit": limit, "partitionId": partition_id, - "viewRid": view_rid, "preview": preview, "startOffset": start_offset, + "viewRid": view_rid, }, path_params={ "datasetRid": dataset_rid, @@ -341,7 +341,7 @@ def publish_binary_record( :type body: bytes :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] - :param view_rid: If provided, this operation will only write to the stream corresponding to the specified view RID. If not provided, this operation will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. + :param view_rid: If provided, this endpoint will only write to the stream corresponding to the specified view RID. If not provided, this endpoint will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. :type view_rid: Optional[ViewRid] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] @@ -798,8 +798,8 @@ def get_end_offsets( dataset_rid: core_models.DatasetRid, stream_branch_name: core_models.BranchName, *, - view_rid: streams_models.ViewRid, preview: typing.Optional[core_models.PreviewMode] = None, + view_rid: typing.Optional[streams_models.ViewRid] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> typing.Awaitable[streams_models.GetEndOffsetsResponse]: @@ -810,10 +810,10 @@ def get_end_offsets( :type dataset_rid: DatasetRid :param stream_branch_name: :type stream_branch_name: BranchName - :param view_rid: The RID from the view to retrieve end offsets for. - :type view_rid: ViewRid :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] + :param view_rid: If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. + :type view_rid: Optional[ViewRid] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -827,8 +827,8 @@ def get_end_offsets( method="GET", resource_path="/v2/highScale/streams/datasets/{datasetRid}/streams/{streamBranchName}/getEndOffsets", query_params={ - "viewRid": view_rid, "preview": preview, + "viewRid": view_rid, }, path_params={ "datasetRid": dataset_rid, @@ -857,9 +857,9 @@ def get_records( *, limit: int, partition_id: streams_models.PartitionId, - view_rid: streams_models.ViewRid, preview: typing.Optional[core_models.PreviewMode] = None, start_offset: typing.Optional[core.Long] = None, + view_rid: typing.Optional[streams_models.ViewRid] = None, request_timeout: typing.Optional[core.Timeout] = None, _sdk_internal: core.SdkInternal = {}, ) -> typing.Awaitable[streams_models.GetRecordsResponse]: @@ -875,12 +875,12 @@ def get_records( :type limit: int :param partition_id: The ID of the partition to retrieve records from. :type partition_id: PartitionId - :param view_rid: The Rid from the view to retrieve records from. - :type view_rid: ViewRid :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] :param start_offset: The inclusive beginning of the range to be retrieved. Leave empty when reading from the beginning of the partition. :type start_offset: Optional[Long] + :param view_rid: If provided, this endpoint will only read from the stream corresponding to the specified view RID. If not provided, this endpoint will read from the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. + :type view_rid: Optional[ViewRid] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] :return: Returns the result object. @@ -896,9 +896,9 @@ def get_records( query_params={ "limit": limit, "partitionId": partition_id, - "viewRid": view_rid, "preview": preview, "startOffset": start_offset, + "viewRid": view_rid, }, path_params={ "datasetRid": dataset_rid, @@ -942,7 +942,7 @@ def publish_binary_record( :type body: bytes :param preview: Enables the use of preview functionality. :type preview: Optional[PreviewMode] - :param view_rid: If provided, this operation will only write to the stream corresponding to the specified view RID. If not provided, this operation will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. + :param view_rid: If provided, this endpoint will only write to the stream corresponding to the specified view RID. If not provided, this endpoint will write to the latest stream on the branch. Providing this value is an advanced configuration, to be used when additional control over the underlying streaming data structures is needed. :type view_rid: Optional[ViewRid] :param request_timeout: timeout setting for this request in seconds. :type request_timeout: Optional[int] diff --git a/foundry_sdk/v2/third_party_applications/errors.py b/foundry_sdk/v2/third_party_applications/errors.py index d025e2705..e07f20447 100644 --- a/foundry_sdk/v2/third_party_applications/errors.py +++ b/foundry_sdk/v2/third_party_applications/errors.py @@ -125,6 +125,51 @@ class InvalidVersion(errors.BadRequestError): error_instance_id: str +class ScanningErroredParameters(typing_extensions.TypedDict): + """An error occurred while scanning the website files for vulnerabilities. Please check the Website Hosting page in Developer Console for more information and try uploading again.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + version: third_party_applications_models.VersionVersion + + +@dataclass +class ScanningErrored(errors.BadRequestError): + name: typing.Literal["ScanningErrored"] + parameters: ScanningErroredParameters + error_instance_id: str + + +class ScanningInProgressParameters(typing_extensions.TypedDict): + """The website files are currently being scanned for vulnerabilities. Please wait for the scan to complete and confirm no vulnerabilities first.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + version: third_party_applications_models.VersionVersion + + +@dataclass +class ScanningInProgress(errors.BadRequestError): + name: typing.Literal["ScanningInProgress"] + parameters: ScanningInProgressParameters + error_instance_id: str + + +class SiteAssetHasVulnerabilitiesParameters(typing_extensions.TypedDict): + """Vulnerabilities were detected in these website files. Please check the Website Hosting page in Developer Console for more information and address these vulnerabilities before uploading again.""" + + __pydantic_config__ = {"extra": "allow"} # type: ignore + + version: third_party_applications_models.VersionVersion + + +@dataclass +class SiteAssetHasVulnerabilities(errors.BadRequestError): + name: typing.Literal["SiteAssetHasVulnerabilities"] + parameters: SiteAssetHasVulnerabilitiesParameters + error_instance_id: str + + class ThirdPartyApplicationNotFoundParameters(typing_extensions.TypedDict): """The given ThirdPartyApplication could not be found.""" @@ -264,6 +309,9 @@ class WebsiteNotFound(errors.NotFoundError): "FileCountLimitExceeded", "FileSizeLimitExceeded", "InvalidVersion", + "ScanningErrored", + "ScanningInProgress", + "SiteAssetHasVulnerabilities", "ThirdPartyApplicationNotFound", "UndeployWebsitePermissionDenied", "UploadSnapshotVersionPermissionDenied", diff --git a/pyproject.toml b/pyproject.toml index ead96e02b..698aece62 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ packages = [{ include = "foundry_sdk" }] [tool.poetry.dependencies] annotated-types = ">=0.7.0, <1.0.0" pydantic = ">=2.6.0, <3.0.0" -python = "^3.9" +python = "^3.10" httpx = ">=0.25.0, <1.0.0" typing-extensions = ">=4.7.1, <5.0.0" h11 = ">=0.16.0, <1.0.0" # CVE-2025-43859 diff --git a/tests/test_resorce_import.py b/tests/test_resorce_import.py index a906c8d20..f49f62da8 100644 --- a/tests/test_resorce_import.py +++ b/tests/test_resorce_import.py @@ -140,6 +140,14 @@ def test_admin_v2_marking_category_import(): assert MarkingCategoryClient is not None +def test_admin_v2_marking_category_permissions_import(): + from foundry_sdk.v2.admin.marking_category_permissions import ( + MarkingCategoryPermissionsClient, + ) # NOQA + + assert MarkingCategoryPermissionsClient is not None + + def test_admin_v2_marking_member_import(): from foundry_sdk.v2.admin.marking_member import MarkingMemberClient @@ -364,6 +372,32 @@ def test_models_v2_model_import(): assert ModelClient is not None +def test_models_v2_model_studio_import(): + from foundry_sdk.v2.models.model_studio import ModelStudioClient + + assert ModelStudioClient is not None + + +def test_models_v2_model_studio_config_version_import(): + from foundry_sdk.v2.models.model_studio_config_version import ( + ModelStudioConfigVersionClient, + ) # NOQA + + assert ModelStudioConfigVersionClient is not None + + +def test_models_v2_model_studio_run_import(): + from foundry_sdk.v2.models.model_studio_run import ModelStudioRunClient + + assert ModelStudioRunClient is not None + + +def test_models_v2_model_studio_trainer_import(): + from foundry_sdk.v2.models.model_studio_trainer import ModelStudioTrainerClient + + assert ModelStudioTrainerClient is not None + + def test_models_v2_model_version_import(): from foundry_sdk.v2.models.model_version import ModelVersionClient