diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml
index e2256f32bd5..6dade971e36 100644
--- a/.generator/schemas/v2/openapi.yaml
+++ b/.generator/schemas/v2/openapi.yaml
@@ -767,6 +767,30 @@ components:
schema:
example: my-job
type: string
+ LLMObsDatasetIDPathParameter:
+ description: The ID of the LLM Observability dataset.
+ example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d
+ in: path
+ name: dataset_id
+ required: true
+ schema:
+ type: string
+ LLMObsExperimentIDPathParameter:
+ description: The ID of the LLM Observability experiment.
+ example: 3fd6b5e0-8910-4b1c-a7d0-5b84de329012
+ in: path
+ name: experiment_id
+ required: true
+ schema:
+ type: string
+ LLMObsProjectIDPathParameter:
+ description: The ID of the LLM Observability project.
+ example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751
+ in: path
+ name: project_id
+ required: true
+ schema:
+ type: string
MetricID:
description: The name of the log-based metric.
in: path
@@ -34715,437 +34739,1431 @@ components:
format: int64
type: integer
type: object
- Language:
- description: Programming language
- enum:
- - PYTHON
- - JAVASCRIPT
- - TYPESCRIPT
- - JAVA
- - GO
- - YAML
- - RUBY
- - CSHARP
- - PHP
- - KOTLIN
- - SWIFT
- example: PYTHON
- type: string
- x-enum-varnames:
- - PYTHON
- - JAVASCRIPT
- - TYPESCRIPT
- - JAVA
- - GO
- - YAML
- - RUBY
- - CSHARP
- - PHP
- - KOTLIN
- - SWIFT
- LaunchDarklyAPIKey:
- description: The definition of the `LaunchDarklyAPIKey` object.
+ LLMObsCursorMeta:
+ description: Pagination cursor metadata.
properties:
- api_token:
- description: The `LaunchDarklyAPIKey` `api_token`.
- example: ''
+ after:
+ description: Cursor for the next page of results.
+ nullable: true
type: string
- type:
- $ref: '#/components/schemas/LaunchDarklyAPIKeyType'
- required:
- - type
- - api_token
type: object
- LaunchDarklyAPIKeyType:
- description: The definition of the `LaunchDarklyAPIKey` object.
- enum:
- - LaunchDarklyAPIKey
- example: LaunchDarklyAPIKey
- type: string
- x-enum-varnames:
- - LAUNCHDARKLYAPIKEY
- LaunchDarklyAPIKeyUpdate:
- description: The definition of the `LaunchDarklyAPIKey` object.
+ LLMObsDatasetDataAttributesRequest:
+ description: Attributes for creating an LLM Observability dataset.
properties:
- api_token:
- description: The `LaunchDarklyAPIKeyUpdate` `api_token`.
+ description:
+ description: Description of the dataset.
+ type: string
+ metadata:
+ additionalProperties: {}
+ description: Arbitrary metadata associated with the dataset.
+ type: object
+ name:
+ description: Name of the dataset.
+ example: My LLM Dataset
type: string
- type:
- $ref: '#/components/schemas/LaunchDarklyAPIKeyType'
required:
- - type
+ - name
type: object
- LaunchDarklyCredentials:
- description: The definition of the `LaunchDarklyCredentials` object.
- oneOf:
- - $ref: '#/components/schemas/LaunchDarklyAPIKey'
- LaunchDarklyCredentialsUpdate:
- description: The definition of the `LaunchDarklyCredentialsUpdate` object.
- oneOf:
- - $ref: '#/components/schemas/LaunchDarklyAPIKeyUpdate'
- LaunchDarklyIntegration:
- description: The definition of the `LaunchDarklyIntegration` object.
+ LLMObsDatasetDataAttributesResponse:
+ description: Attributes of an LLM Observability dataset.
properties:
- credentials:
- $ref: '#/components/schemas/LaunchDarklyCredentials'
- type:
- $ref: '#/components/schemas/LaunchDarklyIntegrationType'
+ created_at:
+ description: Timestamp when the dataset was created.
+ example: '2024-01-15T10:30:00Z'
+ format: date-time
+ type: string
+ current_version:
+ description: Current version number of the dataset.
+ example: 1
+ format: int64
+ type: integer
+ description:
+ description: Description of the dataset.
+ example: ''
+ nullable: true
+ type: string
+ metadata:
+ additionalProperties: {}
+ description: Arbitrary metadata associated with the dataset.
+ nullable: true
+ type: object
+ name:
+ description: Name of the dataset.
+ example: My LLM Dataset
+ type: string
+ updated_at:
+ description: Timestamp when the dataset was last updated.
+ example: '2024-01-15T10:30:00Z'
+ format: date-time
+ type: string
required:
- - type
- - credentials
+ - name
+ - description
+ - metadata
+ - current_version
+ - created_at
+ - updated_at
type: object
- LaunchDarklyIntegrationType:
- description: The definition of the `LaunchDarklyIntegrationType` object.
- enum:
- - LaunchDarkly
- example: LaunchDarkly
- type: string
- x-enum-varnames:
- - LAUNCHDARKLY
- LaunchDarklyIntegrationUpdate:
- description: The definition of the `LaunchDarklyIntegrationUpdate` object.
+ LLMObsDatasetDataRequest:
+ description: Data object for creating an LLM Observability dataset.
properties:
- credentials:
- $ref: '#/components/schemas/LaunchDarklyCredentialsUpdate'
+ attributes:
+ $ref: '#/components/schemas/LLMObsDatasetDataAttributesRequest'
type:
- $ref: '#/components/schemas/LaunchDarklyIntegrationType'
+ $ref: '#/components/schemas/LLMObsDatasetType'
required:
- type
+ - attributes
type: object
- Layer:
- description: Encapsulates a layer resource, holding attributes like rotation
- details, plus relationships to the members covering that layer.
+ LLMObsDatasetDataResponse:
+ description: Data object for an LLM Observability dataset.
properties:
attributes:
- $ref: '#/components/schemas/LayerAttributes'
+ $ref: '#/components/schemas/LLMObsDatasetDataAttributesResponse'
id:
- description: A unique identifier for this layer.
+ description: Unique identifier of the dataset.
+ example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d
type: string
- relationships:
- $ref: '#/components/schemas/LayerRelationships'
type:
- $ref: '#/components/schemas/LayerType'
+ $ref: '#/components/schemas/LLMObsDatasetType'
required:
+ - id
- type
+ - attributes
type: object
- LayerAttributes:
- description: Describes key properties of a Layer, including rotation details,
- name, start/end times, and any restrictions.
+ LLMObsDatasetRecordDataResponse:
+ description: A single LLM Observability dataset record.
properties:
- effective_date:
- description: When the layer becomes active (ISO 8601).
+ created_at:
+ description: Timestamp when the record was created.
+ example: '2024-01-15T10:30:00Z'
format: date-time
type: string
- end_date:
- description: When the layer ceases to be active (ISO 8601).
- format: date-time
+ dataset_id:
+ description: Identifier of the dataset this record belongs to.
+ example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d
type: string
- interval:
- $ref: '#/components/schemas/LayerAttributesInterval'
- name:
- description: The name of this layer.
- example: Weekend Layer
+ expected_output:
+ $ref: '#/components/schemas/AnyValue'
+ id:
+ description: Unique identifier of the record.
+ example: rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c
type: string
- restrictions:
- description: An optional list of time restrictions for when this layer is
- in effect.
- items:
- $ref: '#/components/schemas/TimeRestriction'
- type: array
- rotation_start:
- description: The date/time when the rotation starts (ISO 8601).
+ input:
+ $ref: '#/components/schemas/AnyValue'
+ metadata:
+ additionalProperties: {}
+ description: Arbitrary metadata associated with the record.
+ nullable: true
+ type: object
+ updated_at:
+ description: Timestamp when the record was last updated.
+ example: '2024-01-15T10:30:00Z'
format: date-time
type: string
- time_zone:
- description: The time zone for this layer.
- example: America/New_York
- type: string
+ required:
+ - id
+ - dataset_id
+ - input
+ - expected_output
+ - metadata
+ - created_at
+ - updated_at
type: object
- LayerAttributesInterval:
- description: Defines how often the rotation repeats, using a combination of
- days and optional seconds. Should be at least 1 hour.
+ LLMObsDatasetRecordItem:
+ description: A single record to append to an LLM Observability dataset.
properties:
- days:
- description: The number of days in each rotation cycle.
- example: 1
- format: int32
- maximum: 400
- type: integer
- seconds:
- description: Any additional seconds for the rotation cycle (up to 30 days).
- example: 300
- format: int64
- maximum: 2592000
- type: integer
+ expected_output:
+ $ref: '#/components/schemas/AnyValue'
+ input:
+ $ref: '#/components/schemas/AnyValue'
+ metadata:
+ additionalProperties: {}
+ description: Arbitrary metadata associated with the record.
+ type: object
+ required:
+ - input
type: object
- LayerRelationships:
- description: Holds references to objects related to the Layer entity, such as
- its members.
+ LLMObsDatasetRecordUpdateItem:
+ description: A record update payload for an LLM Observability dataset.
properties:
- members:
- $ref: '#/components/schemas/LayerRelationshipsMembers'
+ expected_output:
+ $ref: '#/components/schemas/AnyValue'
+ id:
+ description: Unique identifier of the record to update.
+ example: rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c
+ type: string
+ input:
+ $ref: '#/components/schemas/AnyValue'
+ metadata:
+ additionalProperties: {}
+ description: Updated metadata associated with the record.
+ type: object
+ required:
+ - id
type: object
- LayerRelationshipsMembers:
- description: Holds an array of references to the members of a Layer, each containing
- member IDs.
+ LLMObsDatasetRecordsDataAttributesRequest:
+ description: Attributes for appending records to an LLM Observability dataset.
properties:
- data:
- description: The list of members who belong to this layer.
+ deduplicate:
+ description: Whether to deduplicate records before appending. Defaults to
+ `true`.
+ type: boolean
+ records:
+ description: List of records to append to the dataset.
items:
- $ref: '#/components/schemas/LayerRelationshipsMembersDataItems'
+ $ref: '#/components/schemas/LLMObsDatasetRecordItem'
type: array
- type: object
- LayerRelationshipsMembersDataItems:
- description: 'Represents a single member object in a layer''s `members` array,
- referencing
-
- a unique Datadog user ID.'
- properties:
- id:
- description: The unique user ID of the layer member.
- example: 00000000-0000-0000-0000-000000000002
- type: string
- type:
- $ref: '#/components/schemas/LayerRelationshipsMembersDataItemsType'
required:
- - type
- - id
+ - records
type: object
- LayerRelationshipsMembersDataItemsType:
- default: members
- description: Members resource type.
- enum:
- - members
- example: members
- type: string
- x-enum-varnames:
- - MEMBERS
- LayerType:
- default: layers
- description: Layers resource type.
- enum:
- - layers
- example: layers
- type: string
- x-enum-varnames:
- - LAYERS
- LeakedKey:
- description: The definition of LeakedKey object.
+ LLMObsDatasetRecordsDataRequest:
+ description: Data object for appending records to an LLM Observability dataset.
properties:
attributes:
- $ref: '#/components/schemas/LeakedKeyAttributes'
- id:
- description: The LeakedKey id.
- example: id
- type: string
+ $ref: '#/components/schemas/LLMObsDatasetRecordsDataAttributesRequest'
type:
- $ref: '#/components/schemas/LeakedKeyType'
+ $ref: '#/components/schemas/LLMObsRecordType'
required:
- - attributes
- - id
- type
+ - attributes
type: object
- LeakedKeyAttributes:
- description: The definition of LeakedKeyAttributes object.
+ LLMObsDatasetRecordsListResponse:
+ description: Response containing a paginated list of LLM Observability dataset
+ records.
properties:
- date:
- description: The LeakedKeyAttributes date.
- example: '2017-07-21T17:32:28Z'
- format: date-time
- type: string
- leak_source:
- description: The LeakedKeyAttributes leak_source.
- type: string
+ data:
+ description: List of dataset records.
+ items:
+ $ref: '#/components/schemas/LLMObsDatasetRecordDataResponse'
+ type: array
+ meta:
+ $ref: '#/components/schemas/LLMObsCursorMeta'
required:
- - date
+ - data
type: object
- LeakedKeyType:
- default: leaked_keys
- description: The definition of LeakedKeyType object.
- enum:
- - leaked_keys
- example: leaked_keys
- type: string
- x-enum-varnames:
- - LEAKED_KEYS
- Library:
- description: Vulnerability library.
+ LLMObsDatasetRecordsMutationData:
+ description: Response containing records after a create or update operation.
properties:
- additional_names:
- description: Related library or package names (such as child packages or
- affected binary paths).
+ records:
+ description: List of affected dataset records.
items:
- example: linux-tools-common
- type: string
+ $ref: '#/components/schemas/LLMObsDatasetRecordDataResponse'
type: array
- name:
- description: Vulnerability library name.
- example: linux-aws-5.15
- type: string
- version:
- description: Vulnerability library version.
- example: 5.15.0
- type: string
required:
- - name
+ - records
type: object
- Links:
- description: The JSON:API links related to pagination.
+ LLMObsDatasetRecordsMutationResponse:
+ description: Response containing records after a create or update operation.
properties:
- first:
- description: First page link.
- example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=1&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
- type: string
- last:
- description: Last page link.
- example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=15&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
- type: string
- next:
- description: Next page link.
- example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=16&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
- type: string
- previous:
- description: Previous page link.
- example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=14&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
- type: string
- self:
- description: Request link.
- example: https://api.datadoghq.com/api/v2/security/vulnerabilities?filter%5Btool%5D=Infra
- type: string
+ data:
+ description: List of affected dataset records.
+ items:
+ $ref: '#/components/schemas/LLMObsDatasetRecordsMutationData'
+ type: array
required:
- - self
- - first
- - last
+ - data
type: object
- ListAPIsResponse:
- description: Response for `ListAPIs`.
+ LLMObsDatasetRecordsRequest:
+ description: Request to append records to an LLM Observability dataset.
properties:
data:
- description: List of API items.
+ $ref: '#/components/schemas/LLMObsDatasetRecordsDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsDatasetRecordsUpdateDataAttributesRequest:
+ description: Attributes for updating records in an LLM Observability dataset.
+ properties:
+ records:
+ description: List of records to update.
items:
- $ref: '#/components/schemas/ListAPIsResponseData'
+ $ref: '#/components/schemas/LLMObsDatasetRecordUpdateItem'
type: array
- meta:
- $ref: '#/components/schemas/ListAPIsResponseMeta'
+ required:
+ - records
type: object
- ListAPIsResponseData:
- description: Data envelope for `ListAPIsResponse`.
+ LLMObsDatasetRecordsUpdateDataRequest:
+ description: Data object for updating records in an LLM Observability dataset.
properties:
attributes:
- $ref: '#/components/schemas/ListAPIsResponseDataAttributes'
- id:
- $ref: '#/components/schemas/ApiID'
+ $ref: '#/components/schemas/LLMObsDatasetRecordsUpdateDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsRecordType'
+ required:
+ - type
+ - attributes
type: object
- ListAPIsResponseDataAttributes:
- description: Attributes for `ListAPIsResponseData`.
+ LLMObsDatasetRecordsUpdateRequest:
+ description: Request to update records in an LLM Observability dataset.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsDatasetRecordsUpdateDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsDatasetRequest:
+ description: Request to create an LLM Observability dataset.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsDatasetDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsDatasetResponse:
+ description: Response containing a single LLM Observability dataset.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsDatasetDataResponse'
+ required:
+ - data
+ type: object
+ LLMObsDatasetType:
+ description: Resource type of an LLM Observability dataset.
+ enum:
+ - datasets
+ example: datasets
+ type: string
+ x-enum-varnames:
+ - DATASETS
+ LLMObsDatasetUpdateDataAttributesRequest:
+ description: Attributes for updating an LLM Observability dataset.
properties:
+ description:
+ description: Updated description of the dataset.
+ type: string
+ metadata:
+ additionalProperties: {}
+ description: Updated metadata associated with the dataset.
+ type: object
name:
- description: API name.
- example: Payments API
+ description: Updated name of the dataset.
type: string
type: object
- ListAPIsResponseMeta:
- description: Metadata for `ListAPIsResponse`.
+ LLMObsDatasetUpdateDataRequest:
+ description: Data object for updating an LLM Observability dataset.
properties:
- pagination:
- $ref: '#/components/schemas/ListAPIsResponseMetaPagination'
+ attributes:
+ $ref: '#/components/schemas/LLMObsDatasetUpdateDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsDatasetType'
+ required:
+ - type
+ - attributes
type: object
- ListAPIsResponseMetaPagination:
- description: Pagination metadata information for `ListAPIsResponse`.
+ LLMObsDatasetUpdateRequest:
+ description: Request to partially update an LLM Observability dataset.
properties:
- limit:
- description: Number of items in the current page.
- example: 20
- format: int64
- type: integer
- offset:
- description: Offset for pagination.
- example: 0
- format: int64
- type: integer
- total_count:
- description: Total number of items.
- example: 35
- format: int64
- type: integer
+ data:
+ $ref: '#/components/schemas/LLMObsDatasetUpdateDataRequest'
+ required:
+ - data
type: object
- ListAppKeyRegistrationsResponse:
- description: A paginated list of app key registrations.
+ LLMObsDatasetsResponse:
+ description: Response containing a list of LLM Observability datasets.
properties:
data:
- description: An array of app key registrations.
+ description: List of datasets.
items:
- $ref: '#/components/schemas/AppKeyRegistrationData'
+ $ref: '#/components/schemas/LLMObsDatasetDataResponse'
type: array
meta:
- $ref: '#/components/schemas/ListAppKeyRegistrationsResponseMeta'
+ $ref: '#/components/schemas/LLMObsCursorMeta'
+ required:
+ - data
type: object
- ListAppKeyRegistrationsResponseMeta:
- description: The definition of `ListAppKeyRegistrationsResponseMeta` object.
+ LLMObsDeleteDatasetRecordsDataAttributesRequest:
+ description: Attributes for deleting records from an LLM Observability dataset.
properties:
- total:
- description: The total number of app key registrations.
- example: 1
- format: int64
- type: integer
- total_filtered:
- description: The total number of app key registrations that match the specified
- filters.
- example: 1
- format: int64
- type: integer
+ record_ids:
+ description: List of record IDs to delete.
+ example:
+ - rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c
+ items:
+ type: string
+ type: array
+ required:
+ - record_ids
type: object
- ListApplicationKeysResponse:
- description: Response for a list of application keys.
+ LLMObsDeleteDatasetRecordsDataRequest:
+ description: Data object for deleting records from an LLM Observability dataset.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsDeleteDatasetRecordsDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsRecordType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsDeleteDatasetRecordsRequest:
+ description: Request to delete records from an LLM Observability dataset.
properties:
data:
- description: Array of application keys.
- items:
- $ref: '#/components/schemas/PartialApplicationKey'
- type: array
- included:
- description: Array of objects related to the application key.
+ $ref: '#/components/schemas/LLMObsDeleteDatasetRecordsDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsDeleteDatasetsDataAttributesRequest:
+ description: Attributes for deleting LLM Observability datasets.
+ properties:
+ dataset_ids:
+ description: List of dataset IDs to delete.
+ example:
+ - 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d
items:
- $ref: '#/components/schemas/ApplicationKeyResponseIncludedItem'
+ type: string
type: array
- meta:
- $ref: '#/components/schemas/ApplicationKeyResponseMeta'
+ required:
+ - dataset_ids
type: object
- ListAppsResponse:
- description: A paginated list of apps matching the specified filters and sorting.
+ LLMObsDeleteDatasetsDataRequest:
+ description: Data object for deleting LLM Observability datasets.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsDeleteDatasetsDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsDatasetType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsDeleteDatasetsRequest:
+ description: Request to delete one or more LLM Observability datasets.
properties:
data:
- description: An array of app definitions.
- items:
- $ref: '#/components/schemas/ListAppsResponseDataItems'
- type: array
- included:
- description: Data on the version of the app that was published.
+ $ref: '#/components/schemas/LLMObsDeleteDatasetsDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsDeleteExperimentsDataAttributesRequest:
+ description: Attributes for deleting LLM Observability experiments.
+ properties:
+ experiment_ids:
+ description: List of experiment IDs to delete.
+ example:
+ - 3fd6b5e0-8910-4b1c-a7d0-5b84de329012
items:
- $ref: '#/components/schemas/Deployment'
+ type: string
type: array
- meta:
- $ref: '#/components/schemas/ListAppsResponseMeta'
+ required:
+ - experiment_ids
type: object
- ListAppsResponseDataItems:
- description: An app definition object. This contains only basic information
- about the app such as ID, name, and tags.
+ LLMObsDeleteExperimentsDataRequest:
+ description: Data object for deleting LLM Observability experiments.
properties:
attributes:
- $ref: '#/components/schemas/ListAppsResponseDataItemsAttributes'
- id:
- description: The ID of the app.
- example: 65bb1f25-52e1-4510-9f8d-22d1516ed693
- format: uuid
- type: string
- meta:
- $ref: '#/components/schemas/AppMeta'
- relationships:
- $ref: '#/components/schemas/ListAppsResponseDataItemsRelationships'
+ $ref: '#/components/schemas/LLMObsDeleteExperimentsDataAttributesRequest'
type:
- $ref: '#/components/schemas/AppDefinitionType'
+ $ref: '#/components/schemas/LLMObsExperimentType'
required:
- - id
+ - type
+ - attributes
+ type: object
+ LLMObsDeleteExperimentsRequest:
+ description: Request to delete one or more LLM Observability experiments.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsDeleteExperimentsDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsDeleteProjectsDataAttributesRequest:
+ description: Attributes for deleting LLM Observability projects.
+ properties:
+ project_ids:
+ description: List of project IDs to delete.
+ example:
+ - a33671aa-24fd-4dcd-9b33-a8ec7dde7751
+ items:
+ type: string
+ type: array
+ required:
+ - project_ids
+ type: object
+ LLMObsDeleteProjectsDataRequest:
+ description: Data object for deleting LLM Observability projects.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsDeleteProjectsDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsProjectType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsDeleteProjectsRequest:
+ description: Request to delete one or more LLM Observability projects.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsDeleteProjectsDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsEventType:
+ description: Resource type for LLM Observability experiment events.
+ enum:
+ - events
+ example: events
+ type: string
+ x-enum-varnames:
+ - EVENTS
+ LLMObsExperimentDataAttributesRequest:
+ description: Attributes for creating an LLM Observability experiment.
+ properties:
+ config:
+ additionalProperties: {}
+ description: Configuration parameters for the experiment.
+ type: object
+ dataset_id:
+ description: Identifier of the dataset used in this experiment.
+ example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d
+ type: string
+ dataset_version:
+ description: Version of the dataset to use. Defaults to the current version
+ if not specified.
+ format: int64
+ type: integer
+ description:
+ description: Description of the experiment.
+ type: string
+ ensure_unique:
+ description: Whether to ensure the experiment name is unique. Defaults to
+ `true`.
+ type: boolean
+ metadata:
+ additionalProperties: {}
+ description: Arbitrary metadata associated with the experiment.
+ type: object
+ name:
+ description: Name of the experiment.
+ example: My Experiment v1
+ type: string
+ project_id:
+ description: Identifier of the project this experiment belongs to.
+ example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751
+ type: string
+ required:
+ - project_id
+ - dataset_id
+ - name
+ type: object
+ LLMObsExperimentDataAttributesResponse:
+ description: Attributes of an LLM Observability experiment.
+ properties:
+ config:
+ additionalProperties: {}
+ description: Configuration parameters for the experiment.
+ nullable: true
+ type: object
+ created_at:
+ description: Timestamp when the experiment was created.
+ example: '2024-01-15T10:30:00Z'
+ format: date-time
+ type: string
+ dataset_id:
+ description: Identifier of the dataset used in this experiment.
+ example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d
+ type: string
+ description:
+ description: Description of the experiment.
+ example: ''
+ nullable: true
+ type: string
+ metadata:
+ additionalProperties: {}
+ description: Arbitrary metadata associated with the experiment.
+ nullable: true
+ type: object
+ name:
+ description: Name of the experiment.
+ example: My Experiment v1
+ type: string
+ project_id:
+ description: Identifier of the project this experiment belongs to.
+ example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751
+ type: string
+ updated_at:
+ description: Timestamp when the experiment was last updated.
+ example: '2024-01-15T10:30:00Z'
+ format: date-time
+ type: string
+ required:
+ - project_id
+ - dataset_id
+ - name
+ - description
+ - metadata
+ - config
+ - created_at
+ - updated_at
+ type: object
+ LLMObsExperimentDataRequest:
+ description: Data object for creating an LLM Observability experiment.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsExperimentDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsExperimentType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsExperimentDataResponse:
+ description: Data object for an LLM Observability experiment.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsExperimentDataAttributesResponse'
+ id:
+ description: Unique identifier of the experiment.
+ example: 3fd6b5e0-8910-4b1c-a7d0-5b84de329012
+ type: string
+ type:
+ $ref: '#/components/schemas/LLMObsExperimentType'
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ LLMObsExperimentEventsDataAttributesRequest:
+ description: Attributes for pushing experiment events including spans and metrics.
+ properties:
+ metrics:
+ description: List of metrics to push for the experiment.
+ items:
+ $ref: '#/components/schemas/LLMObsExperimentMetric'
+ type: array
+ spans:
+ description: List of spans to push for the experiment.
+ items:
+ $ref: '#/components/schemas/LLMObsExperimentSpan'
+ type: array
+ type: object
+ LLMObsExperimentEventsDataRequest:
+ description: Data object for pushing experiment events.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsExperimentEventsDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsEventType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsExperimentEventsRequest:
+ description: Request to push spans and metrics for an LLM Observability experiment.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsExperimentEventsDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsExperimentMetric:
+ description: A metric associated with an LLM Observability experiment span.
+ properties:
+ assessment:
+ $ref: '#/components/schemas/LLMObsMetricAssessment'
+ boolean_value:
+ description: Boolean value. Used when `metric_type` is `boolean`.
+ type: boolean
+ categorical_value:
+ description: Categorical value. Used when `metric_type` is `categorical`.
+ type: string
+ error:
+ $ref: '#/components/schemas/LLMObsExperimentMetricError'
+ json_value:
+ additionalProperties: {}
+ description: JSON value. Used when `metric_type` is `json`.
+ type: object
+ label:
+ description: Label or name for the metric.
+ example: faithfulness
+ type: string
+ metadata:
+ additionalProperties: {}
+ description: Arbitrary metadata associated with the metric.
+ type: object
+ metric_type:
+ $ref: '#/components/schemas/LLMObsMetricScoreType'
+ reasoning:
+ description: Human-readable reasoning for the metric value.
+ type: string
+ score_value:
+ description: Numeric score value. Used when `metric_type` is `score`.
+ format: double
+ type: number
+ span_id:
+ description: Identifier of the span this metric is associated with.
+ example: span-7a1b2c3d
+ type: string
+ tags:
+ description: List of tags associated with the metric.
+ items:
+ type: string
+ type: array
+ timestamp_ms:
+ description: Timestamp when the metric was recorded, in milliseconds since
+ Unix epoch.
+ example: 1705314600000
+ format: int64
+ type: integer
+ required:
+ - span_id
+ - metric_type
+ - timestamp_ms
+ - label
+ type: object
+ LLMObsExperimentMetricError:
+ description: Error details for an experiment metric evaluation.
+ properties:
+ message:
+ description: Error message associated with the metric evaluation.
+ type: string
+ type: object
+ LLMObsExperimentRequest:
+ description: Request to create an LLM Observability experiment.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsExperimentDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsExperimentResponse:
+ description: Response containing a single LLM Observability experiment.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsExperimentDataResponse'
+ required:
+ - data
+ type: object
+ LLMObsExperimentSpan:
+ description: A span associated with an LLM Observability experiment.
+ properties:
+ dataset_id:
+ description: Dataset ID associated with this span.
+ example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d
+ type: string
+ duration:
+ description: Duration of the span in nanoseconds.
+ example: 1500000000
+ format: int64
+ type: integer
+ meta:
+ $ref: '#/components/schemas/LLMObsExperimentSpanMeta'
+ name:
+ description: Name of the span.
+ example: llm_call
+ type: string
+ project_id:
+ description: Project ID associated with this span.
+ example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751
+ type: string
+ span_id:
+ description: Unique identifier of the span.
+ example: span-7a1b2c3d
+ type: string
+ start_ns:
+ description: Start time of the span in nanoseconds since Unix epoch.
+ example: 1705314600000000000
+ format: int64
+ type: integer
+ status:
+ description: Status of the span.
+ example: ok
+ type: string
+ tags:
+ description: List of tags associated with the span.
+ items:
+ type: string
+ type: array
+ trace_id:
+ description: Trace ID for the span.
+ example: abc123def456
+ type: string
+ required:
+ - trace_id
+ - span_id
+ - project_id
+ - dataset_id
+ - name
+ - start_ns
+ - duration
+ - status
+ type: object
+ LLMObsExperimentSpanError:
+ description: Error details for an experiment span.
+ properties:
+ message:
+ description: Error message.
+ type: string
+ stack:
+ description: Stack trace of the error.
+ type: string
+ type:
+ description: Type or class of the error.
+ type: string
+ type: object
+ LLMObsExperimentSpanMeta:
+ description: Metadata associated with an experiment span.
+ properties:
+ error:
+ $ref: '#/components/schemas/LLMObsExperimentSpanError'
+ expected_output:
+ additionalProperties: {}
+ description: Expected output for the span, used for evaluation.
+ type: object
+ input:
+ $ref: '#/components/schemas/AnyValue'
+ output:
+ $ref: '#/components/schemas/AnyValue'
+ type: object
+ LLMObsExperimentType:
+ description: Resource type of an LLM Observability experiment.
+ enum:
+ - experiments
+ example: experiments
+ type: string
+ x-enum-varnames:
+ - EXPERIMENTS
+ LLMObsExperimentUpdateDataAttributesRequest:
+ description: Attributes for updating an LLM Observability experiment.
+ properties:
+ description:
+ description: Updated description of the experiment.
+ type: string
+ name:
+ description: Updated name of the experiment.
+ type: string
+ type: object
+ LLMObsExperimentUpdateDataRequest:
+ description: Data object for updating an LLM Observability experiment.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsExperimentUpdateDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsExperimentType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsExperimentUpdateRequest:
+ description: Request to partially update an LLM Observability experiment.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsExperimentUpdateDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsExperimentsResponse:
+ description: Response containing a list of LLM Observability experiments.
+ properties:
+ data:
+ description: List of experiments.
+ items:
+ $ref: '#/components/schemas/LLMObsExperimentDataResponse'
+ type: array
+ meta:
+ $ref: '#/components/schemas/LLMObsCursorMeta'
+ required:
+ - data
+ type: object
+ LLMObsMetricAssessment:
+ description: Assessment result for an LLM Observability experiment metric.
+ enum:
+ - pass
+ - fail
+ example: pass
+ type: string
+ x-enum-varnames:
+ - PASS
+ - FAIL
+ LLMObsMetricScoreType:
+ description: Type of metric recorded for an LLM Observability experiment.
+ enum:
+ - score
+ - categorical
+ - boolean
+ - json
+ example: score
+ type: string
+ x-enum-varnames:
+ - SCORE
+ - CATEGORICAL
+ - BOOLEAN
+ - JSON
+ LLMObsProjectDataAttributesRequest:
+ description: Attributes for creating an LLM Observability project.
+ properties:
+ description:
+ description: Description of the project.
+ type: string
+ name:
+ description: Name of the project.
+ example: My LLM Project
+ type: string
+ required:
+ - name
+ type: object
+ LLMObsProjectDataAttributesResponse:
+ description: Attributes of an LLM Observability project.
+ properties:
+ created_at:
+ description: Timestamp when the project was created.
+ example: '2024-01-15T10:30:00Z'
+ format: date-time
+ type: string
+ description:
+ description: Description of the project.
+ example: ''
+ nullable: true
+ type: string
+ name:
+ description: Name of the project.
+ example: My LLM Project
+ type: string
+ updated_at:
+ description: Timestamp when the project was last updated.
+ example: '2024-01-15T10:30:00Z'
+ format: date-time
+ type: string
+ required:
+ - name
+ - description
+ - created_at
+ - updated_at
+ type: object
+ LLMObsProjectDataRequest:
+ description: Data object for creating an LLM Observability project.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsProjectDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsProjectType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsProjectDataResponse:
+ description: Data object for an LLM Observability project.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsProjectDataAttributesResponse'
+ id:
+ description: Unique identifier of the project.
+ example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751
+ type: string
+ type:
+ $ref: '#/components/schemas/LLMObsProjectType'
+ required:
+ - id
+ - type
+ - attributes
+ type: object
+ LLMObsProjectRequest:
+ description: Request to create an LLM Observability project.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsProjectDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsProjectResponse:
+ description: Response containing a single LLM Observability project.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsProjectDataResponse'
+ required:
+ - data
+ type: object
+ LLMObsProjectType:
+ description: Resource type of an LLM Observability project.
+ enum:
+ - projects
+ example: projects
+ type: string
+ x-enum-varnames:
+ - PROJECTS
+ LLMObsProjectUpdateDataAttributesRequest:
+ description: Attributes for updating an LLM Observability project.
+ properties:
+ description:
+ description: Updated description of the project.
+ type: string
+ name:
+ description: Updated name of the project.
+ type: string
+ type: object
+ LLMObsProjectUpdateDataRequest:
+ description: Data object for updating an LLM Observability project.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LLMObsProjectUpdateDataAttributesRequest'
+ type:
+ $ref: '#/components/schemas/LLMObsProjectType'
+ required:
+ - type
+ - attributes
+ type: object
+ LLMObsProjectUpdateRequest:
+ description: Request to partially update an LLM Observability project.
+ properties:
+ data:
+ $ref: '#/components/schemas/LLMObsProjectUpdateDataRequest'
+ required:
+ - data
+ type: object
+ LLMObsProjectsResponse:
+ description: Response containing a list of LLM Observability projects.
+ properties:
+ data:
+ description: List of projects.
+ items:
+ $ref: '#/components/schemas/LLMObsProjectDataResponse'
+ type: array
+ meta:
+ $ref: '#/components/schemas/LLMObsCursorMeta'
+ required:
+ - data
+ type: object
+ LLMObsRecordType:
+ description: Resource type of LLM Observability dataset records.
+ enum:
+ - records
+ example: records
+ type: string
+ x-enum-varnames:
+ - RECORDS
+ Language:
+ description: Programming language
+ enum:
+ - PYTHON
+ - JAVASCRIPT
+ - TYPESCRIPT
+ - JAVA
+ - GO
+ - YAML
+ - RUBY
+ - CSHARP
+ - PHP
+ - KOTLIN
+ - SWIFT
+ example: PYTHON
+ type: string
+ x-enum-varnames:
+ - PYTHON
+ - JAVASCRIPT
+ - TYPESCRIPT
+ - JAVA
+ - GO
+ - YAML
+ - RUBY
+ - CSHARP
+ - PHP
+ - KOTLIN
+ - SWIFT
+ LaunchDarklyAPIKey:
+ description: The definition of the `LaunchDarklyAPIKey` object.
+ properties:
+ api_token:
+ description: The `LaunchDarklyAPIKey` `api_token`.
+ example: ''
+ type: string
+ type:
+ $ref: '#/components/schemas/LaunchDarklyAPIKeyType'
+ required:
+ - type
+ - api_token
+ type: object
+ LaunchDarklyAPIKeyType:
+ description: The definition of the `LaunchDarklyAPIKey` object.
+ enum:
+ - LaunchDarklyAPIKey
+ example: LaunchDarklyAPIKey
+ type: string
+ x-enum-varnames:
+ - LAUNCHDARKLYAPIKEY
+ LaunchDarklyAPIKeyUpdate:
+ description: The definition of the `LaunchDarklyAPIKey` object.
+ properties:
+ api_token:
+ description: The `LaunchDarklyAPIKeyUpdate` `api_token`.
+ type: string
+ type:
+ $ref: '#/components/schemas/LaunchDarklyAPIKeyType'
+ required:
+ - type
+ type: object
+ LaunchDarklyCredentials:
+ description: The definition of the `LaunchDarklyCredentials` object.
+ oneOf:
+ - $ref: '#/components/schemas/LaunchDarklyAPIKey'
+ LaunchDarklyCredentialsUpdate:
+ description: The definition of the `LaunchDarklyCredentialsUpdate` object.
+ oneOf:
+ - $ref: '#/components/schemas/LaunchDarklyAPIKeyUpdate'
+ LaunchDarklyIntegration:
+ description: The definition of the `LaunchDarklyIntegration` object.
+ properties:
+ credentials:
+ $ref: '#/components/schemas/LaunchDarklyCredentials'
+ type:
+ $ref: '#/components/schemas/LaunchDarklyIntegrationType'
+ required:
+ - type
+ - credentials
+ type: object
+ LaunchDarklyIntegrationType:
+ description: The definition of the `LaunchDarklyIntegrationType` object.
+ enum:
+ - LaunchDarkly
+ example: LaunchDarkly
+ type: string
+ x-enum-varnames:
+ - LAUNCHDARKLY
+ LaunchDarklyIntegrationUpdate:
+ description: The definition of the `LaunchDarklyIntegrationUpdate` object.
+ properties:
+ credentials:
+ $ref: '#/components/schemas/LaunchDarklyCredentialsUpdate'
+ type:
+ $ref: '#/components/schemas/LaunchDarklyIntegrationType'
+ required:
+ - type
+ type: object
+ Layer:
+ description: Encapsulates a layer resource, holding attributes like rotation
+ details, plus relationships to the members covering that layer.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LayerAttributes'
+ id:
+ description: A unique identifier for this layer.
+ type: string
+ relationships:
+ $ref: '#/components/schemas/LayerRelationships'
+ type:
+ $ref: '#/components/schemas/LayerType'
+ required:
+ - type
+ type: object
+ LayerAttributes:
+ description: Describes key properties of a Layer, including rotation details,
+ name, start/end times, and any restrictions.
+ properties:
+ effective_date:
+ description: When the layer becomes active (ISO 8601).
+ format: date-time
+ type: string
+ end_date:
+ description: When the layer ceases to be active (ISO 8601).
+ format: date-time
+ type: string
+ interval:
+ $ref: '#/components/schemas/LayerAttributesInterval'
+ name:
+ description: The name of this layer.
+ example: Weekend Layer
+ type: string
+ restrictions:
+ description: An optional list of time restrictions for when this layer is
+ in effect.
+ items:
+ $ref: '#/components/schemas/TimeRestriction'
+ type: array
+ rotation_start:
+ description: The date/time when the rotation starts (ISO 8601).
+ format: date-time
+ type: string
+ time_zone:
+ description: The time zone for this layer.
+ example: America/New_York
+ type: string
+ type: object
+ LayerAttributesInterval:
+ description: Defines how often the rotation repeats, using a combination of
+ days and optional seconds. Should be at least 1 hour.
+ properties:
+ days:
+ description: The number of days in each rotation cycle.
+ example: 1
+ format: int32
+ maximum: 400
+ type: integer
+ seconds:
+ description: Any additional seconds for the rotation cycle (up to 30 days).
+ example: 300
+ format: int64
+ maximum: 2592000
+ type: integer
+ type: object
+ LayerRelationships:
+ description: Holds references to objects related to the Layer entity, such as
+ its members.
+ properties:
+ members:
+ $ref: '#/components/schemas/LayerRelationshipsMembers'
+ type: object
+ LayerRelationshipsMembers:
+ description: Holds an array of references to the members of a Layer, each containing
+ member IDs.
+ properties:
+ data:
+ description: The list of members who belong to this layer.
+ items:
+ $ref: '#/components/schemas/LayerRelationshipsMembersDataItems'
+ type: array
+ type: object
+ LayerRelationshipsMembersDataItems:
+ description: 'Represents a single member object in a layer''s `members` array,
+ referencing
+
+ a unique Datadog user ID.'
+ properties:
+ id:
+ description: The unique user ID of the layer member.
+ example: 00000000-0000-0000-0000-000000000002
+ type: string
+ type:
+ $ref: '#/components/schemas/LayerRelationshipsMembersDataItemsType'
+ required:
+ - type
+ - id
+ type: object
+ LayerRelationshipsMembersDataItemsType:
+ default: members
+ description: Members resource type.
+ enum:
+ - members
+ example: members
+ type: string
+ x-enum-varnames:
+ - MEMBERS
+ LayerType:
+ default: layers
+ description: Layers resource type.
+ enum:
+ - layers
+ example: layers
+ type: string
+ x-enum-varnames:
+ - LAYERS
+ LeakedKey:
+ description: The definition of LeakedKey object.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/LeakedKeyAttributes'
+ id:
+ description: The LeakedKey id.
+ example: id
+ type: string
+ type:
+ $ref: '#/components/schemas/LeakedKeyType'
+ required:
+ - attributes
+ - id
+ - type
+ type: object
+ LeakedKeyAttributes:
+ description: The definition of LeakedKeyAttributes object.
+ properties:
+ date:
+ description: The LeakedKeyAttributes date.
+ example: '2017-07-21T17:32:28Z'
+ format: date-time
+ type: string
+ leak_source:
+ description: The LeakedKeyAttributes leak_source.
+ type: string
+ required:
+ - date
+ type: object
+ LeakedKeyType:
+ default: leaked_keys
+ description: The definition of LeakedKeyType object.
+ enum:
+ - leaked_keys
+ example: leaked_keys
+ type: string
+ x-enum-varnames:
+ - LEAKED_KEYS
+ Library:
+ description: Vulnerability library.
+ properties:
+ additional_names:
+ description: Related library or package names (such as child packages or
+ affected binary paths).
+ items:
+ example: linux-tools-common
+ type: string
+ type: array
+ name:
+ description: Vulnerability library name.
+ example: linux-aws-5.15
+ type: string
+ version:
+ description: Vulnerability library version.
+ example: 5.15.0
+ type: string
+ required:
+ - name
+ type: object
+ Links:
+ description: The JSON:API links related to pagination.
+ properties:
+ first:
+ description: First page link.
+ example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=1&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
+ type: string
+ last:
+ description: Last page link.
+ example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=15&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
+ type: string
+ next:
+ description: Next page link.
+ example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=16&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
+ type: string
+ previous:
+ description: Previous page link.
+ example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=14&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4
+ type: string
+ self:
+ description: Request link.
+ example: https://api.datadoghq.com/api/v2/security/vulnerabilities?filter%5Btool%5D=Infra
+ type: string
+ required:
+ - self
+ - first
+ - last
+ type: object
+ ListAPIsResponse:
+ description: Response for `ListAPIs`.
+ properties:
+ data:
+ description: List of API items.
+ items:
+ $ref: '#/components/schemas/ListAPIsResponseData'
+ type: array
+ meta:
+ $ref: '#/components/schemas/ListAPIsResponseMeta'
+ type: object
+ ListAPIsResponseData:
+ description: Data envelope for `ListAPIsResponse`.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/ListAPIsResponseDataAttributes'
+ id:
+ $ref: '#/components/schemas/ApiID'
+ type: object
+ ListAPIsResponseDataAttributes:
+ description: Attributes for `ListAPIsResponseData`.
+ properties:
+ name:
+ description: API name.
+ example: Payments API
+ type: string
+ type: object
+ ListAPIsResponseMeta:
+ description: Metadata for `ListAPIsResponse`.
+ properties:
+ pagination:
+ $ref: '#/components/schemas/ListAPIsResponseMetaPagination'
+ type: object
+ ListAPIsResponseMetaPagination:
+ description: Pagination metadata information for `ListAPIsResponse`.
+ properties:
+ limit:
+ description: Number of items in the current page.
+ example: 20
+ format: int64
+ type: integer
+ offset:
+ description: Offset for pagination.
+ example: 0
+ format: int64
+ type: integer
+ total_count:
+ description: Total number of items.
+ example: 35
+ format: int64
+ type: integer
+ type: object
+ ListAppKeyRegistrationsResponse:
+ description: A paginated list of app key registrations.
+ properties:
+ data:
+ description: An array of app key registrations.
+ items:
+ $ref: '#/components/schemas/AppKeyRegistrationData'
+ type: array
+ meta:
+ $ref: '#/components/schemas/ListAppKeyRegistrationsResponseMeta'
+ type: object
+ ListAppKeyRegistrationsResponseMeta:
+ description: The definition of `ListAppKeyRegistrationsResponseMeta` object.
+ properties:
+ total:
+ description: The total number of app key registrations.
+ example: 1
+ format: int64
+ type: integer
+ total_filtered:
+ description: The total number of app key registrations that match the specified
+ filters.
+ example: 1
+ format: int64
+ type: integer
+ type: object
+ ListApplicationKeysResponse:
+ description: Response for a list of application keys.
+ properties:
+ data:
+ description: Array of application keys.
+ items:
+ $ref: '#/components/schemas/PartialApplicationKey'
+ type: array
+ included:
+ description: Array of objects related to the application key.
+ items:
+ $ref: '#/components/schemas/ApplicationKeyResponseIncludedItem'
+ type: array
+ meta:
+ $ref: '#/components/schemas/ApplicationKeyResponseMeta'
+ type: object
+ ListAppsResponse:
+ description: A paginated list of apps matching the specified filters and sorting.
+ properties:
+ data:
+ description: An array of app definitions.
+ items:
+ $ref: '#/components/schemas/ListAppsResponseDataItems'
+ type: array
+ included:
+ description: Data on the version of the app that was published.
+ items:
+ $ref: '#/components/schemas/Deployment'
+ type: array
+ meta:
+ $ref: '#/components/schemas/ListAppsResponseMeta'
+ type: object
+ ListAppsResponseDataItems:
+ description: An app definition object. This contains only basic information
+ about the app such as ID, name, and tags.
+ properties:
+ attributes:
+ $ref: '#/components/schemas/ListAppsResponseDataItemsAttributes'
+ id:
+ description: The ID of the app.
+ example: 65bb1f25-52e1-4510-9f8d-22d1516ed693
+ format: uuid
+ type: string
+ meta:
+ $ref: '#/components/schemas/AppMeta'
+ relationships:
+ $ref: '#/components/schemas/ListAppsResponseDataItemsRelationships'
+ type:
+ $ref: '#/components/schemas/AppDefinitionType'
+ required:
+ - id
- type
- attributes
type: object
@@ -86273,7 +87291,457 @@ paths:
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentAccountResponse'
+ $ref: '#/components/schemas/ConfluentAccountResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Get Confluent account
+ tags:
+ - Confluent Cloud
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ patch:
+ description: Update the Confluent account with the provided account ID.
+ operationId: UpdateConfluentAccount
+ parameters:
+ - $ref: '#/components/parameters/ConfluentAccountID'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentAccountUpdateRequest'
+ description: Confluent payload
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentAccountResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Update Confluent account
+ tags:
+ - Confluent Cloud
+ x-codegen-request-body-name: body
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources:
+ get:
+ description: Get a Confluent resource for the account associated with the provided
+ ID.
+ operationId: ListConfluentResource
+ parameters:
+ - $ref: '#/components/parameters/ConfluentAccountID'
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentResourcesResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: List Confluent Account resources
+ tags:
+ - Confluent Cloud
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ post:
+ description: Create a Confluent resource for the account associated with the
+ provided ID.
+ operationId: CreateConfluentResource
+ parameters:
+ - $ref: '#/components/parameters/ConfluentAccountID'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentResourceRequest'
+ description: Confluent payload
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentResourceResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Add resource to Confluent account
+ tags:
+ - Confluent Cloud
+ x-codegen-request-body-name: body
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources/{resource_id}:
+ delete:
+ description: Delete a Confluent resource with the provided resource id for the
+ account associated with the provided account ID.
+ operationId: DeleteConfluentResource
+ parameters:
+ - $ref: '#/components/parameters/ConfluentAccountID'
+ - $ref: '#/components/parameters/ConfluentResourceID'
+ responses:
+ '204':
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Delete resource from Confluent account
+ tags:
+ - Confluent Cloud
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ get:
+ description: Get a Confluent resource with the provided resource id for the
+ account associated with the provided account ID.
+ operationId: GetConfluentResource
+ parameters:
+ - $ref: '#/components/parameters/ConfluentAccountID'
+ - $ref: '#/components/parameters/ConfluentResourceID'
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentResourceResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Get resource from Confluent account
+ tags:
+ - Confluent Cloud
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ patch:
+ description: Update a Confluent resource with the provided resource id for the
+ account associated with the provided account ID.
+ operationId: UpdateConfluentResource
+ parameters:
+ - $ref: '#/components/parameters/ConfluentAccountID'
+ - $ref: '#/components/parameters/ConfluentResourceID'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentResourceRequest'
+ description: Confluent payload
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ConfluentResourceResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Update resource in Confluent account
+ tags:
+ - Confluent Cloud
+ x-codegen-request-body-name: body
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ /api/v2/integrations/fastly/accounts:
+ get:
+ description: List Fastly accounts.
+ operationId: ListFastlyAccounts
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyAccountsResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: List Fastly accounts
+ tags:
+ - Fastly Integration
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ post:
+ description: Create a Fastly account.
+ operationId: CreateFastlyAccount
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyAccountCreateRequest'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyAccountResponse'
+ description: CREATED
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Add Fastly account
+ tags:
+ - Fastly Integration
+ x-codegen-request-body-name: body
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ /api/v2/integrations/fastly/accounts/{account_id}:
+ delete:
+ description: Delete a Fastly account.
+ operationId: DeleteFastlyAccount
+ parameters:
+ - $ref: '#/components/parameters/FastlyAccountID'
+ responses:
+ '204':
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Delete Fastly account
+ tags:
+ - Fastly Integration
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ get:
+ description: Get a Fastly account.
+ operationId: GetFastlyAccount
+ parameters:
+ - $ref: '#/components/parameters/FastlyAccountID'
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyAccountResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Get Fastly account
+ tags:
+ - Fastly Integration
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ patch:
+ description: Update a Fastly account.
+ operationId: UpdateFastlyAccount
+ parameters:
+ - $ref: '#/components/parameters/FastlyAccountID'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyAccountUpdateRequest'
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyAccountResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Update Fastly account
+ tags:
+ - Fastly Integration
+ x-codegen-request-body-name: body
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ /api/v2/integrations/fastly/accounts/{account_id}/services:
+ get:
+ description: List Fastly services for an account.
+ operationId: ListFastlyServices
+ parameters:
+ - $ref: '#/components/parameters/FastlyAccountID'
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyServicesResponse'
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: List Fastly services
+ tags:
+ - Fastly Integration
+ x-permission:
+ operator: OR
+ permissions:
+ - integrations_read
+ post:
+ description: Create a Fastly service for an account.
+ operationId: CreateFastlyService
+ parameters:
+ - $ref: '#/components/parameters/FastlyAccountID'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyServiceRequest'
+ required: true
+ responses:
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyServiceResponse'
+ description: CREATED
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Add Fastly service
+ tags:
+ - Fastly Integration
+ x-codegen-request-body-name: body
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ /api/v2/integrations/fastly/accounts/{account_id}/services/{service_id}:
+ delete:
+ description: Delete a Fastly service for an account.
+ operationId: DeleteFastlyService
+ parameters:
+ - $ref: '#/components/parameters/FastlyAccountID'
+ - $ref: '#/components/parameters/FastlyServiceID'
+ responses:
+ '204':
+ description: OK
+ '400':
+ $ref: '#/components/responses/BadRequestResponse'
+ '403':
+ $ref: '#/components/responses/ForbiddenResponse'
+ '404':
+ $ref: '#/components/responses/NotFoundResponse'
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ summary: Delete Fastly service
+ tags:
+ - Fastly Integration
+ x-permission:
+ operator: OR
+ permissions:
+ - manage_integrations
+ get:
+ description: Get a Fastly service for an account.
+ operationId: GetFastlyService
+ parameters:
+ - $ref: '#/components/parameters/FastlyAccountID'
+ - $ref: '#/components/parameters/FastlyServiceID'
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/FastlyServiceResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
@@ -86283,31 +87751,31 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Get Confluent account
+ summary: Get Fastly service
tags:
- - Confluent Cloud
+ - Fastly Integration
x-permission:
operator: OR
permissions:
- integrations_read
patch:
- description: Update the Confluent account with the provided account ID.
- operationId: UpdateConfluentAccount
+ description: Update a Fastly service for an account.
+ operationId: UpdateFastlyService
parameters:
- - $ref: '#/components/parameters/ConfluentAccountID'
+ - $ref: '#/components/parameters/FastlyAccountID'
+ - $ref: '#/components/parameters/FastlyServiceID'
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentAccountUpdateRequest'
- description: Confluent payload
+ $ref: '#/components/schemas/FastlyServiceRequest'
required: true
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentAccountResponse'
+ $ref: '#/components/schemas/FastlyServiceResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
@@ -86317,27 +87785,24 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Update Confluent account
+ summary: Update Fastly service
tags:
- - Confluent Cloud
+ - Fastly Integration
x-codegen-request-body-name: body
x-permission:
operator: OR
permissions:
- manage_integrations
- /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources:
+ /api/v2/integrations/okta/accounts:
get:
- description: Get a Confluent resource for the account associated with the provided
- ID.
- operationId: ListConfluentResource
- parameters:
- - $ref: '#/components/parameters/ConfluentAccountID'
+ description: List Okta accounts.
+ operationId: ListOktaAccounts
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentResourcesResponse'
+ $ref: '#/components/schemas/OktaAccountsResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
@@ -86347,32 +87812,28 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: List Confluent Account resources
+ summary: List Okta accounts
tags:
- - Confluent Cloud
+ - Okta Integration
x-permission:
operator: OR
permissions:
- integrations_read
post:
- description: Create a Confluent resource for the account associated with the
- provided ID.
- operationId: CreateConfluentResource
- parameters:
- - $ref: '#/components/parameters/ConfluentAccountID'
+ description: Create an Okta account.
+ operationId: CreateOktaAccount
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentResourceRequest'
- description: Confluent payload
+ $ref: '#/components/schemas/OktaAccountRequest'
required: true
responses:
'201':
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentResourceResponse'
+ $ref: '#/components/schemas/OktaAccountResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
@@ -86382,22 +87843,25 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Add resource to Confluent account
+ summary: Add Okta account
tags:
- - Confluent Cloud
+ - Okta Integration
x-codegen-request-body-name: body
x-permission:
operator: OR
permissions:
- manage_integrations
- /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources/{resource_id}:
+ /api/v2/integrations/okta/accounts/{account_id}:
delete:
- description: Delete a Confluent resource with the provided resource id for the
- account associated with the provided account ID.
- operationId: DeleteConfluentResource
+ description: Delete an Okta account.
+ operationId: DeleteOktaAccount
parameters:
- - $ref: '#/components/parameters/ConfluentAccountID'
- - $ref: '#/components/parameters/ConfluentResourceID'
+ - description: None
+ in: path
+ name: account_id
+ required: true
+ schema:
+ type: string
responses:
'204':
description: OK
@@ -86409,26 +87873,29 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Delete resource from Confluent account
+ summary: Delete Okta account
tags:
- - Confluent Cloud
+ - Okta Integration
x-permission:
operator: OR
permissions:
- manage_integrations
get:
- description: Get a Confluent resource with the provided resource id for the
- account associated with the provided account ID.
- operationId: GetConfluentResource
+ description: Get an Okta account.
+ operationId: GetOktaAccount
parameters:
- - $ref: '#/components/parameters/ConfluentAccountID'
- - $ref: '#/components/parameters/ConfluentResourceID'
+ - description: None
+ in: path
+ name: account_id
+ required: true
+ schema:
+ type: string
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentResourceResponse'
+ $ref: '#/components/schemas/OktaAccountResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
@@ -86438,33 +87905,35 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Get resource from Confluent account
+ summary: Get Okta account
tags:
- - Confluent Cloud
+ - Okta Integration
x-permission:
operator: OR
permissions:
- integrations_read
patch:
- description: Update a Confluent resource with the provided resource id for the
- account associated with the provided account ID.
- operationId: UpdateConfluentResource
+ description: Update an Okta account.
+ operationId: UpdateOktaAccount
parameters:
- - $ref: '#/components/parameters/ConfluentAccountID'
- - $ref: '#/components/parameters/ConfluentResourceID'
+ - description: None
+ in: path
+ name: account_id
+ required: true
+ schema:
+ type: string
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentResourceRequest'
- description: Confluent payload
+ $ref: '#/components/schemas/OktaAccountUpdateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/ConfluentResourceResponse'
+ $ref: '#/components/schemas/OktaAccountResponse'
description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
@@ -86474,56 +87943,59 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Update resource in Confluent account
+ summary: Update Okta account
tags:
- - Confluent Cloud
+ - Okta Integration
x-codegen-request-body-name: body
x-permission:
operator: OR
permissions:
- manage_integrations
- /api/v2/integrations/fastly/accounts:
+ /api/v2/ip_allowlist:
get:
- description: List Fastly accounts.
- operationId: ListFastlyAccounts
+ description: Returns the IP allowlist and its enabled or disabled state.
+ operationId: GetIPAllowlist
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyAccountsResponse'
+ $ref: '#/components/schemas/IPAllowlistResponse'
description: OK
- '400':
- $ref: '#/components/responses/BadRequestResponse'
'403':
$ref: '#/components/responses/ForbiddenResponse'
'404':
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: List Fastly accounts
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - org_management
+ summary: Get IP Allowlist
tags:
- - Fastly Integration
+ - IP Allowlist
x-permission:
operator: OR
permissions:
- - integrations_read
- post:
- description: Create a Fastly account.
- operationId: CreateFastlyAccount
+ - org_management
+ patch:
+ description: Edit the entries in the IP allowlist, and enable or disable it.
+ operationId: UpdateIPAllowlist
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyAccountCreateRequest'
+ $ref: '#/components/schemas/IPAllowlistUpdateRequest'
required: true
responses:
- '201':
+ '200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyAccountResponse'
- description: CREATED
+ $ref: '#/components/schemas/IPAllowlistResponse'
+ description: OK
'400':
$ref: '#/components/responses/BadRequestResponse'
'403':
@@ -86532,473 +88004,979 @@ paths:
$ref: '#/components/responses/NotFoundResponse'
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Add Fastly account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ - AuthZ:
+ - org_management
+ summary: Update IP Allowlist
tags:
- - Fastly Integration
+ - IP Allowlist
x-codegen-request-body-name: body
x-permission:
operator: OR
permissions:
- - manage_integrations
- /api/v2/integrations/fastly/accounts/{account_id}:
- delete:
- description: Delete a Fastly account.
- operationId: DeleteFastlyAccount
+ - org_management
+ /api/v2/llm-obs/v1/experiments:
+ get:
+ description: List all LLM Observability experiments sorted by creation date,
+ newest first.
+ operationId: ListLLMObsExperiments
parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
+ - description: Filter experiments by project ID. Required if `filter[dataset_id]`
+ is not provided.
+ in: query
+ name: filter[project_id]
+ schema:
+ type: string
+ - description: Filter experiments by dataset ID.
+ in: query
+ name: filter[dataset_id]
+ schema:
+ type: string
+ - description: Filter experiments by experiment ID. Can be specified multiple
+ times.
+ in: query
+ name: filter[id]
+ schema:
+ type: string
+ - description: Pagination cursor for the next page of results.
+ in: query
+ name: page[cursor]
+ schema:
+ type: string
+ - description: Maximum number of results to return per page.
+ in: query
+ name: page[limit]
+ schema:
+ format: int64
+ type: integer
responses:
- '204':
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsExperimentsResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
- '404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Delete Fastly account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: List LLM Observability experiments
tags:
- - Fastly Integration
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
- get:
- description: Get a Fastly account.
- operationId: GetFastlyAccount
- parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ post:
+ description: Create a new LLM Observability experiment.
+ operationId: CreateLLMObsExperiment
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsExperimentRequest'
+ description: Create experiment payload.
+ required: true
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyAccountResponse'
+ $ref: '#/components/schemas/LLMObsExperimentResponse'
description: OK
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsExperimentResponse'
+ description: Created
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
- '404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Get Fastly account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Create an LLM Observability experiment
tags:
- - Fastly Integration
- x-permission:
- operator: OR
- permissions:
- - integrations_read
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/experiments/delete:
+ post:
+ description: Delete one or more LLM Observability experiments.
+ operationId: DeleteLLMObsExperiments
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsDeleteExperimentsRequest'
+ description: Delete experiments payload.
+ required: true
+ responses:
+ '204':
+ description: No Content
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Delete LLM Observability experiments
+ tags:
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/experiments/{experiment_id}:
patch:
- description: Update a Fastly account.
- operationId: UpdateFastlyAccount
+ description: Partially update an existing LLM Observability experiment.
+ operationId: UpdateLLMObsExperiment
parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
+ - $ref: '#/components/parameters/LLMObsExperimentIDPathParameter'
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyAccountUpdateRequest'
+ $ref: '#/components/schemas/LLMObsExperimentUpdateRequest'
+ description: Update experiment payload.
required: true
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyAccountResponse'
+ $ref: '#/components/schemas/LLMObsExperimentResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Update Fastly account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Update an LLM Observability experiment
tags:
- - Fastly Integration
- x-codegen-request-body-name: body
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
- /api/v2/integrations/fastly/accounts/{account_id}/services:
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/experiments/{experiment_id}/events:
+ post:
+ description: Push spans and metrics for an LLM Observability experiment.
+ operationId: CreateLLMObsExperimentEvents
+ parameters:
+ - $ref: '#/components/parameters/LLMObsExperimentIDPathParameter'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsExperimentEventsRequest'
+ description: Experiment events payload.
+ required: true
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '404':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Push events for an LLM Observability experiment
+ tags:
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/projects:
get:
- description: List Fastly services for an account.
- operationId: ListFastlyServices
+ description: List all LLM Observability projects sorted by creation date, newest
+ first.
+ operationId: ListLLMObsProjects
parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
+ - description: Filter projects by project ID.
+ in: query
+ name: filter[id]
+ schema:
+ type: string
+ - description: Filter projects by name.
+ in: query
+ name: filter[name]
+ schema:
+ type: string
+ - description: Pagination cursor for the next page of results.
+ in: query
+ name: page[cursor]
+ schema:
+ type: string
+ - description: Maximum number of results to return per page.
+ in: query
+ name: page[limit]
+ schema:
+ format: int64
+ type: integer
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyServicesResponse'
+ $ref: '#/components/schemas/LLMObsProjectsResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
- '404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: List LLM Observability projects
+ tags:
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ post:
+ description: Create a new LLM Observability project. Returns the existing project
+ if a name conflict occurs.
+ operationId: CreateLLMObsProject
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsProjectRequest'
+ description: Create project payload.
+ required: true
+ responses:
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsProjectResponse'
+ description: OK
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsProjectResponse'
+ description: Created
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
+ '429':
+ $ref: '#/components/responses/TooManyRequestsResponse'
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Create an LLM Observability project
+ tags:
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/projects/delete:
+ post:
+ description: Delete one or more LLM Observability projects.
+ operationId: DeleteLLMObsProjects
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsDeleteProjectsRequest'
+ description: Delete projects payload.
+ required: true
+ responses:
+ '204':
+ description: No Content
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
+ '403':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: List Fastly services
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Delete LLM Observability projects
tags:
- - Fastly Integration
- x-permission:
- operator: OR
- permissions:
- - integrations_read
- post:
- description: Create a Fastly service for an account.
- operationId: CreateFastlyService
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/projects/{project_id}:
+ patch:
+ description: Partially update an existing LLM Observability project.
+ operationId: UpdateLLMObsProject
parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyServiceRequest'
+ $ref: '#/components/schemas/LLMObsProjectUpdateRequest'
+ description: Update project payload.
required: true
responses:
- '201':
+ '200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyServiceResponse'
- description: CREATED
- '400':
- $ref: '#/components/responses/BadRequestResponse'
- '403':
- $ref: '#/components/responses/ForbiddenResponse'
- '404':
- $ref: '#/components/responses/NotFoundResponse'
- '429':
- $ref: '#/components/responses/TooManyRequestsResponse'
- summary: Add Fastly service
- tags:
- - Fastly Integration
- x-codegen-request-body-name: body
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
- /api/v2/integrations/fastly/accounts/{account_id}/services/{service_id}:
- delete:
- description: Delete a Fastly service for an account.
- operationId: DeleteFastlyService
- parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
- - $ref: '#/components/parameters/FastlyServiceID'
- responses:
- '204':
+ $ref: '#/components/schemas/LLMObsProjectResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Delete Fastly service
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Update an LLM Observability project
tags:
- - Fastly Integration
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/{project_id}/datasets:
get:
- description: Get a Fastly service for an account.
- operationId: GetFastlyService
+ description: List all LLM Observability datasets for a project, sorted by creation
+ date, newest first.
+ operationId: ListLLMObsDatasets
parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
- - $ref: '#/components/parameters/FastlyServiceID'
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
+ - description: Filter datasets by name.
+ in: query
+ name: filter[name]
+ schema:
+ type: string
+ - description: Filter datasets by dataset ID.
+ in: query
+ name: filter[id]
+ schema:
+ type: string
+ - description: Pagination cursor for the next page of results.
+ in: query
+ name: page[cursor]
+ schema:
+ type: string
+ - description: Maximum number of results to return per page.
+ in: query
+ name: page[limit]
+ schema:
+ format: int64
+ type: integer
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyServiceResponse'
+ $ref: '#/components/schemas/LLMObsDatasetsResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Get Fastly service
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: List LLM Observability datasets
tags:
- - Fastly Integration
- x-permission:
- operator: OR
- permissions:
- - integrations_read
- patch:
- description: Update a Fastly service for an account.
- operationId: UpdateFastlyService
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ post:
+ description: Create a new LLM Observability dataset within the specified project.
+ operationId: CreateLLMObsDataset
parameters:
- - $ref: '#/components/parameters/FastlyAccountID'
- - $ref: '#/components/parameters/FastlyServiceID'
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyServiceRequest'
+ $ref: '#/components/schemas/LLMObsDatasetRequest'
+ description: Create dataset payload.
required: true
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/FastlyServiceResponse'
+ $ref: '#/components/schemas/LLMObsDatasetResponse'
description: OK
- '400':
- $ref: '#/components/responses/BadRequestResponse'
- '403':
- $ref: '#/components/responses/ForbiddenResponse'
- '404':
- $ref: '#/components/responses/NotFoundResponse'
- '429':
- $ref: '#/components/responses/TooManyRequestsResponse'
- summary: Update Fastly service
- tags:
- - Fastly Integration
- x-codegen-request-body-name: body
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
- /api/v2/integrations/okta/accounts:
- get:
- description: List Okta accounts.
- operationId: ListOktaAccounts
- responses:
- '200':
+ '201':
content:
application/json:
schema:
- $ref: '#/components/schemas/OktaAccountsResponse'
- description: OK
+ $ref: '#/components/schemas/LLMObsDatasetResponse'
+ description: Created
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: List Okta accounts
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Create an LLM Observability dataset
tags:
- - Okta Integration
- x-permission:
- operator: OR
- permissions:
- - integrations_read
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/{project_id}/datasets/delete:
post:
- description: Create an Okta account.
- operationId: CreateOktaAccount
+ description: Delete one or more LLM Observability datasets within the specified
+ project.
+ operationId: DeleteLLMObsDatasets
+ parameters:
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/OktaAccountRequest'
+ $ref: '#/components/schemas/LLMObsDeleteDatasetsRequest'
+ description: Delete datasets payload.
required: true
responses:
- '201':
+ '204':
+ description: No Content
+ '400':
content:
application/json:
schema:
- $ref: '#/components/schemas/OktaAccountResponse'
- description: OK
- '400':
- $ref: '#/components/responses/BadRequestResponse'
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Add Okta account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Delete LLM Observability datasets
tags:
- - Okta Integration
- x-codegen-request-body-name: body
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
- /api/v2/integrations/okta/accounts/{account_id}:
- delete:
- description: Delete an Okta account.
- operationId: DeleteOktaAccount
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}:
+ patch:
+ description: Partially update an existing LLM Observability dataset within the
+ specified project.
+ operationId: UpdateLLMObsDataset
parameters:
- - description: None
- in: path
- name: account_id
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
+ - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsDatasetUpdateRequest'
+ description: Update dataset payload.
required: true
- schema:
- type: string
responses:
- '204':
+ '200':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsDatasetResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Delete Okta account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Update an LLM Observability dataset
tags:
- - Okta Integration
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records:
get:
- description: Get an Okta account.
- operationId: GetOktaAccount
- parameters:
- - description: None
- in: path
- name: account_id
- required: true
+ description: List all records in an LLM Observability dataset, sorted by creation
+ date, newest first.
+ operationId: ListLLMObsDatasetRecords
+ parameters:
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
+ - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter'
+ - description: Retrieve records from a specific dataset version. Defaults to
+ the current version.
+ in: query
+ name: filter[version]
+ schema:
+ format: int64
+ type: integer
+ - description: Pagination cursor for the next page of results.
+ in: query
+ name: page[cursor]
schema:
type: string
+ - description: Maximum number of results to return per page.
+ in: query
+ name: page[limit]
+ schema:
+ format: int64
+ type: integer
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/OktaAccountResponse'
+ $ref: '#/components/schemas/LLMObsDatasetRecordsListResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Get Okta account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: List LLM Observability dataset records
tags:
- - Okta Integration
- x-permission:
- operator: OR
- permissions:
- - integrations_read
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
patch:
- description: Update an Okta account.
- operationId: UpdateOktaAccount
+ description: Update one or more existing records in an LLM Observability dataset.
+ operationId: UpdateLLMObsDatasetRecords
parameters:
- - description: None
- in: path
- name: account_id
- required: true
- schema:
- type: string
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
+ - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter'
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/OktaAccountUpdateRequest'
+ $ref: '#/components/schemas/LLMObsDatasetRecordsUpdateRequest'
+ description: Update records payload.
required: true
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/OktaAccountResponse'
+ $ref: '#/components/schemas/LLMObsDatasetRecordsMutationResponse'
description: OK
'400':
- $ref: '#/components/responses/BadRequestResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
- summary: Update Okta account
+ security:
+ - apiKeyAuth: []
+ appKeyAuth: []
+ summary: Update LLM Observability dataset records
tags:
- - Okta Integration
- x-codegen-request-body-name: body
- x-permission:
- operator: OR
- permissions:
- - manage_integrations
- /api/v2/ip_allowlist:
- get:
- description: Returns the IP allowlist and its enabled or disabled state.
- operationId: GetIPAllowlist
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ post:
+ description: Append one or more records to an LLM Observability dataset.
+ operationId: CreateLLMObsDatasetRecords
+ parameters:
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
+ - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter'
+ requestBody:
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsDatasetRecordsRequest'
+ description: Append records payload.
+ required: true
responses:
'200':
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAllowlistResponse'
+ $ref: '#/components/schemas/LLMObsDatasetRecordsMutationResponse'
description: OK
+ '201':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/LLMObsDatasetRecordsMutationResponse'
+ description: Created
+ '400':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
security:
- apiKeyAuth: []
appKeyAuth: []
- - AuthZ:
- - org_management
- summary: Get IP Allowlist
+ summary: Append records to an LLM Observability dataset
tags:
- - IP Allowlist
- x-permission:
- operator: OR
- permissions:
- - org_management
- patch:
- description: Edit the entries in the IP allowlist, and enable or disable it.
- operationId: UpdateIPAllowlist
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
+ /api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records/delete:
+ post:
+ description: Delete one or more records from an LLM Observability dataset.
+ operationId: DeleteLLMObsDatasetRecords
+ parameters:
+ - $ref: '#/components/parameters/LLMObsProjectIDPathParameter'
+ - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter'
requestBody:
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAllowlistUpdateRequest'
+ $ref: '#/components/schemas/LLMObsDeleteDatasetRecordsRequest'
+ description: Delete records payload.
required: true
responses:
- '200':
+ '204':
+ description: No Content
+ '400':
content:
application/json:
schema:
- $ref: '#/components/schemas/IPAllowlistResponse'
- description: OK
- '400':
- $ref: '#/components/responses/BadRequestResponse'
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Bad Request
+ '401':
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Unauthorized
'403':
- $ref: '#/components/responses/ForbiddenResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Forbidden
'404':
- $ref: '#/components/responses/NotFoundResponse'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/JSONAPIErrorResponse'
+ description: Not Found
'429':
$ref: '#/components/responses/TooManyRequestsResponse'
security:
- apiKeyAuth: []
appKeyAuth: []
- - AuthZ:
- - org_management
- summary: Update IP Allowlist
+ summary: Delete LLM Observability dataset records
tags:
- - IP Allowlist
- x-codegen-request-body-name: body
- x-permission:
- operator: OR
- permissions:
- - org_management
+ - LLM Observability
+ x-unstable: '**Note**: This endpoint is in preview and is subject to change.
+
+ If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).'
/api/v2/logs:
post:
description: 'Send your logs to your Datadog platform over HTTP. Limits per
@@ -108209,6 +110187,9 @@ tags:
description: Find out more at
url: https://docs.datadoghq.com/account_management/api-app-keys/
name: Key Management
+- description: Manage LLM Observability projects, datasets, dataset records, and experiments
+ via the Experiments API.
+ name: LLM Observability
- description: Search your logs and send them to your Datadog platform over HTTP.
See the [Log Management page](https://docs.datadoghq.com/logs/) for more information.
name: Logs
diff --git a/examples/v2/llm-observability/CreateLLMObsDataset.java b/examples/v2/llm-observability/CreateLLMObsDataset.java
new file mode 100644
index 00000000000..7d0aa147f12
--- /dev/null
+++ b/examples/v2/llm-observability/CreateLLMObsDataset.java
@@ -0,0 +1,37 @@
+// Create an LLM Observability dataset returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDatasetDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetResponse;
+import com.datadog.api.client.v2.model.LLMObsDatasetType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createLLMObsDataset", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDatasetRequest body =
+ new LLMObsDatasetRequest()
+ .data(
+ new LLMObsDatasetDataRequest()
+ .attributes(new LLMObsDatasetDataAttributesRequest().name("My LLM Dataset"))
+ .type(LLMObsDatasetType.DATASETS));
+
+ try {
+ LLMObsDatasetResponse result =
+ apiInstance.createLLMObsDataset("a33671aa-24fd-4dcd-9b33-a8ec7dde7751", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#createLLMObsDataset");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/CreateLLMObsDatasetRecords.java b/examples/v2/llm-observability/CreateLLMObsDatasetRecords.java
new file mode 100644
index 00000000000..3963136b0ae
--- /dev/null
+++ b/examples/v2/llm-observability/CreateLLMObsDatasetRecords.java
@@ -0,0 +1,46 @@
+// Append records to an LLM Observability dataset returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordItem;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsMutationResponse;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsRequest;
+import com.datadog.api.client.v2.model.LLMObsRecordType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createLLMObsDatasetRecords", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDatasetRecordsRequest body =
+ new LLMObsDatasetRecordsRequest()
+ .data(
+ new LLMObsDatasetRecordsDataRequest()
+ .attributes(
+ new LLMObsDatasetRecordsDataAttributesRequest()
+ .records(
+ Collections.singletonList(
+ new LLMObsDatasetRecordItem()
+ .expectedOutput(null)
+ .input(null))))
+ .type(LLMObsRecordType.RECORDS));
+
+ try {
+ LLMObsDatasetRecordsMutationResponse result =
+ apiInstance.createLLMObsDatasetRecords(
+ "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#createLLMObsDatasetRecords");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/CreateLLMObsExperiment.java b/examples/v2/llm-observability/CreateLLMObsExperiment.java
new file mode 100644
index 00000000000..10f50e2fc43
--- /dev/null
+++ b/examples/v2/llm-observability/CreateLLMObsExperiment.java
@@ -0,0 +1,40 @@
+// Create an LLM Observability experiment returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsExperimentDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentDataRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentResponse;
+import com.datadog.api.client.v2.model.LLMObsExperimentType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createLLMObsExperiment", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsExperimentRequest body =
+ new LLMObsExperimentRequest()
+ .data(
+ new LLMObsExperimentDataRequest()
+ .attributes(
+ new LLMObsExperimentDataAttributesRequest()
+ .datasetId("9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d")
+ .name("My Experiment v1")
+ .projectId("a33671aa-24fd-4dcd-9b33-a8ec7dde7751"))
+ .type(LLMObsExperimentType.EXPERIMENTS));
+
+ try {
+ LLMObsExperimentResponse result = apiInstance.createLLMObsExperiment(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#createLLMObsExperiment");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/CreateLLMObsExperimentEvents.java b/examples/v2/llm-observability/CreateLLMObsExperimentEvents.java
new file mode 100644
index 00000000000..2c02980e38e
--- /dev/null
+++ b/examples/v2/llm-observability/CreateLLMObsExperimentEvents.java
@@ -0,0 +1,68 @@
+// Push events for an LLM Observability experiment returns "Accepted" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsEventType;
+import com.datadog.api.client.v2.model.LLMObsExperimentEventsDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentEventsDataRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentEventsRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentMetric;
+import com.datadog.api.client.v2.model.LLMObsExperimentMetricError;
+import com.datadog.api.client.v2.model.LLMObsExperimentSpan;
+import com.datadog.api.client.v2.model.LLMObsExperimentSpanError;
+import com.datadog.api.client.v2.model.LLMObsExperimentSpanMeta;
+import com.datadog.api.client.v2.model.LLMObsMetricAssessment;
+import com.datadog.api.client.v2.model.LLMObsMetricScoreType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createLLMObsExperimentEvents", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsExperimentEventsRequest body =
+ new LLMObsExperimentEventsRequest()
+ .data(
+ new LLMObsExperimentEventsDataRequest()
+ .attributes(
+ new LLMObsExperimentEventsDataAttributesRequest()
+ .metrics(
+ Collections.singletonList(
+ new LLMObsExperimentMetric()
+ .assessment(LLMObsMetricAssessment.PASS)
+ .error(new LLMObsExperimentMetricError())
+ .label("faithfulness")
+ .metricType(LLMObsMetricScoreType.SCORE)
+ .spanId("span-7a1b2c3d")
+ .timestampMs(1705314600000L)))
+ .spans(
+ Collections.singletonList(
+ new LLMObsExperimentSpan()
+ .datasetId("9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d")
+ .duration(1500000000L)
+ .meta(
+ new LLMObsExperimentSpanMeta()
+ .error(new LLMObsExperimentSpanError())
+ .input(null)
+ .output(null))
+ .name("llm_call")
+ .projectId("a33671aa-24fd-4dcd-9b33-a8ec7dde7751")
+ .spanId("span-7a1b2c3d")
+ .startNs(1705314600000000000L)
+ .status("ok")
+ .traceId("abc123def456"))))
+ .type(LLMObsEventType.EVENTS));
+
+ try {
+ apiInstance.createLLMObsExperimentEvents("3fd6b5e0-8910-4b1c-a7d0-5b84de329012", body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#createLLMObsExperimentEvents");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/CreateLLMObsProject.java b/examples/v2/llm-observability/CreateLLMObsProject.java
new file mode 100644
index 00000000000..25f5ea3123d
--- /dev/null
+++ b/examples/v2/llm-observability/CreateLLMObsProject.java
@@ -0,0 +1,36 @@
+// Create an LLM Observability project returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsProjectDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectDataRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectResponse;
+import com.datadog.api.client.v2.model.LLMObsProjectType;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.createLLMObsProject", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsProjectRequest body =
+ new LLMObsProjectRequest()
+ .data(
+ new LLMObsProjectDataRequest()
+ .attributes(new LLMObsProjectDataAttributesRequest().name("My LLM Project"))
+ .type(LLMObsProjectType.PROJECTS));
+
+ try {
+ LLMObsProjectResponse result = apiInstance.createLLMObsProject(body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#createLLMObsProject");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.java b/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.java
new file mode 100644
index 00000000000..4006315220a
--- /dev/null
+++ b/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.java
@@ -0,0 +1,40 @@
+// Delete LLM Observability dataset records returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsRequest;
+import com.datadog.api.client.v2.model.LLMObsRecordType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsDatasetRecords", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDeleteDatasetRecordsRequest body =
+ new LLMObsDeleteDatasetRecordsRequest()
+ .data(
+ new LLMObsDeleteDatasetRecordsDataRequest()
+ .attributes(
+ new LLMObsDeleteDatasetRecordsDataAttributesRequest()
+ .recordIds(
+ Collections.singletonList(
+ "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c")))
+ .type(LLMObsRecordType.RECORDS));
+
+ try {
+ apiInstance.deleteLLMObsDatasetRecords(
+ "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsDatasetRecords");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/DeleteLLMObsDatasets.java b/examples/v2/llm-observability/DeleteLLMObsDatasets.java
new file mode 100644
index 00000000000..5d3e5e193f3
--- /dev/null
+++ b/examples/v2/llm-observability/DeleteLLMObsDatasets.java
@@ -0,0 +1,38 @@
+// Delete LLM Observability datasets returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDatasetType;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsRequest;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsDatasets", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDeleteDatasetsRequest body =
+ new LLMObsDeleteDatasetsRequest()
+ .data(
+ new LLMObsDeleteDatasetsDataRequest()
+ .attributes(
+ new LLMObsDeleteDatasetsDataAttributesRequest()
+ .datasetIds(
+ Collections.singletonList("9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d")))
+ .type(LLMObsDatasetType.DATASETS));
+
+ try {
+ apiInstance.deleteLLMObsDatasets("a33671aa-24fd-4dcd-9b33-a8ec7dde7751", body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsDatasets");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/DeleteLLMObsExperiments.java b/examples/v2/llm-observability/DeleteLLMObsExperiments.java
new file mode 100644
index 00000000000..d9f57537234
--- /dev/null
+++ b/examples/v2/llm-observability/DeleteLLMObsExperiments.java
@@ -0,0 +1,38 @@
+// Delete LLM Observability experiments returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsExperiments", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDeleteExperimentsRequest body =
+ new LLMObsDeleteExperimentsRequest()
+ .data(
+ new LLMObsDeleteExperimentsDataRequest()
+ .attributes(
+ new LLMObsDeleteExperimentsDataAttributesRequest()
+ .experimentIds(
+ Collections.singletonList("3fd6b5e0-8910-4b1c-a7d0-5b84de329012")))
+ .type(LLMObsExperimentType.EXPERIMENTS));
+
+ try {
+ apiInstance.deleteLLMObsExperiments(body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsExperiments");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/DeleteLLMObsProjects.java b/examples/v2/llm-observability/DeleteLLMObsProjects.java
new file mode 100644
index 00000000000..40e75afdc96
--- /dev/null
+++ b/examples/v2/llm-observability/DeleteLLMObsProjects.java
@@ -0,0 +1,38 @@
+// Delete LLM Observability projects returns "No Content" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDeleteProjectsDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteProjectsDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteProjectsRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsProjects", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDeleteProjectsRequest body =
+ new LLMObsDeleteProjectsRequest()
+ .data(
+ new LLMObsDeleteProjectsDataRequest()
+ .attributes(
+ new LLMObsDeleteProjectsDataAttributesRequest()
+ .projectIds(
+ Collections.singletonList("a33671aa-24fd-4dcd-9b33-a8ec7dde7751")))
+ .type(LLMObsProjectType.PROJECTS));
+
+ try {
+ apiInstance.deleteLLMObsProjects(body);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsProjects");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/ListLLMObsDatasetRecords.java b/examples/v2/llm-observability/ListLLMObsDatasetRecords.java
new file mode 100644
index 00000000000..20edfbfe381
--- /dev/null
+++ b/examples/v2/llm-observability/ListLLMObsDatasetRecords.java
@@ -0,0 +1,27 @@
+// List LLM Observability dataset records returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsListResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listLLMObsDatasetRecords", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ try {
+ LLMObsDatasetRecordsListResponse result =
+ apiInstance.listLLMObsDatasetRecords(
+ "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#listLLMObsDatasetRecords");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/ListLLMObsDatasets.java b/examples/v2/llm-observability/ListLLMObsDatasets.java
new file mode 100644
index 00000000000..8003e2e7748
--- /dev/null
+++ b/examples/v2/llm-observability/ListLLMObsDatasets.java
@@ -0,0 +1,26 @@
+// List LLM Observability datasets returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDatasetsResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listLLMObsDatasets", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ try {
+ LLMObsDatasetsResponse result =
+ apiInstance.listLLMObsDatasets("a33671aa-24fd-4dcd-9b33-a8ec7dde7751");
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#listLLMObsDatasets");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/ListLLMObsExperiments.java b/examples/v2/llm-observability/ListLLMObsExperiments.java
new file mode 100644
index 00000000000..771a37eb4ef
--- /dev/null
+++ b/examples/v2/llm-observability/ListLLMObsExperiments.java
@@ -0,0 +1,25 @@
+// List LLM Observability experiments returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsExperimentsResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listLLMObsExperiments", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ try {
+ LLMObsExperimentsResponse result = apiInstance.listLLMObsExperiments();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#listLLMObsExperiments");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/ListLLMObsProjects.java b/examples/v2/llm-observability/ListLLMObsProjects.java
new file mode 100644
index 00000000000..0367e9e22fa
--- /dev/null
+++ b/examples/v2/llm-observability/ListLLMObsProjects.java
@@ -0,0 +1,25 @@
+// List LLM Observability projects returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsProjectsResponse;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.listLLMObsProjects", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ try {
+ LLMObsProjectsResponse result = apiInstance.listLLMObsProjects();
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#listLLMObsProjects");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/UpdateLLMObsDataset.java b/examples/v2/llm-observability/UpdateLLMObsDataset.java
new file mode 100644
index 00000000000..e1b14af267d
--- /dev/null
+++ b/examples/v2/llm-observability/UpdateLLMObsDataset.java
@@ -0,0 +1,38 @@
+// Update an LLM Observability dataset returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDatasetResponse;
+import com.datadog.api.client.v2.model.LLMObsDatasetType;
+import com.datadog.api.client.v2.model.LLMObsDatasetUpdateDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetUpdateDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetUpdateRequest;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateLLMObsDataset", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDatasetUpdateRequest body =
+ new LLMObsDatasetUpdateRequest()
+ .data(
+ new LLMObsDatasetUpdateDataRequest()
+ .attributes(new LLMObsDatasetUpdateDataAttributesRequest())
+ .type(LLMObsDatasetType.DATASETS));
+
+ try {
+ LLMObsDatasetResponse result =
+ apiInstance.updateLLMObsDataset(
+ "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsDataset");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.java b/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.java
new file mode 100644
index 00000000000..82709c3e516
--- /dev/null
+++ b/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.java
@@ -0,0 +1,47 @@
+// Update LLM Observability dataset records returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordUpdateItem;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsMutationResponse;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateDataRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateRequest;
+import com.datadog.api.client.v2.model.LLMObsRecordType;
+import java.util.Collections;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateLLMObsDatasetRecords", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsDatasetRecordsUpdateRequest body =
+ new LLMObsDatasetRecordsUpdateRequest()
+ .data(
+ new LLMObsDatasetRecordsUpdateDataRequest()
+ .attributes(
+ new LLMObsDatasetRecordsUpdateDataAttributesRequest()
+ .records(
+ Collections.singletonList(
+ new LLMObsDatasetRecordUpdateItem()
+ .expectedOutput(null)
+ .id("rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c")
+ .input(null))))
+ .type(LLMObsRecordType.RECORDS));
+
+ try {
+ LLMObsDatasetRecordsMutationResponse result =
+ apiInstance.updateLLMObsDatasetRecords(
+ "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsDatasetRecords");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/UpdateLLMObsExperiment.java b/examples/v2/llm-observability/UpdateLLMObsExperiment.java
new file mode 100644
index 00000000000..7c6a1824f00
--- /dev/null
+++ b/examples/v2/llm-observability/UpdateLLMObsExperiment.java
@@ -0,0 +1,37 @@
+// Update an LLM Observability experiment returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsExperimentResponse;
+import com.datadog.api.client.v2.model.LLMObsExperimentType;
+import com.datadog.api.client.v2.model.LLMObsExperimentUpdateDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentUpdateDataRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentUpdateRequest;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateLLMObsExperiment", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsExperimentUpdateRequest body =
+ new LLMObsExperimentUpdateRequest()
+ .data(
+ new LLMObsExperimentUpdateDataRequest()
+ .attributes(new LLMObsExperimentUpdateDataAttributesRequest())
+ .type(LLMObsExperimentType.EXPERIMENTS));
+
+ try {
+ LLMObsExperimentResponse result =
+ apiInstance.updateLLMObsExperiment("3fd6b5e0-8910-4b1c-a7d0-5b84de329012", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsExperiment");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/examples/v2/llm-observability/UpdateLLMObsProject.java b/examples/v2/llm-observability/UpdateLLMObsProject.java
new file mode 100644
index 00000000000..d5f27e19ed0
--- /dev/null
+++ b/examples/v2/llm-observability/UpdateLLMObsProject.java
@@ -0,0 +1,37 @@
+// Update an LLM Observability project returns "OK" response
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.v2.api.LlmObservabilityApi;
+import com.datadog.api.client.v2.model.LLMObsProjectResponse;
+import com.datadog.api.client.v2.model.LLMObsProjectType;
+import com.datadog.api.client.v2.model.LLMObsProjectUpdateDataAttributesRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectUpdateDataRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectUpdateRequest;
+
+public class Example {
+ public static void main(String[] args) {
+ ApiClient defaultClient = ApiClient.getDefaultApiClient();
+ defaultClient.setUnstableOperationEnabled("v2.updateLLMObsProject", true);
+ LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient);
+
+ LLMObsProjectUpdateRequest body =
+ new LLMObsProjectUpdateRequest()
+ .data(
+ new LLMObsProjectUpdateDataRequest()
+ .attributes(new LLMObsProjectUpdateDataAttributesRequest())
+ .type(LLMObsProjectType.PROJECTS));
+
+ try {
+ LLMObsProjectResponse result =
+ apiInstance.updateLLMObsProject("a33671aa-24fd-4dcd-9b33-a8ec7dde7751", body);
+ System.out.println(result);
+ } catch (ApiException e) {
+ System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsProject");
+ System.err.println("Status code: " + e.getCode());
+ System.err.println("Reason: " + e.getResponseBody());
+ System.err.println("Response headers: " + e.getResponseHeaders());
+ e.printStackTrace();
+ }
+ }
+}
diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java
index e5a488f9638..c300d4dcef2 100644
--- a/src/main/java/com/datadog/api/client/ApiClient.java
+++ b/src/main/java/com/datadog/api/client/ApiClient.java
@@ -901,6 +901,23 @@ public class ApiClient {
put("v2.listServiceNowTemplates", false);
put("v2.listServiceNowUsers", false);
put("v2.updateServiceNowTemplate", false);
+ put("v2.createLLMObsDataset", false);
+ put("v2.createLLMObsDatasetRecords", false);
+ put("v2.createLLMObsExperiment", false);
+ put("v2.createLLMObsExperimentEvents", false);
+ put("v2.createLLMObsProject", false);
+ put("v2.deleteLLMObsDatasetRecords", false);
+ put("v2.deleteLLMObsDatasets", false);
+ put("v2.deleteLLMObsExperiments", false);
+ put("v2.deleteLLMObsProjects", false);
+ put("v2.listLLMObsDatasetRecords", false);
+ put("v2.listLLMObsDatasets", false);
+ put("v2.listLLMObsExperiments", false);
+ put("v2.listLLMObsProjects", false);
+ put("v2.updateLLMObsDataset", false);
+ put("v2.updateLLMObsDatasetRecords", false);
+ put("v2.updateLLMObsExperiment", false);
+ put("v2.updateLLMObsProject", false);
put("v2.addRoleToRestrictionQuery", false);
put("v2.createRestrictionQuery", false);
put("v2.deleteRestrictionQuery", false);
diff --git a/src/main/java/com/datadog/api/client/v2/api/LlmObservabilityApi.java b/src/main/java/com/datadog/api/client/v2/api/LlmObservabilityApi.java
new file mode 100644
index 00000000000..9c03f0c535a
--- /dev/null
+++ b/src/main/java/com/datadog/api/client/v2/api/LlmObservabilityApi.java
@@ -0,0 +1,3412 @@
+package com.datadog.api.client.v2.api;
+
+import com.datadog.api.client.ApiClient;
+import com.datadog.api.client.ApiException;
+import com.datadog.api.client.ApiResponse;
+import com.datadog.api.client.Pair;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsListResponse;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsMutationResponse;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetResponse;
+import com.datadog.api.client.v2.model.LLMObsDatasetUpdateRequest;
+import com.datadog.api.client.v2.model.LLMObsDatasetsResponse;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsRequest;
+import com.datadog.api.client.v2.model.LLMObsDeleteProjectsRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentEventsRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentResponse;
+import com.datadog.api.client.v2.model.LLMObsExperimentUpdateRequest;
+import com.datadog.api.client.v2.model.LLMObsExperimentsResponse;
+import com.datadog.api.client.v2.model.LLMObsProjectRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectResponse;
+import com.datadog.api.client.v2.model.LLMObsProjectUpdateRequest;
+import com.datadog.api.client.v2.model.LLMObsProjectsResponse;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.GenericType;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+
+@jakarta.annotation.Generated(
+ value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator")
+public class LlmObservabilityApi {
+ private ApiClient apiClient;
+
+ public LlmObservabilityApi() {
+ this(ApiClient.getDefaultApiClient());
+ }
+
+ public LlmObservabilityApi(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Get the API client.
+ *
+ * @return API client
+ */
+ public ApiClient getApiClient() {
+ return apiClient;
+ }
+
+ /**
+ * Set the API client.
+ *
+ * @param apiClient an instance of API client
+ */
+ public void setApiClient(ApiClient apiClient) {
+ this.apiClient = apiClient;
+ }
+
+ /**
+ * Create an LLM Observability dataset.
+ *
+ *
See {@link #createLLMObsDatasetWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Create dataset payload. (required)
+ * @return LLMObsDatasetResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsDatasetResponse createLLMObsDataset(String projectId, LLMObsDatasetRequest body)
+ throws ApiException {
+ return createLLMObsDatasetWithHttpInfo(projectId, body).getData();
+ }
+
+ /**
+ * Create an LLM Observability dataset.
+ *
+ *
See {@link #createLLMObsDatasetWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Create dataset payload. (required)
+ * @return CompletableFuture<LLMObsDatasetResponse>
+ */
+ public CompletableFuture createLLMObsDatasetAsync(
+ String projectId, LLMObsDatasetRequest body) {
+ return createLLMObsDatasetWithHttpInfoAsync(projectId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new LLM Observability dataset within the specified project.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Create dataset payload. (required)
+ * @return ApiResponse<LLMObsDatasetResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 201 | Created | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createLLMObsDatasetWithHttpInfo(
+ String projectId, LLMObsDatasetRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsDataset";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'projectId' when calling createLLMObsDataset");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsDataset");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsDataset",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create an LLM Observability dataset.
+ *
+ * See {@link #createLLMObsDatasetWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Create dataset payload. (required)
+ * @return CompletableFuture<ApiResponse<LLMObsDatasetResponse>>
+ */
+ public CompletableFuture> createLLMObsDatasetWithHttpInfoAsync(
+ String projectId, LLMObsDatasetRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsDataset";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'projectId' when calling createLLMObsDataset"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsDataset"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsDataset",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Append records to an LLM Observability dataset.
+ *
+ * See {@link #createLLMObsDatasetRecordsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Append records payload. (required)
+ * @return LLMObsDatasetRecordsMutationResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsDatasetRecordsMutationResponse createLLMObsDatasetRecords(
+ String projectId, String datasetId, LLMObsDatasetRecordsRequest body) throws ApiException {
+ return createLLMObsDatasetRecordsWithHttpInfo(projectId, datasetId, body).getData();
+ }
+
+ /**
+ * Append records to an LLM Observability dataset.
+ *
+ *
See {@link #createLLMObsDatasetRecordsWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Append records payload. (required)
+ * @return CompletableFuture<LLMObsDatasetRecordsMutationResponse>
+ */
+ public CompletableFuture createLLMObsDatasetRecordsAsync(
+ String projectId, String datasetId, LLMObsDatasetRecordsRequest body) {
+ return createLLMObsDatasetRecordsWithHttpInfoAsync(projectId, datasetId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Append one or more records to an LLM Observability dataset.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Append records payload. (required)
+ * @return ApiResponse<LLMObsDatasetRecordsMutationResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 201 | Created | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createLLMObsDatasetRecordsWithHttpInfo(
+ String projectId, String datasetId, LLMObsDatasetRecordsRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsDatasetRecords";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'projectId' when calling createLLMObsDatasetRecords");
+ }
+
+ // verify the required parameter 'datasetId' is set
+ if (datasetId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'datasetId' when calling createLLMObsDatasetRecords");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsDatasetRecords");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()))
+ .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsDatasetRecords",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Append records to an LLM Observability dataset.
+ *
+ * See {@link #createLLMObsDatasetRecordsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Append records payload. (required)
+ * @return CompletableFuture<ApiResponse<LLMObsDatasetRecordsMutationResponse>>
+ */
+ public CompletableFuture>
+ createLLMObsDatasetRecordsWithHttpInfoAsync(
+ String projectId, String datasetId, LLMObsDatasetRecordsRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsDatasetRecords";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'projectId' when calling"
+ + " createLLMObsDatasetRecords"));
+ return result;
+ }
+
+ // verify the required parameter 'datasetId' is set
+ if (datasetId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'datasetId' when calling"
+ + " createLLMObsDatasetRecords"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling createLLMObsDatasetRecords"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()))
+ .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsDatasetRecords",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create an LLM Observability experiment.
+ *
+ * See {@link #createLLMObsExperimentWithHttpInfo}.
+ *
+ * @param body Create experiment payload. (required)
+ * @return LLMObsExperimentResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsExperimentResponse createLLMObsExperiment(LLMObsExperimentRequest body)
+ throws ApiException {
+ return createLLMObsExperimentWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create an LLM Observability experiment.
+ *
+ *
See {@link #createLLMObsExperimentWithHttpInfoAsync}.
+ *
+ * @param body Create experiment payload. (required)
+ * @return CompletableFuture<LLMObsExperimentResponse>
+ */
+ public CompletableFuture createLLMObsExperimentAsync(
+ LLMObsExperimentRequest body) {
+ return createLLMObsExperimentWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new LLM Observability experiment.
+ *
+ * @param body Create experiment payload. (required)
+ * @return ApiResponse<LLMObsExperimentResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 201 | Created | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createLLMObsExperimentWithHttpInfo(
+ LLMObsExperimentRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsExperiment";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsExperiment");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/experiments";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsExperiment",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create an LLM Observability experiment.
+ *
+ * See {@link #createLLMObsExperimentWithHttpInfo}.
+ *
+ * @param body Create experiment payload. (required)
+ * @return CompletableFuture<ApiResponse<LLMObsExperimentResponse>>
+ */
+ public CompletableFuture>
+ createLLMObsExperimentWithHttpInfoAsync(LLMObsExperimentRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsExperiment";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsExperiment"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/experiments";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsExperiment",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Push events for an LLM Observability experiment.
+ *
+ * See {@link #createLLMObsExperimentEventsWithHttpInfo}.
+ *
+ * @param experimentId The ID of the LLM Observability experiment. (required)
+ * @param body Experiment events payload. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void createLLMObsExperimentEvents(String experimentId, LLMObsExperimentEventsRequest body)
+ throws ApiException {
+ createLLMObsExperimentEventsWithHttpInfo(experimentId, body);
+ }
+
+ /**
+ * Push events for an LLM Observability experiment.
+ *
+ *
See {@link #createLLMObsExperimentEventsWithHttpInfoAsync}.
+ *
+ * @param experimentId The ID of the LLM Observability experiment. (required)
+ * @param body Experiment events payload. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture createLLMObsExperimentEventsAsync(
+ String experimentId, LLMObsExperimentEventsRequest body) {
+ return createLLMObsExperimentEventsWithHttpInfoAsync(experimentId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Push spans and metrics for an LLM Observability experiment.
+ *
+ * @param experimentId The ID of the LLM Observability experiment. (required)
+ * @param body Experiment events payload. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 202 | Accepted | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createLLMObsExperimentEventsWithHttpInfo(
+ String experimentId, LLMObsExperimentEventsRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsExperimentEvents";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'experimentId' is set
+ if (experimentId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'experimentId' when calling"
+ + " createLLMObsExperimentEvents");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsExperimentEvents");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/experiments/{experiment_id}/events"
+ .replaceAll(
+ "\\{" + "experiment_id" + "\\}", apiClient.escapeString(experimentId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsExperimentEvents",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Push events for an LLM Observability experiment.
+ *
+ * See {@link #createLLMObsExperimentEventsWithHttpInfo}.
+ *
+ * @param experimentId The ID of the LLM Observability experiment. (required)
+ * @param body Experiment events payload. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> createLLMObsExperimentEventsWithHttpInfoAsync(
+ String experimentId, LLMObsExperimentEventsRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsExperimentEvents";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'experimentId' is set
+ if (experimentId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'experimentId' when calling"
+ + " createLLMObsExperimentEvents"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling createLLMObsExperimentEvents"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/experiments/{experiment_id}/events"
+ .replaceAll(
+ "\\{" + "experiment_id" + "\\}", apiClient.escapeString(experimentId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsExperimentEvents",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Create an LLM Observability project.
+ *
+ * See {@link #createLLMObsProjectWithHttpInfo}.
+ *
+ * @param body Create project payload. (required)
+ * @return LLMObsProjectResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsProjectResponse createLLMObsProject(LLMObsProjectRequest body) throws ApiException {
+ return createLLMObsProjectWithHttpInfo(body).getData();
+ }
+
+ /**
+ * Create an LLM Observability project.
+ *
+ *
See {@link #createLLMObsProjectWithHttpInfoAsync}.
+ *
+ * @param body Create project payload. (required)
+ * @return CompletableFuture<LLMObsProjectResponse>
+ */
+ public CompletableFuture createLLMObsProjectAsync(
+ LLMObsProjectRequest body) {
+ return createLLMObsProjectWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Create a new LLM Observability project. Returns the existing project if a name conflict occurs.
+ *
+ * @param body Create project payload. (required)
+ * @return ApiResponse<LLMObsProjectResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 201 | Created | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse createLLMObsProjectWithHttpInfo(
+ LLMObsProjectRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsProject";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsProject");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/projects";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsProject",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Create an LLM Observability project.
+ *
+ * See {@link #createLLMObsProjectWithHttpInfo}.
+ *
+ * @param body Create project payload. (required)
+ * @return CompletableFuture<ApiResponse<LLMObsProjectResponse>>
+ */
+ public CompletableFuture> createLLMObsProjectWithHttpInfoAsync(
+ LLMObsProjectRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "createLLMObsProject";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling createLLMObsProject"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/projects";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.createLLMObsProject",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * Delete LLM Observability dataset records.
+ *
+ * See {@link #deleteLLMObsDatasetRecordsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Delete records payload. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteLLMObsDatasetRecords(
+ String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body)
+ throws ApiException {
+ deleteLLMObsDatasetRecordsWithHttpInfo(projectId, datasetId, body);
+ }
+
+ /**
+ * Delete LLM Observability dataset records.
+ *
+ *
See {@link #deleteLLMObsDatasetRecordsWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Delete records payload. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteLLMObsDatasetRecordsAsync(
+ String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body) {
+ return deleteLLMObsDatasetRecordsWithHttpInfoAsync(projectId, datasetId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete one or more records from an LLM Observability dataset.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Delete records payload. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteLLMObsDatasetRecordsWithHttpInfo(
+ String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsDatasetRecords";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'projectId' when calling deleteLLMObsDatasetRecords");
+ }
+
+ // verify the required parameter 'datasetId' is set
+ if (datasetId == null) {
+ throw new ApiException(
+ 400,
+ "Missing the required parameter 'datasetId' when calling deleteLLMObsDatasetRecords");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteLLMObsDatasetRecords");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records/delete"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()))
+ .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsDatasetRecords",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete LLM Observability dataset records.
+ *
+ * See {@link #deleteLLMObsDatasetRecordsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param body Delete records payload. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteLLMObsDatasetRecordsWithHttpInfoAsync(
+ String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsDatasetRecords";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'projectId' when calling"
+ + " deleteLLMObsDatasetRecords"));
+ return result;
+ }
+
+ // verify the required parameter 'datasetId' is set
+ if (datasetId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'datasetId' when calling"
+ + " deleteLLMObsDatasetRecords"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'body' when calling deleteLLMObsDatasetRecords"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records/delete"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()))
+ .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsDatasetRecords",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete LLM Observability datasets.
+ *
+ * See {@link #deleteLLMObsDatasetsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Delete datasets payload. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteLLMObsDatasets(String projectId, LLMObsDeleteDatasetsRequest body)
+ throws ApiException {
+ deleteLLMObsDatasetsWithHttpInfo(projectId, body);
+ }
+
+ /**
+ * Delete LLM Observability datasets.
+ *
+ *
See {@link #deleteLLMObsDatasetsWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Delete datasets payload. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteLLMObsDatasetsAsync(
+ String projectId, LLMObsDeleteDatasetsRequest body) {
+ return deleteLLMObsDatasetsWithHttpInfoAsync(projectId, body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete one or more LLM Observability datasets within the specified project.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Delete datasets payload. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteLLMObsDatasetsWithHttpInfo(
+ String projectId, LLMObsDeleteDatasetsRequest body) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsDatasets";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'projectId' when calling deleteLLMObsDatasets");
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteLLMObsDatasets");
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/delete"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsDatasets",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete LLM Observability datasets.
+ *
+ * See {@link #deleteLLMObsDatasetsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param body Delete datasets payload. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteLLMObsDatasetsWithHttpInfoAsync(
+ String projectId, LLMObsDeleteDatasetsRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsDatasets";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'projectId' when calling deleteLLMObsDatasets"));
+ return result;
+ }
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteLLMObsDatasets"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/delete"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()));
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsDatasets",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete LLM Observability experiments.
+ *
+ * See {@link #deleteLLMObsExperimentsWithHttpInfo}.
+ *
+ * @param body Delete experiments payload. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteLLMObsExperiments(LLMObsDeleteExperimentsRequest body) throws ApiException {
+ deleteLLMObsExperimentsWithHttpInfo(body);
+ }
+
+ /**
+ * Delete LLM Observability experiments.
+ *
+ *
See {@link #deleteLLMObsExperimentsWithHttpInfoAsync}.
+ *
+ * @param body Delete experiments payload. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteLLMObsExperimentsAsync(LLMObsDeleteExperimentsRequest body) {
+ return deleteLLMObsExperimentsWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete one or more LLM Observability experiments.
+ *
+ * @param body Delete experiments payload. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteLLMObsExperimentsWithHttpInfo(LLMObsDeleteExperimentsRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsExperiments";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteLLMObsExperiments");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/experiments/delete";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsExperiments",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete LLM Observability experiments.
+ *
+ * See {@link #deleteLLMObsExperimentsWithHttpInfo}.
+ *
+ * @param body Delete experiments payload. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteLLMObsExperimentsWithHttpInfoAsync(
+ LLMObsDeleteExperimentsRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsExperiments";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteLLMObsExperiments"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/experiments/delete";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsExperiments",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete LLM Observability projects.
+ *
+ * See {@link #deleteLLMObsProjectsWithHttpInfo}.
+ *
+ * @param body Delete projects payload. (required)
+ * @throws ApiException if fails to make API call
+ */
+ public void deleteLLMObsProjects(LLMObsDeleteProjectsRequest body) throws ApiException {
+ deleteLLMObsProjectsWithHttpInfo(body);
+ }
+
+ /**
+ * Delete LLM Observability projects.
+ *
+ *
See {@link #deleteLLMObsProjectsWithHttpInfoAsync}.
+ *
+ * @param body Delete projects payload. (required)
+ * @return CompletableFuture
+ */
+ public CompletableFuture deleteLLMObsProjectsAsync(LLMObsDeleteProjectsRequest body) {
+ return deleteLLMObsProjectsWithHttpInfoAsync(body)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * Delete one or more LLM Observability projects.
+ *
+ * @param body Delete projects payload. (required)
+ * @return ApiResponse<Void>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 204 | No Content | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse deleteLLMObsProjectsWithHttpInfo(LLMObsDeleteProjectsRequest body)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsProjects";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteLLMObsProjects");
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/projects/delete";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsProjects",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /**
+ * Delete LLM Observability projects.
+ *
+ * See {@link #deleteLLMObsProjectsWithHttpInfo}.
+ *
+ * @param body Delete projects payload. (required)
+ * @return CompletableFuture<ApiResponse<Void>>
+ */
+ public CompletableFuture> deleteLLMObsProjectsWithHttpInfoAsync(
+ LLMObsDeleteProjectsRequest body) {
+ // Check if unstable operation is enabled
+ String operationId = "deleteLLMObsProjects";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = body;
+
+ // verify the required parameter 'body' is set
+ if (body == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'body' when calling deleteLLMObsProjects"));
+ return result;
+ }
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/projects/delete";
+
+ Map localVarHeaderParams = new HashMap();
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.deleteLLMObsProjects",
+ localVarPath,
+ new ArrayList(),
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"*/*"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "POST",
+ builder,
+ localVarHeaderParams,
+ new String[] {"application/json"},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ null);
+ }
+
+ /** Manage optional parameters to listLLMObsDatasetRecords. */
+ public static class ListLLMObsDatasetRecordsOptionalParameters {
+ private Long filterVersion;
+ private String pageCursor;
+ private Long pageLimit;
+
+ /**
+ * Set filterVersion.
+ *
+ * @param filterVersion Retrieve records from a specific dataset version. Defaults to the
+ * current version. (optional)
+ * @return ListLLMObsDatasetRecordsOptionalParameters
+ */
+ public ListLLMObsDatasetRecordsOptionalParameters filterVersion(Long filterVersion) {
+ this.filterVersion = filterVersion;
+ return this;
+ }
+
+ /**
+ * Set pageCursor.
+ *
+ * @param pageCursor Pagination cursor for the next page of results. (optional)
+ * @return ListLLMObsDatasetRecordsOptionalParameters
+ */
+ public ListLLMObsDatasetRecordsOptionalParameters pageCursor(String pageCursor) {
+ this.pageCursor = pageCursor;
+ return this;
+ }
+
+ /**
+ * Set pageLimit.
+ *
+ * @param pageLimit Maximum number of results to return per page. (optional)
+ * @return ListLLMObsDatasetRecordsOptionalParameters
+ */
+ public ListLLMObsDatasetRecordsOptionalParameters pageLimit(Long pageLimit) {
+ this.pageLimit = pageLimit;
+ return this;
+ }
+ }
+
+ /**
+ * List LLM Observability dataset records.
+ *
+ * See {@link #listLLMObsDatasetRecordsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @return LLMObsDatasetRecordsListResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsDatasetRecordsListResponse listLLMObsDatasetRecords(
+ String projectId, String datasetId) throws ApiException {
+ return listLLMObsDatasetRecordsWithHttpInfo(
+ projectId, datasetId, new ListLLMObsDatasetRecordsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List LLM Observability dataset records.
+ *
+ *
See {@link #listLLMObsDatasetRecordsWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @return CompletableFuture<LLMObsDatasetRecordsListResponse>
+ */
+ public CompletableFuture listLLMObsDatasetRecordsAsync(
+ String projectId, String datasetId) {
+ return listLLMObsDatasetRecordsWithHttpInfoAsync(
+ projectId, datasetId, new ListLLMObsDatasetRecordsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List LLM Observability dataset records.
+ *
+ * See {@link #listLLMObsDatasetRecordsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param parameters Optional parameters for the request.
+ * @return LLMObsDatasetRecordsListResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsDatasetRecordsListResponse listLLMObsDatasetRecords(
+ String projectId, String datasetId, ListLLMObsDatasetRecordsOptionalParameters parameters)
+ throws ApiException {
+ return listLLMObsDatasetRecordsWithHttpInfo(projectId, datasetId, parameters).getData();
+ }
+
+ /**
+ * List LLM Observability dataset records.
+ *
+ *
See {@link #listLLMObsDatasetRecordsWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<LLMObsDatasetRecordsListResponse>
+ */
+ public CompletableFuture listLLMObsDatasetRecordsAsync(
+ String projectId, String datasetId, ListLLMObsDatasetRecordsOptionalParameters parameters) {
+ return listLLMObsDatasetRecordsWithHttpInfoAsync(projectId, datasetId, parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List all records in an LLM Observability dataset, sorted by creation date, newest first.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<LLMObsDatasetRecordsListResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listLLMObsDatasetRecordsWithHttpInfo(
+ String projectId, String datasetId, ListLLMObsDatasetRecordsOptionalParameters parameters)
+ throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listLLMObsDatasetRecords";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'projectId' when calling listLLMObsDatasetRecords");
+ }
+
+ // verify the required parameter 'datasetId' is set
+ if (datasetId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'datasetId' when calling listLLMObsDatasetRecords");
+ }
+ Long filterVersion = parameters.filterVersion;
+ String pageCursor = parameters.pageCursor;
+ Long pageLimit = parameters.pageLimit;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()))
+ .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[version]", filterVersion));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.listLLMObsDatasetRecords",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List LLM Observability dataset records.
+ *
+ * See {@link #listLLMObsDatasetRecordsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param datasetId The ID of the LLM Observability dataset. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<LLMObsDatasetRecordsListResponse>>
+ */
+ public CompletableFuture>
+ listLLMObsDatasetRecordsWithHttpInfoAsync(
+ String projectId,
+ String datasetId,
+ ListLLMObsDatasetRecordsOptionalParameters parameters) {
+ // Check if unstable operation is enabled
+ String operationId = "listLLMObsDatasetRecords";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'projectId' when calling listLLMObsDatasetRecords"));
+ return result;
+ }
+
+ // verify the required parameter 'datasetId' is set
+ if (datasetId == null) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400,
+ "Missing the required parameter 'datasetId' when calling listLLMObsDatasetRecords"));
+ return result;
+ }
+ Long filterVersion = parameters.filterVersion;
+ String pageCursor = parameters.pageCursor;
+ Long pageLimit = parameters.pageLimit;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()))
+ .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[version]", filterVersion));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.listLLMObsDatasetRecords",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result =
+ new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /** Manage optional parameters to listLLMObsDatasets. */
+ public static class ListLLMObsDatasetsOptionalParameters {
+ private String filterName;
+ private String filterId;
+ private String pageCursor;
+ private Long pageLimit;
+
+ /**
+ * Set filterName.
+ *
+ * @param filterName Filter datasets by name. (optional)
+ * @return ListLLMObsDatasetsOptionalParameters
+ */
+ public ListLLMObsDatasetsOptionalParameters filterName(String filterName) {
+ this.filterName = filterName;
+ return this;
+ }
+
+ /**
+ * Set filterId.
+ *
+ * @param filterId Filter datasets by dataset ID. (optional)
+ * @return ListLLMObsDatasetsOptionalParameters
+ */
+ public ListLLMObsDatasetsOptionalParameters filterId(String filterId) {
+ this.filterId = filterId;
+ return this;
+ }
+
+ /**
+ * Set pageCursor.
+ *
+ * @param pageCursor Pagination cursor for the next page of results. (optional)
+ * @return ListLLMObsDatasetsOptionalParameters
+ */
+ public ListLLMObsDatasetsOptionalParameters pageCursor(String pageCursor) {
+ this.pageCursor = pageCursor;
+ return this;
+ }
+
+ /**
+ * Set pageLimit.
+ *
+ * @param pageLimit Maximum number of results to return per page. (optional)
+ * @return ListLLMObsDatasetsOptionalParameters
+ */
+ public ListLLMObsDatasetsOptionalParameters pageLimit(Long pageLimit) {
+ this.pageLimit = pageLimit;
+ return this;
+ }
+ }
+
+ /**
+ * List LLM Observability datasets.
+ *
+ * See {@link #listLLMObsDatasetsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @return LLMObsDatasetsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsDatasetsResponse listLLMObsDatasets(String projectId) throws ApiException {
+ return listLLMObsDatasetsWithHttpInfo(projectId, new ListLLMObsDatasetsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List LLM Observability datasets.
+ *
+ *
See {@link #listLLMObsDatasetsWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @return CompletableFuture<LLMObsDatasetsResponse>
+ */
+ public CompletableFuture listLLMObsDatasetsAsync(String projectId) {
+ return listLLMObsDatasetsWithHttpInfoAsync(
+ projectId, new ListLLMObsDatasetsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List LLM Observability datasets.
+ *
+ * See {@link #listLLMObsDatasetsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param parameters Optional parameters for the request.
+ * @return LLMObsDatasetsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsDatasetsResponse listLLMObsDatasets(
+ String projectId, ListLLMObsDatasetsOptionalParameters parameters) throws ApiException {
+ return listLLMObsDatasetsWithHttpInfo(projectId, parameters).getData();
+ }
+
+ /**
+ * List LLM Observability datasets.
+ *
+ *
See {@link #listLLMObsDatasetsWithHttpInfoAsync}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<LLMObsDatasetsResponse>
+ */
+ public CompletableFuture listLLMObsDatasetsAsync(
+ String projectId, ListLLMObsDatasetsOptionalParameters parameters) {
+ return listLLMObsDatasetsWithHttpInfoAsync(projectId, parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List all LLM Observability datasets for a project, sorted by creation date, newest first.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<LLMObsDatasetsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 404 | Not Found | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listLLMObsDatasetsWithHttpInfo(
+ String projectId, ListLLMObsDatasetsOptionalParameters parameters) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listLLMObsDatasets";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ throw new ApiException(
+ 400, "Missing the required parameter 'projectId' when calling listLLMObsDatasets");
+ }
+ String filterName = parameters.filterName;
+ String filterId = parameters.filterId;
+ String pageCursor = parameters.pageCursor;
+ Long pageLimit = parameters.pageLimit;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[name]", filterName));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.listLLMObsDatasets",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List LLM Observability datasets.
+ *
+ * See {@link #listLLMObsDatasetsWithHttpInfo}.
+ *
+ * @param projectId The ID of the LLM Observability project. (required)
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<LLMObsDatasetsResponse>>
+ */
+ public CompletableFuture> listLLMObsDatasetsWithHttpInfoAsync(
+ String projectId, ListLLMObsDatasetsOptionalParameters parameters) {
+ // Check if unstable operation is enabled
+ String operationId = "listLLMObsDatasets";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+
+ // verify the required parameter 'projectId' is set
+ if (projectId == null) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(
+ 400, "Missing the required parameter 'projectId' when calling listLLMObsDatasets"));
+ return result;
+ }
+ String filterName = parameters.filterName;
+ String filterId = parameters.filterId;
+ String pageCursor = parameters.pageCursor;
+ Long pageLimit = parameters.pageLimit;
+ // create path and map variables
+ String localVarPath =
+ "/api/v2/llm-obs/v1/{project_id}/datasets"
+ .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString()));
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[name]", filterName));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.listLLMObsDatasets",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /** Manage optional parameters to listLLMObsExperiments. */
+ public static class ListLLMObsExperimentsOptionalParameters {
+ private String filterProjectId;
+ private String filterDatasetId;
+ private String filterId;
+ private String pageCursor;
+ private Long pageLimit;
+
+ /**
+ * Set filterProjectId.
+ *
+ * @param filterProjectId Filter experiments by project ID. Required if filter[dataset_id]
+ * is not provided. (optional)
+ * @return ListLLMObsExperimentsOptionalParameters
+ */
+ public ListLLMObsExperimentsOptionalParameters filterProjectId(String filterProjectId) {
+ this.filterProjectId = filterProjectId;
+ return this;
+ }
+
+ /**
+ * Set filterDatasetId.
+ *
+ * @param filterDatasetId Filter experiments by dataset ID. (optional)
+ * @return ListLLMObsExperimentsOptionalParameters
+ */
+ public ListLLMObsExperimentsOptionalParameters filterDatasetId(String filterDatasetId) {
+ this.filterDatasetId = filterDatasetId;
+ return this;
+ }
+
+ /**
+ * Set filterId.
+ *
+ * @param filterId Filter experiments by experiment ID. Can be specified multiple times.
+ * (optional)
+ * @return ListLLMObsExperimentsOptionalParameters
+ */
+ public ListLLMObsExperimentsOptionalParameters filterId(String filterId) {
+ this.filterId = filterId;
+ return this;
+ }
+
+ /**
+ * Set pageCursor.
+ *
+ * @param pageCursor Pagination cursor for the next page of results. (optional)
+ * @return ListLLMObsExperimentsOptionalParameters
+ */
+ public ListLLMObsExperimentsOptionalParameters pageCursor(String pageCursor) {
+ this.pageCursor = pageCursor;
+ return this;
+ }
+
+ /**
+ * Set pageLimit.
+ *
+ * @param pageLimit Maximum number of results to return per page. (optional)
+ * @return ListLLMObsExperimentsOptionalParameters
+ */
+ public ListLLMObsExperimentsOptionalParameters pageLimit(Long pageLimit) {
+ this.pageLimit = pageLimit;
+ return this;
+ }
+ }
+
+ /**
+ * List LLM Observability experiments.
+ *
+ * See {@link #listLLMObsExperimentsWithHttpInfo}.
+ *
+ * @return LLMObsExperimentsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsExperimentsResponse listLLMObsExperiments() throws ApiException {
+ return listLLMObsExperimentsWithHttpInfo(new ListLLMObsExperimentsOptionalParameters())
+ .getData();
+ }
+
+ /**
+ * List LLM Observability experiments.
+ *
+ *
See {@link #listLLMObsExperimentsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<LLMObsExperimentsResponse>
+ */
+ public CompletableFuture listLLMObsExperimentsAsync() {
+ return listLLMObsExperimentsWithHttpInfoAsync(new ListLLMObsExperimentsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List LLM Observability experiments.
+ *
+ * See {@link #listLLMObsExperimentsWithHttpInfo}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return LLMObsExperimentsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsExperimentsResponse listLLMObsExperiments(
+ ListLLMObsExperimentsOptionalParameters parameters) throws ApiException {
+ return listLLMObsExperimentsWithHttpInfo(parameters).getData();
+ }
+
+ /**
+ * List LLM Observability experiments.
+ *
+ *
See {@link #listLLMObsExperimentsWithHttpInfoAsync}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<LLMObsExperimentsResponse>
+ */
+ public CompletableFuture listLLMObsExperimentsAsync(
+ ListLLMObsExperimentsOptionalParameters parameters) {
+ return listLLMObsExperimentsWithHttpInfoAsync(parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List all LLM Observability experiments sorted by creation date, newest first.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<LLMObsExperimentsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *
+ * Response details
+ * | Status Code | Description | Response Headers |
+ * | 200 | OK | - |
+ * | 400 | Bad Request | - |
+ * | 401 | Unauthorized | - |
+ * | 403 | Forbidden | - |
+ * | 429 | Too many requests | - |
+ *
+ */
+ public ApiResponse listLLMObsExperimentsWithHttpInfo(
+ ListLLMObsExperimentsOptionalParameters parameters) throws ApiException {
+ // Check if unstable operation is enabled
+ String operationId = "listLLMObsExperiments";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId));
+ }
+ Object localVarPostBody = null;
+ String filterProjectId = parameters.filterProjectId;
+ String filterDatasetId = parameters.filterDatasetId;
+ String filterId = parameters.filterId;
+ String pageCursor = parameters.pageCursor;
+ Long pageLimit = parameters.pageLimit;
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/experiments";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[project_id]", filterProjectId));
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[dataset_id]", filterDatasetId));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+
+ Invocation.Builder builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.listLLMObsExperiments",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ return apiClient.invokeAPI(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /**
+ * List LLM Observability experiments.
+ *
+ * See {@link #listLLMObsExperimentsWithHttpInfo}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<ApiResponse<LLMObsExperimentsResponse>>
+ */
+ public CompletableFuture>
+ listLLMObsExperimentsWithHttpInfoAsync(ListLLMObsExperimentsOptionalParameters parameters) {
+ // Check if unstable operation is enabled
+ String operationId = "listLLMObsExperiments";
+ if (apiClient.isUnstableOperationEnabled("v2." + operationId)) {
+ apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId));
+ } else {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(
+ new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)));
+ return result;
+ }
+ Object localVarPostBody = null;
+ String filterProjectId = parameters.filterProjectId;
+ String filterDatasetId = parameters.filterDatasetId;
+ String filterId = parameters.filterId;
+ String pageCursor = parameters.pageCursor;
+ Long pageLimit = parameters.pageLimit;
+ // create path and map variables
+ String localVarPath = "/api/v2/llm-obs/v1/experiments";
+
+ List localVarQueryParams = new ArrayList();
+ Map localVarHeaderParams = new HashMap();
+
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[project_id]", filterProjectId));
+ localVarQueryParams.addAll(
+ apiClient.parameterToPairs("", "filter[dataset_id]", filterDatasetId));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor));
+ localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit));
+
+ Invocation.Builder builder;
+ try {
+ builder =
+ apiClient.createBuilder(
+ "v2.LlmObservabilityApi.listLLMObsExperiments",
+ localVarPath,
+ localVarQueryParams,
+ localVarHeaderParams,
+ new HashMap(),
+ new String[] {"application/json"},
+ new String[] {"apiKeyAuth", "appKeyAuth"});
+ } catch (ApiException ex) {
+ CompletableFuture> result = new CompletableFuture<>();
+ result.completeExceptionally(ex);
+ return result;
+ }
+ return apiClient.invokeAPIAsync(
+ "GET",
+ builder,
+ localVarHeaderParams,
+ new String[] {},
+ localVarPostBody,
+ new HashMap(),
+ false,
+ new GenericType() {});
+ }
+
+ /** Manage optional parameters to listLLMObsProjects. */
+ public static class ListLLMObsProjectsOptionalParameters {
+ private String filterId;
+ private String filterName;
+ private String pageCursor;
+ private Long pageLimit;
+
+ /**
+ * Set filterId.
+ *
+ * @param filterId Filter projects by project ID. (optional)
+ * @return ListLLMObsProjectsOptionalParameters
+ */
+ public ListLLMObsProjectsOptionalParameters filterId(String filterId) {
+ this.filterId = filterId;
+ return this;
+ }
+
+ /**
+ * Set filterName.
+ *
+ * @param filterName Filter projects by name. (optional)
+ * @return ListLLMObsProjectsOptionalParameters
+ */
+ public ListLLMObsProjectsOptionalParameters filterName(String filterName) {
+ this.filterName = filterName;
+ return this;
+ }
+
+ /**
+ * Set pageCursor.
+ *
+ * @param pageCursor Pagination cursor for the next page of results. (optional)
+ * @return ListLLMObsProjectsOptionalParameters
+ */
+ public ListLLMObsProjectsOptionalParameters pageCursor(String pageCursor) {
+ this.pageCursor = pageCursor;
+ return this;
+ }
+
+ /**
+ * Set pageLimit.
+ *
+ * @param pageLimit Maximum number of results to return per page. (optional)
+ * @return ListLLMObsProjectsOptionalParameters
+ */
+ public ListLLMObsProjectsOptionalParameters pageLimit(Long pageLimit) {
+ this.pageLimit = pageLimit;
+ return this;
+ }
+ }
+
+ /**
+ * List LLM Observability projects.
+ *
+ * See {@link #listLLMObsProjectsWithHttpInfo}.
+ *
+ * @return LLMObsProjectsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsProjectsResponse listLLMObsProjects() throws ApiException {
+ return listLLMObsProjectsWithHttpInfo(new ListLLMObsProjectsOptionalParameters()).getData();
+ }
+
+ /**
+ * List LLM Observability projects.
+ *
+ *
See {@link #listLLMObsProjectsWithHttpInfoAsync}.
+ *
+ * @return CompletableFuture<LLMObsProjectsResponse>
+ */
+ public CompletableFuture listLLMObsProjectsAsync() {
+ return listLLMObsProjectsWithHttpInfoAsync(new ListLLMObsProjectsOptionalParameters())
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List LLM Observability projects.
+ *
+ * See {@link #listLLMObsProjectsWithHttpInfo}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return LLMObsProjectsResponse
+ * @throws ApiException if fails to make API call
+ */
+ public LLMObsProjectsResponse listLLMObsProjects(ListLLMObsProjectsOptionalParameters parameters)
+ throws ApiException {
+ return listLLMObsProjectsWithHttpInfo(parameters).getData();
+ }
+
+ /**
+ * List LLM Observability projects.
+ *
+ *
See {@link #listLLMObsProjectsWithHttpInfoAsync}.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return CompletableFuture<LLMObsProjectsResponse>
+ */
+ public CompletableFuture listLLMObsProjectsAsync(
+ ListLLMObsProjectsOptionalParameters parameters) {
+ return listLLMObsProjectsWithHttpInfoAsync(parameters)
+ .thenApply(
+ response -> {
+ return response.getData();
+ });
+ }
+
+ /**
+ * List all LLM Observability projects sorted by creation date, newest first.
+ *
+ * @param parameters Optional parameters for the request.
+ * @return ApiResponse<LLMObsProjectsResponse>
+ * @throws ApiException if fails to make API call
+ * @http.response.details
+ *