diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index e2256f32bd..6dade971e3 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/docs/datadog_api_client.v2.api.rst b/docs/datadog_api_client.v2.api.rst index 941ac65308..e4a3f68080 100644 --- a/docs/datadog_api_client.v2.api.rst +++ b/docs/datadog_api_client.v2.api.rst @@ -361,6 +361,13 @@ datadog\_api\_client.v2.api.key\_management\_api module :members: :show-inheritance: +datadog\_api\_client.v2.api.llm\_observability\_api module +---------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.api.llm_observability_api + :members: + :show-inheritance: + datadog\_api\_client.v2.api.logs\_api module -------------------------------------------- diff --git a/docs/datadog_api_client.v2.model.rst b/docs/datadog_api_client.v2.model.rst index deb71c283a..b8c2dc8d51 100644 --- a/docs/datadog_api_client.v2.model.rst +++ b/docs/datadog_api_client.v2.model.rst @@ -15404,6 +15404,496 @@ datadog\_api\_client.v2.model.list\_vulnerable\_assets\_response module :members: :show-inheritance: +datadog\_api\_client.v2.model.llm\_obs\_cursor\_meta module +----------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_cursor_meta + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_data\_attributes\_request module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_data\_attributes\_response module +---------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_data_attributes_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_data\_request module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_data\_response module +---------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_data_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_record\_data\_response module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_record_data_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_record\_item module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_record_item + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_record\_update\_item module +---------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_record_update_item + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_data\_attributes\_request module +------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_data\_request module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_list\_response module +------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_list_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_mutation\_data module +------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_mutation_data + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_mutation\_response module +----------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_mutation_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_request module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_update\_data\_attributes\_request module +-------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_update_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_update\_data\_request module +-------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_update_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_records\_update\_request module +-------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_records_update_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_request module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_response module +---------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_type module +------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_update\_data\_attributes\_request module +----------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_update_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_update\_data\_request module +----------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_update_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_dataset\_update\_request module +----------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_dataset_update_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_datasets\_response module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_datasets_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_dataset\_records\_data\_attributes\_request module +-------------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_dataset\_records\_data\_request module +-------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_dataset\_records\_request module +-------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_dataset_records_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_datasets\_data\_attributes\_request module +------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_datasets_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_datasets\_data\_request module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_datasets_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_datasets\_request module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_datasets_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_experiments\_data\_attributes\_request module +--------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_experiments_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_experiments\_data\_request module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_experiments_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_experiments\_request module +--------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_experiments_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_projects\_data\_attributes\_request module +------------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_projects_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_projects\_data\_request module +------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_projects_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_delete\_projects\_request module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_delete_projects_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_event\_type module +---------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_event_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_data\_attributes\_request module +------------------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_data\_attributes\_response module +------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_data_attributes_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_data\_request module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_data\_response module +------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_data_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_events\_data\_attributes\_request module +-------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_events_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_events\_data\_request module +-------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_events_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_events\_request module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_events_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_metric module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_metric + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_metric\_error module +------------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_metric_error + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_request module +------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_response module +------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_span module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_span + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_span\_error module +---------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_span_error + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_span\_meta module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_span_meta + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_type module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_update\_data\_attributes\_request module +-------------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_update_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_update\_data\_request module +-------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_update_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiment\_update\_request module +-------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiment_update_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_experiments\_response module +-------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_experiments_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_metric\_assessment module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_metric_assessment + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_metric\_score\_type module +------------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_metric_score_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_data\_attributes\_request module +--------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_data\_attributes\_response module +---------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_data_attributes_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_data\_request module +--------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_data\_response module +---------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_data_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_request module +--------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_response module +---------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_type module +------------------------------------------------------------ + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_type + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_update\_data\_attributes\_request module +----------------------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_update_data_attributes_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_update\_data\_request module +----------------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_update_data_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_project\_update\_request module +----------------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_project_update_request + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_projects\_response module +----------------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_projects_response + :members: + :show-inheritance: + +datadog\_api\_client.v2.model.llm\_obs\_record\_type module +----------------------------------------------------------- + +.. automodule:: datadog_api_client.v2.model.llm_obs_record_type + :members: + :show-inheritance: + datadog\_api\_client.v2.model.log module ---------------------------------------- diff --git a/examples/v2/llm-observability/CreateLLMObsDataset.py b/examples/v2/llm-observability/CreateLLMObsDataset.py new file mode 100644 index 0000000000..b4baa0bb92 --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsDataset.py @@ -0,0 +1,27 @@ +""" +Create an LLM Observability dataset returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_dataset_data_attributes_request import LLMObsDatasetDataAttributesRequest +from datadog_api_client.v2.model.llm_obs_dataset_data_request import LLMObsDatasetDataRequest +from datadog_api_client.v2.model.llm_obs_dataset_request import LLMObsDatasetRequest +from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + +body = LLMObsDatasetRequest( + data=LLMObsDatasetDataRequest( + attributes=LLMObsDatasetDataAttributesRequest( + name="My LLM Dataset", + ), + type=LLMObsDatasetType.DATASETS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["create_llm_obs_dataset"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.create_llm_obs_dataset(project_id="project_id", body=body) + + print(response) diff --git a/examples/v2/llm-observability/CreateLLMObsDatasetRecords.py b/examples/v2/llm-observability/CreateLLMObsDatasetRecords.py new file mode 100644 index 0000000000..8dea739315 --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsDatasetRecords.py @@ -0,0 +1,35 @@ +""" +Append records to an LLM Observability dataset returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_dataset_record_item import LLMObsDatasetRecordItem +from datadog_api_client.v2.model.llm_obs_dataset_records_data_attributes_request import ( + LLMObsDatasetRecordsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_records_data_request import LLMObsDatasetRecordsDataRequest +from datadog_api_client.v2.model.llm_obs_dataset_records_request import LLMObsDatasetRecordsRequest +from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + +body = LLMObsDatasetRecordsRequest( + data=LLMObsDatasetRecordsDataRequest( + attributes=LLMObsDatasetRecordsDataAttributesRequest( + records=[ + LLMObsDatasetRecordItem( + expected_output=None, + input=None, + ), + ], + ), + type=LLMObsRecordType.RECORDS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["create_llm_obs_dataset_records"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.create_llm_obs_dataset_records(project_id="project_id", dataset_id="dataset_id", body=body) + + print(response) diff --git a/examples/v2/llm-observability/CreateLLMObsExperiment.py b/examples/v2/llm-observability/CreateLLMObsExperiment.py new file mode 100644 index 0000000000..bff8fb86ef --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsExperiment.py @@ -0,0 +1,29 @@ +""" +Create an LLM Observability experiment returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_experiment_data_attributes_request import LLMObsExperimentDataAttributesRequest +from datadog_api_client.v2.model.llm_obs_experiment_data_request import LLMObsExperimentDataRequest +from datadog_api_client.v2.model.llm_obs_experiment_request import LLMObsExperimentRequest +from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + +body = LLMObsExperimentRequest( + data=LLMObsExperimentDataRequest( + attributes=LLMObsExperimentDataAttributesRequest( + dataset_id="9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", + name="My Experiment v1", + project_id="a33671aa-24fd-4dcd-9b33-a8ec7dde7751", + ), + type=LLMObsExperimentType.EXPERIMENTS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["create_llm_obs_experiment"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.create_llm_obs_experiment(body=body) + + print(response) diff --git a/examples/v2/llm-observability/CreateLLMObsExperimentEvents.py b/examples/v2/llm-observability/CreateLLMObsExperimentEvents.py new file mode 100644 index 0000000000..66f4257079 --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsExperimentEvents.py @@ -0,0 +1,62 @@ +""" +Push events for an LLM Observability experiment returns "Accepted" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_event_type import LLMObsEventType +from datadog_api_client.v2.model.llm_obs_experiment_events_data_attributes_request import ( + LLMObsExperimentEventsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_experiment_events_data_request import LLMObsExperimentEventsDataRequest +from datadog_api_client.v2.model.llm_obs_experiment_events_request import LLMObsExperimentEventsRequest +from datadog_api_client.v2.model.llm_obs_experiment_metric import LLMObsExperimentMetric +from datadog_api_client.v2.model.llm_obs_experiment_metric_error import LLMObsExperimentMetricError +from datadog_api_client.v2.model.llm_obs_experiment_span import LLMObsExperimentSpan +from datadog_api_client.v2.model.llm_obs_experiment_span_error import LLMObsExperimentSpanError +from datadog_api_client.v2.model.llm_obs_experiment_span_meta import LLMObsExperimentSpanMeta +from datadog_api_client.v2.model.llm_obs_metric_assessment import LLMObsMetricAssessment +from datadog_api_client.v2.model.llm_obs_metric_score_type import LLMObsMetricScoreType + +body = LLMObsExperimentEventsRequest( + data=LLMObsExperimentEventsDataRequest( + attributes=LLMObsExperimentEventsDataAttributesRequest( + metrics=[ + LLMObsExperimentMetric( + assessment=LLMObsMetricAssessment.PASS, + error=LLMObsExperimentMetricError(), + label="faithfulness", + metric_type=LLMObsMetricScoreType.SCORE, + span_id="span-7a1b2c3d", + tags=[], + timestamp_ms=1705314600000, + ), + ], + spans=[ + LLMObsExperimentSpan( + dataset_id="9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", + duration=1500000000, + meta=LLMObsExperimentSpanMeta( + error=LLMObsExperimentSpanError(), + input=None, + output=None, + ), + name="llm_call", + project_id="a33671aa-24fd-4dcd-9b33-a8ec7dde7751", + span_id="span-7a1b2c3d", + start_ns=1705314600000000000, + status="ok", + tags=[], + trace_id="abc123def456", + ), + ], + ), + type=LLMObsEventType.EVENTS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["create_llm_obs_experiment_events"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + api_instance.create_llm_obs_experiment_events(experiment_id="experiment_id", body=body) diff --git a/examples/v2/llm-observability/CreateLLMObsProject.py b/examples/v2/llm-observability/CreateLLMObsProject.py new file mode 100644 index 0000000000..88b0f18a71 --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsProject.py @@ -0,0 +1,27 @@ +""" +Create an LLM Observability project returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_project_data_attributes_request import LLMObsProjectDataAttributesRequest +from datadog_api_client.v2.model.llm_obs_project_data_request import LLMObsProjectDataRequest +from datadog_api_client.v2.model.llm_obs_project_request import LLMObsProjectRequest +from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + +body = LLMObsProjectRequest( + data=LLMObsProjectDataRequest( + attributes=LLMObsProjectDataAttributesRequest( + name="My LLM Project", + ), + type=LLMObsProjectType.PROJECTS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["create_llm_obs_project"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.create_llm_obs_project(body=body) + + print(response) diff --git a/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.py b/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.py new file mode 100644 index 0000000000..c337e92543 --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.py @@ -0,0 +1,31 @@ +""" +Delete LLM Observability dataset records returns "No Content" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_attributes_request import ( + LLMObsDeleteDatasetRecordsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_request import ( + LLMObsDeleteDatasetRecordsDataRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_dataset_records_request import LLMObsDeleteDatasetRecordsRequest +from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + +body = LLMObsDeleteDatasetRecordsRequest( + data=LLMObsDeleteDatasetRecordsDataRequest( + attributes=LLMObsDeleteDatasetRecordsDataAttributesRequest( + record_ids=[ + "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c", + ], + ), + type=LLMObsRecordType.RECORDS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["delete_llm_obs_dataset_records"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + api_instance.delete_llm_obs_dataset_records(project_id="project_id", dataset_id="dataset_id", body=body) diff --git a/examples/v2/llm-observability/DeleteLLMObsDatasets.py b/examples/v2/llm-observability/DeleteLLMObsDatasets.py new file mode 100644 index 0000000000..e69d295f3c --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsDatasets.py @@ -0,0 +1,29 @@ +""" +Delete LLM Observability datasets returns "No Content" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType +from datadog_api_client.v2.model.llm_obs_delete_datasets_data_attributes_request import ( + LLMObsDeleteDatasetsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_datasets_data_request import LLMObsDeleteDatasetsDataRequest +from datadog_api_client.v2.model.llm_obs_delete_datasets_request import LLMObsDeleteDatasetsRequest + +body = LLMObsDeleteDatasetsRequest( + data=LLMObsDeleteDatasetsDataRequest( + attributes=LLMObsDeleteDatasetsDataAttributesRequest( + dataset_ids=[ + "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", + ], + ), + type=LLMObsDatasetType.DATASETS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["delete_llm_obs_datasets"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + api_instance.delete_llm_obs_datasets(project_id="project_id", body=body) diff --git a/examples/v2/llm-observability/DeleteLLMObsExperiments.py b/examples/v2/llm-observability/DeleteLLMObsExperiments.py new file mode 100644 index 0000000000..3ca151f61f --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsExperiments.py @@ -0,0 +1,29 @@ +""" +Delete LLM Observability experiments returns "No Content" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_delete_experiments_data_attributes_request import ( + LLMObsDeleteExperimentsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_experiments_data_request import LLMObsDeleteExperimentsDataRequest +from datadog_api_client.v2.model.llm_obs_delete_experiments_request import LLMObsDeleteExperimentsRequest +from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + +body = LLMObsDeleteExperimentsRequest( + data=LLMObsDeleteExperimentsDataRequest( + attributes=LLMObsDeleteExperimentsDataAttributesRequest( + experiment_ids=[ + "3fd6b5e0-8910-4b1c-a7d0-5b84de329012", + ], + ), + type=LLMObsExperimentType.EXPERIMENTS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["delete_llm_obs_experiments"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + api_instance.delete_llm_obs_experiments(body=body) diff --git a/examples/v2/llm-observability/DeleteLLMObsProjects.py b/examples/v2/llm-observability/DeleteLLMObsProjects.py new file mode 100644 index 0000000000..7536e783ac --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsProjects.py @@ -0,0 +1,29 @@ +""" +Delete LLM Observability projects returns "No Content" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_delete_projects_data_attributes_request import ( + LLMObsDeleteProjectsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_projects_data_request import LLMObsDeleteProjectsDataRequest +from datadog_api_client.v2.model.llm_obs_delete_projects_request import LLMObsDeleteProjectsRequest +from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + +body = LLMObsDeleteProjectsRequest( + data=LLMObsDeleteProjectsDataRequest( + attributes=LLMObsDeleteProjectsDataAttributesRequest( + project_ids=[ + "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", + ], + ), + type=LLMObsProjectType.PROJECTS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["delete_llm_obs_projects"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + api_instance.delete_llm_obs_projects(body=body) diff --git a/examples/v2/llm-observability/ListLLMObsDatasetRecords.py b/examples/v2/llm-observability/ListLLMObsDatasetRecords.py new file mode 100644 index 0000000000..0451901450 --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsDatasetRecords.py @@ -0,0 +1,17 @@ +""" +List LLM Observability dataset records returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi + +configuration = Configuration() +configuration.unstable_operations["list_llm_obs_dataset_records"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.list_llm_obs_dataset_records( + project_id="project_id", + dataset_id="dataset_id", + ) + + print(response) diff --git a/examples/v2/llm-observability/ListLLMObsDatasets.py b/examples/v2/llm-observability/ListLLMObsDatasets.py new file mode 100644 index 0000000000..e22c5b6433 --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsDatasets.py @@ -0,0 +1,16 @@ +""" +List LLM Observability datasets returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi + +configuration = Configuration() +configuration.unstable_operations["list_llm_obs_datasets"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.list_llm_obs_datasets( + project_id="project_id", + ) + + print(response) diff --git a/examples/v2/llm-observability/ListLLMObsExperiments.py b/examples/v2/llm-observability/ListLLMObsExperiments.py new file mode 100644 index 0000000000..d4edabaa6f --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsExperiments.py @@ -0,0 +1,14 @@ +""" +List LLM Observability experiments returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi + +configuration = Configuration() +configuration.unstable_operations["list_llm_obs_experiments"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.list_llm_obs_experiments() + + print(response) diff --git a/examples/v2/llm-observability/ListLLMObsProjects.py b/examples/v2/llm-observability/ListLLMObsProjects.py new file mode 100644 index 0000000000..89e0718a14 --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsProjects.py @@ -0,0 +1,14 @@ +""" +List LLM Observability projects returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi + +configuration = Configuration() +configuration.unstable_operations["list_llm_obs_projects"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.list_llm_obs_projects() + + print(response) diff --git a/examples/v2/llm-observability/UpdateLLMObsDataset.py b/examples/v2/llm-observability/UpdateLLMObsDataset.py new file mode 100644 index 0000000000..284d3845f6 --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsDataset.py @@ -0,0 +1,27 @@ +""" +Update an LLM Observability dataset returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType +from datadog_api_client.v2.model.llm_obs_dataset_update_data_attributes_request import ( + LLMObsDatasetUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_update_data_request import LLMObsDatasetUpdateDataRequest +from datadog_api_client.v2.model.llm_obs_dataset_update_request import LLMObsDatasetUpdateRequest + +body = LLMObsDatasetUpdateRequest( + data=LLMObsDatasetUpdateDataRequest( + attributes=LLMObsDatasetUpdateDataAttributesRequest(), + type=LLMObsDatasetType.DATASETS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["update_llm_obs_dataset"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.update_llm_obs_dataset(project_id="project_id", dataset_id="dataset_id", body=body) + + print(response) diff --git a/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.py b/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.py new file mode 100644 index 0000000000..cd83ebcbbf --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.py @@ -0,0 +1,38 @@ +""" +Update LLM Observability dataset records returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_dataset_record_update_item import LLMObsDatasetRecordUpdateItem +from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_attributes_request import ( + LLMObsDatasetRecordsUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_request import ( + LLMObsDatasetRecordsUpdateDataRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_records_update_request import LLMObsDatasetRecordsUpdateRequest +from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + +body = LLMObsDatasetRecordsUpdateRequest( + data=LLMObsDatasetRecordsUpdateDataRequest( + attributes=LLMObsDatasetRecordsUpdateDataAttributesRequest( + records=[ + LLMObsDatasetRecordUpdateItem( + expected_output=None, + id="rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c", + input=None, + ), + ], + ), + type=LLMObsRecordType.RECORDS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["update_llm_obs_dataset_records"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.update_llm_obs_dataset_records(project_id="project_id", dataset_id="dataset_id", body=body) + + print(response) diff --git a/examples/v2/llm-observability/UpdateLLMObsExperiment.py b/examples/v2/llm-observability/UpdateLLMObsExperiment.py new file mode 100644 index 0000000000..3a5395a848 --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsExperiment.py @@ -0,0 +1,27 @@ +""" +Update an LLM Observability experiment returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType +from datadog_api_client.v2.model.llm_obs_experiment_update_data_attributes_request import ( + LLMObsExperimentUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_experiment_update_data_request import LLMObsExperimentUpdateDataRequest +from datadog_api_client.v2.model.llm_obs_experiment_update_request import LLMObsExperimentUpdateRequest + +body = LLMObsExperimentUpdateRequest( + data=LLMObsExperimentUpdateDataRequest( + attributes=LLMObsExperimentUpdateDataAttributesRequest(), + type=LLMObsExperimentType.EXPERIMENTS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["update_llm_obs_experiment"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.update_llm_obs_experiment(experiment_id="experiment_id", body=body) + + print(response) diff --git a/examples/v2/llm-observability/UpdateLLMObsProject.py b/examples/v2/llm-observability/UpdateLLMObsProject.py new file mode 100644 index 0000000000..a7f55f01e0 --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsProject.py @@ -0,0 +1,27 @@ +""" +Update an LLM Observability project returns "OK" response +""" + +from datadog_api_client import ApiClient, Configuration +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi +from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType +from datadog_api_client.v2.model.llm_obs_project_update_data_attributes_request import ( + LLMObsProjectUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_project_update_data_request import LLMObsProjectUpdateDataRequest +from datadog_api_client.v2.model.llm_obs_project_update_request import LLMObsProjectUpdateRequest + +body = LLMObsProjectUpdateRequest( + data=LLMObsProjectUpdateDataRequest( + attributes=LLMObsProjectUpdateDataAttributesRequest(), + type=LLMObsProjectType.PROJECTS, + ), +) + +configuration = Configuration() +configuration.unstable_operations["update_llm_obs_project"] = True +with ApiClient(configuration) as api_client: + api_instance = LLMObservabilityApi(api_client) + response = api_instance.update_llm_obs_project(project_id="project_id", body=body) + + print(response) diff --git a/src/datadog_api_client/configuration.py b/src/datadog_api_client/configuration.py index 8aa9287f21..9ce8728c93 100644 --- a/src/datadog_api_client/configuration.py +++ b/src/datadog_api_client/configuration.py @@ -392,6 +392,23 @@ def __init__( "v2.list_service_now_templates": False, "v2.list_service_now_users": False, "v2.update_service_now_template": False, + "v2.create_llm_obs_dataset": False, + "v2.create_llm_obs_dataset_records": False, + "v2.create_llm_obs_experiment": False, + "v2.create_llm_obs_experiment_events": False, + "v2.create_llm_obs_project": False, + "v2.delete_llm_obs_dataset_records": False, + "v2.delete_llm_obs_datasets": False, + "v2.delete_llm_obs_experiments": False, + "v2.delete_llm_obs_projects": False, + "v2.list_llm_obs_dataset_records": False, + "v2.list_llm_obs_datasets": False, + "v2.list_llm_obs_experiments": False, + "v2.list_llm_obs_projects": False, + "v2.update_llm_obs_dataset": False, + "v2.update_llm_obs_dataset_records": False, + "v2.update_llm_obs_experiment": False, + "v2.update_llm_obs_project": False, "v2.add_role_to_restriction_query": False, "v2.create_restriction_query": False, "v2.delete_restriction_query": False, diff --git a/src/datadog_api_client/v2/api/llm_observability_api.py b/src/datadog_api_client/v2/api/llm_observability_api.py new file mode 100644 index 0000000000..275b54fff2 --- /dev/null +++ b/src/datadog_api_client/v2/api/llm_observability_api.py @@ -0,0 +1,998 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, Union + +from datadog_api_client.api_client import ApiClient, Endpoint as _Endpoint +from datadog_api_client.configuration import Configuration +from datadog_api_client.model_utils import ( + UnsetType, + unset, +) +from datadog_api_client.v2.model.llm_obs_experiments_response import LLMObsExperimentsResponse +from datadog_api_client.v2.model.llm_obs_experiment_response import LLMObsExperimentResponse +from datadog_api_client.v2.model.llm_obs_experiment_request import LLMObsExperimentRequest +from datadog_api_client.v2.model.llm_obs_delete_experiments_request import LLMObsDeleteExperimentsRequest +from datadog_api_client.v2.model.llm_obs_experiment_update_request import LLMObsExperimentUpdateRequest +from datadog_api_client.v2.model.llm_obs_experiment_events_request import LLMObsExperimentEventsRequest +from datadog_api_client.v2.model.llm_obs_projects_response import LLMObsProjectsResponse +from datadog_api_client.v2.model.llm_obs_project_response import LLMObsProjectResponse +from datadog_api_client.v2.model.llm_obs_project_request import LLMObsProjectRequest +from datadog_api_client.v2.model.llm_obs_delete_projects_request import LLMObsDeleteProjectsRequest +from datadog_api_client.v2.model.llm_obs_project_update_request import LLMObsProjectUpdateRequest +from datadog_api_client.v2.model.llm_obs_datasets_response import LLMObsDatasetsResponse +from datadog_api_client.v2.model.llm_obs_dataset_response import LLMObsDatasetResponse +from datadog_api_client.v2.model.llm_obs_dataset_request import LLMObsDatasetRequest +from datadog_api_client.v2.model.llm_obs_delete_datasets_request import LLMObsDeleteDatasetsRequest +from datadog_api_client.v2.model.llm_obs_dataset_update_request import LLMObsDatasetUpdateRequest +from datadog_api_client.v2.model.llm_obs_dataset_records_list_response import LLMObsDatasetRecordsListResponse +from datadog_api_client.v2.model.llm_obs_dataset_records_mutation_response import LLMObsDatasetRecordsMutationResponse +from datadog_api_client.v2.model.llm_obs_dataset_records_update_request import LLMObsDatasetRecordsUpdateRequest +from datadog_api_client.v2.model.llm_obs_dataset_records_request import LLMObsDatasetRecordsRequest +from datadog_api_client.v2.model.llm_obs_delete_dataset_records_request import LLMObsDeleteDatasetRecordsRequest + + +class LLMObservabilityApi: + """ + Manage LLM Observability projects, datasets, dataset records, and experiments via the Experiments API. + """ + + def __init__(self, api_client=None): + if api_client is None: + api_client = ApiClient(Configuration()) + self.api_client = api_client + + self._create_llm_obs_dataset_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsDatasetResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets", + "operation_id": "create_llm_obs_dataset", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsDatasetRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._create_llm_obs_dataset_records_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsDatasetRecordsMutationResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records", + "operation_id": "create_llm_obs_dataset_records", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "dataset_id": { + "required": True, + "openapi_types": (str,), + "attribute": "dataset_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsDatasetRecordsRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._create_llm_obs_experiment_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsExperimentResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/experiments", + "operation_id": "create_llm_obs_experiment", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "body": { + "required": True, + "openapi_types": (LLMObsExperimentRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._create_llm_obs_experiment_events_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/experiments/{experiment_id}/events", + "operation_id": "create_llm_obs_experiment_events", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "experiment_id": { + "required": True, + "openapi_types": (str,), + "attribute": "experiment_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsExperimentEventsRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["*/*"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._create_llm_obs_project_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsProjectResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/projects", + "operation_id": "create_llm_obs_project", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "body": { + "required": True, + "openapi_types": (LLMObsProjectRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._delete_llm_obs_dataset_records_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records/delete", + "operation_id": "delete_llm_obs_dataset_records", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "dataset_id": { + "required": True, + "openapi_types": (str,), + "attribute": "dataset_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsDeleteDatasetRecordsRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["*/*"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._delete_llm_obs_datasets_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets/delete", + "operation_id": "delete_llm_obs_datasets", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsDeleteDatasetsRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["*/*"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._delete_llm_obs_experiments_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/experiments/delete", + "operation_id": "delete_llm_obs_experiments", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "body": { + "required": True, + "openapi_types": (LLMObsDeleteExperimentsRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["*/*"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._delete_llm_obs_projects_endpoint = _Endpoint( + settings={ + "response_type": None, + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/projects/delete", + "operation_id": "delete_llm_obs_projects", + "http_method": "POST", + "version": "v2", + }, + params_map={ + "body": { + "required": True, + "openapi_types": (LLMObsDeleteProjectsRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["*/*"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._list_llm_obs_dataset_records_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsDatasetRecordsListResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records", + "operation_id": "list_llm_obs_dataset_records", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "dataset_id": { + "required": True, + "openapi_types": (str,), + "attribute": "dataset_id", + "location": "path", + }, + "filter_version": { + "openapi_types": (int,), + "attribute": "filter[version]", + "location": "query", + }, + "page_cursor": { + "openapi_types": (str,), + "attribute": "page[cursor]", + "location": "query", + }, + "page_limit": { + "openapi_types": (int,), + "attribute": "page[limit]", + "location": "query", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + self._list_llm_obs_datasets_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsDatasetsResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets", + "operation_id": "list_llm_obs_datasets", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "filter_name": { + "openapi_types": (str,), + "attribute": "filter[name]", + "location": "query", + }, + "filter_id": { + "openapi_types": (str,), + "attribute": "filter[id]", + "location": "query", + }, + "page_cursor": { + "openapi_types": (str,), + "attribute": "page[cursor]", + "location": "query", + }, + "page_limit": { + "openapi_types": (int,), + "attribute": "page[limit]", + "location": "query", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + self._list_llm_obs_experiments_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsExperimentsResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/experiments", + "operation_id": "list_llm_obs_experiments", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "filter_project_id": { + "openapi_types": (str,), + "attribute": "filter[project_id]", + "location": "query", + }, + "filter_dataset_id": { + "openapi_types": (str,), + "attribute": "filter[dataset_id]", + "location": "query", + }, + "filter_id": { + "openapi_types": (str,), + "attribute": "filter[id]", + "location": "query", + }, + "page_cursor": { + "openapi_types": (str,), + "attribute": "page[cursor]", + "location": "query", + }, + "page_limit": { + "openapi_types": (int,), + "attribute": "page[limit]", + "location": "query", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + self._list_llm_obs_projects_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsProjectsResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/projects", + "operation_id": "list_llm_obs_projects", + "http_method": "GET", + "version": "v2", + }, + params_map={ + "filter_id": { + "openapi_types": (str,), + "attribute": "filter[id]", + "location": "query", + }, + "filter_name": { + "openapi_types": (str,), + "attribute": "filter[name]", + "location": "query", + }, + "page_cursor": { + "openapi_types": (str,), + "attribute": "page[cursor]", + "location": "query", + }, + "page_limit": { + "openapi_types": (int,), + "attribute": "page[limit]", + "location": "query", + }, + }, + headers_map={ + "accept": ["application/json"], + }, + api_client=api_client, + ) + + self._update_llm_obs_dataset_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsDatasetResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}", + "operation_id": "update_llm_obs_dataset", + "http_method": "PATCH", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "dataset_id": { + "required": True, + "openapi_types": (str,), + "attribute": "dataset_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsDatasetUpdateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._update_llm_obs_dataset_records_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsDatasetRecordsMutationResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records", + "operation_id": "update_llm_obs_dataset_records", + "http_method": "PATCH", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "dataset_id": { + "required": True, + "openapi_types": (str,), + "attribute": "dataset_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsDatasetRecordsUpdateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._update_llm_obs_experiment_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsExperimentResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/experiments/{experiment_id}", + "operation_id": "update_llm_obs_experiment", + "http_method": "PATCH", + "version": "v2", + }, + params_map={ + "experiment_id": { + "required": True, + "openapi_types": (str,), + "attribute": "experiment_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsExperimentUpdateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + self._update_llm_obs_project_endpoint = _Endpoint( + settings={ + "response_type": (LLMObsProjectResponse,), + "auth": ["apiKeyAuth", "appKeyAuth"], + "endpoint_path": "/api/v2/llm-obs/v1/projects/{project_id}", + "operation_id": "update_llm_obs_project", + "http_method": "PATCH", + "version": "v2", + }, + params_map={ + "project_id": { + "required": True, + "openapi_types": (str,), + "attribute": "project_id", + "location": "path", + }, + "body": { + "required": True, + "openapi_types": (LLMObsProjectUpdateRequest,), + "location": "body", + }, + }, + headers_map={"accept": ["application/json"], "content_type": ["application/json"]}, + api_client=api_client, + ) + + def create_llm_obs_dataset( + self, + project_id: str, + body: LLMObsDatasetRequest, + ) -> LLMObsDatasetResponse: + """Create an LLM Observability dataset. + + Create a new LLM Observability dataset within the specified project. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param body: Create dataset payload. + :type body: LLMObsDatasetRequest + :rtype: LLMObsDatasetResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["body"] = body + + return self._create_llm_obs_dataset_endpoint.call_with_http_info(**kwargs) + + def create_llm_obs_dataset_records( + self, + project_id: str, + dataset_id: str, + body: LLMObsDatasetRecordsRequest, + ) -> LLMObsDatasetRecordsMutationResponse: + """Append records to an LLM Observability dataset. + + Append one or more records to an LLM Observability dataset. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param dataset_id: The ID of the LLM Observability dataset. + :type dataset_id: str + :param body: Append records payload. + :type body: LLMObsDatasetRecordsRequest + :rtype: LLMObsDatasetRecordsMutationResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["dataset_id"] = dataset_id + + kwargs["body"] = body + + return self._create_llm_obs_dataset_records_endpoint.call_with_http_info(**kwargs) + + def create_llm_obs_experiment( + self, + body: LLMObsExperimentRequest, + ) -> LLMObsExperimentResponse: + """Create an LLM Observability experiment. + + Create a new LLM Observability experiment. + + :param body: Create experiment payload. + :type body: LLMObsExperimentRequest + :rtype: LLMObsExperimentResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["body"] = body + + return self._create_llm_obs_experiment_endpoint.call_with_http_info(**kwargs) + + def create_llm_obs_experiment_events( + self, + experiment_id: str, + body: LLMObsExperimentEventsRequest, + ) -> None: + """Push events for an LLM Observability experiment. + + Push spans and metrics for an LLM Observability experiment. + + :param experiment_id: The ID of the LLM Observability experiment. + :type experiment_id: str + :param body: Experiment events payload. + :type body: LLMObsExperimentEventsRequest + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["experiment_id"] = experiment_id + + kwargs["body"] = body + + return self._create_llm_obs_experiment_events_endpoint.call_with_http_info(**kwargs) + + def create_llm_obs_project( + self, + body: LLMObsProjectRequest, + ) -> LLMObsProjectResponse: + """Create an LLM Observability project. + + Create a new LLM Observability project. Returns the existing project if a name conflict occurs. + + :param body: Create project payload. + :type body: LLMObsProjectRequest + :rtype: LLMObsProjectResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["body"] = body + + return self._create_llm_obs_project_endpoint.call_with_http_info(**kwargs) + + def delete_llm_obs_dataset_records( + self, + project_id: str, + dataset_id: str, + body: LLMObsDeleteDatasetRecordsRequest, + ) -> None: + """Delete LLM Observability dataset records. + + Delete one or more records from an LLM Observability dataset. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param dataset_id: The ID of the LLM Observability dataset. + :type dataset_id: str + :param body: Delete records payload. + :type body: LLMObsDeleteDatasetRecordsRequest + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["dataset_id"] = dataset_id + + kwargs["body"] = body + + return self._delete_llm_obs_dataset_records_endpoint.call_with_http_info(**kwargs) + + def delete_llm_obs_datasets( + self, + project_id: str, + body: LLMObsDeleteDatasetsRequest, + ) -> None: + """Delete LLM Observability datasets. + + Delete one or more LLM Observability datasets within the specified project. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param body: Delete datasets payload. + :type body: LLMObsDeleteDatasetsRequest + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["body"] = body + + return self._delete_llm_obs_datasets_endpoint.call_with_http_info(**kwargs) + + def delete_llm_obs_experiments( + self, + body: LLMObsDeleteExperimentsRequest, + ) -> None: + """Delete LLM Observability experiments. + + Delete one or more LLM Observability experiments. + + :param body: Delete experiments payload. + :type body: LLMObsDeleteExperimentsRequest + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["body"] = body + + return self._delete_llm_obs_experiments_endpoint.call_with_http_info(**kwargs) + + def delete_llm_obs_projects( + self, + body: LLMObsDeleteProjectsRequest, + ) -> None: + """Delete LLM Observability projects. + + Delete one or more LLM Observability projects. + + :param body: Delete projects payload. + :type body: LLMObsDeleteProjectsRequest + :rtype: None + """ + kwargs: Dict[str, Any] = {} + kwargs["body"] = body + + return self._delete_llm_obs_projects_endpoint.call_with_http_info(**kwargs) + + def list_llm_obs_dataset_records( + self, + project_id: str, + dataset_id: str, + *, + filter_version: Union[int, UnsetType] = unset, + page_cursor: Union[str, UnsetType] = unset, + page_limit: Union[int, UnsetType] = unset, + ) -> LLMObsDatasetRecordsListResponse: + """List LLM Observability dataset records. + + List all records in an LLM Observability dataset, sorted by creation date, newest first. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param dataset_id: The ID of the LLM Observability dataset. + :type dataset_id: str + :param filter_version: Retrieve records from a specific dataset version. Defaults to the current version. + :type filter_version: int, optional + :param page_cursor: Pagination cursor for the next page of results. + :type page_cursor: str, optional + :param page_limit: Maximum number of results to return per page. + :type page_limit: int, optional + :rtype: LLMObsDatasetRecordsListResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["dataset_id"] = dataset_id + + if filter_version is not unset: + kwargs["filter_version"] = filter_version + + if page_cursor is not unset: + kwargs["page_cursor"] = page_cursor + + if page_limit is not unset: + kwargs["page_limit"] = page_limit + + return self._list_llm_obs_dataset_records_endpoint.call_with_http_info(**kwargs) + + def list_llm_obs_datasets( + self, + project_id: str, + *, + filter_name: Union[str, UnsetType] = unset, + filter_id: Union[str, UnsetType] = unset, + page_cursor: Union[str, UnsetType] = unset, + page_limit: Union[int, UnsetType] = unset, + ) -> LLMObsDatasetsResponse: + """List LLM Observability datasets. + + List all LLM Observability datasets for a project, sorted by creation date, newest first. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param filter_name: Filter datasets by name. + :type filter_name: str, optional + :param filter_id: Filter datasets by dataset ID. + :type filter_id: str, optional + :param page_cursor: Pagination cursor for the next page of results. + :type page_cursor: str, optional + :param page_limit: Maximum number of results to return per page. + :type page_limit: int, optional + :rtype: LLMObsDatasetsResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + if filter_name is not unset: + kwargs["filter_name"] = filter_name + + if filter_id is not unset: + kwargs["filter_id"] = filter_id + + if page_cursor is not unset: + kwargs["page_cursor"] = page_cursor + + if page_limit is not unset: + kwargs["page_limit"] = page_limit + + return self._list_llm_obs_datasets_endpoint.call_with_http_info(**kwargs) + + def list_llm_obs_experiments( + self, + *, + filter_project_id: Union[str, UnsetType] = unset, + filter_dataset_id: Union[str, UnsetType] = unset, + filter_id: Union[str, UnsetType] = unset, + page_cursor: Union[str, UnsetType] = unset, + page_limit: Union[int, UnsetType] = unset, + ) -> LLMObsExperimentsResponse: + """List LLM Observability experiments. + + List all LLM Observability experiments sorted by creation date, newest first. + + :param filter_project_id: Filter experiments by project ID. Required if ``filter[dataset_id]`` is not provided. + :type filter_project_id: str, optional + :param filter_dataset_id: Filter experiments by dataset ID. + :type filter_dataset_id: str, optional + :param filter_id: Filter experiments by experiment ID. Can be specified multiple times. + :type filter_id: str, optional + :param page_cursor: Pagination cursor for the next page of results. + :type page_cursor: str, optional + :param page_limit: Maximum number of results to return per page. + :type page_limit: int, optional + :rtype: LLMObsExperimentsResponse + """ + kwargs: Dict[str, Any] = {} + if filter_project_id is not unset: + kwargs["filter_project_id"] = filter_project_id + + if filter_dataset_id is not unset: + kwargs["filter_dataset_id"] = filter_dataset_id + + if filter_id is not unset: + kwargs["filter_id"] = filter_id + + if page_cursor is not unset: + kwargs["page_cursor"] = page_cursor + + if page_limit is not unset: + kwargs["page_limit"] = page_limit + + return self._list_llm_obs_experiments_endpoint.call_with_http_info(**kwargs) + + def list_llm_obs_projects( + self, + *, + filter_id: Union[str, UnsetType] = unset, + filter_name: Union[str, UnsetType] = unset, + page_cursor: Union[str, UnsetType] = unset, + page_limit: Union[int, UnsetType] = unset, + ) -> LLMObsProjectsResponse: + """List LLM Observability projects. + + List all LLM Observability projects sorted by creation date, newest first. + + :param filter_id: Filter projects by project ID. + :type filter_id: str, optional + :param filter_name: Filter projects by name. + :type filter_name: str, optional + :param page_cursor: Pagination cursor for the next page of results. + :type page_cursor: str, optional + :param page_limit: Maximum number of results to return per page. + :type page_limit: int, optional + :rtype: LLMObsProjectsResponse + """ + kwargs: Dict[str, Any] = {} + if filter_id is not unset: + kwargs["filter_id"] = filter_id + + if filter_name is not unset: + kwargs["filter_name"] = filter_name + + if page_cursor is not unset: + kwargs["page_cursor"] = page_cursor + + if page_limit is not unset: + kwargs["page_limit"] = page_limit + + return self._list_llm_obs_projects_endpoint.call_with_http_info(**kwargs) + + def update_llm_obs_dataset( + self, + project_id: str, + dataset_id: str, + body: LLMObsDatasetUpdateRequest, + ) -> LLMObsDatasetResponse: + """Update an LLM Observability dataset. + + Partially update an existing LLM Observability dataset within the specified project. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param dataset_id: The ID of the LLM Observability dataset. + :type dataset_id: str + :param body: Update dataset payload. + :type body: LLMObsDatasetUpdateRequest + :rtype: LLMObsDatasetResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["dataset_id"] = dataset_id + + kwargs["body"] = body + + return self._update_llm_obs_dataset_endpoint.call_with_http_info(**kwargs) + + def update_llm_obs_dataset_records( + self, + project_id: str, + dataset_id: str, + body: LLMObsDatasetRecordsUpdateRequest, + ) -> LLMObsDatasetRecordsMutationResponse: + """Update LLM Observability dataset records. + + Update one or more existing records in an LLM Observability dataset. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param dataset_id: The ID of the LLM Observability dataset. + :type dataset_id: str + :param body: Update records payload. + :type body: LLMObsDatasetRecordsUpdateRequest + :rtype: LLMObsDatasetRecordsMutationResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["dataset_id"] = dataset_id + + kwargs["body"] = body + + return self._update_llm_obs_dataset_records_endpoint.call_with_http_info(**kwargs) + + def update_llm_obs_experiment( + self, + experiment_id: str, + body: LLMObsExperimentUpdateRequest, + ) -> LLMObsExperimentResponse: + """Update an LLM Observability experiment. + + Partially update an existing LLM Observability experiment. + + :param experiment_id: The ID of the LLM Observability experiment. + :type experiment_id: str + :param body: Update experiment payload. + :type body: LLMObsExperimentUpdateRequest + :rtype: LLMObsExperimentResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["experiment_id"] = experiment_id + + kwargs["body"] = body + + return self._update_llm_obs_experiment_endpoint.call_with_http_info(**kwargs) + + def update_llm_obs_project( + self, + project_id: str, + body: LLMObsProjectUpdateRequest, + ) -> LLMObsProjectResponse: + """Update an LLM Observability project. + + Partially update an existing LLM Observability project. + + :param project_id: The ID of the LLM Observability project. + :type project_id: str + :param body: Update project payload. + :type body: LLMObsProjectUpdateRequest + :rtype: LLMObsProjectResponse + """ + kwargs: Dict[str, Any] = {} + kwargs["project_id"] = project_id + + kwargs["body"] = body + + return self._update_llm_obs_project_endpoint.call_with_http_info(**kwargs) diff --git a/src/datadog_api_client/v2/apis/__init__.py b/src/datadog_api_client/v2/apis/__init__.py index d085528f44..ef672a68e2 100644 --- a/src/datadog_api_client/v2/apis/__init__.py +++ b/src/datadog_api_client/v2/apis/__init__.py @@ -49,6 +49,7 @@ from datadog_api_client.v2.api.integrations_api import IntegrationsApi from datadog_api_client.v2.api.jira_integration_api import JiraIntegrationApi from datadog_api_client.v2.api.key_management_api import KeyManagementApi +from datadog_api_client.v2.api.llm_observability_api import LLMObservabilityApi from datadog_api_client.v2.api.logs_api import LogsApi from datadog_api_client.v2.api.logs_archives_api import LogsArchivesApi from datadog_api_client.v2.api.logs_custom_destinations_api import LogsCustomDestinationsApi @@ -154,6 +155,7 @@ "IntegrationsApi", "JiraIntegrationApi", "KeyManagementApi", + "LLMObservabilityApi", "LogsApi", "LogsArchivesApi", "LogsCustomDestinationsApi", diff --git a/src/datadog_api_client/v2/model/llm_obs_cursor_meta.py b/src/datadog_api_client/v2/model/llm_obs_cursor_meta.py new file mode 100644 index 0000000000..75f3e200ce --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_cursor_meta.py @@ -0,0 +1,37 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + none_type, + unset, + UnsetType, +) + + +class LLMObsCursorMeta(ModelNormal): + @cached_property + def openapi_types(_): + return { + "after": (str, none_type), + } + + attribute_map = { + "after": "after", + } + + def __init__(self_, after: Union[str, none_type, UnsetType] = unset, **kwargs): + """ + Pagination cursor metadata. + + :param after: Cursor for the next page of results. + :type after: str, none_type, optional + """ + if after is not unset: + kwargs["after"] = after + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_data_attributes_request.py new file mode 100644 index 0000000000..ebe37fe367 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_data_attributes_request.py @@ -0,0 +1,75 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +class LLMObsDatasetDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "description": (str,), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + "name": (str,), + } + + attribute_map = { + "description": "description", + "metadata": "metadata", + "name": "name", + } + + def __init__( + self_, + name: str, + description: Union[str, UnsetType] = unset, + metadata: Union[Dict[str, Any], UnsetType] = unset, + **kwargs, + ): + """ + Attributes for creating an LLM Observability dataset. + + :param description: Description of the dataset. + :type description: str, optional + + :param metadata: Arbitrary metadata associated with the dataset. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + + :param name: Name of the dataset. + :type name: str + """ + if description is not unset: + kwargs["description"] = description + if metadata is not unset: + kwargs["metadata"] = metadata + super().__init__(kwargs) + + self_.name = name diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_data_attributes_response.py b/src/datadog_api_client/v2/model/llm_obs_dataset_data_attributes_response.py new file mode 100644 index 0000000000..3c2d5000f9 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_data_attributes_response.py @@ -0,0 +1,93 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + UUID, +) + + +class LLMObsDatasetDataAttributesResponse(ModelNormal): + @cached_property + def openapi_types(_): + return { + "created_at": (datetime,), + "current_version": (int,), + "description": (str, none_type), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + none_type, + ), + "name": (str,), + "updated_at": (datetime,), + } + + attribute_map = { + "created_at": "created_at", + "current_version": "current_version", + "description": "description", + "metadata": "metadata", + "name": "name", + "updated_at": "updated_at", + } + + def __init__( + self_, + created_at: datetime, + current_version: int, + description: Union[str, none_type], + metadata: Union[Dict[str, Any], none_type], + name: str, + updated_at: datetime, + **kwargs, + ): + """ + Attributes of an LLM Observability dataset. + + :param created_at: Timestamp when the dataset was created. + :type created_at: datetime + + :param current_version: Current version number of the dataset. + :type current_version: int + + :param description: Description of the dataset. + :type description: str, none_type + + :param metadata: Arbitrary metadata associated with the dataset. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, none_type + + :param name: Name of the dataset. + :type name: str + + :param updated_at: Timestamp when the dataset was last updated. + :type updated_at: datetime + """ + super().__init__(kwargs) + + self_.created_at = created_at + self_.current_version = current_version + self_.description = description + self_.metadata = metadata + self_.name = name + self_.updated_at = updated_at diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_data_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_data_request.py new file mode 100644 index 0000000000..677ba1c486 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_data_request.py @@ -0,0 +1,50 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_data_attributes_request import LLMObsDatasetDataAttributesRequest + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + +class LLMObsDatasetDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_data_attributes_request import ( + LLMObsDatasetDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + return { + "attributes": (LLMObsDatasetDataAttributesRequest,), + "type": (LLMObsDatasetType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDatasetDataAttributesRequest, type: LLMObsDatasetType, **kwargs): + """ + Data object for creating an LLM Observability dataset. + + :param attributes: Attributes for creating an LLM Observability dataset. + :type attributes: LLMObsDatasetDataAttributesRequest + + :param type: Resource type of an LLM Observability dataset. + :type type: LLMObsDatasetType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_data_response.py b/src/datadog_api_client/v2/model/llm_obs_dataset_data_response.py new file mode 100644 index 0000000000..bca6e90477 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_data_response.py @@ -0,0 +1,56 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_data_attributes_response import LLMObsDatasetDataAttributesResponse + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + +class LLMObsDatasetDataResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_data_attributes_response import ( + LLMObsDatasetDataAttributesResponse, + ) + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + return { + "attributes": (LLMObsDatasetDataAttributesResponse,), + "id": (str,), + "type": (LLMObsDatasetType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDatasetDataAttributesResponse, id: str, type: LLMObsDatasetType, **kwargs): + """ + Data object for an LLM Observability dataset. + + :param attributes: Attributes of an LLM Observability dataset. + :type attributes: LLMObsDatasetDataAttributesResponse + + :param id: Unique identifier of the dataset. + :type id: str + + :param type: Resource type of an LLM Observability dataset. + :type type: LLMObsDatasetType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_record_data_response.py b/src/datadog_api_client/v2/model/llm_obs_dataset_record_data_response.py new file mode 100644 index 0000000000..5b4a90a74e --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_record_data_response.py @@ -0,0 +1,118 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + UUID, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.any_value import AnyValue + from datadog_api_client.v2.model.any_value_object import AnyValueObject + from datadog_api_client.v2.model.any_value_item import AnyValueItem + + +class LLMObsDatasetRecordDataResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.any_value import AnyValue + + return { + "created_at": (datetime,), + "dataset_id": (str,), + "expected_output": (AnyValue,), + "id": (str,), + "input": (AnyValue,), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + none_type, + ), + "updated_at": (datetime,), + } + + attribute_map = { + "created_at": "created_at", + "dataset_id": "dataset_id", + "expected_output": "expected_output", + "id": "id", + "input": "input", + "metadata": "metadata", + "updated_at": "updated_at", + } + + def __init__( + self_, + created_at: datetime, + dataset_id: str, + expected_output: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + ], + id: str, + input: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + ], + metadata: Union[Dict[str, Any], none_type], + updated_at: datetime, + **kwargs, + ): + """ + A single LLM Observability dataset record. + + :param created_at: Timestamp when the record was created. + :type created_at: datetime + + :param dataset_id: Identifier of the dataset this record belongs to. + :type dataset_id: str + + :param expected_output: Represents any valid JSON value. + :type expected_output: AnyValue, none_type + + :param id: Unique identifier of the record. + :type id: str + + :param input: Represents any valid JSON value. + :type input: AnyValue, none_type + + :param metadata: Arbitrary metadata associated with the record. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, none_type + + :param updated_at: Timestamp when the record was last updated. + :type updated_at: datetime + """ + super().__init__(kwargs) + + self_.created_at = created_at + self_.dataset_id = dataset_id + self_.expected_output = expected_output + self_.id = id + self_.input = input + self_.metadata = metadata + self_.updated_at = updated_at diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_record_item.py b/src/datadog_api_client/v2/model/llm_obs_dataset_record_item.py new file mode 100644 index 0000000000..d76a4787c3 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_record_item.py @@ -0,0 +1,94 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.any_value import AnyValue + from datadog_api_client.v2.model.any_value_object import AnyValueObject + from datadog_api_client.v2.model.any_value_item import AnyValueItem + + +class LLMObsDatasetRecordItem(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.any_value import AnyValue + + return { + "expected_output": (AnyValue,), + "input": (AnyValue,), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + } + + attribute_map = { + "expected_output": "expected_output", + "input": "input", + "metadata": "metadata", + } + + def __init__( + self_, + input: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + ], + expected_output: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + UnsetType, + ] = unset, + metadata: Union[Dict[str, Any], UnsetType] = unset, + **kwargs, + ): + """ + A single record to append to an LLM Observability dataset. + + :param expected_output: Represents any valid JSON value. + :type expected_output: AnyValue, none_type, optional + + :param input: Represents any valid JSON value. + :type input: AnyValue, none_type + + :param metadata: Arbitrary metadata associated with the record. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + """ + if expected_output is not unset: + kwargs["expected_output"] = expected_output + if metadata is not unset: + kwargs["metadata"] = metadata + super().__init__(kwargs) + + self_.input = input diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_record_update_item.py b/src/datadog_api_client/v2/model/llm_obs_dataset_record_update_item.py new file mode 100644 index 0000000000..a13a24779f --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_record_update_item.py @@ -0,0 +1,103 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.any_value import AnyValue + from datadog_api_client.v2.model.any_value_object import AnyValueObject + from datadog_api_client.v2.model.any_value_item import AnyValueItem + + +class LLMObsDatasetRecordUpdateItem(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.any_value import AnyValue + + return { + "expected_output": (AnyValue,), + "id": (str,), + "input": (AnyValue,), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + } + + attribute_map = { + "expected_output": "expected_output", + "id": "id", + "input": "input", + "metadata": "metadata", + } + + def __init__( + self_, + id: str, + expected_output: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + UnsetType, + ] = unset, + input: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + UnsetType, + ] = unset, + metadata: Union[Dict[str, Any], UnsetType] = unset, + **kwargs, + ): + """ + A record update payload for an LLM Observability dataset. + + :param expected_output: Represents any valid JSON value. + :type expected_output: AnyValue, none_type, optional + + :param id: Unique identifier of the record to update. + :type id: str + + :param input: Represents any valid JSON value. + :type input: AnyValue, none_type, optional + + :param metadata: Updated metadata associated with the record. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + """ + if expected_output is not unset: + kwargs["expected_output"] = expected_output + if input is not unset: + kwargs["input"] = input + if metadata is not unset: + kwargs["metadata"] = metadata + super().__init__(kwargs) + + self_.id = id diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_data_attributes_request.py new file mode 100644 index 0000000000..aa1d592528 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_data_attributes_request.py @@ -0,0 +1,49 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_record_item import LLMObsDatasetRecordItem + + +class LLMObsDatasetRecordsDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_record_item import LLMObsDatasetRecordItem + + return { + "deduplicate": (bool,), + "records": ([LLMObsDatasetRecordItem],), + } + + attribute_map = { + "deduplicate": "deduplicate", + "records": "records", + } + + def __init__(self_, records: List[LLMObsDatasetRecordItem], deduplicate: Union[bool, UnsetType] = unset, **kwargs): + """ + Attributes for appending records to an LLM Observability dataset. + + :param deduplicate: Whether to deduplicate records before appending. Defaults to ``true``. + :type deduplicate: bool, optional + + :param records: List of records to append to the dataset. + :type records: [LLMObsDatasetRecordItem] + """ + if deduplicate is not unset: + kwargs["deduplicate"] = deduplicate + super().__init__(kwargs) + + self_.records = records diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_data_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_data_request.py new file mode 100644 index 0000000000..379a10842f --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_records_data_attributes_request import ( + LLMObsDatasetRecordsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + + +class LLMObsDatasetRecordsDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_records_data_attributes_request import ( + LLMObsDatasetRecordsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + + return { + "attributes": (LLMObsDatasetRecordsDataAttributesRequest,), + "type": (LLMObsRecordType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDatasetRecordsDataAttributesRequest, type: LLMObsRecordType, **kwargs): + """ + Data object for appending records to an LLM Observability dataset. + + :param attributes: Attributes for appending records to an LLM Observability dataset. + :type attributes: LLMObsDatasetRecordsDataAttributesRequest + + :param type: Resource type of LLM Observability dataset records. + :type type: LLMObsRecordType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_list_response.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_list_response.py new file mode 100644 index 0000000000..1ec1d2e038 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_list_response.py @@ -0,0 +1,53 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_record_data_response import LLMObsDatasetRecordDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + +class LLMObsDatasetRecordsListResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_record_data_response import LLMObsDatasetRecordDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + return { + "data": ([LLMObsDatasetRecordDataResponse],), + "meta": (LLMObsCursorMeta,), + } + + attribute_map = { + "data": "data", + "meta": "meta", + } + + def __init__( + self_, data: List[LLMObsDatasetRecordDataResponse], meta: Union[LLMObsCursorMeta, UnsetType] = unset, **kwargs + ): + """ + Response containing a paginated list of LLM Observability dataset records. + + :param data: List of dataset records. + :type data: [LLMObsDatasetRecordDataResponse] + + :param meta: Pagination cursor metadata. + :type meta: LLMObsCursorMeta, optional + """ + if meta is not unset: + kwargs["meta"] = meta + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_mutation_data.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_mutation_data.py new file mode 100644 index 0000000000..b81f8e6544 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_mutation_data.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_record_data_response import LLMObsDatasetRecordDataResponse + + +class LLMObsDatasetRecordsMutationData(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_record_data_response import LLMObsDatasetRecordDataResponse + + return { + "records": ([LLMObsDatasetRecordDataResponse],), + } + + attribute_map = { + "records": "records", + } + + def __init__(self_, records: List[LLMObsDatasetRecordDataResponse], **kwargs): + """ + Response containing records after a create or update operation. + + :param records: List of affected dataset records. + :type records: [LLMObsDatasetRecordDataResponse] + """ + super().__init__(kwargs) + + self_.records = records diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_mutation_response.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_mutation_response.py new file mode 100644 index 0000000000..5f5d5a0e88 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_mutation_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_records_mutation_data import LLMObsDatasetRecordsMutationData + + +class LLMObsDatasetRecordsMutationResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_records_mutation_data import LLMObsDatasetRecordsMutationData + + return { + "data": ([LLMObsDatasetRecordsMutationData],), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: List[LLMObsDatasetRecordsMutationData], **kwargs): + """ + Response containing records after a create or update operation. + + :param data: List of affected dataset records. + :type data: [LLMObsDatasetRecordsMutationData] + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_request.py new file mode 100644 index 0000000000..5b2b06ae36 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_records_data_request import LLMObsDatasetRecordsDataRequest + + +class LLMObsDatasetRecordsRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_records_data_request import LLMObsDatasetRecordsDataRequest + + return { + "data": (LLMObsDatasetRecordsDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDatasetRecordsDataRequest, **kwargs): + """ + Request to append records to an LLM Observability dataset. + + :param data: Data object for appending records to an LLM Observability dataset. + :type data: LLMObsDatasetRecordsDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_data_attributes_request.py new file mode 100644 index 0000000000..979344bc70 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_data_attributes_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_record_update_item import LLMObsDatasetRecordUpdateItem + + +class LLMObsDatasetRecordsUpdateDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_record_update_item import LLMObsDatasetRecordUpdateItem + + return { + "records": ([LLMObsDatasetRecordUpdateItem],), + } + + attribute_map = { + "records": "records", + } + + def __init__(self_, records: List[LLMObsDatasetRecordUpdateItem], **kwargs): + """ + Attributes for updating records in an LLM Observability dataset. + + :param records: List of records to update. + :type records: [LLMObsDatasetRecordUpdateItem] + """ + super().__init__(kwargs) + + self_.records = records diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_data_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_data_request.py new file mode 100644 index 0000000000..e8166079d5 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_attributes_request import ( + LLMObsDatasetRecordsUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + + +class LLMObsDatasetRecordsUpdateDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_attributes_request import ( + LLMObsDatasetRecordsUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + + return { + "attributes": (LLMObsDatasetRecordsUpdateDataAttributesRequest,), + "type": (LLMObsRecordType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDatasetRecordsUpdateDataAttributesRequest, type: LLMObsRecordType, **kwargs): + """ + Data object for updating records in an LLM Observability dataset. + + :param attributes: Attributes for updating records in an LLM Observability dataset. + :type attributes: LLMObsDatasetRecordsUpdateDataAttributesRequest + + :param type: Resource type of LLM Observability dataset records. + :type type: LLMObsRecordType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_request.py new file mode 100644 index 0000000000..cb8fc123bf --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_records_update_request.py @@ -0,0 +1,44 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_request import ( + LLMObsDatasetRecordsUpdateDataRequest, + ) + + +class LLMObsDatasetRecordsUpdateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_request import ( + LLMObsDatasetRecordsUpdateDataRequest, + ) + + return { + "data": (LLMObsDatasetRecordsUpdateDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDatasetRecordsUpdateDataRequest, **kwargs): + """ + Request to update records in an LLM Observability dataset. + + :param data: Data object for updating records in an LLM Observability dataset. + :type data: LLMObsDatasetRecordsUpdateDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_request.py new file mode 100644 index 0000000000..5f2e164873 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_data_request import LLMObsDatasetDataRequest + + +class LLMObsDatasetRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_data_request import LLMObsDatasetDataRequest + + return { + "data": (LLMObsDatasetDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDatasetDataRequest, **kwargs): + """ + Request to create an LLM Observability dataset. + + :param data: Data object for creating an LLM Observability dataset. + :type data: LLMObsDatasetDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_response.py b/src/datadog_api_client/v2/model/llm_obs_dataset_response.py new file mode 100644 index 0000000000..b36ede40ed --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_data_response import LLMObsDatasetDataResponse + + +class LLMObsDatasetResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_data_response import LLMObsDatasetDataResponse + + return { + "data": (LLMObsDatasetDataResponse,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDatasetDataResponse, **kwargs): + """ + Response containing a single LLM Observability dataset. + + :param data: Data object for an LLM Observability dataset. + :type data: LLMObsDatasetDataResponse + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_type.py b/src/datadog_api_client/v2/model/llm_obs_dataset_type.py new file mode 100644 index 0000000000..7d689cfcf8 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class LLMObsDatasetType(ModelSimple): + """ + Resource type of an LLM Observability dataset. + + :param value: If omitted defaults to "datasets". Must be one of ["datasets"]. + :type value: str + """ + + allowed_values = { + "datasets", + } + DATASETS: ClassVar["LLMObsDatasetType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +LLMObsDatasetType.DATASETS = LLMObsDatasetType("datasets") diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_update_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_update_data_attributes_request.py new file mode 100644 index 0000000000..83a97682a5 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_update_data_attributes_request.py @@ -0,0 +1,75 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +class LLMObsDatasetUpdateDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "description": (str,), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + "name": (str,), + } + + attribute_map = { + "description": "description", + "metadata": "metadata", + "name": "name", + } + + def __init__( + self_, + description: Union[str, UnsetType] = unset, + metadata: Union[Dict[str, Any], UnsetType] = unset, + name: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Attributes for updating an LLM Observability dataset. + + :param description: Updated description of the dataset. + :type description: str, optional + + :param metadata: Updated metadata associated with the dataset. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + + :param name: Updated name of the dataset. + :type name: str, optional + """ + if description is not unset: + kwargs["description"] = description + if metadata is not unset: + kwargs["metadata"] = metadata + if name is not unset: + kwargs["name"] = name + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_update_data_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_update_data_request.py new file mode 100644 index 0000000000..c4ad3acda5 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_update_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_update_data_attributes_request import ( + LLMObsDatasetUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + +class LLMObsDatasetUpdateDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_update_data_attributes_request import ( + LLMObsDatasetUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + return { + "attributes": (LLMObsDatasetUpdateDataAttributesRequest,), + "type": (LLMObsDatasetType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDatasetUpdateDataAttributesRequest, type: LLMObsDatasetType, **kwargs): + """ + Data object for updating an LLM Observability dataset. + + :param attributes: Attributes for updating an LLM Observability dataset. + :type attributes: LLMObsDatasetUpdateDataAttributesRequest + + :param type: Resource type of an LLM Observability dataset. + :type type: LLMObsDatasetType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_dataset_update_request.py b/src/datadog_api_client/v2/model/llm_obs_dataset_update_request.py new file mode 100644 index 0000000000..d191d17954 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_dataset_update_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_update_data_request import LLMObsDatasetUpdateDataRequest + + +class LLMObsDatasetUpdateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_update_data_request import LLMObsDatasetUpdateDataRequest + + return { + "data": (LLMObsDatasetUpdateDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDatasetUpdateDataRequest, **kwargs): + """ + Request to partially update an LLM Observability dataset. + + :param data: Data object for updating an LLM Observability dataset. + :type data: LLMObsDatasetUpdateDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_datasets_response.py b/src/datadog_api_client/v2/model/llm_obs_datasets_response.py new file mode 100644 index 0000000000..bed8a3f2eb --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_datasets_response.py @@ -0,0 +1,53 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_dataset_data_response import LLMObsDatasetDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + +class LLMObsDatasetsResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_dataset_data_response import LLMObsDatasetDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + return { + "data": ([LLMObsDatasetDataResponse],), + "meta": (LLMObsCursorMeta,), + } + + attribute_map = { + "data": "data", + "meta": "meta", + } + + def __init__( + self_, data: List[LLMObsDatasetDataResponse], meta: Union[LLMObsCursorMeta, UnsetType] = unset, **kwargs + ): + """ + Response containing a list of LLM Observability datasets. + + :param data: List of datasets. + :type data: [LLMObsDatasetDataResponse] + + :param meta: Pagination cursor metadata. + :type meta: LLMObsCursorMeta, optional + """ + if meta is not unset: + kwargs["meta"] = meta + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_data_attributes_request.py new file mode 100644 index 0000000000..f000457558 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_data_attributes_request.py @@ -0,0 +1,34 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class LLMObsDeleteDatasetRecordsDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "record_ids": ([str],), + } + + attribute_map = { + "record_ids": "record_ids", + } + + def __init__(self_, record_ids: List[str], **kwargs): + """ + Attributes for deleting records from an LLM Observability dataset. + + :param record_ids: List of record IDs to delete. + :type record_ids: [str] + """ + super().__init__(kwargs) + + self_.record_ids = record_ids diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_data_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_data_request.py new file mode 100644 index 0000000000..0e5db3b6db --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_attributes_request import ( + LLMObsDeleteDatasetRecordsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + + +class LLMObsDeleteDatasetRecordsDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_attributes_request import ( + LLMObsDeleteDatasetRecordsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType + + return { + "attributes": (LLMObsDeleteDatasetRecordsDataAttributesRequest,), + "type": (LLMObsRecordType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDeleteDatasetRecordsDataAttributesRequest, type: LLMObsRecordType, **kwargs): + """ + Data object for deleting records from an LLM Observability dataset. + + :param attributes: Attributes for deleting records from an LLM Observability dataset. + :type attributes: LLMObsDeleteDatasetRecordsDataAttributesRequest + + :param type: Resource type of LLM Observability dataset records. + :type type: LLMObsRecordType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_request.py new file mode 100644 index 0000000000..8b949228a1 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_dataset_records_request.py @@ -0,0 +1,44 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_request import ( + LLMObsDeleteDatasetRecordsDataRequest, + ) + + +class LLMObsDeleteDatasetRecordsRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_request import ( + LLMObsDeleteDatasetRecordsDataRequest, + ) + + return { + "data": (LLMObsDeleteDatasetRecordsDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDeleteDatasetRecordsDataRequest, **kwargs): + """ + Request to delete records from an LLM Observability dataset. + + :param data: Data object for deleting records from an LLM Observability dataset. + :type data: LLMObsDeleteDatasetRecordsDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_datasets_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_datasets_data_attributes_request.py new file mode 100644 index 0000000000..c8e27f7b17 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_datasets_data_attributes_request.py @@ -0,0 +1,34 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class LLMObsDeleteDatasetsDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "dataset_ids": ([str],), + } + + attribute_map = { + "dataset_ids": "dataset_ids", + } + + def __init__(self_, dataset_ids: List[str], **kwargs): + """ + Attributes for deleting LLM Observability datasets. + + :param dataset_ids: List of dataset IDs to delete. + :type dataset_ids: [str] + """ + super().__init__(kwargs) + + self_.dataset_ids = dataset_ids diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_datasets_data_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_datasets_data_request.py new file mode 100644 index 0000000000..f975d7b94a --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_datasets_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_datasets_data_attributes_request import ( + LLMObsDeleteDatasetsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + +class LLMObsDeleteDatasetsDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_datasets_data_attributes_request import ( + LLMObsDeleteDatasetsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType + + return { + "attributes": (LLMObsDeleteDatasetsDataAttributesRequest,), + "type": (LLMObsDatasetType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDeleteDatasetsDataAttributesRequest, type: LLMObsDatasetType, **kwargs): + """ + Data object for deleting LLM Observability datasets. + + :param attributes: Attributes for deleting LLM Observability datasets. + :type attributes: LLMObsDeleteDatasetsDataAttributesRequest + + :param type: Resource type of an LLM Observability dataset. + :type type: LLMObsDatasetType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_datasets_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_datasets_request.py new file mode 100644 index 0000000000..01bea182ca --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_datasets_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_datasets_data_request import LLMObsDeleteDatasetsDataRequest + + +class LLMObsDeleteDatasetsRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_datasets_data_request import LLMObsDeleteDatasetsDataRequest + + return { + "data": (LLMObsDeleteDatasetsDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDeleteDatasetsDataRequest, **kwargs): + """ + Request to delete one or more LLM Observability datasets. + + :param data: Data object for deleting LLM Observability datasets. + :type data: LLMObsDeleteDatasetsDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_experiments_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_experiments_data_attributes_request.py new file mode 100644 index 0000000000..3a0f2c20ed --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_experiments_data_attributes_request.py @@ -0,0 +1,34 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class LLMObsDeleteExperimentsDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "experiment_ids": ([str],), + } + + attribute_map = { + "experiment_ids": "experiment_ids", + } + + def __init__(self_, experiment_ids: List[str], **kwargs): + """ + Attributes for deleting LLM Observability experiments. + + :param experiment_ids: List of experiment IDs to delete. + :type experiment_ids: [str] + """ + super().__init__(kwargs) + + self_.experiment_ids = experiment_ids diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_experiments_data_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_experiments_data_request.py new file mode 100644 index 0000000000..9b09a6ea58 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_experiments_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_experiments_data_attributes_request import ( + LLMObsDeleteExperimentsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + +class LLMObsDeleteExperimentsDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_experiments_data_attributes_request import ( + LLMObsDeleteExperimentsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + return { + "attributes": (LLMObsDeleteExperimentsDataAttributesRequest,), + "type": (LLMObsExperimentType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDeleteExperimentsDataAttributesRequest, type: LLMObsExperimentType, **kwargs): + """ + Data object for deleting LLM Observability experiments. + + :param attributes: Attributes for deleting LLM Observability experiments. + :type attributes: LLMObsDeleteExperimentsDataAttributesRequest + + :param type: Resource type of an LLM Observability experiment. + :type type: LLMObsExperimentType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_experiments_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_experiments_request.py new file mode 100644 index 0000000000..81342c5dcd --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_experiments_request.py @@ -0,0 +1,42 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_experiments_data_request import LLMObsDeleteExperimentsDataRequest + + +class LLMObsDeleteExperimentsRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_experiments_data_request import ( + LLMObsDeleteExperimentsDataRequest, + ) + + return { + "data": (LLMObsDeleteExperimentsDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDeleteExperimentsDataRequest, **kwargs): + """ + Request to delete one or more LLM Observability experiments. + + :param data: Data object for deleting LLM Observability experiments. + :type data: LLMObsDeleteExperimentsDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_projects_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_projects_data_attributes_request.py new file mode 100644 index 0000000000..0f015b08ca --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_projects_data_attributes_request.py @@ -0,0 +1,34 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +class LLMObsDeleteProjectsDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "project_ids": ([str],), + } + + attribute_map = { + "project_ids": "project_ids", + } + + def __init__(self_, project_ids: List[str], **kwargs): + """ + Attributes for deleting LLM Observability projects. + + :param project_ids: List of project IDs to delete. + :type project_ids: [str] + """ + super().__init__(kwargs) + + self_.project_ids = project_ids diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_projects_data_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_projects_data_request.py new file mode 100644 index 0000000000..0d51fa2935 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_projects_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_projects_data_attributes_request import ( + LLMObsDeleteProjectsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + +class LLMObsDeleteProjectsDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_projects_data_attributes_request import ( + LLMObsDeleteProjectsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + return { + "attributes": (LLMObsDeleteProjectsDataAttributesRequest,), + "type": (LLMObsProjectType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsDeleteProjectsDataAttributesRequest, type: LLMObsProjectType, **kwargs): + """ + Data object for deleting LLM Observability projects. + + :param attributes: Attributes for deleting LLM Observability projects. + :type attributes: LLMObsDeleteProjectsDataAttributesRequest + + :param type: Resource type of an LLM Observability project. + :type type: LLMObsProjectType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_delete_projects_request.py b/src/datadog_api_client/v2/model/llm_obs_delete_projects_request.py new file mode 100644 index 0000000000..1e725f0424 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_delete_projects_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_delete_projects_data_request import LLMObsDeleteProjectsDataRequest + + +class LLMObsDeleteProjectsRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_delete_projects_data_request import LLMObsDeleteProjectsDataRequest + + return { + "data": (LLMObsDeleteProjectsDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsDeleteProjectsDataRequest, **kwargs): + """ + Request to delete one or more LLM Observability projects. + + :param data: Data object for deleting LLM Observability projects. + :type data: LLMObsDeleteProjectsDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_event_type.py b/src/datadog_api_client/v2/model/llm_obs_event_type.py new file mode 100644 index 0000000000..d8f06abbae --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_event_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class LLMObsEventType(ModelSimple): + """ + Resource type for LLM Observability experiment events. + + :param value: If omitted defaults to "events". Must be one of ["events"]. + :type value: str + """ + + allowed_values = { + "events", + } + EVENTS: ClassVar["LLMObsEventType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +LLMObsEventType.EVENTS = LLMObsEventType("events") diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_data_attributes_request.py new file mode 100644 index 0000000000..9d91693689 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_data_attributes_request.py @@ -0,0 +1,128 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +class LLMObsExperimentDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "config": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + "dataset_id": (str,), + "dataset_version": (int,), + "description": (str,), + "ensure_unique": (bool,), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + "name": (str,), + "project_id": (str,), + } + + attribute_map = { + "config": "config", + "dataset_id": "dataset_id", + "dataset_version": "dataset_version", + "description": "description", + "ensure_unique": "ensure_unique", + "metadata": "metadata", + "name": "name", + "project_id": "project_id", + } + + def __init__( + self_, + dataset_id: str, + name: str, + project_id: str, + config: Union[Dict[str, Any], UnsetType] = unset, + dataset_version: Union[int, UnsetType] = unset, + description: Union[str, UnsetType] = unset, + ensure_unique: Union[bool, UnsetType] = unset, + metadata: Union[Dict[str, Any], UnsetType] = unset, + **kwargs, + ): + """ + Attributes for creating an LLM Observability experiment. + + :param config: Configuration parameters for the experiment. + :type config: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + + :param dataset_id: Identifier of the dataset used in this experiment. + :type dataset_id: str + + :param dataset_version: Version of the dataset to use. Defaults to the current version if not specified. + :type dataset_version: int, optional + + :param description: Description of the experiment. + :type description: str, optional + + :param ensure_unique: Whether to ensure the experiment name is unique. Defaults to ``true``. + :type ensure_unique: bool, optional + + :param metadata: Arbitrary metadata associated with the experiment. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + + :param name: Name of the experiment. + :type name: str + + :param project_id: Identifier of the project this experiment belongs to. + :type project_id: str + """ + if config is not unset: + kwargs["config"] = config + if dataset_version is not unset: + kwargs["dataset_version"] = dataset_version + if description is not unset: + kwargs["description"] = description + if ensure_unique is not unset: + kwargs["ensure_unique"] = ensure_unique + if metadata is not unset: + kwargs["metadata"] = metadata + super().__init__(kwargs) + + self_.dataset_id = dataset_id + self_.name = name + self_.project_id = project_id diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_data_attributes_response.py b/src/datadog_api_client/v2/model/llm_obs_experiment_data_attributes_response.py new file mode 100644 index 0000000000..2943ffd462 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_data_attributes_response.py @@ -0,0 +1,123 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + UUID, +) + + +class LLMObsExperimentDataAttributesResponse(ModelNormal): + @cached_property + def openapi_types(_): + return { + "config": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + none_type, + ), + "created_at": (datetime,), + "dataset_id": (str,), + "description": (str, none_type), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + none_type, + ), + "name": (str,), + "project_id": (str,), + "updated_at": (datetime,), + } + + attribute_map = { + "config": "config", + "created_at": "created_at", + "dataset_id": "dataset_id", + "description": "description", + "metadata": "metadata", + "name": "name", + "project_id": "project_id", + "updated_at": "updated_at", + } + + def __init__( + self_, + config: Union[Dict[str, Any], none_type], + created_at: datetime, + dataset_id: str, + description: Union[str, none_type], + metadata: Union[Dict[str, Any], none_type], + name: str, + project_id: str, + updated_at: datetime, + **kwargs, + ): + """ + Attributes of an LLM Observability experiment. + + :param config: Configuration parameters for the experiment. + :type config: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, none_type + + :param created_at: Timestamp when the experiment was created. + :type created_at: datetime + + :param dataset_id: Identifier of the dataset used in this experiment. + :type dataset_id: str + + :param description: Description of the experiment. + :type description: str, none_type + + :param metadata: Arbitrary metadata associated with the experiment. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, none_type + + :param name: Name of the experiment. + :type name: str + + :param project_id: Identifier of the project this experiment belongs to. + :type project_id: str + + :param updated_at: Timestamp when the experiment was last updated. + :type updated_at: datetime + """ + super().__init__(kwargs) + + self_.config = config + self_.created_at = created_at + self_.dataset_id = dataset_id + self_.description = description + self_.metadata = metadata + self_.name = name + self_.project_id = project_id + self_.updated_at = updated_at diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_data_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_data_request.py new file mode 100644 index 0000000000..dd22e9239e --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_data_attributes_request import ( + LLMObsExperimentDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + +class LLMObsExperimentDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_data_attributes_request import ( + LLMObsExperimentDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + return { + "attributes": (LLMObsExperimentDataAttributesRequest,), + "type": (LLMObsExperimentType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsExperimentDataAttributesRequest, type: LLMObsExperimentType, **kwargs): + """ + Data object for creating an LLM Observability experiment. + + :param attributes: Attributes for creating an LLM Observability experiment. + :type attributes: LLMObsExperimentDataAttributesRequest + + :param type: Resource type of an LLM Observability experiment. + :type type: LLMObsExperimentType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_data_response.py b/src/datadog_api_client/v2/model/llm_obs_experiment_data_response.py new file mode 100644 index 0000000000..fab13976dc --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_data_response.py @@ -0,0 +1,60 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_data_attributes_response import ( + LLMObsExperimentDataAttributesResponse, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + +class LLMObsExperimentDataResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_data_attributes_response import ( + LLMObsExperimentDataAttributesResponse, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + return { + "attributes": (LLMObsExperimentDataAttributesResponse,), + "id": (str,), + "type": (LLMObsExperimentType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__( + self_, attributes: LLMObsExperimentDataAttributesResponse, id: str, type: LLMObsExperimentType, **kwargs + ): + """ + Data object for an LLM Observability experiment. + + :param attributes: Attributes of an LLM Observability experiment. + :type attributes: LLMObsExperimentDataAttributesResponse + + :param id: Unique identifier of the experiment. + :type id: str + + :param type: Resource type of an LLM Observability experiment. + :type type: LLMObsExperimentType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_events_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_events_data_attributes_request.py new file mode 100644 index 0000000000..816e046d88 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_events_data_attributes_request.py @@ -0,0 +1,56 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_metric import LLMObsExperimentMetric + from datadog_api_client.v2.model.llm_obs_experiment_span import LLMObsExperimentSpan + + +class LLMObsExperimentEventsDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_metric import LLMObsExperimentMetric + from datadog_api_client.v2.model.llm_obs_experiment_span import LLMObsExperimentSpan + + return { + "metrics": ([LLMObsExperimentMetric],), + "spans": ([LLMObsExperimentSpan],), + } + + attribute_map = { + "metrics": "metrics", + "spans": "spans", + } + + def __init__( + self_, + metrics: Union[List[LLMObsExperimentMetric], UnsetType] = unset, + spans: Union[List[LLMObsExperimentSpan], UnsetType] = unset, + **kwargs, + ): + """ + Attributes for pushing experiment events including spans and metrics. + + :param metrics: List of metrics to push for the experiment. + :type metrics: [LLMObsExperimentMetric], optional + + :param spans: List of spans to push for the experiment. + :type spans: [LLMObsExperimentSpan], optional + """ + if metrics is not unset: + kwargs["metrics"] = metrics + if spans is not unset: + kwargs["spans"] = spans + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_events_data_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_events_data_request.py new file mode 100644 index 0000000000..47b4e615c7 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_events_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_events_data_attributes_request import ( + LLMObsExperimentEventsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_event_type import LLMObsEventType + + +class LLMObsExperimentEventsDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_events_data_attributes_request import ( + LLMObsExperimentEventsDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_event_type import LLMObsEventType + + return { + "attributes": (LLMObsExperimentEventsDataAttributesRequest,), + "type": (LLMObsEventType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsExperimentEventsDataAttributesRequest, type: LLMObsEventType, **kwargs): + """ + Data object for pushing experiment events. + + :param attributes: Attributes for pushing experiment events including spans and metrics. + :type attributes: LLMObsExperimentEventsDataAttributesRequest + + :param type: Resource type for LLM Observability experiment events. + :type type: LLMObsEventType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_events_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_events_request.py new file mode 100644 index 0000000000..690200d77d --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_events_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_events_data_request import LLMObsExperimentEventsDataRequest + + +class LLMObsExperimentEventsRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_events_data_request import LLMObsExperimentEventsDataRequest + + return { + "data": (LLMObsExperimentEventsDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsExperimentEventsDataRequest, **kwargs): + """ + Request to push spans and metrics for an LLM Observability experiment. + + :param data: Data object for pushing experiment events. + :type data: LLMObsExperimentEventsDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_metric.py b/src/datadog_api_client/v2/model/llm_obs_experiment_metric.py new file mode 100644 index 0000000000..6246a6300e --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_metric.py @@ -0,0 +1,177 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_metric_assessment import LLMObsMetricAssessment + from datadog_api_client.v2.model.llm_obs_experiment_metric_error import LLMObsExperimentMetricError + from datadog_api_client.v2.model.llm_obs_metric_score_type import LLMObsMetricScoreType + + +class LLMObsExperimentMetric(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_metric_assessment import LLMObsMetricAssessment + from datadog_api_client.v2.model.llm_obs_experiment_metric_error import LLMObsExperimentMetricError + from datadog_api_client.v2.model.llm_obs_metric_score_type import LLMObsMetricScoreType + + return { + "assessment": (LLMObsMetricAssessment,), + "boolean_value": (bool,), + "categorical_value": (str,), + "error": (LLMObsExperimentMetricError,), + "json_value": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + "label": (str,), + "metadata": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + "metric_type": (LLMObsMetricScoreType,), + "reasoning": (str,), + "score_value": (float,), + "span_id": (str,), + "tags": ([str],), + "timestamp_ms": (int,), + } + + attribute_map = { + "assessment": "assessment", + "boolean_value": "boolean_value", + "categorical_value": "categorical_value", + "error": "error", + "json_value": "json_value", + "label": "label", + "metadata": "metadata", + "metric_type": "metric_type", + "reasoning": "reasoning", + "score_value": "score_value", + "span_id": "span_id", + "tags": "tags", + "timestamp_ms": "timestamp_ms", + } + + def __init__( + self_, + label: str, + metric_type: LLMObsMetricScoreType, + span_id: str, + timestamp_ms: int, + assessment: Union[LLMObsMetricAssessment, UnsetType] = unset, + boolean_value: Union[bool, UnsetType] = unset, + categorical_value: Union[str, UnsetType] = unset, + error: Union[LLMObsExperimentMetricError, UnsetType] = unset, + json_value: Union[Dict[str, Any], UnsetType] = unset, + metadata: Union[Dict[str, Any], UnsetType] = unset, + reasoning: Union[str, UnsetType] = unset, + score_value: Union[float, UnsetType] = unset, + tags: Union[List[str], UnsetType] = unset, + **kwargs, + ): + """ + A metric associated with an LLM Observability experiment span. + + :param assessment: Assessment result for an LLM Observability experiment metric. + :type assessment: LLMObsMetricAssessment, optional + + :param boolean_value: Boolean value. Used when ``metric_type`` is ``boolean``. + :type boolean_value: bool, optional + + :param categorical_value: Categorical value. Used when ``metric_type`` is ``categorical``. + :type categorical_value: str, optional + + :param error: Error details for an experiment metric evaluation. + :type error: LLMObsExperimentMetricError, optional + + :param json_value: JSON value. Used when ``metric_type`` is ``json``. + :type json_value: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + + :param label: Label or name for the metric. + :type label: str + + :param metadata: Arbitrary metadata associated with the metric. + :type metadata: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + + :param metric_type: Type of metric recorded for an LLM Observability experiment. + :type metric_type: LLMObsMetricScoreType + + :param reasoning: Human-readable reasoning for the metric value. + :type reasoning: str, optional + + :param score_value: Numeric score value. Used when ``metric_type`` is ``score``. + :type score_value: float, optional + + :param span_id: Identifier of the span this metric is associated with. + :type span_id: str + + :param tags: List of tags associated with the metric. + :type tags: [str], optional + + :param timestamp_ms: Timestamp when the metric was recorded, in milliseconds since Unix epoch. + :type timestamp_ms: int + """ + if assessment is not unset: + kwargs["assessment"] = assessment + if boolean_value is not unset: + kwargs["boolean_value"] = boolean_value + if categorical_value is not unset: + kwargs["categorical_value"] = categorical_value + if error is not unset: + kwargs["error"] = error + if json_value is not unset: + kwargs["json_value"] = json_value + if metadata is not unset: + kwargs["metadata"] = metadata + if reasoning is not unset: + kwargs["reasoning"] = reasoning + if score_value is not unset: + kwargs["score_value"] = score_value + if tags is not unset: + kwargs["tags"] = tags + super().__init__(kwargs) + + self_.label = label + self_.metric_type = metric_type + self_.span_id = span_id + self_.timestamp_ms = timestamp_ms diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_metric_error.py b/src/datadog_api_client/v2/model/llm_obs_experiment_metric_error.py new file mode 100644 index 0000000000..ca37fac806 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_metric_error.py @@ -0,0 +1,36 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class LLMObsExperimentMetricError(ModelNormal): + @cached_property + def openapi_types(_): + return { + "message": (str,), + } + + attribute_map = { + "message": "message", + } + + def __init__(self_, message: Union[str, UnsetType] = unset, **kwargs): + """ + Error details for an experiment metric evaluation. + + :param message: Error message associated with the metric evaluation. + :type message: str, optional + """ + if message is not unset: + kwargs["message"] = message + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_request.py new file mode 100644 index 0000000000..9c56b6c3de --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_data_request import LLMObsExperimentDataRequest + + +class LLMObsExperimentRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_data_request import LLMObsExperimentDataRequest + + return { + "data": (LLMObsExperimentDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsExperimentDataRequest, **kwargs): + """ + Request to create an LLM Observability experiment. + + :param data: Data object for creating an LLM Observability experiment. + :type data: LLMObsExperimentDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_response.py b/src/datadog_api_client/v2/model/llm_obs_experiment_response.py new file mode 100644 index 0000000000..dffb84c665 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_data_response import LLMObsExperimentDataResponse + + +class LLMObsExperimentResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_data_response import LLMObsExperimentDataResponse + + return { + "data": (LLMObsExperimentDataResponse,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsExperimentDataResponse, **kwargs): + """ + Response containing a single LLM Observability experiment. + + :param data: Data object for an LLM Observability experiment. + :type data: LLMObsExperimentDataResponse + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_span.py b/src/datadog_api_client/v2/model/llm_obs_experiment_span.py new file mode 100644 index 0000000000..120f1c67fc --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_span.py @@ -0,0 +1,111 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_span_meta import LLMObsExperimentSpanMeta + + +class LLMObsExperimentSpan(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_span_meta import LLMObsExperimentSpanMeta + + return { + "dataset_id": (str,), + "duration": (int,), + "meta": (LLMObsExperimentSpanMeta,), + "name": (str,), + "project_id": (str,), + "span_id": (str,), + "start_ns": (int,), + "status": (str,), + "tags": ([str],), + "trace_id": (str,), + } + + attribute_map = { + "dataset_id": "dataset_id", + "duration": "duration", + "meta": "meta", + "name": "name", + "project_id": "project_id", + "span_id": "span_id", + "start_ns": "start_ns", + "status": "status", + "tags": "tags", + "trace_id": "trace_id", + } + + def __init__( + self_, + dataset_id: str, + duration: int, + name: str, + project_id: str, + span_id: str, + start_ns: int, + status: str, + trace_id: str, + meta: Union[LLMObsExperimentSpanMeta, UnsetType] = unset, + tags: Union[List[str], UnsetType] = unset, + **kwargs, + ): + """ + A span associated with an LLM Observability experiment. + + :param dataset_id: Dataset ID associated with this span. + :type dataset_id: str + + :param duration: Duration of the span in nanoseconds. + :type duration: int + + :param meta: Metadata associated with an experiment span. + :type meta: LLMObsExperimentSpanMeta, optional + + :param name: Name of the span. + :type name: str + + :param project_id: Project ID associated with this span. + :type project_id: str + + :param span_id: Unique identifier of the span. + :type span_id: str + + :param start_ns: Start time of the span in nanoseconds since Unix epoch. + :type start_ns: int + + :param status: Status of the span. + :type status: str + + :param tags: List of tags associated with the span. + :type tags: [str], optional + + :param trace_id: Trace ID for the span. + :type trace_id: str + """ + if meta is not unset: + kwargs["meta"] = meta + if tags is not unset: + kwargs["tags"] = tags + super().__init__(kwargs) + + self_.dataset_id = dataset_id + self_.duration = duration + self_.name = name + self_.project_id = project_id + self_.span_id = span_id + self_.start_ns = start_ns + self_.status = status + self_.trace_id = trace_id diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_span_error.py b/src/datadog_api_client/v2/model/llm_obs_experiment_span_error.py new file mode 100644 index 0000000000..1cf4e3e06c --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_span_error.py @@ -0,0 +1,56 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class LLMObsExperimentSpanError(ModelNormal): + @cached_property + def openapi_types(_): + return { + "message": (str,), + "stack": (str,), + "type": (str,), + } + + attribute_map = { + "message": "message", + "stack": "stack", + "type": "type", + } + + def __init__( + self_, + message: Union[str, UnsetType] = unset, + stack: Union[str, UnsetType] = unset, + type: Union[str, UnsetType] = unset, + **kwargs, + ): + """ + Error details for an experiment span. + + :param message: Error message. + :type message: str, optional + + :param stack: Stack trace of the error. + :type stack: str, optional + + :param type: Type or class of the error. + :type type: str, optional + """ + if message is not unset: + kwargs["message"] = message + if stack is not unset: + kwargs["stack"] = stack + if type is not unset: + kwargs["type"] = type + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_span_meta.py b/src/datadog_api_client/v2/model/llm_obs_experiment_span_meta.py new file mode 100644 index 0000000000..f48a553f50 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_span_meta.py @@ -0,0 +1,105 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Any, Dict, List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + date, + datetime, + none_type, + unset, + UnsetType, + UUID, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_span_error import LLMObsExperimentSpanError + from datadog_api_client.v2.model.any_value import AnyValue + from datadog_api_client.v2.model.any_value_object import AnyValueObject + from datadog_api_client.v2.model.any_value_item import AnyValueItem + + +class LLMObsExperimentSpanMeta(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_span_error import LLMObsExperimentSpanError + from datadog_api_client.v2.model.any_value import AnyValue + + return { + "error": (LLMObsExperimentSpanError,), + "expected_output": ( + { + str: ( + bool, + date, + datetime, + dict, + float, + int, + list, + str, + UUID, + none_type, + ) + }, + ), + "input": (AnyValue,), + "output": (AnyValue,), + } + + attribute_map = { + "error": "error", + "expected_output": "expected_output", + "input": "input", + "output": "output", + } + + def __init__( + self_, + error: Union[LLMObsExperimentSpanError, UnsetType] = unset, + expected_output: Union[Dict[str, Any], UnsetType] = unset, + input: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + UnsetType, + ] = unset, + output: Union[ + Union[ + AnyValue, str, float, AnyValueObject, List[Union[AnyValueItem, str, float, AnyValueObject, bool]], bool + ], + none_type, + UnsetType, + ] = unset, + **kwargs, + ): + """ + Metadata associated with an experiment span. + + :param error: Error details for an experiment span. + :type error: LLMObsExperimentSpanError, optional + + :param expected_output: Expected output for the span, used for evaluation. + :type expected_output: {str: (bool, date, datetime, dict, float, int, list, str, UUID, none_type,)}, optional + + :param input: Represents any valid JSON value. + :type input: AnyValue, none_type, optional + + :param output: Represents any valid JSON value. + :type output: AnyValue, none_type, optional + """ + if error is not unset: + kwargs["error"] = error + if expected_output is not unset: + kwargs["expected_output"] = expected_output + if input is not unset: + kwargs["input"] = input + if output is not unset: + kwargs["output"] = output + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_type.py b/src/datadog_api_client/v2/model/llm_obs_experiment_type.py new file mode 100644 index 0000000000..e687b811f7 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class LLMObsExperimentType(ModelSimple): + """ + Resource type of an LLM Observability experiment. + + :param value: If omitted defaults to "experiments". Must be one of ["experiments"]. + :type value: str + """ + + allowed_values = { + "experiments", + } + EXPERIMENTS: ClassVar["LLMObsExperimentType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +LLMObsExperimentType.EXPERIMENTS = LLMObsExperimentType("experiments") diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_update_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_update_data_attributes_request.py new file mode 100644 index 0000000000..8f291443df --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_update_data_attributes_request.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class LLMObsExperimentUpdateDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "description": (str,), + "name": (str,), + } + + attribute_map = { + "description": "description", + "name": "name", + } + + def __init__(self_, description: Union[str, UnsetType] = unset, name: Union[str, UnsetType] = unset, **kwargs): + """ + Attributes for updating an LLM Observability experiment. + + :param description: Updated description of the experiment. + :type description: str, optional + + :param name: Updated name of the experiment. + :type name: str, optional + """ + if description is not unset: + kwargs["description"] = description + if name is not unset: + kwargs["name"] = name + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_update_data_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_update_data_request.py new file mode 100644 index 0000000000..5a3bd75701 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_update_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_update_data_attributes_request import ( + LLMObsExperimentUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + +class LLMObsExperimentUpdateDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_update_data_attributes_request import ( + LLMObsExperimentUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType + + return { + "attributes": (LLMObsExperimentUpdateDataAttributesRequest,), + "type": (LLMObsExperimentType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsExperimentUpdateDataAttributesRequest, type: LLMObsExperimentType, **kwargs): + """ + Data object for updating an LLM Observability experiment. + + :param attributes: Attributes for updating an LLM Observability experiment. + :type attributes: LLMObsExperimentUpdateDataAttributesRequest + + :param type: Resource type of an LLM Observability experiment. + :type type: LLMObsExperimentType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_experiment_update_request.py b/src/datadog_api_client/v2/model/llm_obs_experiment_update_request.py new file mode 100644 index 0000000000..ba9a302d78 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiment_update_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_update_data_request import LLMObsExperimentUpdateDataRequest + + +class LLMObsExperimentUpdateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_update_data_request import LLMObsExperimentUpdateDataRequest + + return { + "data": (LLMObsExperimentUpdateDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsExperimentUpdateDataRequest, **kwargs): + """ + Request to partially update an LLM Observability experiment. + + :param data: Data object for updating an LLM Observability experiment. + :type data: LLMObsExperimentUpdateDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_experiments_response.py b/src/datadog_api_client/v2/model/llm_obs_experiments_response.py new file mode 100644 index 0000000000..aa819baa18 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_experiments_response.py @@ -0,0 +1,53 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_experiment_data_response import LLMObsExperimentDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + +class LLMObsExperimentsResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_experiment_data_response import LLMObsExperimentDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + return { + "data": ([LLMObsExperimentDataResponse],), + "meta": (LLMObsCursorMeta,), + } + + attribute_map = { + "data": "data", + "meta": "meta", + } + + def __init__( + self_, data: List[LLMObsExperimentDataResponse], meta: Union[LLMObsCursorMeta, UnsetType] = unset, **kwargs + ): + """ + Response containing a list of LLM Observability experiments. + + :param data: List of experiments. + :type data: [LLMObsExperimentDataResponse] + + :param meta: Pagination cursor metadata. + :type meta: LLMObsCursorMeta, optional + """ + if meta is not unset: + kwargs["meta"] = meta + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_metric_assessment.py b/src/datadog_api_client/v2/model/llm_obs_metric_assessment.py new file mode 100644 index 0000000000..581d555db1 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_metric_assessment.py @@ -0,0 +1,38 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class LLMObsMetricAssessment(ModelSimple): + """ + Assessment result for an LLM Observability experiment metric. + + :param value: Must be one of ["pass", "fail"]. + :type value: str + """ + + allowed_values = { + "pass", + "fail", + } + PASS: ClassVar["LLMObsMetricAssessment"] + FAIL: ClassVar["LLMObsMetricAssessment"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +LLMObsMetricAssessment.PASS = LLMObsMetricAssessment("pass") +LLMObsMetricAssessment.FAIL = LLMObsMetricAssessment("fail") diff --git a/src/datadog_api_client/v2/model/llm_obs_metric_score_type.py b/src/datadog_api_client/v2/model/llm_obs_metric_score_type.py new file mode 100644 index 0000000000..05d3a926d3 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_metric_score_type.py @@ -0,0 +1,44 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class LLMObsMetricScoreType(ModelSimple): + """ + Type of metric recorded for an LLM Observability experiment. + + :param value: Must be one of ["score", "categorical", "boolean", "json"]. + :type value: str + """ + + allowed_values = { + "score", + "categorical", + "boolean", + "json", + } + SCORE: ClassVar["LLMObsMetricScoreType"] + CATEGORICAL: ClassVar["LLMObsMetricScoreType"] + BOOLEAN: ClassVar["LLMObsMetricScoreType"] + JSON: ClassVar["LLMObsMetricScoreType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +LLMObsMetricScoreType.SCORE = LLMObsMetricScoreType("score") +LLMObsMetricScoreType.CATEGORICAL = LLMObsMetricScoreType("categorical") +LLMObsMetricScoreType.BOOLEAN = LLMObsMetricScoreType("boolean") +LLMObsMetricScoreType.JSON = LLMObsMetricScoreType("json") diff --git a/src/datadog_api_client/v2/model/llm_obs_project_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_project_data_attributes_request.py new file mode 100644 index 0000000000..467d81e9d6 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_data_attributes_request.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class LLMObsProjectDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "description": (str,), + "name": (str,), + } + + attribute_map = { + "description": "description", + "name": "name", + } + + def __init__(self_, name: str, description: Union[str, UnsetType] = unset, **kwargs): + """ + Attributes for creating an LLM Observability project. + + :param description: Description of the project. + :type description: str, optional + + :param name: Name of the project. + :type name: str + """ + if description is not unset: + kwargs["description"] = description + super().__init__(kwargs) + + self_.name = name diff --git a/src/datadog_api_client/v2/model/llm_obs_project_data_attributes_response.py b/src/datadog_api_client/v2/model/llm_obs_project_data_attributes_response.py new file mode 100644 index 0000000000..ee1b40b4e3 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_data_attributes_response.py @@ -0,0 +1,56 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + datetime, + none_type, +) + + +class LLMObsProjectDataAttributesResponse(ModelNormal): + @cached_property + def openapi_types(_): + return { + "created_at": (datetime,), + "description": (str, none_type), + "name": (str,), + "updated_at": (datetime,), + } + + attribute_map = { + "created_at": "created_at", + "description": "description", + "name": "name", + "updated_at": "updated_at", + } + + def __init__( + self_, created_at: datetime, description: Union[str, none_type], name: str, updated_at: datetime, **kwargs + ): + """ + Attributes of an LLM Observability project. + + :param created_at: Timestamp when the project was created. + :type created_at: datetime + + :param description: Description of the project. + :type description: str, none_type + + :param name: Name of the project. + :type name: str + + :param updated_at: Timestamp when the project was last updated. + :type updated_at: datetime + """ + super().__init__(kwargs) + + self_.created_at = created_at + self_.description = description + self_.name = name + self_.updated_at = updated_at diff --git a/src/datadog_api_client/v2/model/llm_obs_project_data_request.py b/src/datadog_api_client/v2/model/llm_obs_project_data_request.py new file mode 100644 index 0000000000..3db8e46a1e --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_data_request.py @@ -0,0 +1,50 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_project_data_attributes_request import LLMObsProjectDataAttributesRequest + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + +class LLMObsProjectDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_project_data_attributes_request import ( + LLMObsProjectDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + return { + "attributes": (LLMObsProjectDataAttributesRequest,), + "type": (LLMObsProjectType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsProjectDataAttributesRequest, type: LLMObsProjectType, **kwargs): + """ + Data object for creating an LLM Observability project. + + :param attributes: Attributes for creating an LLM Observability project. + :type attributes: LLMObsProjectDataAttributesRequest + + :param type: Resource type of an LLM Observability project. + :type type: LLMObsProjectType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_project_data_response.py b/src/datadog_api_client/v2/model/llm_obs_project_data_response.py new file mode 100644 index 0000000000..2ebca906cc --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_data_response.py @@ -0,0 +1,56 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_project_data_attributes_response import LLMObsProjectDataAttributesResponse + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + +class LLMObsProjectDataResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_project_data_attributes_response import ( + LLMObsProjectDataAttributesResponse, + ) + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + return { + "attributes": (LLMObsProjectDataAttributesResponse,), + "id": (str,), + "type": (LLMObsProjectType,), + } + + attribute_map = { + "attributes": "attributes", + "id": "id", + "type": "type", + } + + def __init__(self_, attributes: LLMObsProjectDataAttributesResponse, id: str, type: LLMObsProjectType, **kwargs): + """ + Data object for an LLM Observability project. + + :param attributes: Attributes of an LLM Observability project. + :type attributes: LLMObsProjectDataAttributesResponse + + :param id: Unique identifier of the project. + :type id: str + + :param type: Resource type of an LLM Observability project. + :type type: LLMObsProjectType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.id = id + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_project_request.py b/src/datadog_api_client/v2/model/llm_obs_project_request.py new file mode 100644 index 0000000000..1aed7a3a26 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_project_data_request import LLMObsProjectDataRequest + + +class LLMObsProjectRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_project_data_request import LLMObsProjectDataRequest + + return { + "data": (LLMObsProjectDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsProjectDataRequest, **kwargs): + """ + Request to create an LLM Observability project. + + :param data: Data object for creating an LLM Observability project. + :type data: LLMObsProjectDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_project_response.py b/src/datadog_api_client/v2/model/llm_obs_project_response.py new file mode 100644 index 0000000000..672546aceb --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_response.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_project_data_response import LLMObsProjectDataResponse + + +class LLMObsProjectResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_project_data_response import LLMObsProjectDataResponse + + return { + "data": (LLMObsProjectDataResponse,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsProjectDataResponse, **kwargs): + """ + Response containing a single LLM Observability project. + + :param data: Data object for an LLM Observability project. + :type data: LLMObsProjectDataResponse + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_project_type.py b/src/datadog_api_client/v2/model/llm_obs_project_type.py new file mode 100644 index 0000000000..4023710f99 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class LLMObsProjectType(ModelSimple): + """ + Resource type of an LLM Observability project. + + :param value: If omitted defaults to "projects". Must be one of ["projects"]. + :type value: str + """ + + allowed_values = { + "projects", + } + PROJECTS: ClassVar["LLMObsProjectType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +LLMObsProjectType.PROJECTS = LLMObsProjectType("projects") diff --git a/src/datadog_api_client/v2/model/llm_obs_project_update_data_attributes_request.py b/src/datadog_api_client/v2/model/llm_obs_project_update_data_attributes_request.py new file mode 100644 index 0000000000..8c48498a70 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_update_data_attributes_request.py @@ -0,0 +1,43 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import Union + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +class LLMObsProjectUpdateDataAttributesRequest(ModelNormal): + @cached_property + def openapi_types(_): + return { + "description": (str,), + "name": (str,), + } + + attribute_map = { + "description": "description", + "name": "name", + } + + def __init__(self_, description: Union[str, UnsetType] = unset, name: Union[str, UnsetType] = unset, **kwargs): + """ + Attributes for updating an LLM Observability project. + + :param description: Updated description of the project. + :type description: str, optional + + :param name: Updated name of the project. + :type name: str, optional + """ + if description is not unset: + kwargs["description"] = description + if name is not unset: + kwargs["name"] = name + super().__init__(kwargs) diff --git a/src/datadog_api_client/v2/model/llm_obs_project_update_data_request.py b/src/datadog_api_client/v2/model/llm_obs_project_update_data_request.py new file mode 100644 index 0000000000..82af6b640a --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_update_data_request.py @@ -0,0 +1,52 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_project_update_data_attributes_request import ( + LLMObsProjectUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + +class LLMObsProjectUpdateDataRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_project_update_data_attributes_request import ( + LLMObsProjectUpdateDataAttributesRequest, + ) + from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType + + return { + "attributes": (LLMObsProjectUpdateDataAttributesRequest,), + "type": (LLMObsProjectType,), + } + + attribute_map = { + "attributes": "attributes", + "type": "type", + } + + def __init__(self_, attributes: LLMObsProjectUpdateDataAttributesRequest, type: LLMObsProjectType, **kwargs): + """ + Data object for updating an LLM Observability project. + + :param attributes: Attributes for updating an LLM Observability project. + :type attributes: LLMObsProjectUpdateDataAttributesRequest + + :param type: Resource type of an LLM Observability project. + :type type: LLMObsProjectType + """ + super().__init__(kwargs) + + self_.attributes = attributes + self_.type = type diff --git a/src/datadog_api_client/v2/model/llm_obs_project_update_request.py b/src/datadog_api_client/v2/model/llm_obs_project_update_request.py new file mode 100644 index 0000000000..c9de4d604b --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_project_update_request.py @@ -0,0 +1,40 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_project_update_data_request import LLMObsProjectUpdateDataRequest + + +class LLMObsProjectUpdateRequest(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_project_update_data_request import LLMObsProjectUpdateDataRequest + + return { + "data": (LLMObsProjectUpdateDataRequest,), + } + + attribute_map = { + "data": "data", + } + + def __init__(self_, data: LLMObsProjectUpdateDataRequest, **kwargs): + """ + Request to partially update an LLM Observability project. + + :param data: Data object for updating an LLM Observability project. + :type data: LLMObsProjectUpdateDataRequest + """ + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_projects_response.py b/src/datadog_api_client/v2/model/llm_obs_projects_response.py new file mode 100644 index 0000000000..c7703e9d31 --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_projects_response.py @@ -0,0 +1,53 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + +from typing import List, Union, TYPE_CHECKING + +from datadog_api_client.model_utils import ( + ModelNormal, + cached_property, + unset, + UnsetType, +) + + +if TYPE_CHECKING: + from datadog_api_client.v2.model.llm_obs_project_data_response import LLMObsProjectDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + +class LLMObsProjectsResponse(ModelNormal): + @cached_property + def openapi_types(_): + from datadog_api_client.v2.model.llm_obs_project_data_response import LLMObsProjectDataResponse + from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta + + return { + "data": ([LLMObsProjectDataResponse],), + "meta": (LLMObsCursorMeta,), + } + + attribute_map = { + "data": "data", + "meta": "meta", + } + + def __init__( + self_, data: List[LLMObsProjectDataResponse], meta: Union[LLMObsCursorMeta, UnsetType] = unset, **kwargs + ): + """ + Response containing a list of LLM Observability projects. + + :param data: List of projects. + :type data: [LLMObsProjectDataResponse] + + :param meta: Pagination cursor metadata. + :type meta: LLMObsCursorMeta, optional + """ + if meta is not unset: + kwargs["meta"] = meta + super().__init__(kwargs) + + self_.data = data diff --git a/src/datadog_api_client/v2/model/llm_obs_record_type.py b/src/datadog_api_client/v2/model/llm_obs_record_type.py new file mode 100644 index 0000000000..3eadfd6f3a --- /dev/null +++ b/src/datadog_api_client/v2/model/llm_obs_record_type.py @@ -0,0 +1,35 @@ +# Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License. +# This product includes software developed at Datadog (https://www.datadoghq.com/). +# Copyright 2019-Present Datadog, Inc. +from __future__ import annotations + + +from datadog_api_client.model_utils import ( + ModelSimple, + cached_property, +) + +from typing import ClassVar + + +class LLMObsRecordType(ModelSimple): + """ + Resource type of LLM Observability dataset records. + + :param value: If omitted defaults to "records". Must be one of ["records"]. + :type value: str + """ + + allowed_values = { + "records", + } + RECORDS: ClassVar["LLMObsRecordType"] + + @cached_property + def openapi_types(_): + return { + "value": (str,), + } + + +LLMObsRecordType.RECORDS = LLMObsRecordType("records") diff --git a/src/datadog_api_client/v2/models/__init__.py b/src/datadog_api_client/v2/models/__init__.py index f96bb1ec98..5338089b83 100644 --- a/src/datadog_api_client/v2/models/__init__.py +++ b/src/datadog_api_client/v2/models/__init__.py @@ -2812,6 +2812,102 @@ from datadog_api_client.v2.model.kind_metadata import KindMetadata from datadog_api_client.v2.model.kind_obj import KindObj from datadog_api_client.v2.model.kind_response_meta import KindResponseMeta +from datadog_api_client.v2.model.llm_obs_cursor_meta import LLMObsCursorMeta +from datadog_api_client.v2.model.llm_obs_dataset_data_attributes_request import LLMObsDatasetDataAttributesRequest +from datadog_api_client.v2.model.llm_obs_dataset_data_attributes_response import LLMObsDatasetDataAttributesResponse +from datadog_api_client.v2.model.llm_obs_dataset_data_request import LLMObsDatasetDataRequest +from datadog_api_client.v2.model.llm_obs_dataset_data_response import LLMObsDatasetDataResponse +from datadog_api_client.v2.model.llm_obs_dataset_record_data_response import LLMObsDatasetRecordDataResponse +from datadog_api_client.v2.model.llm_obs_dataset_record_item import LLMObsDatasetRecordItem +from datadog_api_client.v2.model.llm_obs_dataset_record_update_item import LLMObsDatasetRecordUpdateItem +from datadog_api_client.v2.model.llm_obs_dataset_records_data_attributes_request import ( + LLMObsDatasetRecordsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_records_data_request import LLMObsDatasetRecordsDataRequest +from datadog_api_client.v2.model.llm_obs_dataset_records_list_response import LLMObsDatasetRecordsListResponse +from datadog_api_client.v2.model.llm_obs_dataset_records_mutation_data import LLMObsDatasetRecordsMutationData +from datadog_api_client.v2.model.llm_obs_dataset_records_mutation_response import LLMObsDatasetRecordsMutationResponse +from datadog_api_client.v2.model.llm_obs_dataset_records_request import LLMObsDatasetRecordsRequest +from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_attributes_request import ( + LLMObsDatasetRecordsUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_records_update_data_request import ( + LLMObsDatasetRecordsUpdateDataRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_records_update_request import LLMObsDatasetRecordsUpdateRequest +from datadog_api_client.v2.model.llm_obs_dataset_request import LLMObsDatasetRequest +from datadog_api_client.v2.model.llm_obs_dataset_response import LLMObsDatasetResponse +from datadog_api_client.v2.model.llm_obs_dataset_type import LLMObsDatasetType +from datadog_api_client.v2.model.llm_obs_dataset_update_data_attributes_request import ( + LLMObsDatasetUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_dataset_update_data_request import LLMObsDatasetUpdateDataRequest +from datadog_api_client.v2.model.llm_obs_dataset_update_request import LLMObsDatasetUpdateRequest +from datadog_api_client.v2.model.llm_obs_datasets_response import LLMObsDatasetsResponse +from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_attributes_request import ( + LLMObsDeleteDatasetRecordsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_dataset_records_data_request import ( + LLMObsDeleteDatasetRecordsDataRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_dataset_records_request import LLMObsDeleteDatasetRecordsRequest +from datadog_api_client.v2.model.llm_obs_delete_datasets_data_attributes_request import ( + LLMObsDeleteDatasetsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_datasets_data_request import LLMObsDeleteDatasetsDataRequest +from datadog_api_client.v2.model.llm_obs_delete_datasets_request import LLMObsDeleteDatasetsRequest +from datadog_api_client.v2.model.llm_obs_delete_experiments_data_attributes_request import ( + LLMObsDeleteExperimentsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_experiments_data_request import LLMObsDeleteExperimentsDataRequest +from datadog_api_client.v2.model.llm_obs_delete_experiments_request import LLMObsDeleteExperimentsRequest +from datadog_api_client.v2.model.llm_obs_delete_projects_data_attributes_request import ( + LLMObsDeleteProjectsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_delete_projects_data_request import LLMObsDeleteProjectsDataRequest +from datadog_api_client.v2.model.llm_obs_delete_projects_request import LLMObsDeleteProjectsRequest +from datadog_api_client.v2.model.llm_obs_event_type import LLMObsEventType +from datadog_api_client.v2.model.llm_obs_experiment_data_attributes_request import LLMObsExperimentDataAttributesRequest +from datadog_api_client.v2.model.llm_obs_experiment_data_attributes_response import ( + LLMObsExperimentDataAttributesResponse, +) +from datadog_api_client.v2.model.llm_obs_experiment_data_request import LLMObsExperimentDataRequest +from datadog_api_client.v2.model.llm_obs_experiment_data_response import LLMObsExperimentDataResponse +from datadog_api_client.v2.model.llm_obs_experiment_events_data_attributes_request import ( + LLMObsExperimentEventsDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_experiment_events_data_request import LLMObsExperimentEventsDataRequest +from datadog_api_client.v2.model.llm_obs_experiment_events_request import LLMObsExperimentEventsRequest +from datadog_api_client.v2.model.llm_obs_experiment_metric import LLMObsExperimentMetric +from datadog_api_client.v2.model.llm_obs_experiment_metric_error import LLMObsExperimentMetricError +from datadog_api_client.v2.model.llm_obs_experiment_request import LLMObsExperimentRequest +from datadog_api_client.v2.model.llm_obs_experiment_response import LLMObsExperimentResponse +from datadog_api_client.v2.model.llm_obs_experiment_span import LLMObsExperimentSpan +from datadog_api_client.v2.model.llm_obs_experiment_span_error import LLMObsExperimentSpanError +from datadog_api_client.v2.model.llm_obs_experiment_span_meta import LLMObsExperimentSpanMeta +from datadog_api_client.v2.model.llm_obs_experiment_type import LLMObsExperimentType +from datadog_api_client.v2.model.llm_obs_experiment_update_data_attributes_request import ( + LLMObsExperimentUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_experiment_update_data_request import LLMObsExperimentUpdateDataRequest +from datadog_api_client.v2.model.llm_obs_experiment_update_request import LLMObsExperimentUpdateRequest +from datadog_api_client.v2.model.llm_obs_experiments_response import LLMObsExperimentsResponse +from datadog_api_client.v2.model.llm_obs_metric_assessment import LLMObsMetricAssessment +from datadog_api_client.v2.model.llm_obs_metric_score_type import LLMObsMetricScoreType +from datadog_api_client.v2.model.llm_obs_project_data_attributes_request import LLMObsProjectDataAttributesRequest +from datadog_api_client.v2.model.llm_obs_project_data_attributes_response import LLMObsProjectDataAttributesResponse +from datadog_api_client.v2.model.llm_obs_project_data_request import LLMObsProjectDataRequest +from datadog_api_client.v2.model.llm_obs_project_data_response import LLMObsProjectDataResponse +from datadog_api_client.v2.model.llm_obs_project_request import LLMObsProjectRequest +from datadog_api_client.v2.model.llm_obs_project_response import LLMObsProjectResponse +from datadog_api_client.v2.model.llm_obs_project_type import LLMObsProjectType +from datadog_api_client.v2.model.llm_obs_project_update_data_attributes_request import ( + LLMObsProjectUpdateDataAttributesRequest, +) +from datadog_api_client.v2.model.llm_obs_project_update_data_request import LLMObsProjectUpdateDataRequest +from datadog_api_client.v2.model.llm_obs_project_update_request import LLMObsProjectUpdateRequest +from datadog_api_client.v2.model.llm_obs_projects_response import LLMObsProjectsResponse +from datadog_api_client.v2.model.llm_obs_record_type import LLMObsRecordType from datadog_api_client.v2.model.language import Language from datadog_api_client.v2.model.launch_darkly_api_key import LaunchDarklyAPIKey from datadog_api_client.v2.model.launch_darkly_api_key_type import LaunchDarklyAPIKeyType @@ -8410,6 +8506,76 @@ "KindMetadata", "KindObj", "KindResponseMeta", + "LLMObsCursorMeta", + "LLMObsDatasetDataAttributesRequest", + "LLMObsDatasetDataAttributesResponse", + "LLMObsDatasetDataRequest", + "LLMObsDatasetDataResponse", + "LLMObsDatasetRecordDataResponse", + "LLMObsDatasetRecordItem", + "LLMObsDatasetRecordUpdateItem", + "LLMObsDatasetRecordsDataAttributesRequest", + "LLMObsDatasetRecordsDataRequest", + "LLMObsDatasetRecordsListResponse", + "LLMObsDatasetRecordsMutationData", + "LLMObsDatasetRecordsMutationResponse", + "LLMObsDatasetRecordsRequest", + "LLMObsDatasetRecordsUpdateDataAttributesRequest", + "LLMObsDatasetRecordsUpdateDataRequest", + "LLMObsDatasetRecordsUpdateRequest", + "LLMObsDatasetRequest", + "LLMObsDatasetResponse", + "LLMObsDatasetType", + "LLMObsDatasetUpdateDataAttributesRequest", + "LLMObsDatasetUpdateDataRequest", + "LLMObsDatasetUpdateRequest", + "LLMObsDatasetsResponse", + "LLMObsDeleteDatasetRecordsDataAttributesRequest", + "LLMObsDeleteDatasetRecordsDataRequest", + "LLMObsDeleteDatasetRecordsRequest", + "LLMObsDeleteDatasetsDataAttributesRequest", + "LLMObsDeleteDatasetsDataRequest", + "LLMObsDeleteDatasetsRequest", + "LLMObsDeleteExperimentsDataAttributesRequest", + "LLMObsDeleteExperimentsDataRequest", + "LLMObsDeleteExperimentsRequest", + "LLMObsDeleteProjectsDataAttributesRequest", + "LLMObsDeleteProjectsDataRequest", + "LLMObsDeleteProjectsRequest", + "LLMObsEventType", + "LLMObsExperimentDataAttributesRequest", + "LLMObsExperimentDataAttributesResponse", + "LLMObsExperimentDataRequest", + "LLMObsExperimentDataResponse", + "LLMObsExperimentEventsDataAttributesRequest", + "LLMObsExperimentEventsDataRequest", + "LLMObsExperimentEventsRequest", + "LLMObsExperimentMetric", + "LLMObsExperimentMetricError", + "LLMObsExperimentRequest", + "LLMObsExperimentResponse", + "LLMObsExperimentSpan", + "LLMObsExperimentSpanError", + "LLMObsExperimentSpanMeta", + "LLMObsExperimentType", + "LLMObsExperimentUpdateDataAttributesRequest", + "LLMObsExperimentUpdateDataRequest", + "LLMObsExperimentUpdateRequest", + "LLMObsExperimentsResponse", + "LLMObsMetricAssessment", + "LLMObsMetricScoreType", + "LLMObsProjectDataAttributesRequest", + "LLMObsProjectDataAttributesResponse", + "LLMObsProjectDataRequest", + "LLMObsProjectDataResponse", + "LLMObsProjectRequest", + "LLMObsProjectResponse", + "LLMObsProjectType", + "LLMObsProjectUpdateDataAttributesRequest", + "LLMObsProjectUpdateDataRequest", + "LLMObsProjectUpdateRequest", + "LLMObsProjectsResponse", + "LLMObsRecordType", "Language", "LaunchDarklyAPIKey", "LaunchDarklyAPIKeyType", diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen index 957e037f23..62723cd8d2 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen +++ b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.frozen @@ -1 +1 @@ -2026-02-18T16:57:05.121Z \ No newline at end of file +2026-01-07T12:38:45.716Z \ No newline at end of file diff --git a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml index ee353eaab8..d29e21551c 100644 --- a/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml +++ b/tests/v2/cassettes/test_scenarios/test_create_a_test_suite_returns_ok_response.yaml @@ -11,10 +11,10 @@ interactions: uri: https://api.datadoghq.com/api/v2/synthetics/suites response: body: - string: '{"data":{"type":"suites","attributes":{"type":"suite","monitor_id":259845717,"name":"Example - suite name","options":{},"tests":[],"tags":["env:production"],"public_id":"hik-xp5-9q6","created_at":"2026-02-18T16:57:05.583051+00:00","modified_at":"2026-02-18T16:57:05.583051+00:00","created_by":{"name":"Corentin - Girard","email":"corentin.girard@datadoghq.com","handle":"corentin.girard@datadoghq.com"},"message":"Notification - message","org_id":321813,"modified_by":{"name":"Corentin Girard","email":"corentin.girard@datadoghq.com","handle":"corentin.girard@datadoghq.com"}},"id":"hik-xp5-9q6"}} + string: '{"data":{"type":"suites","id":"36n-bb6-njj","attributes":{"tags":["env:production"],"type":"suite","created_by":{"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"created_at":"2026-01-07T12:38:46.109472+00:00","modified_at":"2026-01-07T12:38:46.109472+00:00","message":"Notification + message","public_id":"36n-bb6-njj","options":{},"modified_by":{"email":"team-intg-tools-libs-spam@datadoghq.com","handle":"9919ec9b-ebc7-49ee-8dc8-03626e717cca","name":"CI + Account"},"tests":[],"name":"Example suite name","org_id":321813,"monitor_id":249141773}}} ' headers: @@ -24,7 +24,7 @@ interactions: code: 200 message: OK - request: - body: '{"data":{"attributes":{"public_ids":["hik-xp5-9q6"]},"type":"delete_suites_request"}}' + body: '{"data":{"attributes":{"public_ids":["36n-bb6-njj"]},"type":"delete_suites_request"}}' headers: accept: - application/json @@ -34,7 +34,8 @@ interactions: uri: https://api.datadoghq.com/api/v2/synthetics/suites/bulk-delete response: body: - string: '{"data":[{"type":"suites","attributes":{"deleted_at":"2026-02-18 16:57:06.420679","public_id":"hik-xp5-9q6"},"id":"hik-xp5-9q6"}]} + string: '{"data":[{"type":"suites","attributes":{"public_id":"36n-bb6-njj","deleted_at":"2026-01-07 + 12:38:46.679914"},"id":"36n-bb6-njj"}]} ' headers: diff --git a/tests/v2/features/llm_observability.feature b/tests/v2/features/llm_observability.feature new file mode 100644 index 0000000000..8462c65eed --- /dev/null +++ b/tests/v2/features/llm_observability.feature @@ -0,0 +1,442 @@ +@endpoint(llm-observability) @endpoint(llm-observability-v2) +Feature: LLM Observability + Manage LLM Observability projects, datasets, dataset records, and + experiments via the Experiments API. + + Background: + Given a valid "apiKeyAuth" key in the system + And a valid "appKeyAuth" key in the system + And an instance of "LLMObservability" API + + @generated @skip @team:DataDog/ml-observability + Scenario: Append records to an LLM Observability dataset returns "Bad Request" response + Given operation "CreateLLMObsDatasetRecords" enabled + And new "CreateLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"records": [{"expected_output": null, "input": null}]}, "type": "records"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Append records to an LLM Observability dataset returns "Created" response + Given operation "CreateLLMObsDatasetRecords" enabled + And new "CreateLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"records": [{"expected_output": null, "input": null}]}, "type": "records"}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/ml-observability + Scenario: Append records to an LLM Observability dataset returns "Not Found" response + Given operation "CreateLLMObsDatasetRecords" enabled + And new "CreateLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"records": [{"expected_output": null, "input": null}]}, "type": "records"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Append records to an LLM Observability dataset returns "OK" response + Given operation "CreateLLMObsDatasetRecords" enabled + And new "CreateLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"records": [{"expected_output": null, "input": null}]}, "type": "records"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability dataset returns "Bad Request" response + Given operation "CreateLLMObsDataset" enabled + And new "CreateLLMObsDataset" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "My LLM Dataset"}, "type": "datasets"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability dataset returns "Created" response + Given operation "CreateLLMObsDataset" enabled + And new "CreateLLMObsDataset" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "My LLM Dataset"}, "type": "datasets"}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability dataset returns "Not Found" response + Given operation "CreateLLMObsDataset" enabled + And new "CreateLLMObsDataset" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "My LLM Dataset"}, "type": "datasets"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability dataset returns "OK" response + Given operation "CreateLLMObsDataset" enabled + And new "CreateLLMObsDataset" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"name": "My LLM Dataset"}, "type": "datasets"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability experiment returns "Bad Request" response + Given operation "CreateLLMObsExperiment" enabled + And new "CreateLLMObsExperiment" request + And body with value {"data": {"attributes": {"dataset_id": "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", "name": "My Experiment v1", "project_id": "a33671aa-24fd-4dcd-9b33-a8ec7dde7751"}, "type": "experiments"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability experiment returns "Created" response + Given operation "CreateLLMObsExperiment" enabled + And new "CreateLLMObsExperiment" request + And body with value {"data": {"attributes": {"dataset_id": "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", "name": "My Experiment v1", "project_id": "a33671aa-24fd-4dcd-9b33-a8ec7dde7751"}, "type": "experiments"}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability experiment returns "OK" response + Given operation "CreateLLMObsExperiment" enabled + And new "CreateLLMObsExperiment" request + And body with value {"data": {"attributes": {"dataset_id": "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", "name": "My Experiment v1", "project_id": "a33671aa-24fd-4dcd-9b33-a8ec7dde7751"}, "type": "experiments"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability project returns "Bad Request" response + Given operation "CreateLLMObsProject" enabled + And new "CreateLLMObsProject" request + And body with value {"data": {"attributes": {"name": "My LLM Project"}, "type": "projects"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability project returns "Created" response + Given operation "CreateLLMObsProject" enabled + And new "CreateLLMObsProject" request + And body with value {"data": {"attributes": {"name": "My LLM Project"}, "type": "projects"}} + When the request is sent + Then the response status is 201 Created + + @generated @skip @team:DataDog/ml-observability + Scenario: Create an LLM Observability project returns "OK" response + Given operation "CreateLLMObsProject" enabled + And new "CreateLLMObsProject" request + And body with value {"data": {"attributes": {"name": "My LLM Project"}, "type": "projects"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability dataset records returns "Bad Request" response + Given operation "DeleteLLMObsDatasetRecords" enabled + And new "DeleteLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"record_ids": ["rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c"]}, "type": "records"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability dataset records returns "No Content" response + Given operation "DeleteLLMObsDatasetRecords" enabled + And new "DeleteLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"record_ids": ["rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c"]}, "type": "records"}} + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability dataset records returns "Not Found" response + Given operation "DeleteLLMObsDatasetRecords" enabled + And new "DeleteLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"record_ids": ["rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c"]}, "type": "records"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability datasets returns "Bad Request" response + Given operation "DeleteLLMObsDatasets" enabled + And new "DeleteLLMObsDatasets" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"dataset_ids": ["9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d"]}, "type": "datasets"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability datasets returns "No Content" response + Given operation "DeleteLLMObsDatasets" enabled + And new "DeleteLLMObsDatasets" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"dataset_ids": ["9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d"]}, "type": "datasets"}} + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability datasets returns "Not Found" response + Given operation "DeleteLLMObsDatasets" enabled + And new "DeleteLLMObsDatasets" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"dataset_ids": ["9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d"]}, "type": "datasets"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability experiments returns "Bad Request" response + Given operation "DeleteLLMObsExperiments" enabled + And new "DeleteLLMObsExperiments" request + And body with value {"data": {"attributes": {"experiment_ids": ["3fd6b5e0-8910-4b1c-a7d0-5b84de329012"]}, "type": "experiments"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability experiments returns "No Content" response + Given operation "DeleteLLMObsExperiments" enabled + And new "DeleteLLMObsExperiments" request + And body with value {"data": {"attributes": {"experiment_ids": ["3fd6b5e0-8910-4b1c-a7d0-5b84de329012"]}, "type": "experiments"}} + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability projects returns "Bad Request" response + Given operation "DeleteLLMObsProjects" enabled + And new "DeleteLLMObsProjects" request + And body with value {"data": {"attributes": {"project_ids": ["a33671aa-24fd-4dcd-9b33-a8ec7dde7751"]}, "type": "projects"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Delete LLM Observability projects returns "No Content" response + Given operation "DeleteLLMObsProjects" enabled + And new "DeleteLLMObsProjects" request + And body with value {"data": {"attributes": {"project_ids": ["a33671aa-24fd-4dcd-9b33-a8ec7dde7751"]}, "type": "projects"}} + When the request is sent + Then the response status is 204 No Content + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability dataset records returns "Bad Request" response + Given operation "ListLLMObsDatasetRecords" enabled + And new "ListLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability dataset records returns "Not Found" response + Given operation "ListLLMObsDatasetRecords" enabled + And new "ListLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability dataset records returns "OK" response + Given operation "ListLLMObsDatasetRecords" enabled + And new "ListLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability datasets returns "Bad Request" response + Given operation "ListLLMObsDatasets" enabled + And new "ListLLMObsDatasets" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability datasets returns "Not Found" response + Given operation "ListLLMObsDatasets" enabled + And new "ListLLMObsDatasets" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability datasets returns "OK" response + Given operation "ListLLMObsDatasets" enabled + And new "ListLLMObsDatasets" request + And request contains "project_id" parameter from "REPLACE.ME" + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability experiments returns "Bad Request" response + Given operation "ListLLMObsExperiments" enabled + And new "ListLLMObsExperiments" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability experiments returns "OK" response + Given operation "ListLLMObsExperiments" enabled + And new "ListLLMObsExperiments" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability projects returns "Bad Request" response + Given operation "ListLLMObsProjects" enabled + And new "ListLLMObsProjects" request + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: List LLM Observability projects returns "OK" response + Given operation "ListLLMObsProjects" enabled + And new "ListLLMObsProjects" request + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Push events for an LLM Observability experiment returns "Accepted" response + Given operation "CreateLLMObsExperimentEvents" enabled + And new "CreateLLMObsExperimentEvents" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"assessment": "pass", "error": {}, "label": "faithfulness", "metric_type": "score", "span_id": "span-7a1b2c3d", "tags": [], "timestamp_ms": 1705314600000}], "spans": [{"dataset_id": "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", "duration": 1500000000, "meta": {"error": {}, "input": null, "output": null}, "name": "llm_call", "project_id": "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "span_id": "span-7a1b2c3d", "start_ns": 1705314600000000000, "status": "ok", "tags": [], "trace_id": "abc123def456"}]}, "type": "events"}} + When the request is sent + Then the response status is 202 Accepted + + @generated @skip @team:DataDog/ml-observability + Scenario: Push events for an LLM Observability experiment returns "Bad Request" response + Given operation "CreateLLMObsExperimentEvents" enabled + And new "CreateLLMObsExperimentEvents" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"assessment": "pass", "error": {}, "label": "faithfulness", "metric_type": "score", "span_id": "span-7a1b2c3d", "tags": [], "timestamp_ms": 1705314600000}], "spans": [{"dataset_id": "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", "duration": 1500000000, "meta": {"error": {}, "input": null, "output": null}, "name": "llm_call", "project_id": "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "span_id": "span-7a1b2c3d", "start_ns": 1705314600000000000, "status": "ok", "tags": [], "trace_id": "abc123def456"}]}, "type": "events"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Push events for an LLM Observability experiment returns "Not Found" response + Given operation "CreateLLMObsExperimentEvents" enabled + And new "CreateLLMObsExperimentEvents" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"metrics": [{"assessment": "pass", "error": {}, "label": "faithfulness", "metric_type": "score", "span_id": "span-7a1b2c3d", "tags": [], "timestamp_ms": 1705314600000}], "spans": [{"dataset_id": "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", "duration": 1500000000, "meta": {"error": {}, "input": null, "output": null}, "name": "llm_call", "project_id": "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "span_id": "span-7a1b2c3d", "start_ns": 1705314600000000000, "status": "ok", "tags": [], "trace_id": "abc123def456"}]}, "type": "events"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Update LLM Observability dataset records returns "Bad Request" response + Given operation "UpdateLLMObsDatasetRecords" enabled + And new "UpdateLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"records": [{"expected_output": null, "id": "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c", "input": null}]}, "type": "records"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Update LLM Observability dataset records returns "Not Found" response + Given operation "UpdateLLMObsDatasetRecords" enabled + And new "UpdateLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"records": [{"expected_output": null, "id": "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c", "input": null}]}, "type": "records"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Update LLM Observability dataset records returns "OK" response + Given operation "UpdateLLMObsDatasetRecords" enabled + And new "UpdateLLMObsDatasetRecords" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {"records": [{"expected_output": null, "id": "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c", "input": null}]}, "type": "records"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability dataset returns "Bad Request" response + Given operation "UpdateLLMObsDataset" enabled + And new "UpdateLLMObsDataset" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "datasets"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability dataset returns "Not Found" response + Given operation "UpdateLLMObsDataset" enabled + And new "UpdateLLMObsDataset" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "datasets"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability dataset returns "OK" response + Given operation "UpdateLLMObsDataset" enabled + And new "UpdateLLMObsDataset" request + And request contains "project_id" parameter from "REPLACE.ME" + And request contains "dataset_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "datasets"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability experiment returns "Bad Request" response + Given operation "UpdateLLMObsExperiment" enabled + And new "UpdateLLMObsExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "experiments"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability experiment returns "Not Found" response + Given operation "UpdateLLMObsExperiment" enabled + And new "UpdateLLMObsExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "experiments"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability experiment returns "OK" response + Given operation "UpdateLLMObsExperiment" enabled + And new "UpdateLLMObsExperiment" request + And request contains "experiment_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "experiments"}} + When the request is sent + Then the response status is 200 OK + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability project returns "Bad Request" response + Given operation "UpdateLLMObsProject" enabled + And new "UpdateLLMObsProject" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "projects"}} + When the request is sent + Then the response status is 400 Bad Request + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability project returns "Not Found" response + Given operation "UpdateLLMObsProject" enabled + And new "UpdateLLMObsProject" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "projects"}} + When the request is sent + Then the response status is 404 Not Found + + @generated @skip @team:DataDog/ml-observability + Scenario: Update an LLM Observability project returns "OK" response + Given operation "UpdateLLMObsProject" enabled + And new "UpdateLLMObsProject" request + And request contains "project_id" parameter from "REPLACE.ME" + And body with value {"data": {"attributes": {}, "type": "projects"}} + When the request is sent + Then the response status is 200 OK diff --git a/tests/v2/features/undo.json b/tests/v2/features/undo.json index 09186eef67..80e23efba9 100644 --- a/tests/v2/features/undo.json +++ b/tests/v2/features/undo.json @@ -2846,6 +2846,135 @@ "type": "idempotent" } }, + "ListLLMObsExperiments": { + "tag": "LLM Observability", + "undo": { + "type": "safe" + } + }, + "CreateLLMObsExperiment": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "DeleteLLMObsExperiments": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "UpdateLLMObsExperiment": { + "tag": "LLM Observability", + "undo": { + "type": "idempotent" + } + }, + "CreateLLMObsExperimentEvents": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "ListLLMObsProjects": { + "tag": "LLM Observability", + "undo": { + "type": "safe" + } + }, + "CreateLLMObsProject": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "DeleteLLMObsProjects": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "UpdateLLMObsProject": { + "tag": "LLM Observability", + "undo": { + "type": "idempotent" + } + }, + "ListLLMObsDatasets": { + "tag": "LLM Observability", + "undo": { + "type": "safe" + } + }, + "CreateLLMObsDataset": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "DeleteLLMObsDatasets": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, + "UpdateLLMObsDataset": { + "tag": "LLM Observability", + "undo": { + "type": "idempotent" + } + }, + "ListLLMObsDatasetRecords": { + "tag": "LLM Observability", + "undo": { + "type": "safe" + } + }, + "UpdateLLMObsDatasetRecords": { + "tag": "LLM Observability", + "undo": { + "type": "idempotent" + } + }, + "CreateLLMObsDatasetRecords": { + "tag": "LLM Observability", + "undo": { + "operationId": "DeleteLLMObsDatasetRecords", + "parameters": [ + { + "name": "TODO", + "source": "" + }, + { + "name": "TODO", + "source": "" + } + ], + "type": "unsafe" + } + }, + "DeleteLLMObsDatasetRecords": { + "tag": "LLM Observability", + "undo": { + "operationId": "TODO", + "parameters": [], + "type": "unsafe" + } + }, "SubmitLog": { "tag": "Logs", "undo": {