From 280a92d41dacf08e80f235de4af0e457776ea051 Mon Sep 17 00:00:00 2001 From: "ci.datadog-api-spec" Date: Mon, 2 Mar 2026 08:09:52 +0000 Subject: [PATCH] Regenerate client from commit 07e7017 of spec repo --- .generator/schemas/v2/openapi.yaml | 3335 ++++++++++++---- .../CreateLLMObsDataset.java | 37 + .../CreateLLMObsDatasetRecords.java | 46 + .../CreateLLMObsExperiment.java | 40 + .../CreateLLMObsExperimentEvents.java | 68 + .../CreateLLMObsProject.java | 36 + .../DeleteLLMObsDatasetRecords.java | 40 + .../DeleteLLMObsDatasets.java | 38 + .../DeleteLLMObsExperiments.java | 38 + .../DeleteLLMObsProjects.java | 38 + .../ListLLMObsDatasetRecords.java | 27 + .../llm-observability/ListLLMObsDatasets.java | 26 + .../ListLLMObsExperiments.java | 25 + .../llm-observability/ListLLMObsProjects.java | 25 + .../UpdateLLMObsDataset.java | 38 + .../UpdateLLMObsDatasetRecords.java | 47 + .../UpdateLLMObsExperiment.java | 37 + .../UpdateLLMObsProject.java | 37 + .../com/datadog/api/client/ApiClient.java | 17 + .../client/v2/api/LlmObservabilityApi.java | 3412 +++++++++++++++++ .../api/client/v2/model/LLMObsCursorMeta.java | 146 + .../LLMObsDatasetDataAttributesRequest.java | 209 + .../LLMObsDatasetDataAttributesResponse.java | 300 ++ .../v2/model/LLMObsDatasetDataRequest.java | 181 + .../v2/model/LLMObsDatasetDataResponse.java | 210 + .../LLMObsDatasetRecordDataResponse.java | 339 ++ .../v2/model/LLMObsDatasetRecordItem.java | 225 ++ .../model/LLMObsDatasetRecordUpdateItem.java | 256 ++ ...bsDatasetRecordsDataAttributesRequest.java | 188 + .../LLMObsDatasetRecordsDataRequest.java | 184 + .../LLMObsDatasetRecordsListResponse.java | 187 + .../LLMObsDatasetRecordsMutationData.java | 158 + .../LLMObsDatasetRecordsMutationResponse.java | 158 + .../v2/model/LLMObsDatasetRecordsRequest.java | 147 + ...setRecordsUpdateDataAttributesRequest.java | 162 + ...LLMObsDatasetRecordsUpdateDataRequest.java | 184 + .../LLMObsDatasetRecordsUpdateRequest.java | 148 + .../client/v2/model/LLMObsDatasetRequest.java | 145 + .../v2/model/LLMObsDatasetResponse.java | 145 + .../client/v2/model/LLMObsDatasetType.java | 53 + ...ObsDatasetUpdateDataAttributesRequest.java | 202 + .../model/LLMObsDatasetUpdateDataRequest.java | 184 + .../v2/model/LLMObsDatasetUpdateRequest.java | 147 + .../v2/model/LLMObsDatasetsResponse.java | 185 + ...teDatasetRecordsDataAttributesRequest.java | 155 + ...LLMObsDeleteDatasetRecordsDataRequest.java | 184 + .../LLMObsDeleteDatasetRecordsRequest.java | 148 + ...bsDeleteDatasetsDataAttributesRequest.java | 153 + .../LLMObsDeleteDatasetsDataRequest.java | 184 + .../v2/model/LLMObsDeleteDatasetsRequest.java | 147 + ...eleteExperimentsDataAttributesRequest.java | 157 + .../LLMObsDeleteExperimentsDataRequest.java | 184 + .../model/LLMObsDeleteExperimentsRequest.java | 148 + ...bsDeleteProjectsDataAttributesRequest.java | 153 + .../LLMObsDeleteProjectsDataRequest.java | 184 + .../v2/model/LLMObsDeleteProjectsRequest.java | 147 + .../api/client/v2/model/LLMObsEventType.java | 53 + ...LLMObsExperimentDataAttributesRequest.java | 363 ++ ...LMObsExperimentDataAttributesResponse.java | 372 ++ .../v2/model/LLMObsExperimentDataRequest.java | 182 + .../model/LLMObsExperimentDataResponse.java | 211 + ...ExperimentEventsDataAttributesRequest.java | 195 + .../LLMObsExperimentEventsDataRequest.java | 184 + .../model/LLMObsExperimentEventsRequest.java | 147 + .../v2/model/LLMObsExperimentMetric.java | 523 +++ .../v2/model/LLMObsExperimentMetricError.java | 136 + .../v2/model/LLMObsExperimentRequest.java | 145 + .../v2/model/LLMObsExperimentResponse.java | 146 + .../client/v2/model/LLMObsExperimentSpan.java | 417 ++ .../v2/model/LLMObsExperimentSpanError.java | 192 + .../v2/model/LLMObsExperimentSpanMeta.java | 248 ++ .../client/v2/model/LLMObsExperimentType.java | 55 + ...ExperimentUpdateDataAttributesRequest.java | 168 + .../LLMObsExperimentUpdateDataRequest.java | 184 + .../model/LLMObsExperimentUpdateRequest.java | 147 + .../v2/model/LLMObsExperimentsResponse.java | 186 + .../v2/model/LLMObsMetricAssessment.java | 57 + .../v2/model/LLMObsMetricScoreType.java | 58 + .../LLMObsProjectDataAttributesRequest.java | 174 + .../LLMObsProjectDataAttributesResponse.java | 235 ++ .../v2/model/LLMObsProjectDataRequest.java | 181 + .../v2/model/LLMObsProjectDataResponse.java | 210 + .../client/v2/model/LLMObsProjectRequest.java | 145 + .../v2/model/LLMObsProjectResponse.java | 145 + .../client/v2/model/LLMObsProjectType.java | 53 + ...ObsProjectUpdateDataAttributesRequest.java | 167 + .../model/LLMObsProjectUpdateDataRequest.java | 184 + .../v2/model/LLMObsProjectUpdateRequest.java | 147 + .../v2/model/LLMObsProjectsResponse.java | 185 + .../api/client/v2/model/LLMObsRecordType.java | 53 + ...th_metadata_deserializes_successfully.json | 2 +- ...your_organization_returns_OK_response.json | 2 +- ...te_API_key_returns_Forbidden_response.json | 2 +- .../Validate_API_key_returns_OK_response.json | 2 +- ...g_returns_AWS_Account_object_response.json | 2 +- ...ount_config_returns_Conflict_response.json | 4 +- ...t_config_returns_Bad_Request_response.json | 2 +- ...nt_config_returns_No_Content_response.json | 2 +- ...unt_config_returns_Not_Found_response.json | 2 +- ...turns_AWS_External_ID_object_response.json | 2 +- ...g_returns_AWS_Account_object_response.json | 2 +- ...t_config_returns_Bad_Request_response.json | 2 +- ...unt_config_returns_Not_Found_response.json | 2 +- ...s_AWS_Namespaces_List_object_response.json | 2 +- ...g_returns_AWS_Account_object_response.json | 2 +- ...ive_case_returns_Bad_Request_response.json | 2 +- .../v2/Archive_case_returns_OK_response.json | 2 +- ...ign_case_returns_Bad_Request_response.json | 2 +- .../v2/Assign_case_returns_OK_response.json | 2 +- ...re_items_returns_Bad_Request_response.json | 2 +- ...e_datastore_items_returns_OK_response.json | 2 +- ...re_items_returns_Bad_Request_response.json | 2 +- ..._a_historical_job_returns_OK_response.json | 2 +- ...ent_case_returns_Bad_Request_response.json | 2 +- .../v2/Comment_case_returns_OK_response.json | 2 +- .../Create_App_returns_Created_response.json | 2 +- ...options_enabled_successfully_response.json | 4 +- ..._Connection_returns_Conflict_response.json | 4 +- ...te_Org_Connection_returns_OK_response.json | 2 +- ...te_Scanning_Group_returns_OK_response.json | 2 +- ...ing_Rule_returns_Bad_Request_response.json | 4 +- ...ate_Scanning_Rule_returns_OK_response.json | 4 +- ...should_save_match_returns_OK_response.json | 4 +- ..._custom_framework_returns_OK_response.json | 4 +- .../Create_a_dataset_returns_OK_response.json | 2 +- ...restriction_query_returns_OK_response.json | 2 +- ...te_a_test_suite_returns_OK_response.freeze | 2 +- ...eate_a_test_suite_returns_OK_response.json | 8 +- ...integration_returns_Conflict_response.json | 2 +- ...ncident_type_returns_CREATED_response.json | 2 +- ...rity_finding_returns_Created_response.json | 2 +- ...ity_findings_returns_Created_response.json | 2 +- ...ase_type_returns_Bad_Request_response.json | 2 +- ..._a_case_type_returns_CREATED_response.json | 2 +- ...ication_rule_returns_Created_response.json | 2 +- ...ion_template_returns_Created_response.json | 2 +- ...with_a_permission_returns_OK_response.json | 2 +- ..._deletion_request_returns_OK_response.json | 2 +- .../v2/Delete_App_returns_OK_response.json | 2 +- ...ete_Multiple_Apps_returns_OK_response.json | 2 +- ...te_Org_Connection_returns_OK_response.json | 2 +- ...te_Scanning_Group_returns_OK_response.json | 4 +- ..._exclusion_filter_returns_OK_response.json | 2 +- ...case_type_returns_NotContent_response.json | 2 +- ...elete_a_case_type_returns_OK_response.json | 2 +- ..._a_critical_asset_returns_OK_response.json | 2 +- ...a_dataset_returns_No_Content_response.json | 2 +- ...restriction_query_returns_OK_response.json | 2 +- ..._retention_filter_returns_OK_response.json | 2 +- ...egration_returns_Bad_Request_response.json | 2 +- ...ntegration_returns_Not_Found_response.json | 2 +- ..._an_incident_type_returns_OK_response.json | 2 +- ..._comment_returns_Bad_Request_response.json | 2 +- ...e_comment_returns_No_Content_response.json | 2 +- ...se_comment_returns_Not_Found_response.json | 2 +- ..._from_case_returns_Not_Found_response.json | 2 +- ...tribute_from_case_returns_OK_response.json | 2 +- ...s_config_returns_Bad_Request_response.json | 2 +- ...es_config_returns_No_Content_response.json | 2 +- ...te_datastore_item_returns_OK_response.json | 2 +- .../Delete_datastore_returns_OK_response.json | 2 +- ...tion_rule_returns_No_Content_response.json | 2 +- ..._template_returns_No_Content_response.json | 2 +- .../Edit_a_dataset_returns_OK_response.json | 2 +- ...turns_AWS_External_ID_object_response.json | 2 +- ...sk_by_id_returns_Bad_Request_response.json | 2 +- ...S_On_Demand_tasks_returns_OK_response.json | 2 +- ...and_task_returns_Bad_Request_response.json | 2 +- .../v2/Get_App_returns_Gone_response.json | 2 +- .../v2/Get_App_returns_OK_response.json | 2 +- ..._GCP_scan_options_returns_OK_response.json | 2 +- ..._a_critical_asset_returns_OK_response.json | 2 +- ..._custom_framework_returns_OK_response.json | 4 +- ..._retention_filter_returns_OK_response.json | 2 +- ...t_a_job_s_details_returns_OK_response.json | 2 +- ...restriction_query_returns_OK_response.json | 2 +- ...gle_dataset_by_ID_returns_OK_response.json | 2 +- ...specific_pipeline_returns_OK_response.json | 2 +- ...nfig_of_case_type_returns_OK_response.json | 2 +- .../v2/Get_all_rules_returns_OK_response.json | 2 +- ...onfig_ID_returns_Bad_Request_response.json | 2 +- ..._config_ID_returns_Not_Found_response.json | 2 +- ..._Successfully_got_a_workflow_response.json | 2 +- .../v2/Get_datastore_returns_OK_response.json | 2 +- ...notification_rule_returns_OK_response.json | 2 +- ...fication_template_returns_OK_response.json | 2 +- ...details_of_a_case_returns_OK_response.json | 2 +- ...king_issue_returns_Not_Found_response.json | 2 +- ...or_tracking_issue_returns_OK_response.json | 2 +- ...deletion_requests_returns_OK_response.json | 2 +- ...mission_to_a_role_returns_OK_response.json | 2 +- ...restriction_query_returns_OK_response.json | 2 +- ...S_on_demand_tasks_returns_OK_response.json | 2 +- ..._GCP_scan_options_returns_OK_response.json | 2 +- ...t_Scanning_Groups_returns_OK_response.json | 6 +- ...retention_filters_returns_OK_response.json | 2 +- .../List_all_rules_returns_OK_response.json | 2 +- ...t_datastore_items_returns_OK_response.json | 2 +- ...t_historical_jobs_returns_OK_response.json | 2 +- ...otification_rules_returns_OK_response.json | 2 +- ...s_AWS_Namespaces_List_object_response.json | 2 +- ...ssions_for_a_role_returns_OK_response.json | 2 +- .../List_permissions_returns_OK_response.json | 2 +- .../List_pipelines_returns_OK_response.json | 2 +- ...restriction_query_returns_OK_response.json | 2 +- ...n_Options_returns_No_Content_response.json | 2 +- ..._AWS_Scan_Options_returns_OK_response.json | 2 +- ...options_enabled_successfully_response.json | 4 +- .../Publish_App_returns_Created_response.json | 2 +- ...r_Groups_returns_Bad_Request_response.json | 4 +- .../Reorder_Groups_returns_OK_response.json | 6 +- ...permission_returns_Not_found_response.json | 2 +- ...Revoke_permission_returns_OK_response.json | 2 +- ...g_job_returns_Status_created_response.json | 2 +- ...ive_case_returns_Bad_Request_response.json | 2 +- .../Unarchive_case_returns_OK_response.json | 2 +- ...ign_case_returns_Bad_Request_response.json | 2 +- .../v2/Unassign_case_returns_OK_response.json | 2 +- .../v2/Unpublish_App_returns_OK_response.json | 2 +- ...n_options_returns_No_Content_response.json | 2 +- ...date_App_returns_Bad_Request_response.json | 2 +- .../v2/Update_App_returns_OK_response.json | 2 +- ...nnection_returns_Bad_Request_response.json | 2 +- ...Connection_returns_Not_Found_response.json | 2 +- ...te_Org_Connection_returns_OK_response.json | 2 +- ...te_Scanning_Group_returns_OK_response.json | 4 +- ...ing_Rule_returns_Bad_Request_response.json | 4 +- ...ate_Scanning_Rule_returns_OK_response.json | 4 +- ...tom_Rule_returns_Bad_Request_response.json | 2 +- ...a_WAF_Custom_Rule_returns_OK_response.json | 2 +- ...n_filter_returns_Bad_Request_response.json | 2 +- ..._a_critical_asset_returns_OK_response.json | 2 +- ...n_filter_returns_Bad_Request_response.json | 2 +- ...pipeline_returns_Bad_Request_response.json | 2 +- ...Update_a_pipeline_returns_OK_response.json | 2 +- ...n_filter_returns_Bad_Request_response.json | 2 +- ..._retention_filter_returns_OK_response.json | 2 +- ...r_with_trace_rate_returns_OK_response.json | 2 +- ..._filters_returns_Bad_Request_response.json | 2 +- ...retention_filters_returns_OK_response.json | 2 +- ...e_a_role_returns_Bad_Request_response.json | 2 +- ...e_a_role_returns_Bad_Role_ID_response.json | 2 +- .../v2/Update_a_role_returns_OK_response.json | 2 +- ...n_returns_AWS_Account_object_response.json | 2 +- ...egration_returns_Bad_Request_response.json | 2 +- ...Workflow_returns_Bad_request_response.json | 2 +- ...cessfully_updated_a_workflow_response.json | 2 +- ..._an_incident_type_returns_OK_response.json | 2 +- ...tributes_returns_Bad_Request_response.json | 2 +- ...e_case_attributes_returns_OK_response.json | 2 +- ...ttribute_returns_Bad_Request_response.json | 2 +- ..._attribute_returns_Not_Found_response.json | 2 +- ..._custom_attribute_returns_OK_response.json | 2 +- ...cription_returns_Bad_Request_response.json | 2 +- ..._case_description_returns_OK_response.json | 2 +- ...priority_returns_Bad_Request_response.json | 2 +- ...ate_case_priority_returns_OK_response.json | 2 +- ...pdate_case_status_returns_OK_response.json | 2 +- ...se_title_returns_Bad_Request_response.json | 2 +- ...Update_case_title_returns_OK_response.json | 2 +- ...te_datastore_item_returns_OK_response.json | 2 +- ...notification_rule_returns_OK_response.json | 2 +- .../client/v2/api/llm_observability.feature | 442 +++ .../com/datadog/api/client/v2/api/undo.json | 129 + 264 files changed, 20129 insertions(+), 870 deletions(-) create mode 100644 examples/v2/llm-observability/CreateLLMObsDataset.java create mode 100644 examples/v2/llm-observability/CreateLLMObsDatasetRecords.java create mode 100644 examples/v2/llm-observability/CreateLLMObsExperiment.java create mode 100644 examples/v2/llm-observability/CreateLLMObsExperimentEvents.java create mode 100644 examples/v2/llm-observability/CreateLLMObsProject.java create mode 100644 examples/v2/llm-observability/DeleteLLMObsDatasetRecords.java create mode 100644 examples/v2/llm-observability/DeleteLLMObsDatasets.java create mode 100644 examples/v2/llm-observability/DeleteLLMObsExperiments.java create mode 100644 examples/v2/llm-observability/DeleteLLMObsProjects.java create mode 100644 examples/v2/llm-observability/ListLLMObsDatasetRecords.java create mode 100644 examples/v2/llm-observability/ListLLMObsDatasets.java create mode 100644 examples/v2/llm-observability/ListLLMObsExperiments.java create mode 100644 examples/v2/llm-observability/ListLLMObsProjects.java create mode 100644 examples/v2/llm-observability/UpdateLLMObsDataset.java create mode 100644 examples/v2/llm-observability/UpdateLLMObsDatasetRecords.java create mode 100644 examples/v2/llm-observability/UpdateLLMObsExperiment.java create mode 100644 examples/v2/llm-observability/UpdateLLMObsProject.java create mode 100644 src/main/java/com/datadog/api/client/v2/api/LlmObservabilityApi.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsCursorMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordDataResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordItem.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordUpdateItem.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsListResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationData.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetsResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsEventType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetric.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetricError.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpan.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanError.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanMeta.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentsResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsMetricAssessment.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsMetricScoreType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectType.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataAttributesRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateRequest.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsProjectsResponse.java create mode 100644 src/main/java/com/datadog/api/client/v2/model/LLMObsRecordType.java create mode 100644 src/test/resources/com/datadog/api/client/v2/api/llm_observability.feature diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index e2256f32bd5..6dade971e36 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -767,6 +767,30 @@ components: schema: example: my-job type: string + LLMObsDatasetIDPathParameter: + description: The ID of the LLM Observability dataset. + example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d + in: path + name: dataset_id + required: true + schema: + type: string + LLMObsExperimentIDPathParameter: + description: The ID of the LLM Observability experiment. + example: 3fd6b5e0-8910-4b1c-a7d0-5b84de329012 + in: path + name: experiment_id + required: true + schema: + type: string + LLMObsProjectIDPathParameter: + description: The ID of the LLM Observability project. + example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751 + in: path + name: project_id + required: true + schema: + type: string MetricID: description: The name of the log-based metric. in: path @@ -34715,437 +34739,1431 @@ components: format: int64 type: integer type: object - Language: - description: Programming language - enum: - - PYTHON - - JAVASCRIPT - - TYPESCRIPT - - JAVA - - GO - - YAML - - RUBY - - CSHARP - - PHP - - KOTLIN - - SWIFT - example: PYTHON - type: string - x-enum-varnames: - - PYTHON - - JAVASCRIPT - - TYPESCRIPT - - JAVA - - GO - - YAML - - RUBY - - CSHARP - - PHP - - KOTLIN - - SWIFT - LaunchDarklyAPIKey: - description: The definition of the `LaunchDarklyAPIKey` object. + LLMObsCursorMeta: + description: Pagination cursor metadata. properties: - api_token: - description: The `LaunchDarklyAPIKey` `api_token`. - example: '' + after: + description: Cursor for the next page of results. + nullable: true type: string - type: - $ref: '#/components/schemas/LaunchDarklyAPIKeyType' - required: - - type - - api_token type: object - LaunchDarklyAPIKeyType: - description: The definition of the `LaunchDarklyAPIKey` object. - enum: - - LaunchDarklyAPIKey - example: LaunchDarklyAPIKey - type: string - x-enum-varnames: - - LAUNCHDARKLYAPIKEY - LaunchDarklyAPIKeyUpdate: - description: The definition of the `LaunchDarklyAPIKey` object. + LLMObsDatasetDataAttributesRequest: + description: Attributes for creating an LLM Observability dataset. properties: - api_token: - description: The `LaunchDarklyAPIKeyUpdate` `api_token`. + description: + description: Description of the dataset. + type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the dataset. + type: object + name: + description: Name of the dataset. + example: My LLM Dataset type: string - type: - $ref: '#/components/schemas/LaunchDarklyAPIKeyType' required: - - type + - name type: object - LaunchDarklyCredentials: - description: The definition of the `LaunchDarklyCredentials` object. - oneOf: - - $ref: '#/components/schemas/LaunchDarklyAPIKey' - LaunchDarklyCredentialsUpdate: - description: The definition of the `LaunchDarklyCredentialsUpdate` object. - oneOf: - - $ref: '#/components/schemas/LaunchDarklyAPIKeyUpdate' - LaunchDarklyIntegration: - description: The definition of the `LaunchDarklyIntegration` object. + LLMObsDatasetDataAttributesResponse: + description: Attributes of an LLM Observability dataset. properties: - credentials: - $ref: '#/components/schemas/LaunchDarklyCredentials' - type: - $ref: '#/components/schemas/LaunchDarklyIntegrationType' + created_at: + description: Timestamp when the dataset was created. + example: '2024-01-15T10:30:00Z' + format: date-time + type: string + current_version: + description: Current version number of the dataset. + example: 1 + format: int64 + type: integer + description: + description: Description of the dataset. + example: '' + nullable: true + type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the dataset. + nullable: true + type: object + name: + description: Name of the dataset. + example: My LLM Dataset + type: string + updated_at: + description: Timestamp when the dataset was last updated. + example: '2024-01-15T10:30:00Z' + format: date-time + type: string required: - - type - - credentials + - name + - description + - metadata + - current_version + - created_at + - updated_at type: object - LaunchDarklyIntegrationType: - description: The definition of the `LaunchDarklyIntegrationType` object. - enum: - - LaunchDarkly - example: LaunchDarkly - type: string - x-enum-varnames: - - LAUNCHDARKLY - LaunchDarklyIntegrationUpdate: - description: The definition of the `LaunchDarklyIntegrationUpdate` object. + LLMObsDatasetDataRequest: + description: Data object for creating an LLM Observability dataset. properties: - credentials: - $ref: '#/components/schemas/LaunchDarklyCredentialsUpdate' + attributes: + $ref: '#/components/schemas/LLMObsDatasetDataAttributesRequest' type: - $ref: '#/components/schemas/LaunchDarklyIntegrationType' + $ref: '#/components/schemas/LLMObsDatasetType' required: - type + - attributes type: object - Layer: - description: Encapsulates a layer resource, holding attributes like rotation - details, plus relationships to the members covering that layer. + LLMObsDatasetDataResponse: + description: Data object for an LLM Observability dataset. properties: attributes: - $ref: '#/components/schemas/LayerAttributes' + $ref: '#/components/schemas/LLMObsDatasetDataAttributesResponse' id: - description: A unique identifier for this layer. + description: Unique identifier of the dataset. + example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d type: string - relationships: - $ref: '#/components/schemas/LayerRelationships' type: - $ref: '#/components/schemas/LayerType' + $ref: '#/components/schemas/LLMObsDatasetType' required: + - id - type + - attributes type: object - LayerAttributes: - description: Describes key properties of a Layer, including rotation details, - name, start/end times, and any restrictions. + LLMObsDatasetRecordDataResponse: + description: A single LLM Observability dataset record. properties: - effective_date: - description: When the layer becomes active (ISO 8601). + created_at: + description: Timestamp when the record was created. + example: '2024-01-15T10:30:00Z' format: date-time type: string - end_date: - description: When the layer ceases to be active (ISO 8601). - format: date-time + dataset_id: + description: Identifier of the dataset this record belongs to. + example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d type: string - interval: - $ref: '#/components/schemas/LayerAttributesInterval' - name: - description: The name of this layer. - example: Weekend Layer + expected_output: + $ref: '#/components/schemas/AnyValue' + id: + description: Unique identifier of the record. + example: rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c type: string - restrictions: - description: An optional list of time restrictions for when this layer is - in effect. - items: - $ref: '#/components/schemas/TimeRestriction' - type: array - rotation_start: - description: The date/time when the rotation starts (ISO 8601). + input: + $ref: '#/components/schemas/AnyValue' + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the record. + nullable: true + type: object + updated_at: + description: Timestamp when the record was last updated. + example: '2024-01-15T10:30:00Z' format: date-time type: string - time_zone: - description: The time zone for this layer. - example: America/New_York - type: string + required: + - id + - dataset_id + - input + - expected_output + - metadata + - created_at + - updated_at type: object - LayerAttributesInterval: - description: Defines how often the rotation repeats, using a combination of - days and optional seconds. Should be at least 1 hour. + LLMObsDatasetRecordItem: + description: A single record to append to an LLM Observability dataset. properties: - days: - description: The number of days in each rotation cycle. - example: 1 - format: int32 - maximum: 400 - type: integer - seconds: - description: Any additional seconds for the rotation cycle (up to 30 days). - example: 300 - format: int64 - maximum: 2592000 - type: integer + expected_output: + $ref: '#/components/schemas/AnyValue' + input: + $ref: '#/components/schemas/AnyValue' + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the record. + type: object + required: + - input type: object - LayerRelationships: - description: Holds references to objects related to the Layer entity, such as - its members. + LLMObsDatasetRecordUpdateItem: + description: A record update payload for an LLM Observability dataset. properties: - members: - $ref: '#/components/schemas/LayerRelationshipsMembers' + expected_output: + $ref: '#/components/schemas/AnyValue' + id: + description: Unique identifier of the record to update. + example: rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c + type: string + input: + $ref: '#/components/schemas/AnyValue' + metadata: + additionalProperties: {} + description: Updated metadata associated with the record. + type: object + required: + - id type: object - LayerRelationshipsMembers: - description: Holds an array of references to the members of a Layer, each containing - member IDs. + LLMObsDatasetRecordsDataAttributesRequest: + description: Attributes for appending records to an LLM Observability dataset. properties: - data: - description: The list of members who belong to this layer. + deduplicate: + description: Whether to deduplicate records before appending. Defaults to + `true`. + type: boolean + records: + description: List of records to append to the dataset. items: - $ref: '#/components/schemas/LayerRelationshipsMembersDataItems' + $ref: '#/components/schemas/LLMObsDatasetRecordItem' type: array - type: object - LayerRelationshipsMembersDataItems: - description: 'Represents a single member object in a layer''s `members` array, - referencing - - a unique Datadog user ID.' - properties: - id: - description: The unique user ID of the layer member. - example: 00000000-0000-0000-0000-000000000002 - type: string - type: - $ref: '#/components/schemas/LayerRelationshipsMembersDataItemsType' required: - - type - - id + - records type: object - LayerRelationshipsMembersDataItemsType: - default: members - description: Members resource type. - enum: - - members - example: members - type: string - x-enum-varnames: - - MEMBERS - LayerType: - default: layers - description: Layers resource type. - enum: - - layers - example: layers - type: string - x-enum-varnames: - - LAYERS - LeakedKey: - description: The definition of LeakedKey object. + LLMObsDatasetRecordsDataRequest: + description: Data object for appending records to an LLM Observability dataset. properties: attributes: - $ref: '#/components/schemas/LeakedKeyAttributes' - id: - description: The LeakedKey id. - example: id - type: string + $ref: '#/components/schemas/LLMObsDatasetRecordsDataAttributesRequest' type: - $ref: '#/components/schemas/LeakedKeyType' + $ref: '#/components/schemas/LLMObsRecordType' required: - - attributes - - id - type + - attributes type: object - LeakedKeyAttributes: - description: The definition of LeakedKeyAttributes object. + LLMObsDatasetRecordsListResponse: + description: Response containing a paginated list of LLM Observability dataset + records. properties: - date: - description: The LeakedKeyAttributes date. - example: '2017-07-21T17:32:28Z' - format: date-time - type: string - leak_source: - description: The LeakedKeyAttributes leak_source. - type: string + data: + description: List of dataset records. + items: + $ref: '#/components/schemas/LLMObsDatasetRecordDataResponse' + type: array + meta: + $ref: '#/components/schemas/LLMObsCursorMeta' required: - - date + - data type: object - LeakedKeyType: - default: leaked_keys - description: The definition of LeakedKeyType object. - enum: - - leaked_keys - example: leaked_keys - type: string - x-enum-varnames: - - LEAKED_KEYS - Library: - description: Vulnerability library. + LLMObsDatasetRecordsMutationData: + description: Response containing records after a create or update operation. properties: - additional_names: - description: Related library or package names (such as child packages or - affected binary paths). + records: + description: List of affected dataset records. items: - example: linux-tools-common - type: string + $ref: '#/components/schemas/LLMObsDatasetRecordDataResponse' type: array - name: - description: Vulnerability library name. - example: linux-aws-5.15 - type: string - version: - description: Vulnerability library version. - example: 5.15.0 - type: string required: - - name + - records type: object - Links: - description: The JSON:API links related to pagination. + LLMObsDatasetRecordsMutationResponse: + description: Response containing records after a create or update operation. properties: - first: - description: First page link. - example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=1&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 - type: string - last: - description: Last page link. - example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=15&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 - type: string - next: - description: Next page link. - example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=16&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 - type: string - previous: - description: Previous page link. - example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=14&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 - type: string - self: - description: Request link. - example: https://api.datadoghq.com/api/v2/security/vulnerabilities?filter%5Btool%5D=Infra - type: string + data: + description: List of affected dataset records. + items: + $ref: '#/components/schemas/LLMObsDatasetRecordsMutationData' + type: array required: - - self - - first - - last + - data type: object - ListAPIsResponse: - description: Response for `ListAPIs`. + LLMObsDatasetRecordsRequest: + description: Request to append records to an LLM Observability dataset. properties: data: - description: List of API items. + $ref: '#/components/schemas/LLMObsDatasetRecordsDataRequest' + required: + - data + type: object + LLMObsDatasetRecordsUpdateDataAttributesRequest: + description: Attributes for updating records in an LLM Observability dataset. + properties: + records: + description: List of records to update. items: - $ref: '#/components/schemas/ListAPIsResponseData' + $ref: '#/components/schemas/LLMObsDatasetRecordUpdateItem' type: array - meta: - $ref: '#/components/schemas/ListAPIsResponseMeta' + required: + - records type: object - ListAPIsResponseData: - description: Data envelope for `ListAPIsResponse`. + LLMObsDatasetRecordsUpdateDataRequest: + description: Data object for updating records in an LLM Observability dataset. properties: attributes: - $ref: '#/components/schemas/ListAPIsResponseDataAttributes' - id: - $ref: '#/components/schemas/ApiID' + $ref: '#/components/schemas/LLMObsDatasetRecordsUpdateDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsRecordType' + required: + - type + - attributes type: object - ListAPIsResponseDataAttributes: - description: Attributes for `ListAPIsResponseData`. + LLMObsDatasetRecordsUpdateRequest: + description: Request to update records in an LLM Observability dataset. + properties: + data: + $ref: '#/components/schemas/LLMObsDatasetRecordsUpdateDataRequest' + required: + - data + type: object + LLMObsDatasetRequest: + description: Request to create an LLM Observability dataset. + properties: + data: + $ref: '#/components/schemas/LLMObsDatasetDataRequest' + required: + - data + type: object + LLMObsDatasetResponse: + description: Response containing a single LLM Observability dataset. + properties: + data: + $ref: '#/components/schemas/LLMObsDatasetDataResponse' + required: + - data + type: object + LLMObsDatasetType: + description: Resource type of an LLM Observability dataset. + enum: + - datasets + example: datasets + type: string + x-enum-varnames: + - DATASETS + LLMObsDatasetUpdateDataAttributesRequest: + description: Attributes for updating an LLM Observability dataset. properties: + description: + description: Updated description of the dataset. + type: string + metadata: + additionalProperties: {} + description: Updated metadata associated with the dataset. + type: object name: - description: API name. - example: Payments API + description: Updated name of the dataset. type: string type: object - ListAPIsResponseMeta: - description: Metadata for `ListAPIsResponse`. + LLMObsDatasetUpdateDataRequest: + description: Data object for updating an LLM Observability dataset. properties: - pagination: - $ref: '#/components/schemas/ListAPIsResponseMetaPagination' + attributes: + $ref: '#/components/schemas/LLMObsDatasetUpdateDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsDatasetType' + required: + - type + - attributes type: object - ListAPIsResponseMetaPagination: - description: Pagination metadata information for `ListAPIsResponse`. + LLMObsDatasetUpdateRequest: + description: Request to partially update an LLM Observability dataset. properties: - limit: - description: Number of items in the current page. - example: 20 - format: int64 - type: integer - offset: - description: Offset for pagination. - example: 0 - format: int64 - type: integer - total_count: - description: Total number of items. - example: 35 - format: int64 - type: integer + data: + $ref: '#/components/schemas/LLMObsDatasetUpdateDataRequest' + required: + - data type: object - ListAppKeyRegistrationsResponse: - description: A paginated list of app key registrations. + LLMObsDatasetsResponse: + description: Response containing a list of LLM Observability datasets. properties: data: - description: An array of app key registrations. + description: List of datasets. items: - $ref: '#/components/schemas/AppKeyRegistrationData' + $ref: '#/components/schemas/LLMObsDatasetDataResponse' type: array meta: - $ref: '#/components/schemas/ListAppKeyRegistrationsResponseMeta' + $ref: '#/components/schemas/LLMObsCursorMeta' + required: + - data type: object - ListAppKeyRegistrationsResponseMeta: - description: The definition of `ListAppKeyRegistrationsResponseMeta` object. + LLMObsDeleteDatasetRecordsDataAttributesRequest: + description: Attributes for deleting records from an LLM Observability dataset. properties: - total: - description: The total number of app key registrations. - example: 1 - format: int64 - type: integer - total_filtered: - description: The total number of app key registrations that match the specified - filters. - example: 1 - format: int64 - type: integer + record_ids: + description: List of record IDs to delete. + example: + - rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c + items: + type: string + type: array + required: + - record_ids type: object - ListApplicationKeysResponse: - description: Response for a list of application keys. + LLMObsDeleteDatasetRecordsDataRequest: + description: Data object for deleting records from an LLM Observability dataset. + properties: + attributes: + $ref: '#/components/schemas/LLMObsDeleteDatasetRecordsDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsRecordType' + required: + - type + - attributes + type: object + LLMObsDeleteDatasetRecordsRequest: + description: Request to delete records from an LLM Observability dataset. properties: data: - description: Array of application keys. - items: - $ref: '#/components/schemas/PartialApplicationKey' - type: array - included: - description: Array of objects related to the application key. + $ref: '#/components/schemas/LLMObsDeleteDatasetRecordsDataRequest' + required: + - data + type: object + LLMObsDeleteDatasetsDataAttributesRequest: + description: Attributes for deleting LLM Observability datasets. + properties: + dataset_ids: + description: List of dataset IDs to delete. + example: + - 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d items: - $ref: '#/components/schemas/ApplicationKeyResponseIncludedItem' + type: string type: array - meta: - $ref: '#/components/schemas/ApplicationKeyResponseMeta' + required: + - dataset_ids type: object - ListAppsResponse: - description: A paginated list of apps matching the specified filters and sorting. + LLMObsDeleteDatasetsDataRequest: + description: Data object for deleting LLM Observability datasets. + properties: + attributes: + $ref: '#/components/schemas/LLMObsDeleteDatasetsDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsDatasetType' + required: + - type + - attributes + type: object + LLMObsDeleteDatasetsRequest: + description: Request to delete one or more LLM Observability datasets. properties: data: - description: An array of app definitions. - items: - $ref: '#/components/schemas/ListAppsResponseDataItems' - type: array - included: - description: Data on the version of the app that was published. + $ref: '#/components/schemas/LLMObsDeleteDatasetsDataRequest' + required: + - data + type: object + LLMObsDeleteExperimentsDataAttributesRequest: + description: Attributes for deleting LLM Observability experiments. + properties: + experiment_ids: + description: List of experiment IDs to delete. + example: + - 3fd6b5e0-8910-4b1c-a7d0-5b84de329012 items: - $ref: '#/components/schemas/Deployment' + type: string type: array - meta: - $ref: '#/components/schemas/ListAppsResponseMeta' + required: + - experiment_ids type: object - ListAppsResponseDataItems: - description: An app definition object. This contains only basic information - about the app such as ID, name, and tags. + LLMObsDeleteExperimentsDataRequest: + description: Data object for deleting LLM Observability experiments. properties: attributes: - $ref: '#/components/schemas/ListAppsResponseDataItemsAttributes' - id: - description: The ID of the app. - example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 - format: uuid - type: string - meta: - $ref: '#/components/schemas/AppMeta' - relationships: - $ref: '#/components/schemas/ListAppsResponseDataItemsRelationships' + $ref: '#/components/schemas/LLMObsDeleteExperimentsDataAttributesRequest' type: - $ref: '#/components/schemas/AppDefinitionType' + $ref: '#/components/schemas/LLMObsExperimentType' required: - - id + - type + - attributes + type: object + LLMObsDeleteExperimentsRequest: + description: Request to delete one or more LLM Observability experiments. + properties: + data: + $ref: '#/components/schemas/LLMObsDeleteExperimentsDataRequest' + required: + - data + type: object + LLMObsDeleteProjectsDataAttributesRequest: + description: Attributes for deleting LLM Observability projects. + properties: + project_ids: + description: List of project IDs to delete. + example: + - a33671aa-24fd-4dcd-9b33-a8ec7dde7751 + items: + type: string + type: array + required: + - project_ids + type: object + LLMObsDeleteProjectsDataRequest: + description: Data object for deleting LLM Observability projects. + properties: + attributes: + $ref: '#/components/schemas/LLMObsDeleteProjectsDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsProjectType' + required: + - type + - attributes + type: object + LLMObsDeleteProjectsRequest: + description: Request to delete one or more LLM Observability projects. + properties: + data: + $ref: '#/components/schemas/LLMObsDeleteProjectsDataRequest' + required: + - data + type: object + LLMObsEventType: + description: Resource type for LLM Observability experiment events. + enum: + - events + example: events + type: string + x-enum-varnames: + - EVENTS + LLMObsExperimentDataAttributesRequest: + description: Attributes for creating an LLM Observability experiment. + properties: + config: + additionalProperties: {} + description: Configuration parameters for the experiment. + type: object + dataset_id: + description: Identifier of the dataset used in this experiment. + example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d + type: string + dataset_version: + description: Version of the dataset to use. Defaults to the current version + if not specified. + format: int64 + type: integer + description: + description: Description of the experiment. + type: string + ensure_unique: + description: Whether to ensure the experiment name is unique. Defaults to + `true`. + type: boolean + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the experiment. + type: object + name: + description: Name of the experiment. + example: My Experiment v1 + type: string + project_id: + description: Identifier of the project this experiment belongs to. + example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751 + type: string + required: + - project_id + - dataset_id + - name + type: object + LLMObsExperimentDataAttributesResponse: + description: Attributes of an LLM Observability experiment. + properties: + config: + additionalProperties: {} + description: Configuration parameters for the experiment. + nullable: true + type: object + created_at: + description: Timestamp when the experiment was created. + example: '2024-01-15T10:30:00Z' + format: date-time + type: string + dataset_id: + description: Identifier of the dataset used in this experiment. + example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d + type: string + description: + description: Description of the experiment. + example: '' + nullable: true + type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the experiment. + nullable: true + type: object + name: + description: Name of the experiment. + example: My Experiment v1 + type: string + project_id: + description: Identifier of the project this experiment belongs to. + example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751 + type: string + updated_at: + description: Timestamp when the experiment was last updated. + example: '2024-01-15T10:30:00Z' + format: date-time + type: string + required: + - project_id + - dataset_id + - name + - description + - metadata + - config + - created_at + - updated_at + type: object + LLMObsExperimentDataRequest: + description: Data object for creating an LLM Observability experiment. + properties: + attributes: + $ref: '#/components/schemas/LLMObsExperimentDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsExperimentType' + required: + - type + - attributes + type: object + LLMObsExperimentDataResponse: + description: Data object for an LLM Observability experiment. + properties: + attributes: + $ref: '#/components/schemas/LLMObsExperimentDataAttributesResponse' + id: + description: Unique identifier of the experiment. + example: 3fd6b5e0-8910-4b1c-a7d0-5b84de329012 + type: string + type: + $ref: '#/components/schemas/LLMObsExperimentType' + required: + - id + - type + - attributes + type: object + LLMObsExperimentEventsDataAttributesRequest: + description: Attributes for pushing experiment events including spans and metrics. + properties: + metrics: + description: List of metrics to push for the experiment. + items: + $ref: '#/components/schemas/LLMObsExperimentMetric' + type: array + spans: + description: List of spans to push for the experiment. + items: + $ref: '#/components/schemas/LLMObsExperimentSpan' + type: array + type: object + LLMObsExperimentEventsDataRequest: + description: Data object for pushing experiment events. + properties: + attributes: + $ref: '#/components/schemas/LLMObsExperimentEventsDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsEventType' + required: + - type + - attributes + type: object + LLMObsExperimentEventsRequest: + description: Request to push spans and metrics for an LLM Observability experiment. + properties: + data: + $ref: '#/components/schemas/LLMObsExperimentEventsDataRequest' + required: + - data + type: object + LLMObsExperimentMetric: + description: A metric associated with an LLM Observability experiment span. + properties: + assessment: + $ref: '#/components/schemas/LLMObsMetricAssessment' + boolean_value: + description: Boolean value. Used when `metric_type` is `boolean`. + type: boolean + categorical_value: + description: Categorical value. Used when `metric_type` is `categorical`. + type: string + error: + $ref: '#/components/schemas/LLMObsExperimentMetricError' + json_value: + additionalProperties: {} + description: JSON value. Used when `metric_type` is `json`. + type: object + label: + description: Label or name for the metric. + example: faithfulness + type: string + metadata: + additionalProperties: {} + description: Arbitrary metadata associated with the metric. + type: object + metric_type: + $ref: '#/components/schemas/LLMObsMetricScoreType' + reasoning: + description: Human-readable reasoning for the metric value. + type: string + score_value: + description: Numeric score value. Used when `metric_type` is `score`. + format: double + type: number + span_id: + description: Identifier of the span this metric is associated with. + example: span-7a1b2c3d + type: string + tags: + description: List of tags associated with the metric. + items: + type: string + type: array + timestamp_ms: + description: Timestamp when the metric was recorded, in milliseconds since + Unix epoch. + example: 1705314600000 + format: int64 + type: integer + required: + - span_id + - metric_type + - timestamp_ms + - label + type: object + LLMObsExperimentMetricError: + description: Error details for an experiment metric evaluation. + properties: + message: + description: Error message associated with the metric evaluation. + type: string + type: object + LLMObsExperimentRequest: + description: Request to create an LLM Observability experiment. + properties: + data: + $ref: '#/components/schemas/LLMObsExperimentDataRequest' + required: + - data + type: object + LLMObsExperimentResponse: + description: Response containing a single LLM Observability experiment. + properties: + data: + $ref: '#/components/schemas/LLMObsExperimentDataResponse' + required: + - data + type: object + LLMObsExperimentSpan: + description: A span associated with an LLM Observability experiment. + properties: + dataset_id: + description: Dataset ID associated with this span. + example: 9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d + type: string + duration: + description: Duration of the span in nanoseconds. + example: 1500000000 + format: int64 + type: integer + meta: + $ref: '#/components/schemas/LLMObsExperimentSpanMeta' + name: + description: Name of the span. + example: llm_call + type: string + project_id: + description: Project ID associated with this span. + example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751 + type: string + span_id: + description: Unique identifier of the span. + example: span-7a1b2c3d + type: string + start_ns: + description: Start time of the span in nanoseconds since Unix epoch. + example: 1705314600000000000 + format: int64 + type: integer + status: + description: Status of the span. + example: ok + type: string + tags: + description: List of tags associated with the span. + items: + type: string + type: array + trace_id: + description: Trace ID for the span. + example: abc123def456 + type: string + required: + - trace_id + - span_id + - project_id + - dataset_id + - name + - start_ns + - duration + - status + type: object + LLMObsExperimentSpanError: + description: Error details for an experiment span. + properties: + message: + description: Error message. + type: string + stack: + description: Stack trace of the error. + type: string + type: + description: Type or class of the error. + type: string + type: object + LLMObsExperimentSpanMeta: + description: Metadata associated with an experiment span. + properties: + error: + $ref: '#/components/schemas/LLMObsExperimentSpanError' + expected_output: + additionalProperties: {} + description: Expected output for the span, used for evaluation. + type: object + input: + $ref: '#/components/schemas/AnyValue' + output: + $ref: '#/components/schemas/AnyValue' + type: object + LLMObsExperimentType: + description: Resource type of an LLM Observability experiment. + enum: + - experiments + example: experiments + type: string + x-enum-varnames: + - EXPERIMENTS + LLMObsExperimentUpdateDataAttributesRequest: + description: Attributes for updating an LLM Observability experiment. + properties: + description: + description: Updated description of the experiment. + type: string + name: + description: Updated name of the experiment. + type: string + type: object + LLMObsExperimentUpdateDataRequest: + description: Data object for updating an LLM Observability experiment. + properties: + attributes: + $ref: '#/components/schemas/LLMObsExperimentUpdateDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsExperimentType' + required: + - type + - attributes + type: object + LLMObsExperimentUpdateRequest: + description: Request to partially update an LLM Observability experiment. + properties: + data: + $ref: '#/components/schemas/LLMObsExperimentUpdateDataRequest' + required: + - data + type: object + LLMObsExperimentsResponse: + description: Response containing a list of LLM Observability experiments. + properties: + data: + description: List of experiments. + items: + $ref: '#/components/schemas/LLMObsExperimentDataResponse' + type: array + meta: + $ref: '#/components/schemas/LLMObsCursorMeta' + required: + - data + type: object + LLMObsMetricAssessment: + description: Assessment result for an LLM Observability experiment metric. + enum: + - pass + - fail + example: pass + type: string + x-enum-varnames: + - PASS + - FAIL + LLMObsMetricScoreType: + description: Type of metric recorded for an LLM Observability experiment. + enum: + - score + - categorical + - boolean + - json + example: score + type: string + x-enum-varnames: + - SCORE + - CATEGORICAL + - BOOLEAN + - JSON + LLMObsProjectDataAttributesRequest: + description: Attributes for creating an LLM Observability project. + properties: + description: + description: Description of the project. + type: string + name: + description: Name of the project. + example: My LLM Project + type: string + required: + - name + type: object + LLMObsProjectDataAttributesResponse: + description: Attributes of an LLM Observability project. + properties: + created_at: + description: Timestamp when the project was created. + example: '2024-01-15T10:30:00Z' + format: date-time + type: string + description: + description: Description of the project. + example: '' + nullable: true + type: string + name: + description: Name of the project. + example: My LLM Project + type: string + updated_at: + description: Timestamp when the project was last updated. + example: '2024-01-15T10:30:00Z' + format: date-time + type: string + required: + - name + - description + - created_at + - updated_at + type: object + LLMObsProjectDataRequest: + description: Data object for creating an LLM Observability project. + properties: + attributes: + $ref: '#/components/schemas/LLMObsProjectDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsProjectType' + required: + - type + - attributes + type: object + LLMObsProjectDataResponse: + description: Data object for an LLM Observability project. + properties: + attributes: + $ref: '#/components/schemas/LLMObsProjectDataAttributesResponse' + id: + description: Unique identifier of the project. + example: a33671aa-24fd-4dcd-9b33-a8ec7dde7751 + type: string + type: + $ref: '#/components/schemas/LLMObsProjectType' + required: + - id + - type + - attributes + type: object + LLMObsProjectRequest: + description: Request to create an LLM Observability project. + properties: + data: + $ref: '#/components/schemas/LLMObsProjectDataRequest' + required: + - data + type: object + LLMObsProjectResponse: + description: Response containing a single LLM Observability project. + properties: + data: + $ref: '#/components/schemas/LLMObsProjectDataResponse' + required: + - data + type: object + LLMObsProjectType: + description: Resource type of an LLM Observability project. + enum: + - projects + example: projects + type: string + x-enum-varnames: + - PROJECTS + LLMObsProjectUpdateDataAttributesRequest: + description: Attributes for updating an LLM Observability project. + properties: + description: + description: Updated description of the project. + type: string + name: + description: Updated name of the project. + type: string + type: object + LLMObsProjectUpdateDataRequest: + description: Data object for updating an LLM Observability project. + properties: + attributes: + $ref: '#/components/schemas/LLMObsProjectUpdateDataAttributesRequest' + type: + $ref: '#/components/schemas/LLMObsProjectType' + required: + - type + - attributes + type: object + LLMObsProjectUpdateRequest: + description: Request to partially update an LLM Observability project. + properties: + data: + $ref: '#/components/schemas/LLMObsProjectUpdateDataRequest' + required: + - data + type: object + LLMObsProjectsResponse: + description: Response containing a list of LLM Observability projects. + properties: + data: + description: List of projects. + items: + $ref: '#/components/schemas/LLMObsProjectDataResponse' + type: array + meta: + $ref: '#/components/schemas/LLMObsCursorMeta' + required: + - data + type: object + LLMObsRecordType: + description: Resource type of LLM Observability dataset records. + enum: + - records + example: records + type: string + x-enum-varnames: + - RECORDS + Language: + description: Programming language + enum: + - PYTHON + - JAVASCRIPT + - TYPESCRIPT + - JAVA + - GO + - YAML + - RUBY + - CSHARP + - PHP + - KOTLIN + - SWIFT + example: PYTHON + type: string + x-enum-varnames: + - PYTHON + - JAVASCRIPT + - TYPESCRIPT + - JAVA + - GO + - YAML + - RUBY + - CSHARP + - PHP + - KOTLIN + - SWIFT + LaunchDarklyAPIKey: + description: The definition of the `LaunchDarklyAPIKey` object. + properties: + api_token: + description: The `LaunchDarklyAPIKey` `api_token`. + example: '' + type: string + type: + $ref: '#/components/schemas/LaunchDarklyAPIKeyType' + required: + - type + - api_token + type: object + LaunchDarklyAPIKeyType: + description: The definition of the `LaunchDarklyAPIKey` object. + enum: + - LaunchDarklyAPIKey + example: LaunchDarklyAPIKey + type: string + x-enum-varnames: + - LAUNCHDARKLYAPIKEY + LaunchDarklyAPIKeyUpdate: + description: The definition of the `LaunchDarklyAPIKey` object. + properties: + api_token: + description: The `LaunchDarklyAPIKeyUpdate` `api_token`. + type: string + type: + $ref: '#/components/schemas/LaunchDarklyAPIKeyType' + required: + - type + type: object + LaunchDarklyCredentials: + description: The definition of the `LaunchDarklyCredentials` object. + oneOf: + - $ref: '#/components/schemas/LaunchDarklyAPIKey' + LaunchDarklyCredentialsUpdate: + description: The definition of the `LaunchDarklyCredentialsUpdate` object. + oneOf: + - $ref: '#/components/schemas/LaunchDarklyAPIKeyUpdate' + LaunchDarklyIntegration: + description: The definition of the `LaunchDarklyIntegration` object. + properties: + credentials: + $ref: '#/components/schemas/LaunchDarklyCredentials' + type: + $ref: '#/components/schemas/LaunchDarklyIntegrationType' + required: + - type + - credentials + type: object + LaunchDarklyIntegrationType: + description: The definition of the `LaunchDarklyIntegrationType` object. + enum: + - LaunchDarkly + example: LaunchDarkly + type: string + x-enum-varnames: + - LAUNCHDARKLY + LaunchDarklyIntegrationUpdate: + description: The definition of the `LaunchDarklyIntegrationUpdate` object. + properties: + credentials: + $ref: '#/components/schemas/LaunchDarklyCredentialsUpdate' + type: + $ref: '#/components/schemas/LaunchDarklyIntegrationType' + required: + - type + type: object + Layer: + description: Encapsulates a layer resource, holding attributes like rotation + details, plus relationships to the members covering that layer. + properties: + attributes: + $ref: '#/components/schemas/LayerAttributes' + id: + description: A unique identifier for this layer. + type: string + relationships: + $ref: '#/components/schemas/LayerRelationships' + type: + $ref: '#/components/schemas/LayerType' + required: + - type + type: object + LayerAttributes: + description: Describes key properties of a Layer, including rotation details, + name, start/end times, and any restrictions. + properties: + effective_date: + description: When the layer becomes active (ISO 8601). + format: date-time + type: string + end_date: + description: When the layer ceases to be active (ISO 8601). + format: date-time + type: string + interval: + $ref: '#/components/schemas/LayerAttributesInterval' + name: + description: The name of this layer. + example: Weekend Layer + type: string + restrictions: + description: An optional list of time restrictions for when this layer is + in effect. + items: + $ref: '#/components/schemas/TimeRestriction' + type: array + rotation_start: + description: The date/time when the rotation starts (ISO 8601). + format: date-time + type: string + time_zone: + description: The time zone for this layer. + example: America/New_York + type: string + type: object + LayerAttributesInterval: + description: Defines how often the rotation repeats, using a combination of + days and optional seconds. Should be at least 1 hour. + properties: + days: + description: The number of days in each rotation cycle. + example: 1 + format: int32 + maximum: 400 + type: integer + seconds: + description: Any additional seconds for the rotation cycle (up to 30 days). + example: 300 + format: int64 + maximum: 2592000 + type: integer + type: object + LayerRelationships: + description: Holds references to objects related to the Layer entity, such as + its members. + properties: + members: + $ref: '#/components/schemas/LayerRelationshipsMembers' + type: object + LayerRelationshipsMembers: + description: Holds an array of references to the members of a Layer, each containing + member IDs. + properties: + data: + description: The list of members who belong to this layer. + items: + $ref: '#/components/schemas/LayerRelationshipsMembersDataItems' + type: array + type: object + LayerRelationshipsMembersDataItems: + description: 'Represents a single member object in a layer''s `members` array, + referencing + + a unique Datadog user ID.' + properties: + id: + description: The unique user ID of the layer member. + example: 00000000-0000-0000-0000-000000000002 + type: string + type: + $ref: '#/components/schemas/LayerRelationshipsMembersDataItemsType' + required: + - type + - id + type: object + LayerRelationshipsMembersDataItemsType: + default: members + description: Members resource type. + enum: + - members + example: members + type: string + x-enum-varnames: + - MEMBERS + LayerType: + default: layers + description: Layers resource type. + enum: + - layers + example: layers + type: string + x-enum-varnames: + - LAYERS + LeakedKey: + description: The definition of LeakedKey object. + properties: + attributes: + $ref: '#/components/schemas/LeakedKeyAttributes' + id: + description: The LeakedKey id. + example: id + type: string + type: + $ref: '#/components/schemas/LeakedKeyType' + required: + - attributes + - id + - type + type: object + LeakedKeyAttributes: + description: The definition of LeakedKeyAttributes object. + properties: + date: + description: The LeakedKeyAttributes date. + example: '2017-07-21T17:32:28Z' + format: date-time + type: string + leak_source: + description: The LeakedKeyAttributes leak_source. + type: string + required: + - date + type: object + LeakedKeyType: + default: leaked_keys + description: The definition of LeakedKeyType object. + enum: + - leaked_keys + example: leaked_keys + type: string + x-enum-varnames: + - LEAKED_KEYS + Library: + description: Vulnerability library. + properties: + additional_names: + description: Related library or package names (such as child packages or + affected binary paths). + items: + example: linux-tools-common + type: string + type: array + name: + description: Vulnerability library name. + example: linux-aws-5.15 + type: string + version: + description: Vulnerability library version. + example: 5.15.0 + type: string + required: + - name + type: object + Links: + description: The JSON:API links related to pagination. + properties: + first: + description: First page link. + example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=1&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 + type: string + last: + description: Last page link. + example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=15&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 + type: string + next: + description: Next page link. + example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=16&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 + type: string + previous: + description: Previous page link. + example: https://api.datadoghq.com/api/v2/security/vulnerabilities?page%5Bnumber%5D=14&page%5Btoken%5D=b82cef018aab81ed1d4bb4xb35xxfc065da7efa685fbcecdbd338f3015e3afabbbfa3a911b4984_721ee28a-zecb-4e45-9960-c42065b574f4 + type: string + self: + description: Request link. + example: https://api.datadoghq.com/api/v2/security/vulnerabilities?filter%5Btool%5D=Infra + type: string + required: + - self + - first + - last + type: object + ListAPIsResponse: + description: Response for `ListAPIs`. + properties: + data: + description: List of API items. + items: + $ref: '#/components/schemas/ListAPIsResponseData' + type: array + meta: + $ref: '#/components/schemas/ListAPIsResponseMeta' + type: object + ListAPIsResponseData: + description: Data envelope for `ListAPIsResponse`. + properties: + attributes: + $ref: '#/components/schemas/ListAPIsResponseDataAttributes' + id: + $ref: '#/components/schemas/ApiID' + type: object + ListAPIsResponseDataAttributes: + description: Attributes for `ListAPIsResponseData`. + properties: + name: + description: API name. + example: Payments API + type: string + type: object + ListAPIsResponseMeta: + description: Metadata for `ListAPIsResponse`. + properties: + pagination: + $ref: '#/components/schemas/ListAPIsResponseMetaPagination' + type: object + ListAPIsResponseMetaPagination: + description: Pagination metadata information for `ListAPIsResponse`. + properties: + limit: + description: Number of items in the current page. + example: 20 + format: int64 + type: integer + offset: + description: Offset for pagination. + example: 0 + format: int64 + type: integer + total_count: + description: Total number of items. + example: 35 + format: int64 + type: integer + type: object + ListAppKeyRegistrationsResponse: + description: A paginated list of app key registrations. + properties: + data: + description: An array of app key registrations. + items: + $ref: '#/components/schemas/AppKeyRegistrationData' + type: array + meta: + $ref: '#/components/schemas/ListAppKeyRegistrationsResponseMeta' + type: object + ListAppKeyRegistrationsResponseMeta: + description: The definition of `ListAppKeyRegistrationsResponseMeta` object. + properties: + total: + description: The total number of app key registrations. + example: 1 + format: int64 + type: integer + total_filtered: + description: The total number of app key registrations that match the specified + filters. + example: 1 + format: int64 + type: integer + type: object + ListApplicationKeysResponse: + description: Response for a list of application keys. + properties: + data: + description: Array of application keys. + items: + $ref: '#/components/schemas/PartialApplicationKey' + type: array + included: + description: Array of objects related to the application key. + items: + $ref: '#/components/schemas/ApplicationKeyResponseIncludedItem' + type: array + meta: + $ref: '#/components/schemas/ApplicationKeyResponseMeta' + type: object + ListAppsResponse: + description: A paginated list of apps matching the specified filters and sorting. + properties: + data: + description: An array of app definitions. + items: + $ref: '#/components/schemas/ListAppsResponseDataItems' + type: array + included: + description: Data on the version of the app that was published. + items: + $ref: '#/components/schemas/Deployment' + type: array + meta: + $ref: '#/components/schemas/ListAppsResponseMeta' + type: object + ListAppsResponseDataItems: + description: An app definition object. This contains only basic information + about the app such as ID, name, and tags. + properties: + attributes: + $ref: '#/components/schemas/ListAppsResponseDataItemsAttributes' + id: + description: The ID of the app. + example: 65bb1f25-52e1-4510-9f8d-22d1516ed693 + format: uuid + type: string + meta: + $ref: '#/components/schemas/AppMeta' + relationships: + $ref: '#/components/schemas/ListAppsResponseDataItemsRelationships' + type: + $ref: '#/components/schemas/AppDefinitionType' + required: + - id - type - attributes type: object @@ -86273,7 +87291,457 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ConfluentAccountResponse' + $ref: '#/components/schemas/ConfluentAccountResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get Confluent account + tags: + - Confluent Cloud + x-permission: + operator: OR + permissions: + - integrations_read + patch: + description: Update the Confluent account with the provided account ID. + operationId: UpdateConfluentAccount + parameters: + - $ref: '#/components/parameters/ConfluentAccountID' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentAccountUpdateRequest' + description: Confluent payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentAccountResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update Confluent account + tags: + - Confluent Cloud + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources: + get: + description: Get a Confluent resource for the account associated with the provided + ID. + operationId: ListConfluentResource + parameters: + - $ref: '#/components/parameters/ConfluentAccountID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentResourcesResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: List Confluent Account resources + tags: + - Confluent Cloud + x-permission: + operator: OR + permissions: + - integrations_read + post: + description: Create a Confluent resource for the account associated with the + provided ID. + operationId: CreateConfluentResource + parameters: + - $ref: '#/components/parameters/ConfluentAccountID' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentResourceRequest' + description: Confluent payload + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentResourceResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Add resource to Confluent account + tags: + - Confluent Cloud + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources/{resource_id}: + delete: + description: Delete a Confluent resource with the provided resource id for the + account associated with the provided account ID. + operationId: DeleteConfluentResource + parameters: + - $ref: '#/components/parameters/ConfluentAccountID' + - $ref: '#/components/parameters/ConfluentResourceID' + responses: + '204': + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete resource from Confluent account + tags: + - Confluent Cloud + x-permission: + operator: OR + permissions: + - manage_integrations + get: + description: Get a Confluent resource with the provided resource id for the + account associated with the provided account ID. + operationId: GetConfluentResource + parameters: + - $ref: '#/components/parameters/ConfluentAccountID' + - $ref: '#/components/parameters/ConfluentResourceID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentResourceResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get resource from Confluent account + tags: + - Confluent Cloud + x-permission: + operator: OR + permissions: + - integrations_read + patch: + description: Update a Confluent resource with the provided resource id for the + account associated with the provided account ID. + operationId: UpdateConfluentResource + parameters: + - $ref: '#/components/parameters/ConfluentAccountID' + - $ref: '#/components/parameters/ConfluentResourceID' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentResourceRequest' + description: Confluent payload + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/ConfluentResourceResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update resource in Confluent account + tags: + - Confluent Cloud + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + /api/v2/integrations/fastly/accounts: + get: + description: List Fastly accounts. + operationId: ListFastlyAccounts + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyAccountsResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: List Fastly accounts + tags: + - Fastly Integration + x-permission: + operator: OR + permissions: + - integrations_read + post: + description: Create a Fastly account. + operationId: CreateFastlyAccount + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyAccountCreateRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyAccountResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Add Fastly account + tags: + - Fastly Integration + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + /api/v2/integrations/fastly/accounts/{account_id}: + delete: + description: Delete a Fastly account. + operationId: DeleteFastlyAccount + parameters: + - $ref: '#/components/parameters/FastlyAccountID' + responses: + '204': + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete Fastly account + tags: + - Fastly Integration + x-permission: + operator: OR + permissions: + - manage_integrations + get: + description: Get a Fastly account. + operationId: GetFastlyAccount + parameters: + - $ref: '#/components/parameters/FastlyAccountID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyAccountResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Get Fastly account + tags: + - Fastly Integration + x-permission: + operator: OR + permissions: + - integrations_read + patch: + description: Update a Fastly account. + operationId: UpdateFastlyAccount + parameters: + - $ref: '#/components/parameters/FastlyAccountID' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyAccountUpdateRequest' + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyAccountResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Update Fastly account + tags: + - Fastly Integration + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + /api/v2/integrations/fastly/accounts/{account_id}/services: + get: + description: List Fastly services for an account. + operationId: ListFastlyServices + parameters: + - $ref: '#/components/parameters/FastlyAccountID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyServicesResponse' + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: List Fastly services + tags: + - Fastly Integration + x-permission: + operator: OR + permissions: + - integrations_read + post: + description: Create a Fastly service for an account. + operationId: CreateFastlyService + parameters: + - $ref: '#/components/parameters/FastlyAccountID' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyServiceRequest' + required: true + responses: + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyServiceResponse' + description: CREATED + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Add Fastly service + tags: + - Fastly Integration + x-codegen-request-body-name: body + x-permission: + operator: OR + permissions: + - manage_integrations + /api/v2/integrations/fastly/accounts/{account_id}/services/{service_id}: + delete: + description: Delete a Fastly service for an account. + operationId: DeleteFastlyService + parameters: + - $ref: '#/components/parameters/FastlyAccountID' + - $ref: '#/components/parameters/FastlyServiceID' + responses: + '204': + description: OK + '400': + $ref: '#/components/responses/BadRequestResponse' + '403': + $ref: '#/components/responses/ForbiddenResponse' + '404': + $ref: '#/components/responses/NotFoundResponse' + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + summary: Delete Fastly service + tags: + - Fastly Integration + x-permission: + operator: OR + permissions: + - manage_integrations + get: + description: Get a Fastly service for an account. + operationId: GetFastlyService + parameters: + - $ref: '#/components/parameters/FastlyAccountID' + - $ref: '#/components/parameters/FastlyServiceID' + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/FastlyServiceResponse' description: OK '400': $ref: '#/components/responses/BadRequestResponse' @@ -86283,31 +87751,31 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Get Confluent account + summary: Get Fastly service tags: - - Confluent Cloud + - Fastly Integration x-permission: operator: OR permissions: - integrations_read patch: - description: Update the Confluent account with the provided account ID. - operationId: UpdateConfluentAccount + description: Update a Fastly service for an account. + operationId: UpdateFastlyService parameters: - - $ref: '#/components/parameters/ConfluentAccountID' + - $ref: '#/components/parameters/FastlyAccountID' + - $ref: '#/components/parameters/FastlyServiceID' requestBody: content: application/json: schema: - $ref: '#/components/schemas/ConfluentAccountUpdateRequest' - description: Confluent payload + $ref: '#/components/schemas/FastlyServiceRequest' required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/ConfluentAccountResponse' + $ref: '#/components/schemas/FastlyServiceResponse' description: OK '400': $ref: '#/components/responses/BadRequestResponse' @@ -86317,27 +87785,24 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Update Confluent account + summary: Update Fastly service tags: - - Confluent Cloud + - Fastly Integration x-codegen-request-body-name: body x-permission: operator: OR permissions: - manage_integrations - /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources: + /api/v2/integrations/okta/accounts: get: - description: Get a Confluent resource for the account associated with the provided - ID. - operationId: ListConfluentResource - parameters: - - $ref: '#/components/parameters/ConfluentAccountID' + description: List Okta accounts. + operationId: ListOktaAccounts responses: '200': content: application/json: schema: - $ref: '#/components/schemas/ConfluentResourcesResponse' + $ref: '#/components/schemas/OktaAccountsResponse' description: OK '400': $ref: '#/components/responses/BadRequestResponse' @@ -86347,32 +87812,28 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: List Confluent Account resources + summary: List Okta accounts tags: - - Confluent Cloud + - Okta Integration x-permission: operator: OR permissions: - integrations_read post: - description: Create a Confluent resource for the account associated with the - provided ID. - operationId: CreateConfluentResource - parameters: - - $ref: '#/components/parameters/ConfluentAccountID' + description: Create an Okta account. + operationId: CreateOktaAccount requestBody: content: application/json: schema: - $ref: '#/components/schemas/ConfluentResourceRequest' - description: Confluent payload + $ref: '#/components/schemas/OktaAccountRequest' required: true responses: '201': content: application/json: schema: - $ref: '#/components/schemas/ConfluentResourceResponse' + $ref: '#/components/schemas/OktaAccountResponse' description: OK '400': $ref: '#/components/responses/BadRequestResponse' @@ -86382,22 +87843,25 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Add resource to Confluent account + summary: Add Okta account tags: - - Confluent Cloud + - Okta Integration x-codegen-request-body-name: body x-permission: operator: OR permissions: - manage_integrations - /api/v2/integrations/confluent-cloud/accounts/{account_id}/resources/{resource_id}: + /api/v2/integrations/okta/accounts/{account_id}: delete: - description: Delete a Confluent resource with the provided resource id for the - account associated with the provided account ID. - operationId: DeleteConfluentResource + description: Delete an Okta account. + operationId: DeleteOktaAccount parameters: - - $ref: '#/components/parameters/ConfluentAccountID' - - $ref: '#/components/parameters/ConfluentResourceID' + - description: None + in: path + name: account_id + required: true + schema: + type: string responses: '204': description: OK @@ -86409,26 +87873,29 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Delete resource from Confluent account + summary: Delete Okta account tags: - - Confluent Cloud + - Okta Integration x-permission: operator: OR permissions: - manage_integrations get: - description: Get a Confluent resource with the provided resource id for the - account associated with the provided account ID. - operationId: GetConfluentResource + description: Get an Okta account. + operationId: GetOktaAccount parameters: - - $ref: '#/components/parameters/ConfluentAccountID' - - $ref: '#/components/parameters/ConfluentResourceID' + - description: None + in: path + name: account_id + required: true + schema: + type: string responses: '200': content: application/json: schema: - $ref: '#/components/schemas/ConfluentResourceResponse' + $ref: '#/components/schemas/OktaAccountResponse' description: OK '400': $ref: '#/components/responses/BadRequestResponse' @@ -86438,33 +87905,35 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Get resource from Confluent account + summary: Get Okta account tags: - - Confluent Cloud + - Okta Integration x-permission: operator: OR permissions: - integrations_read patch: - description: Update a Confluent resource with the provided resource id for the - account associated with the provided account ID. - operationId: UpdateConfluentResource + description: Update an Okta account. + operationId: UpdateOktaAccount parameters: - - $ref: '#/components/parameters/ConfluentAccountID' - - $ref: '#/components/parameters/ConfluentResourceID' + - description: None + in: path + name: account_id + required: true + schema: + type: string requestBody: content: application/json: schema: - $ref: '#/components/schemas/ConfluentResourceRequest' - description: Confluent payload + $ref: '#/components/schemas/OktaAccountUpdateRequest' required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/ConfluentResourceResponse' + $ref: '#/components/schemas/OktaAccountResponse' description: OK '400': $ref: '#/components/responses/BadRequestResponse' @@ -86474,56 +87943,59 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Update resource in Confluent account + summary: Update Okta account tags: - - Confluent Cloud + - Okta Integration x-codegen-request-body-name: body x-permission: operator: OR permissions: - manage_integrations - /api/v2/integrations/fastly/accounts: + /api/v2/ip_allowlist: get: - description: List Fastly accounts. - operationId: ListFastlyAccounts + description: Returns the IP allowlist and its enabled or disabled state. + operationId: GetIPAllowlist responses: '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyAccountsResponse' + $ref: '#/components/schemas/IPAllowlistResponse' description: OK - '400': - $ref: '#/components/responses/BadRequestResponse' '403': $ref: '#/components/responses/ForbiddenResponse' '404': $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: List Fastly accounts + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Get IP Allowlist tags: - - Fastly Integration + - IP Allowlist x-permission: operator: OR permissions: - - integrations_read - post: - description: Create a Fastly account. - operationId: CreateFastlyAccount + - org_management + patch: + description: Edit the entries in the IP allowlist, and enable or disable it. + operationId: UpdateIPAllowlist requestBody: content: application/json: schema: - $ref: '#/components/schemas/FastlyAccountCreateRequest' + $ref: '#/components/schemas/IPAllowlistUpdateRequest' required: true responses: - '201': + '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyAccountResponse' - description: CREATED + $ref: '#/components/schemas/IPAllowlistResponse' + description: OK '400': $ref: '#/components/responses/BadRequestResponse' '403': @@ -86532,473 +88004,979 @@ paths: $ref: '#/components/responses/NotFoundResponse' '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Add Fastly account + security: + - apiKeyAuth: [] + appKeyAuth: [] + - AuthZ: + - org_management + summary: Update IP Allowlist tags: - - Fastly Integration + - IP Allowlist x-codegen-request-body-name: body x-permission: operator: OR permissions: - - manage_integrations - /api/v2/integrations/fastly/accounts/{account_id}: - delete: - description: Delete a Fastly account. - operationId: DeleteFastlyAccount + - org_management + /api/v2/llm-obs/v1/experiments: + get: + description: List all LLM Observability experiments sorted by creation date, + newest first. + operationId: ListLLMObsExperiments parameters: - - $ref: '#/components/parameters/FastlyAccountID' + - description: Filter experiments by project ID. Required if `filter[dataset_id]` + is not provided. + in: query + name: filter[project_id] + schema: + type: string + - description: Filter experiments by dataset ID. + in: query + name: filter[dataset_id] + schema: + type: string + - description: Filter experiments by experiment ID. Can be specified multiple + times. + in: query + name: filter[id] + schema: + type: string + - description: Pagination cursor for the next page of results. + in: query + name: page[cursor] + schema: + type: string + - description: Maximum number of results to return per page. + in: query + name: page[limit] + schema: + format: int64 + type: integer responses: - '204': + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsExperimentsResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' - '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Delete Fastly account + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: List LLM Observability experiments tags: - - Fastly Integration - x-permission: - operator: OR - permissions: - - manage_integrations - get: - description: Get a Fastly account. - operationId: GetFastlyAccount - parameters: - - $ref: '#/components/parameters/FastlyAccountID' + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + post: + description: Create a new LLM Observability experiment. + operationId: CreateLLMObsExperiment + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsExperimentRequest' + description: Create experiment payload. + required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyAccountResponse' + $ref: '#/components/schemas/LLMObsExperimentResponse' description: OK + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsExperimentResponse' + description: Created '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' - '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Get Fastly account + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Create an LLM Observability experiment tags: - - Fastly Integration - x-permission: - operator: OR - permissions: - - integrations_read + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/experiments/delete: + post: + description: Delete one or more LLM Observability experiments. + operationId: DeleteLLMObsExperiments + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsDeleteExperimentsRequest' + description: Delete experiments payload. + required: true + responses: + '204': + description: No Content + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Delete LLM Observability experiments + tags: + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/experiments/{experiment_id}: patch: - description: Update a Fastly account. - operationId: UpdateFastlyAccount + description: Partially update an existing LLM Observability experiment. + operationId: UpdateLLMObsExperiment parameters: - - $ref: '#/components/parameters/FastlyAccountID' + - $ref: '#/components/parameters/LLMObsExperimentIDPathParameter' requestBody: content: application/json: schema: - $ref: '#/components/schemas/FastlyAccountUpdateRequest' + $ref: '#/components/schemas/LLMObsExperimentUpdateRequest' + description: Update experiment payload. required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyAccountResponse' + $ref: '#/components/schemas/LLMObsExperimentResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Update Fastly account + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Update an LLM Observability experiment tags: - - Fastly Integration - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - manage_integrations - /api/v2/integrations/fastly/accounts/{account_id}/services: + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/experiments/{experiment_id}/events: + post: + description: Push spans and metrics for an LLM Observability experiment. + operationId: CreateLLMObsExperimentEvents + parameters: + - $ref: '#/components/parameters/LLMObsExperimentIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsExperimentEventsRequest' + description: Experiment events payload. + required: true + responses: + '202': + description: Accepted + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '404': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Push events for an LLM Observability experiment + tags: + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/projects: get: - description: List Fastly services for an account. - operationId: ListFastlyServices + description: List all LLM Observability projects sorted by creation date, newest + first. + operationId: ListLLMObsProjects parameters: - - $ref: '#/components/parameters/FastlyAccountID' + - description: Filter projects by project ID. + in: query + name: filter[id] + schema: + type: string + - description: Filter projects by name. + in: query + name: filter[name] + schema: + type: string + - description: Pagination cursor for the next page of results. + in: query + name: page[cursor] + schema: + type: string + - description: Maximum number of results to return per page. + in: query + name: page[limit] + schema: + format: int64 + type: integer responses: '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyServicesResponse' + $ref: '#/components/schemas/LLMObsProjectsResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' - '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: List LLM Observability projects + tags: + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + post: + description: Create a new LLM Observability project. Returns the existing project + if a name conflict occurs. + operationId: CreateLLMObsProject + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsProjectRequest' + description: Create project payload. + required: true + responses: + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsProjectResponse' + description: OK + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsProjectResponse' + description: Created + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden + '429': + $ref: '#/components/responses/TooManyRequestsResponse' + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Create an LLM Observability project + tags: + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/projects/delete: + post: + description: Delete one or more LLM Observability projects. + operationId: DeleteLLMObsProjects + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsDeleteProjectsRequest' + description: Delete projects payload. + required: true + responses: + '204': + description: No Content + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized + '403': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: List Fastly services + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Delete LLM Observability projects tags: - - Fastly Integration - x-permission: - operator: OR - permissions: - - integrations_read - post: - description: Create a Fastly service for an account. - operationId: CreateFastlyService + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/projects/{project_id}: + patch: + description: Partially update an existing LLM Observability project. + operationId: UpdateLLMObsProject parameters: - - $ref: '#/components/parameters/FastlyAccountID' + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' requestBody: content: application/json: schema: - $ref: '#/components/schemas/FastlyServiceRequest' + $ref: '#/components/schemas/LLMObsProjectUpdateRequest' + description: Update project payload. required: true responses: - '201': + '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyServiceResponse' - description: CREATED - '400': - $ref: '#/components/responses/BadRequestResponse' - '403': - $ref: '#/components/responses/ForbiddenResponse' - '404': - $ref: '#/components/responses/NotFoundResponse' - '429': - $ref: '#/components/responses/TooManyRequestsResponse' - summary: Add Fastly service - tags: - - Fastly Integration - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - manage_integrations - /api/v2/integrations/fastly/accounts/{account_id}/services/{service_id}: - delete: - description: Delete a Fastly service for an account. - operationId: DeleteFastlyService - parameters: - - $ref: '#/components/parameters/FastlyAccountID' - - $ref: '#/components/parameters/FastlyServiceID' - responses: - '204': + $ref: '#/components/schemas/LLMObsProjectResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Delete Fastly service + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Update an LLM Observability project tags: - - Fastly Integration - x-permission: - operator: OR - permissions: - - manage_integrations + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/{project_id}/datasets: get: - description: Get a Fastly service for an account. - operationId: GetFastlyService + description: List all LLM Observability datasets for a project, sorted by creation + date, newest first. + operationId: ListLLMObsDatasets parameters: - - $ref: '#/components/parameters/FastlyAccountID' - - $ref: '#/components/parameters/FastlyServiceID' + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' + - description: Filter datasets by name. + in: query + name: filter[name] + schema: + type: string + - description: Filter datasets by dataset ID. + in: query + name: filter[id] + schema: + type: string + - description: Pagination cursor for the next page of results. + in: query + name: page[cursor] + schema: + type: string + - description: Maximum number of results to return per page. + in: query + name: page[limit] + schema: + format: int64 + type: integer responses: '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyServiceResponse' + $ref: '#/components/schemas/LLMObsDatasetsResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Get Fastly service + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: List LLM Observability datasets tags: - - Fastly Integration - x-permission: - operator: OR - permissions: - - integrations_read - patch: - description: Update a Fastly service for an account. - operationId: UpdateFastlyService + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + post: + description: Create a new LLM Observability dataset within the specified project. + operationId: CreateLLMObsDataset parameters: - - $ref: '#/components/parameters/FastlyAccountID' - - $ref: '#/components/parameters/FastlyServiceID' + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' requestBody: content: application/json: schema: - $ref: '#/components/schemas/FastlyServiceRequest' + $ref: '#/components/schemas/LLMObsDatasetRequest' + description: Create dataset payload. required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/FastlyServiceResponse' + $ref: '#/components/schemas/LLMObsDatasetResponse' description: OK - '400': - $ref: '#/components/responses/BadRequestResponse' - '403': - $ref: '#/components/responses/ForbiddenResponse' - '404': - $ref: '#/components/responses/NotFoundResponse' - '429': - $ref: '#/components/responses/TooManyRequestsResponse' - summary: Update Fastly service - tags: - - Fastly Integration - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - manage_integrations - /api/v2/integrations/okta/accounts: - get: - description: List Okta accounts. - operationId: ListOktaAccounts - responses: - '200': + '201': content: application/json: schema: - $ref: '#/components/schemas/OktaAccountsResponse' - description: OK + $ref: '#/components/schemas/LLMObsDatasetResponse' + description: Created '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: List Okta accounts + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Create an LLM Observability dataset tags: - - Okta Integration - x-permission: - operator: OR - permissions: - - integrations_read + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/{project_id}/datasets/delete: post: - description: Create an Okta account. - operationId: CreateOktaAccount + description: Delete one or more LLM Observability datasets within the specified + project. + operationId: DeleteLLMObsDatasets + parameters: + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' requestBody: content: application/json: schema: - $ref: '#/components/schemas/OktaAccountRequest' + $ref: '#/components/schemas/LLMObsDeleteDatasetsRequest' + description: Delete datasets payload. required: true responses: - '201': + '204': + description: No Content + '400': content: application/json: schema: - $ref: '#/components/schemas/OktaAccountResponse' - description: OK - '400': - $ref: '#/components/responses/BadRequestResponse' + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Add Okta account + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Delete LLM Observability datasets tags: - - Okta Integration - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - manage_integrations - /api/v2/integrations/okta/accounts/{account_id}: - delete: - description: Delete an Okta account. - operationId: DeleteOktaAccount + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}: + patch: + description: Partially update an existing LLM Observability dataset within the + specified project. + operationId: UpdateLLMObsDataset parameters: - - description: None - in: path - name: account_id + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' + - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsDatasetUpdateRequest' + description: Update dataset payload. required: true - schema: - type: string responses: - '204': + '200': + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsDatasetResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Delete Okta account + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Update an LLM Observability dataset tags: - - Okta Integration - x-permission: - operator: OR - permissions: - - manage_integrations + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records: get: - description: Get an Okta account. - operationId: GetOktaAccount - parameters: - - description: None - in: path - name: account_id - required: true + description: List all records in an LLM Observability dataset, sorted by creation + date, newest first. + operationId: ListLLMObsDatasetRecords + parameters: + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' + - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter' + - description: Retrieve records from a specific dataset version. Defaults to + the current version. + in: query + name: filter[version] + schema: + format: int64 + type: integer + - description: Pagination cursor for the next page of results. + in: query + name: page[cursor] schema: type: string + - description: Maximum number of results to return per page. + in: query + name: page[limit] + schema: + format: int64 + type: integer responses: '200': content: application/json: schema: - $ref: '#/components/schemas/OktaAccountResponse' + $ref: '#/components/schemas/LLMObsDatasetRecordsListResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Get Okta account + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: List LLM Observability dataset records tags: - - Okta Integration - x-permission: - operator: OR - permissions: - - integrations_read + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' patch: - description: Update an Okta account. - operationId: UpdateOktaAccount + description: Update one or more existing records in an LLM Observability dataset. + operationId: UpdateLLMObsDatasetRecords parameters: - - description: None - in: path - name: account_id - required: true - schema: - type: string + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' + - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter' requestBody: content: application/json: schema: - $ref: '#/components/schemas/OktaAccountUpdateRequest' + $ref: '#/components/schemas/LLMObsDatasetRecordsUpdateRequest' + description: Update records payload. required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/OktaAccountResponse' + $ref: '#/components/schemas/LLMObsDatasetRecordsMutationResponse' description: OK '400': - $ref: '#/components/responses/BadRequestResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' - summary: Update Okta account + security: + - apiKeyAuth: [] + appKeyAuth: [] + summary: Update LLM Observability dataset records tags: - - Okta Integration - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - manage_integrations - /api/v2/ip_allowlist: - get: - description: Returns the IP allowlist and its enabled or disabled state. - operationId: GetIPAllowlist + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + post: + description: Append one or more records to an LLM Observability dataset. + operationId: CreateLLMObsDatasetRecords + parameters: + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' + - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsDatasetRecordsRequest' + description: Append records payload. + required: true responses: '200': content: application/json: schema: - $ref: '#/components/schemas/IPAllowlistResponse' + $ref: '#/components/schemas/LLMObsDatasetRecordsMutationResponse' description: OK + '201': + content: + application/json: + schema: + $ref: '#/components/schemas/LLMObsDatasetRecordsMutationResponse' + description: Created + '400': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - org_management - summary: Get IP Allowlist + summary: Append records to an LLM Observability dataset tags: - - IP Allowlist - x-permission: - operator: OR - permissions: - - org_management - patch: - description: Edit the entries in the IP allowlist, and enable or disable it. - operationId: UpdateIPAllowlist + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' + /api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records/delete: + post: + description: Delete one or more records from an LLM Observability dataset. + operationId: DeleteLLMObsDatasetRecords + parameters: + - $ref: '#/components/parameters/LLMObsProjectIDPathParameter' + - $ref: '#/components/parameters/LLMObsDatasetIDPathParameter' requestBody: content: application/json: schema: - $ref: '#/components/schemas/IPAllowlistUpdateRequest' + $ref: '#/components/schemas/LLMObsDeleteDatasetRecordsRequest' + description: Delete records payload. required: true responses: - '200': + '204': + description: No Content + '400': content: application/json: schema: - $ref: '#/components/schemas/IPAllowlistResponse' - description: OK - '400': - $ref: '#/components/responses/BadRequestResponse' + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Bad Request + '401': + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Unauthorized '403': - $ref: '#/components/responses/ForbiddenResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Forbidden '404': - $ref: '#/components/responses/NotFoundResponse' + content: + application/json: + schema: + $ref: '#/components/schemas/JSONAPIErrorResponse' + description: Not Found '429': $ref: '#/components/responses/TooManyRequestsResponse' security: - apiKeyAuth: [] appKeyAuth: [] - - AuthZ: - - org_management - summary: Update IP Allowlist + summary: Delete LLM Observability dataset records tags: - - IP Allowlist - x-codegen-request-body-name: body - x-permission: - operator: OR - permissions: - - org_management + - LLM Observability + x-unstable: '**Note**: This endpoint is in preview and is subject to change. + + If you have any feedback, contact [Datadog support](https://docs.datadoghq.com/help/).' /api/v2/logs: post: description: 'Send your logs to your Datadog platform over HTTP. Limits per @@ -108209,6 +110187,9 @@ tags: description: Find out more at url: https://docs.datadoghq.com/account_management/api-app-keys/ name: Key Management +- description: Manage LLM Observability projects, datasets, dataset records, and experiments + via the Experiments API. + name: LLM Observability - description: Search your logs and send them to your Datadog platform over HTTP. See the [Log Management page](https://docs.datadoghq.com/logs/) for more information. name: Logs diff --git a/examples/v2/llm-observability/CreateLLMObsDataset.java b/examples/v2/llm-observability/CreateLLMObsDataset.java new file mode 100644 index 00000000000..7d0aa147f12 --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsDataset.java @@ -0,0 +1,37 @@ +// Create an LLM Observability dataset returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDatasetDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetDataRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetResponse; +import com.datadog.api.client.v2.model.LLMObsDatasetType; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createLLMObsDataset", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDatasetRequest body = + new LLMObsDatasetRequest() + .data( + new LLMObsDatasetDataRequest() + .attributes(new LLMObsDatasetDataAttributesRequest().name("My LLM Dataset")) + .type(LLMObsDatasetType.DATASETS)); + + try { + LLMObsDatasetResponse result = + apiInstance.createLLMObsDataset("a33671aa-24fd-4dcd-9b33-a8ec7dde7751", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#createLLMObsDataset"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/CreateLLMObsDatasetRecords.java b/examples/v2/llm-observability/CreateLLMObsDatasetRecords.java new file mode 100644 index 00000000000..3963136b0ae --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsDatasetRecords.java @@ -0,0 +1,46 @@ +// Append records to an LLM Observability dataset returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordItem; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsDataRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsMutationResponse; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsRequest; +import com.datadog.api.client.v2.model.LLMObsRecordType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createLLMObsDatasetRecords", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDatasetRecordsRequest body = + new LLMObsDatasetRecordsRequest() + .data( + new LLMObsDatasetRecordsDataRequest() + .attributes( + new LLMObsDatasetRecordsDataAttributesRequest() + .records( + Collections.singletonList( + new LLMObsDatasetRecordItem() + .expectedOutput(null) + .input(null)))) + .type(LLMObsRecordType.RECORDS)); + + try { + LLMObsDatasetRecordsMutationResponse result = + apiInstance.createLLMObsDatasetRecords( + "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#createLLMObsDatasetRecords"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/CreateLLMObsExperiment.java b/examples/v2/llm-observability/CreateLLMObsExperiment.java new file mode 100644 index 00000000000..10f50e2fc43 --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsExperiment.java @@ -0,0 +1,40 @@ +// Create an LLM Observability experiment returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsExperimentDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentDataRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentResponse; +import com.datadog.api.client.v2.model.LLMObsExperimentType; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createLLMObsExperiment", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsExperimentRequest body = + new LLMObsExperimentRequest() + .data( + new LLMObsExperimentDataRequest() + .attributes( + new LLMObsExperimentDataAttributesRequest() + .datasetId("9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d") + .name("My Experiment v1") + .projectId("a33671aa-24fd-4dcd-9b33-a8ec7dde7751")) + .type(LLMObsExperimentType.EXPERIMENTS)); + + try { + LLMObsExperimentResponse result = apiInstance.createLLMObsExperiment(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#createLLMObsExperiment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/CreateLLMObsExperimentEvents.java b/examples/v2/llm-observability/CreateLLMObsExperimentEvents.java new file mode 100644 index 00000000000..2c02980e38e --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsExperimentEvents.java @@ -0,0 +1,68 @@ +// Push events for an LLM Observability experiment returns "Accepted" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsEventType; +import com.datadog.api.client.v2.model.LLMObsExperimentEventsDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentEventsDataRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentEventsRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentMetric; +import com.datadog.api.client.v2.model.LLMObsExperimentMetricError; +import com.datadog.api.client.v2.model.LLMObsExperimentSpan; +import com.datadog.api.client.v2.model.LLMObsExperimentSpanError; +import com.datadog.api.client.v2.model.LLMObsExperimentSpanMeta; +import com.datadog.api.client.v2.model.LLMObsMetricAssessment; +import com.datadog.api.client.v2.model.LLMObsMetricScoreType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createLLMObsExperimentEvents", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsExperimentEventsRequest body = + new LLMObsExperimentEventsRequest() + .data( + new LLMObsExperimentEventsDataRequest() + .attributes( + new LLMObsExperimentEventsDataAttributesRequest() + .metrics( + Collections.singletonList( + new LLMObsExperimentMetric() + .assessment(LLMObsMetricAssessment.PASS) + .error(new LLMObsExperimentMetricError()) + .label("faithfulness") + .metricType(LLMObsMetricScoreType.SCORE) + .spanId("span-7a1b2c3d") + .timestampMs(1705314600000L))) + .spans( + Collections.singletonList( + new LLMObsExperimentSpan() + .datasetId("9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d") + .duration(1500000000L) + .meta( + new LLMObsExperimentSpanMeta() + .error(new LLMObsExperimentSpanError()) + .input(null) + .output(null)) + .name("llm_call") + .projectId("a33671aa-24fd-4dcd-9b33-a8ec7dde7751") + .spanId("span-7a1b2c3d") + .startNs(1705314600000000000L) + .status("ok") + .traceId("abc123def456")))) + .type(LLMObsEventType.EVENTS)); + + try { + apiInstance.createLLMObsExperimentEvents("3fd6b5e0-8910-4b1c-a7d0-5b84de329012", body); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#createLLMObsExperimentEvents"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/CreateLLMObsProject.java b/examples/v2/llm-observability/CreateLLMObsProject.java new file mode 100644 index 00000000000..25f5ea3123d --- /dev/null +++ b/examples/v2/llm-observability/CreateLLMObsProject.java @@ -0,0 +1,36 @@ +// Create an LLM Observability project returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsProjectDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsProjectDataRequest; +import com.datadog.api.client.v2.model.LLMObsProjectRequest; +import com.datadog.api.client.v2.model.LLMObsProjectResponse; +import com.datadog.api.client.v2.model.LLMObsProjectType; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.createLLMObsProject", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsProjectRequest body = + new LLMObsProjectRequest() + .data( + new LLMObsProjectDataRequest() + .attributes(new LLMObsProjectDataAttributesRequest().name("My LLM Project")) + .type(LLMObsProjectType.PROJECTS)); + + try { + LLMObsProjectResponse result = apiInstance.createLLMObsProject(body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#createLLMObsProject"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.java b/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.java new file mode 100644 index 00000000000..4006315220a --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsDatasetRecords.java @@ -0,0 +1,40 @@ +// Delete LLM Observability dataset records returns "No Content" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsDataRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsRequest; +import com.datadog.api.client.v2.model.LLMObsRecordType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsDatasetRecords", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDeleteDatasetRecordsRequest body = + new LLMObsDeleteDatasetRecordsRequest() + .data( + new LLMObsDeleteDatasetRecordsDataRequest() + .attributes( + new LLMObsDeleteDatasetRecordsDataAttributesRequest() + .recordIds( + Collections.singletonList( + "rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c"))) + .type(LLMObsRecordType.RECORDS)); + + try { + apiInstance.deleteLLMObsDatasetRecords( + "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsDatasetRecords"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/DeleteLLMObsDatasets.java b/examples/v2/llm-observability/DeleteLLMObsDatasets.java new file mode 100644 index 00000000000..5d3e5e193f3 --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsDatasets.java @@ -0,0 +1,38 @@ +// Delete LLM Observability datasets returns "No Content" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDatasetType; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsDataRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsRequest; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsDatasets", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDeleteDatasetsRequest body = + new LLMObsDeleteDatasetsRequest() + .data( + new LLMObsDeleteDatasetsDataRequest() + .attributes( + new LLMObsDeleteDatasetsDataAttributesRequest() + .datasetIds( + Collections.singletonList("9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d"))) + .type(LLMObsDatasetType.DATASETS)); + + try { + apiInstance.deleteLLMObsDatasets("a33671aa-24fd-4dcd-9b33-a8ec7dde7751", body); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsDatasets"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/DeleteLLMObsExperiments.java b/examples/v2/llm-observability/DeleteLLMObsExperiments.java new file mode 100644 index 00000000000..d9f57537234 --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsExperiments.java @@ -0,0 +1,38 @@ +// Delete LLM Observability experiments returns "No Content" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsDataRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsExperiments", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDeleteExperimentsRequest body = + new LLMObsDeleteExperimentsRequest() + .data( + new LLMObsDeleteExperimentsDataRequest() + .attributes( + new LLMObsDeleteExperimentsDataAttributesRequest() + .experimentIds( + Collections.singletonList("3fd6b5e0-8910-4b1c-a7d0-5b84de329012"))) + .type(LLMObsExperimentType.EXPERIMENTS)); + + try { + apiInstance.deleteLLMObsExperiments(body); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsExperiments"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/DeleteLLMObsProjects.java b/examples/v2/llm-observability/DeleteLLMObsProjects.java new file mode 100644 index 00000000000..40e75afdc96 --- /dev/null +++ b/examples/v2/llm-observability/DeleteLLMObsProjects.java @@ -0,0 +1,38 @@ +// Delete LLM Observability projects returns "No Content" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDeleteProjectsDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteProjectsDataRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteProjectsRequest; +import com.datadog.api.client.v2.model.LLMObsProjectType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.deleteLLMObsProjects", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDeleteProjectsRequest body = + new LLMObsDeleteProjectsRequest() + .data( + new LLMObsDeleteProjectsDataRequest() + .attributes( + new LLMObsDeleteProjectsDataAttributesRequest() + .projectIds( + Collections.singletonList("a33671aa-24fd-4dcd-9b33-a8ec7dde7751"))) + .type(LLMObsProjectType.PROJECTS)); + + try { + apiInstance.deleteLLMObsProjects(body); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#deleteLLMObsProjects"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/ListLLMObsDatasetRecords.java b/examples/v2/llm-observability/ListLLMObsDatasetRecords.java new file mode 100644 index 00000000000..20edfbfe381 --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsDatasetRecords.java @@ -0,0 +1,27 @@ +// List LLM Observability dataset records returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsListResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listLLMObsDatasetRecords", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + try { + LLMObsDatasetRecordsListResponse result = + apiInstance.listLLMObsDatasetRecords( + "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#listLLMObsDatasetRecords"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/ListLLMObsDatasets.java b/examples/v2/llm-observability/ListLLMObsDatasets.java new file mode 100644 index 00000000000..8003e2e7748 --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsDatasets.java @@ -0,0 +1,26 @@ +// List LLM Observability datasets returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDatasetsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listLLMObsDatasets", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + try { + LLMObsDatasetsResponse result = + apiInstance.listLLMObsDatasets("a33671aa-24fd-4dcd-9b33-a8ec7dde7751"); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#listLLMObsDatasets"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/ListLLMObsExperiments.java b/examples/v2/llm-observability/ListLLMObsExperiments.java new file mode 100644 index 00000000000..771a37eb4ef --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsExperiments.java @@ -0,0 +1,25 @@ +// List LLM Observability experiments returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsExperimentsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listLLMObsExperiments", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + try { + LLMObsExperimentsResponse result = apiInstance.listLLMObsExperiments(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#listLLMObsExperiments"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/ListLLMObsProjects.java b/examples/v2/llm-observability/ListLLMObsProjects.java new file mode 100644 index 00000000000..0367e9e22fa --- /dev/null +++ b/examples/v2/llm-observability/ListLLMObsProjects.java @@ -0,0 +1,25 @@ +// List LLM Observability projects returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsProjectsResponse; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.listLLMObsProjects", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + try { + LLMObsProjectsResponse result = apiInstance.listLLMObsProjects(); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#listLLMObsProjects"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/UpdateLLMObsDataset.java b/examples/v2/llm-observability/UpdateLLMObsDataset.java new file mode 100644 index 00000000000..e1b14af267d --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsDataset.java @@ -0,0 +1,38 @@ +// Update an LLM Observability dataset returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDatasetResponse; +import com.datadog.api.client.v2.model.LLMObsDatasetType; +import com.datadog.api.client.v2.model.LLMObsDatasetUpdateDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetUpdateDataRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetUpdateRequest; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.updateLLMObsDataset", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDatasetUpdateRequest body = + new LLMObsDatasetUpdateRequest() + .data( + new LLMObsDatasetUpdateDataRequest() + .attributes(new LLMObsDatasetUpdateDataAttributesRequest()) + .type(LLMObsDatasetType.DATASETS)); + + try { + LLMObsDatasetResponse result = + apiInstance.updateLLMObsDataset( + "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsDataset"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.java b/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.java new file mode 100644 index 00000000000..82709c3e516 --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsDatasetRecords.java @@ -0,0 +1,47 @@ +// Update LLM Observability dataset records returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordUpdateItem; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsMutationResponse; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateDataRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateRequest; +import com.datadog.api.client.v2.model.LLMObsRecordType; +import java.util.Collections; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.updateLLMObsDatasetRecords", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsDatasetRecordsUpdateRequest body = + new LLMObsDatasetRecordsUpdateRequest() + .data( + new LLMObsDatasetRecordsUpdateDataRequest() + .attributes( + new LLMObsDatasetRecordsUpdateDataAttributesRequest() + .records( + Collections.singletonList( + new LLMObsDatasetRecordUpdateItem() + .expectedOutput(null) + .id("rec-7c3f5a1b-9e2d-4f8a-b1c6-3d7e9f0a2b4c") + .input(null)))) + .type(LLMObsRecordType.RECORDS)); + + try { + LLMObsDatasetRecordsMutationResponse result = + apiInstance.updateLLMObsDatasetRecords( + "a33671aa-24fd-4dcd-9b33-a8ec7dde7751", "9f64e5c7-dc5a-45c8-a17c-1b85f0bec97d", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsDatasetRecords"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/UpdateLLMObsExperiment.java b/examples/v2/llm-observability/UpdateLLMObsExperiment.java new file mode 100644 index 00000000000..7c6a1824f00 --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsExperiment.java @@ -0,0 +1,37 @@ +// Update an LLM Observability experiment returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsExperimentResponse; +import com.datadog.api.client.v2.model.LLMObsExperimentType; +import com.datadog.api.client.v2.model.LLMObsExperimentUpdateDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentUpdateDataRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentUpdateRequest; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.updateLLMObsExperiment", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsExperimentUpdateRequest body = + new LLMObsExperimentUpdateRequest() + .data( + new LLMObsExperimentUpdateDataRequest() + .attributes(new LLMObsExperimentUpdateDataAttributesRequest()) + .type(LLMObsExperimentType.EXPERIMENTS)); + + try { + LLMObsExperimentResponse result = + apiInstance.updateLLMObsExperiment("3fd6b5e0-8910-4b1c-a7d0-5b84de329012", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsExperiment"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/examples/v2/llm-observability/UpdateLLMObsProject.java b/examples/v2/llm-observability/UpdateLLMObsProject.java new file mode 100644 index 00000000000..d5f27e19ed0 --- /dev/null +++ b/examples/v2/llm-observability/UpdateLLMObsProject.java @@ -0,0 +1,37 @@ +// Update an LLM Observability project returns "OK" response + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.v2.api.LlmObservabilityApi; +import com.datadog.api.client.v2.model.LLMObsProjectResponse; +import com.datadog.api.client.v2.model.LLMObsProjectType; +import com.datadog.api.client.v2.model.LLMObsProjectUpdateDataAttributesRequest; +import com.datadog.api.client.v2.model.LLMObsProjectUpdateDataRequest; +import com.datadog.api.client.v2.model.LLMObsProjectUpdateRequest; + +public class Example { + public static void main(String[] args) { + ApiClient defaultClient = ApiClient.getDefaultApiClient(); + defaultClient.setUnstableOperationEnabled("v2.updateLLMObsProject", true); + LlmObservabilityApi apiInstance = new LlmObservabilityApi(defaultClient); + + LLMObsProjectUpdateRequest body = + new LLMObsProjectUpdateRequest() + .data( + new LLMObsProjectUpdateDataRequest() + .attributes(new LLMObsProjectUpdateDataAttributesRequest()) + .type(LLMObsProjectType.PROJECTS)); + + try { + LLMObsProjectResponse result = + apiInstance.updateLLMObsProject("a33671aa-24fd-4dcd-9b33-a8ec7dde7751", body); + System.out.println(result); + } catch (ApiException e) { + System.err.println("Exception when calling LlmObservabilityApi#updateLLMObsProject"); + System.err.println("Status code: " + e.getCode()); + System.err.println("Reason: " + e.getResponseBody()); + System.err.println("Response headers: " + e.getResponseHeaders()); + e.printStackTrace(); + } + } +} diff --git a/src/main/java/com/datadog/api/client/ApiClient.java b/src/main/java/com/datadog/api/client/ApiClient.java index e5a488f9638..c300d4dcef2 100644 --- a/src/main/java/com/datadog/api/client/ApiClient.java +++ b/src/main/java/com/datadog/api/client/ApiClient.java @@ -901,6 +901,23 @@ public class ApiClient { put("v2.listServiceNowTemplates", false); put("v2.listServiceNowUsers", false); put("v2.updateServiceNowTemplate", false); + put("v2.createLLMObsDataset", false); + put("v2.createLLMObsDatasetRecords", false); + put("v2.createLLMObsExperiment", false); + put("v2.createLLMObsExperimentEvents", false); + put("v2.createLLMObsProject", false); + put("v2.deleteLLMObsDatasetRecords", false); + put("v2.deleteLLMObsDatasets", false); + put("v2.deleteLLMObsExperiments", false); + put("v2.deleteLLMObsProjects", false); + put("v2.listLLMObsDatasetRecords", false); + put("v2.listLLMObsDatasets", false); + put("v2.listLLMObsExperiments", false); + put("v2.listLLMObsProjects", false); + put("v2.updateLLMObsDataset", false); + put("v2.updateLLMObsDatasetRecords", false); + put("v2.updateLLMObsExperiment", false); + put("v2.updateLLMObsProject", false); put("v2.addRoleToRestrictionQuery", false); put("v2.createRestrictionQuery", false); put("v2.deleteRestrictionQuery", false); diff --git a/src/main/java/com/datadog/api/client/v2/api/LlmObservabilityApi.java b/src/main/java/com/datadog/api/client/v2/api/LlmObservabilityApi.java new file mode 100644 index 00000000000..9c03f0c535a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/api/LlmObservabilityApi.java @@ -0,0 +1,3412 @@ +package com.datadog.api.client.v2.api; + +import com.datadog.api.client.ApiClient; +import com.datadog.api.client.ApiException; +import com.datadog.api.client.ApiResponse; +import com.datadog.api.client.Pair; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsListResponse; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsMutationResponse; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetRecordsUpdateRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetResponse; +import com.datadog.api.client.v2.model.LLMObsDatasetUpdateRequest; +import com.datadog.api.client.v2.model.LLMObsDatasetsResponse; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetRecordsRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteDatasetsRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteExperimentsRequest; +import com.datadog.api.client.v2.model.LLMObsDeleteProjectsRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentEventsRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentResponse; +import com.datadog.api.client.v2.model.LLMObsExperimentUpdateRequest; +import com.datadog.api.client.v2.model.LLMObsExperimentsResponse; +import com.datadog.api.client.v2.model.LLMObsProjectRequest; +import com.datadog.api.client.v2.model.LLMObsProjectResponse; +import com.datadog.api.client.v2.model.LLMObsProjectUpdateRequest; +import com.datadog.api.client.v2.model.LLMObsProjectsResponse; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.GenericType; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.concurrent.CompletableFuture; + +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LlmObservabilityApi { + private ApiClient apiClient; + + public LlmObservabilityApi() { + this(ApiClient.getDefaultApiClient()); + } + + public LlmObservabilityApi(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Get the API client. + * + * @return API client + */ + public ApiClient getApiClient() { + return apiClient; + } + + /** + * Set the API client. + * + * @param apiClient an instance of API client + */ + public void setApiClient(ApiClient apiClient) { + this.apiClient = apiClient; + } + + /** + * Create an LLM Observability dataset. + * + *

See {@link #createLLMObsDatasetWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Create dataset payload. (required) + * @return LLMObsDatasetResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetResponse createLLMObsDataset(String projectId, LLMObsDatasetRequest body) + throws ApiException { + return createLLMObsDatasetWithHttpInfo(projectId, body).getData(); + } + + /** + * Create an LLM Observability dataset. + * + *

See {@link #createLLMObsDatasetWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Create dataset payload. (required) + * @return CompletableFuture<LLMObsDatasetResponse> + */ + public CompletableFuture createLLMObsDatasetAsync( + String projectId, LLMObsDatasetRequest body) { + return createLLMObsDatasetWithHttpInfoAsync(projectId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create a new LLM Observability dataset within the specified project. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Create dataset payload. (required) + * @return ApiResponse<LLMObsDatasetResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
201 Created -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse createLLMObsDatasetWithHttpInfo( + String projectId, LLMObsDatasetRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createLLMObsDataset"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, "Missing the required parameter 'projectId' when calling createLLMObsDataset"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsDataset"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsDataset", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create an LLM Observability dataset. + * + *

See {@link #createLLMObsDatasetWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Create dataset payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsDatasetResponse>> + */ + public CompletableFuture> createLLMObsDatasetWithHttpInfoAsync( + String projectId, LLMObsDatasetRequest body) { + // Check if unstable operation is enabled + String operationId = "createLLMObsDataset"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'projectId' when calling createLLMObsDataset")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsDataset")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsDataset", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Append records to an LLM Observability dataset. + * + *

See {@link #createLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Append records payload. (required) + * @return LLMObsDatasetRecordsMutationResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetRecordsMutationResponse createLLMObsDatasetRecords( + String projectId, String datasetId, LLMObsDatasetRecordsRequest body) throws ApiException { + return createLLMObsDatasetRecordsWithHttpInfo(projectId, datasetId, body).getData(); + } + + /** + * Append records to an LLM Observability dataset. + * + *

See {@link #createLLMObsDatasetRecordsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Append records payload. (required) + * @return CompletableFuture<LLMObsDatasetRecordsMutationResponse> + */ + public CompletableFuture createLLMObsDatasetRecordsAsync( + String projectId, String datasetId, LLMObsDatasetRecordsRequest body) { + return createLLMObsDatasetRecordsWithHttpInfoAsync(projectId, datasetId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Append one or more records to an LLM Observability dataset. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Append records payload. (required) + * @return ApiResponse<LLMObsDatasetRecordsMutationResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
201 Created -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse createLLMObsDatasetRecordsWithHttpInfo( + String projectId, String datasetId, LLMObsDatasetRecordsRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'projectId' when calling createLLMObsDatasetRecords"); + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'datasetId' when calling createLLMObsDatasetRecords"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsDatasetRecords"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsDatasetRecords", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Append records to an LLM Observability dataset. + * + *

See {@link #createLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Append records payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsDatasetRecordsMutationResponse>> + */ + public CompletableFuture> + createLLMObsDatasetRecordsWithHttpInfoAsync( + String projectId, String datasetId, LLMObsDatasetRecordsRequest body) { + // Check if unstable operation is enabled + String operationId = "createLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'projectId' when calling" + + " createLLMObsDatasetRecords")); + return result; + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'datasetId' when calling" + + " createLLMObsDatasetRecords")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling createLLMObsDatasetRecords")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsDatasetRecords", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create an LLM Observability experiment. + * + *

See {@link #createLLMObsExperimentWithHttpInfo}. + * + * @param body Create experiment payload. (required) + * @return LLMObsExperimentResponse + * @throws ApiException if fails to make API call + */ + public LLMObsExperimentResponse createLLMObsExperiment(LLMObsExperimentRequest body) + throws ApiException { + return createLLMObsExperimentWithHttpInfo(body).getData(); + } + + /** + * Create an LLM Observability experiment. + * + *

See {@link #createLLMObsExperimentWithHttpInfoAsync}. + * + * @param body Create experiment payload. (required) + * @return CompletableFuture<LLMObsExperimentResponse> + */ + public CompletableFuture createLLMObsExperimentAsync( + LLMObsExperimentRequest body) { + return createLLMObsExperimentWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create a new LLM Observability experiment. + * + * @param body Create experiment payload. (required) + * @return ApiResponse<LLMObsExperimentResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
201 Created -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse createLLMObsExperimentWithHttpInfo( + LLMObsExperimentRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createLLMObsExperiment"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsExperiment"); + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/experiments"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsExperiment", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create an LLM Observability experiment. + * + *

See {@link #createLLMObsExperimentWithHttpInfo}. + * + * @param body Create experiment payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsExperimentResponse>> + */ + public CompletableFuture> + createLLMObsExperimentWithHttpInfoAsync(LLMObsExperimentRequest body) { + // Check if unstable operation is enabled + String operationId = "createLLMObsExperiment"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsExperiment")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/experiments"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsExperiment", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Push events for an LLM Observability experiment. + * + *

See {@link #createLLMObsExperimentEventsWithHttpInfo}. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Experiment events payload. (required) + * @throws ApiException if fails to make API call + */ + public void createLLMObsExperimentEvents(String experimentId, LLMObsExperimentEventsRequest body) + throws ApiException { + createLLMObsExperimentEventsWithHttpInfo(experimentId, body); + } + + /** + * Push events for an LLM Observability experiment. + * + *

See {@link #createLLMObsExperimentEventsWithHttpInfoAsync}. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Experiment events payload. (required) + * @return CompletableFuture + */ + public CompletableFuture createLLMObsExperimentEventsAsync( + String experimentId, LLMObsExperimentEventsRequest body) { + return createLLMObsExperimentEventsWithHttpInfoAsync(experimentId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Push spans and metrics for an LLM Observability experiment. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Experiment events payload. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
202 Accepted -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse createLLMObsExperimentEventsWithHttpInfo( + String experimentId, LLMObsExperimentEventsRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createLLMObsExperimentEvents"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'experimentId' is set + if (experimentId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'experimentId' when calling" + + " createLLMObsExperimentEvents"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsExperimentEvents"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/experiments/{experiment_id}/events" + .replaceAll( + "\\{" + "experiment_id" + "\\}", apiClient.escapeString(experimentId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsExperimentEvents", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Push events for an LLM Observability experiment. + * + *

See {@link #createLLMObsExperimentEventsWithHttpInfo}. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Experiment events payload. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> createLLMObsExperimentEventsWithHttpInfoAsync( + String experimentId, LLMObsExperimentEventsRequest body) { + // Check if unstable operation is enabled + String operationId = "createLLMObsExperimentEvents"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'experimentId' is set + if (experimentId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'experimentId' when calling" + + " createLLMObsExperimentEvents")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling createLLMObsExperimentEvents")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/experiments/{experiment_id}/events" + .replaceAll( + "\\{" + "experiment_id" + "\\}", apiClient.escapeString(experimentId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsExperimentEvents", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Create an LLM Observability project. + * + *

See {@link #createLLMObsProjectWithHttpInfo}. + * + * @param body Create project payload. (required) + * @return LLMObsProjectResponse + * @throws ApiException if fails to make API call + */ + public LLMObsProjectResponse createLLMObsProject(LLMObsProjectRequest body) throws ApiException { + return createLLMObsProjectWithHttpInfo(body).getData(); + } + + /** + * Create an LLM Observability project. + * + *

See {@link #createLLMObsProjectWithHttpInfoAsync}. + * + * @param body Create project payload. (required) + * @return CompletableFuture<LLMObsProjectResponse> + */ + public CompletableFuture createLLMObsProjectAsync( + LLMObsProjectRequest body) { + return createLLMObsProjectWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Create a new LLM Observability project. Returns the existing project if a name conflict occurs. + * + * @param body Create project payload. (required) + * @return ApiResponse<LLMObsProjectResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
201 Created -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse createLLMObsProjectWithHttpInfo( + LLMObsProjectRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "createLLMObsProject"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsProject"); + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/projects"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsProject", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Create an LLM Observability project. + * + *

See {@link #createLLMObsProjectWithHttpInfo}. + * + * @param body Create project payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsProjectResponse>> + */ + public CompletableFuture> createLLMObsProjectWithHttpInfoAsync( + LLMObsProjectRequest body) { + // Check if unstable operation is enabled + String operationId = "createLLMObsProject"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling createLLMObsProject")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/projects"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.createLLMObsProject", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Delete LLM Observability dataset records. + * + *

See {@link #deleteLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Delete records payload. (required) + * @throws ApiException if fails to make API call + */ + public void deleteLLMObsDatasetRecords( + String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body) + throws ApiException { + deleteLLMObsDatasetRecordsWithHttpInfo(projectId, datasetId, body); + } + + /** + * Delete LLM Observability dataset records. + * + *

See {@link #deleteLLMObsDatasetRecordsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Delete records payload. (required) + * @return CompletableFuture + */ + public CompletableFuture deleteLLMObsDatasetRecordsAsync( + String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body) { + return deleteLLMObsDatasetRecordsWithHttpInfoAsync(projectId, datasetId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete one or more records from an LLM Observability dataset. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Delete records payload. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 No Content -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse deleteLLMObsDatasetRecordsWithHttpInfo( + String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'projectId' when calling deleteLLMObsDatasetRecords"); + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'datasetId' when calling deleteLLMObsDatasetRecords"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling deleteLLMObsDatasetRecords"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records/delete" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsDatasetRecords", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete LLM Observability dataset records. + * + *

See {@link #deleteLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Delete records payload. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> deleteLLMObsDatasetRecordsWithHttpInfoAsync( + String projectId, String datasetId, LLMObsDeleteDatasetRecordsRequest body) { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'projectId' when calling" + + " deleteLLMObsDatasetRecords")); + return result; + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'datasetId' when calling" + + " deleteLLMObsDatasetRecords")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling deleteLLMObsDatasetRecords")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records/delete" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsDatasetRecords", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete LLM Observability datasets. + * + *

See {@link #deleteLLMObsDatasetsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Delete datasets payload. (required) + * @throws ApiException if fails to make API call + */ + public void deleteLLMObsDatasets(String projectId, LLMObsDeleteDatasetsRequest body) + throws ApiException { + deleteLLMObsDatasetsWithHttpInfo(projectId, body); + } + + /** + * Delete LLM Observability datasets. + * + *

See {@link #deleteLLMObsDatasetsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Delete datasets payload. (required) + * @return CompletableFuture + */ + public CompletableFuture deleteLLMObsDatasetsAsync( + String projectId, LLMObsDeleteDatasetsRequest body) { + return deleteLLMObsDatasetsWithHttpInfoAsync(projectId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete one or more LLM Observability datasets within the specified project. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Delete datasets payload. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 No Content -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse deleteLLMObsDatasetsWithHttpInfo( + String projectId, LLMObsDeleteDatasetsRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsDatasets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, "Missing the required parameter 'projectId' when calling deleteLLMObsDatasets"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling deleteLLMObsDatasets"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/delete" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsDatasets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete LLM Observability datasets. + * + *

See {@link #deleteLLMObsDatasetsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Delete datasets payload. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> deleteLLMObsDatasetsWithHttpInfoAsync( + String projectId, LLMObsDeleteDatasetsRequest body) { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsDatasets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'projectId' when calling deleteLLMObsDatasets")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling deleteLLMObsDatasets")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/delete" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsDatasets", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete LLM Observability experiments. + * + *

See {@link #deleteLLMObsExperimentsWithHttpInfo}. + * + * @param body Delete experiments payload. (required) + * @throws ApiException if fails to make API call + */ + public void deleteLLMObsExperiments(LLMObsDeleteExperimentsRequest body) throws ApiException { + deleteLLMObsExperimentsWithHttpInfo(body); + } + + /** + * Delete LLM Observability experiments. + * + *

See {@link #deleteLLMObsExperimentsWithHttpInfoAsync}. + * + * @param body Delete experiments payload. (required) + * @return CompletableFuture + */ + public CompletableFuture deleteLLMObsExperimentsAsync(LLMObsDeleteExperimentsRequest body) { + return deleteLLMObsExperimentsWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete one or more LLM Observability experiments. + * + * @param body Delete experiments payload. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 No Content -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse deleteLLMObsExperimentsWithHttpInfo(LLMObsDeleteExperimentsRequest body) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsExperiments"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling deleteLLMObsExperiments"); + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/experiments/delete"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsExperiments", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete LLM Observability experiments. + * + *

See {@link #deleteLLMObsExperimentsWithHttpInfo}. + * + * @param body Delete experiments payload. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> deleteLLMObsExperimentsWithHttpInfoAsync( + LLMObsDeleteExperimentsRequest body) { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsExperiments"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling deleteLLMObsExperiments")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/experiments/delete"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsExperiments", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete LLM Observability projects. + * + *

See {@link #deleteLLMObsProjectsWithHttpInfo}. + * + * @param body Delete projects payload. (required) + * @throws ApiException if fails to make API call + */ + public void deleteLLMObsProjects(LLMObsDeleteProjectsRequest body) throws ApiException { + deleteLLMObsProjectsWithHttpInfo(body); + } + + /** + * Delete LLM Observability projects. + * + *

See {@link #deleteLLMObsProjectsWithHttpInfoAsync}. + * + * @param body Delete projects payload. (required) + * @return CompletableFuture + */ + public CompletableFuture deleteLLMObsProjectsAsync(LLMObsDeleteProjectsRequest body) { + return deleteLLMObsProjectsWithHttpInfoAsync(body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Delete one or more LLM Observability projects. + * + * @param body Delete projects payload. (required) + * @return ApiResponse<Void> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
204 No Content -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse deleteLLMObsProjectsWithHttpInfo(LLMObsDeleteProjectsRequest body) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsProjects"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling deleteLLMObsProjects"); + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/projects/delete"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsProjects", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** + * Delete LLM Observability projects. + * + *

See {@link #deleteLLMObsProjectsWithHttpInfo}. + * + * @param body Delete projects payload. (required) + * @return CompletableFuture<ApiResponse<Void>> + */ + public CompletableFuture> deleteLLMObsProjectsWithHttpInfoAsync( + LLMObsDeleteProjectsRequest body) { + // Check if unstable operation is enabled + String operationId = "deleteLLMObsProjects"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling deleteLLMObsProjects")); + return result; + } + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/projects/delete"; + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.deleteLLMObsProjects", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"*/*"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "POST", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + null); + } + + /** Manage optional parameters to listLLMObsDatasetRecords. */ + public static class ListLLMObsDatasetRecordsOptionalParameters { + private Long filterVersion; + private String pageCursor; + private Long pageLimit; + + /** + * Set filterVersion. + * + * @param filterVersion Retrieve records from a specific dataset version. Defaults to the + * current version. (optional) + * @return ListLLMObsDatasetRecordsOptionalParameters + */ + public ListLLMObsDatasetRecordsOptionalParameters filterVersion(Long filterVersion) { + this.filterVersion = filterVersion; + return this; + } + + /** + * Set pageCursor. + * + * @param pageCursor Pagination cursor for the next page of results. (optional) + * @return ListLLMObsDatasetRecordsOptionalParameters + */ + public ListLLMObsDatasetRecordsOptionalParameters pageCursor(String pageCursor) { + this.pageCursor = pageCursor; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit Maximum number of results to return per page. (optional) + * @return ListLLMObsDatasetRecordsOptionalParameters + */ + public ListLLMObsDatasetRecordsOptionalParameters pageLimit(Long pageLimit) { + this.pageLimit = pageLimit; + return this; + } + } + + /** + * List LLM Observability dataset records. + * + *

See {@link #listLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @return LLMObsDatasetRecordsListResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetRecordsListResponse listLLMObsDatasetRecords( + String projectId, String datasetId) throws ApiException { + return listLLMObsDatasetRecordsWithHttpInfo( + projectId, datasetId, new ListLLMObsDatasetRecordsOptionalParameters()) + .getData(); + } + + /** + * List LLM Observability dataset records. + * + *

See {@link #listLLMObsDatasetRecordsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @return CompletableFuture<LLMObsDatasetRecordsListResponse> + */ + public CompletableFuture listLLMObsDatasetRecordsAsync( + String projectId, String datasetId) { + return listLLMObsDatasetRecordsWithHttpInfoAsync( + projectId, datasetId, new ListLLMObsDatasetRecordsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List LLM Observability dataset records. + * + *

See {@link #listLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param parameters Optional parameters for the request. + * @return LLMObsDatasetRecordsListResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetRecordsListResponse listLLMObsDatasetRecords( + String projectId, String datasetId, ListLLMObsDatasetRecordsOptionalParameters parameters) + throws ApiException { + return listLLMObsDatasetRecordsWithHttpInfo(projectId, datasetId, parameters).getData(); + } + + /** + * List LLM Observability dataset records. + * + *

See {@link #listLLMObsDatasetRecordsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<LLMObsDatasetRecordsListResponse> + */ + public CompletableFuture listLLMObsDatasetRecordsAsync( + String projectId, String datasetId, ListLLMObsDatasetRecordsOptionalParameters parameters) { + return listLLMObsDatasetRecordsWithHttpInfoAsync(projectId, datasetId, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List all records in an LLM Observability dataset, sorted by creation date, newest first. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<LLMObsDatasetRecordsListResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse listLLMObsDatasetRecordsWithHttpInfo( + String projectId, String datasetId, ListLLMObsDatasetRecordsOptionalParameters parameters) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "listLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, "Missing the required parameter 'projectId' when calling listLLMObsDatasetRecords"); + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + throw new ApiException( + 400, "Missing the required parameter 'datasetId' when calling listLLMObsDatasetRecords"); + } + Long filterVersion = parameters.filterVersion; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[version]", filterVersion)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsDatasetRecords", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List LLM Observability dataset records. + * + *

See {@link #listLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<LLMObsDatasetRecordsListResponse>> + */ + public CompletableFuture> + listLLMObsDatasetRecordsWithHttpInfoAsync( + String projectId, + String datasetId, + ListLLMObsDatasetRecordsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'projectId' when calling listLLMObsDatasetRecords")); + return result; + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'datasetId' when calling listLLMObsDatasetRecords")); + return result; + } + Long filterVersion = parameters.filterVersion; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[version]", filterVersion)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsDatasetRecords", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listLLMObsDatasets. */ + public static class ListLLMObsDatasetsOptionalParameters { + private String filterName; + private String filterId; + private String pageCursor; + private Long pageLimit; + + /** + * Set filterName. + * + * @param filterName Filter datasets by name. (optional) + * @return ListLLMObsDatasetsOptionalParameters + */ + public ListLLMObsDatasetsOptionalParameters filterName(String filterName) { + this.filterName = filterName; + return this; + } + + /** + * Set filterId. + * + * @param filterId Filter datasets by dataset ID. (optional) + * @return ListLLMObsDatasetsOptionalParameters + */ + public ListLLMObsDatasetsOptionalParameters filterId(String filterId) { + this.filterId = filterId; + return this; + } + + /** + * Set pageCursor. + * + * @param pageCursor Pagination cursor for the next page of results. (optional) + * @return ListLLMObsDatasetsOptionalParameters + */ + public ListLLMObsDatasetsOptionalParameters pageCursor(String pageCursor) { + this.pageCursor = pageCursor; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit Maximum number of results to return per page. (optional) + * @return ListLLMObsDatasetsOptionalParameters + */ + public ListLLMObsDatasetsOptionalParameters pageLimit(Long pageLimit) { + this.pageLimit = pageLimit; + return this; + } + } + + /** + * List LLM Observability datasets. + * + *

See {@link #listLLMObsDatasetsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @return LLMObsDatasetsResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetsResponse listLLMObsDatasets(String projectId) throws ApiException { + return listLLMObsDatasetsWithHttpInfo(projectId, new ListLLMObsDatasetsOptionalParameters()) + .getData(); + } + + /** + * List LLM Observability datasets. + * + *

See {@link #listLLMObsDatasetsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @return CompletableFuture<LLMObsDatasetsResponse> + */ + public CompletableFuture listLLMObsDatasetsAsync(String projectId) { + return listLLMObsDatasetsWithHttpInfoAsync( + projectId, new ListLLMObsDatasetsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List LLM Observability datasets. + * + *

See {@link #listLLMObsDatasetsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param parameters Optional parameters for the request. + * @return LLMObsDatasetsResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetsResponse listLLMObsDatasets( + String projectId, ListLLMObsDatasetsOptionalParameters parameters) throws ApiException { + return listLLMObsDatasetsWithHttpInfo(projectId, parameters).getData(); + } + + /** + * List LLM Observability datasets. + * + *

See {@link #listLLMObsDatasetsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<LLMObsDatasetsResponse> + */ + public CompletableFuture listLLMObsDatasetsAsync( + String projectId, ListLLMObsDatasetsOptionalParameters parameters) { + return listLLMObsDatasetsWithHttpInfoAsync(projectId, parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List all LLM Observability datasets for a project, sorted by creation date, newest first. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param parameters Optional parameters for the request. + * @return ApiResponse<LLMObsDatasetsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse listLLMObsDatasetsWithHttpInfo( + String projectId, ListLLMObsDatasetsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listLLMObsDatasets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, "Missing the required parameter 'projectId' when calling listLLMObsDatasets"); + } + String filterName = parameters.filterName; + String filterId = parameters.filterId; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[name]", filterName)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsDatasets", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List LLM Observability datasets. + * + *

See {@link #listLLMObsDatasetsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<LLMObsDatasetsResponse>> + */ + public CompletableFuture> listLLMObsDatasetsWithHttpInfoAsync( + String projectId, ListLLMObsDatasetsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listLLMObsDatasets"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'projectId' when calling listLLMObsDatasets")); + return result; + } + String filterName = parameters.filterName; + String filterId = parameters.filterId; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[name]", filterName)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsDatasets", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listLLMObsExperiments. */ + public static class ListLLMObsExperimentsOptionalParameters { + private String filterProjectId; + private String filterDatasetId; + private String filterId; + private String pageCursor; + private Long pageLimit; + + /** + * Set filterProjectId. + * + * @param filterProjectId Filter experiments by project ID. Required if filter[dataset_id] + * is not provided. (optional) + * @return ListLLMObsExperimentsOptionalParameters + */ + public ListLLMObsExperimentsOptionalParameters filterProjectId(String filterProjectId) { + this.filterProjectId = filterProjectId; + return this; + } + + /** + * Set filterDatasetId. + * + * @param filterDatasetId Filter experiments by dataset ID. (optional) + * @return ListLLMObsExperimentsOptionalParameters + */ + public ListLLMObsExperimentsOptionalParameters filterDatasetId(String filterDatasetId) { + this.filterDatasetId = filterDatasetId; + return this; + } + + /** + * Set filterId. + * + * @param filterId Filter experiments by experiment ID. Can be specified multiple times. + * (optional) + * @return ListLLMObsExperimentsOptionalParameters + */ + public ListLLMObsExperimentsOptionalParameters filterId(String filterId) { + this.filterId = filterId; + return this; + } + + /** + * Set pageCursor. + * + * @param pageCursor Pagination cursor for the next page of results. (optional) + * @return ListLLMObsExperimentsOptionalParameters + */ + public ListLLMObsExperimentsOptionalParameters pageCursor(String pageCursor) { + this.pageCursor = pageCursor; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit Maximum number of results to return per page. (optional) + * @return ListLLMObsExperimentsOptionalParameters + */ + public ListLLMObsExperimentsOptionalParameters pageLimit(Long pageLimit) { + this.pageLimit = pageLimit; + return this; + } + } + + /** + * List LLM Observability experiments. + * + *

See {@link #listLLMObsExperimentsWithHttpInfo}. + * + * @return LLMObsExperimentsResponse + * @throws ApiException if fails to make API call + */ + public LLMObsExperimentsResponse listLLMObsExperiments() throws ApiException { + return listLLMObsExperimentsWithHttpInfo(new ListLLMObsExperimentsOptionalParameters()) + .getData(); + } + + /** + * List LLM Observability experiments. + * + *

See {@link #listLLMObsExperimentsWithHttpInfoAsync}. + * + * @return CompletableFuture<LLMObsExperimentsResponse> + */ + public CompletableFuture listLLMObsExperimentsAsync() { + return listLLMObsExperimentsWithHttpInfoAsync(new ListLLMObsExperimentsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List LLM Observability experiments. + * + *

See {@link #listLLMObsExperimentsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return LLMObsExperimentsResponse + * @throws ApiException if fails to make API call + */ + public LLMObsExperimentsResponse listLLMObsExperiments( + ListLLMObsExperimentsOptionalParameters parameters) throws ApiException { + return listLLMObsExperimentsWithHttpInfo(parameters).getData(); + } + + /** + * List LLM Observability experiments. + * + *

See {@link #listLLMObsExperimentsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<LLMObsExperimentsResponse> + */ + public CompletableFuture listLLMObsExperimentsAsync( + ListLLMObsExperimentsOptionalParameters parameters) { + return listLLMObsExperimentsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List all LLM Observability experiments sorted by creation date, newest first. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<LLMObsExperimentsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse listLLMObsExperimentsWithHttpInfo( + ListLLMObsExperimentsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listLLMObsExperiments"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + String filterProjectId = parameters.filterProjectId; + String filterDatasetId = parameters.filterDatasetId; + String filterId = parameters.filterId; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/experiments"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[project_id]", filterProjectId)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[dataset_id]", filterDatasetId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsExperiments", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List LLM Observability experiments. + * + *

See {@link #listLLMObsExperimentsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<LLMObsExperimentsResponse>> + */ + public CompletableFuture> + listLLMObsExperimentsWithHttpInfoAsync(ListLLMObsExperimentsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listLLMObsExperiments"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + String filterProjectId = parameters.filterProjectId; + String filterDatasetId = parameters.filterDatasetId; + String filterId = parameters.filterId; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/experiments"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[project_id]", filterProjectId)); + localVarQueryParams.addAll( + apiClient.parameterToPairs("", "filter[dataset_id]", filterDatasetId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsExperiments", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** Manage optional parameters to listLLMObsProjects. */ + public static class ListLLMObsProjectsOptionalParameters { + private String filterId; + private String filterName; + private String pageCursor; + private Long pageLimit; + + /** + * Set filterId. + * + * @param filterId Filter projects by project ID. (optional) + * @return ListLLMObsProjectsOptionalParameters + */ + public ListLLMObsProjectsOptionalParameters filterId(String filterId) { + this.filterId = filterId; + return this; + } + + /** + * Set filterName. + * + * @param filterName Filter projects by name. (optional) + * @return ListLLMObsProjectsOptionalParameters + */ + public ListLLMObsProjectsOptionalParameters filterName(String filterName) { + this.filterName = filterName; + return this; + } + + /** + * Set pageCursor. + * + * @param pageCursor Pagination cursor for the next page of results. (optional) + * @return ListLLMObsProjectsOptionalParameters + */ + public ListLLMObsProjectsOptionalParameters pageCursor(String pageCursor) { + this.pageCursor = pageCursor; + return this; + } + + /** + * Set pageLimit. + * + * @param pageLimit Maximum number of results to return per page. (optional) + * @return ListLLMObsProjectsOptionalParameters + */ + public ListLLMObsProjectsOptionalParameters pageLimit(Long pageLimit) { + this.pageLimit = pageLimit; + return this; + } + } + + /** + * List LLM Observability projects. + * + *

See {@link #listLLMObsProjectsWithHttpInfo}. + * + * @return LLMObsProjectsResponse + * @throws ApiException if fails to make API call + */ + public LLMObsProjectsResponse listLLMObsProjects() throws ApiException { + return listLLMObsProjectsWithHttpInfo(new ListLLMObsProjectsOptionalParameters()).getData(); + } + + /** + * List LLM Observability projects. + * + *

See {@link #listLLMObsProjectsWithHttpInfoAsync}. + * + * @return CompletableFuture<LLMObsProjectsResponse> + */ + public CompletableFuture listLLMObsProjectsAsync() { + return listLLMObsProjectsWithHttpInfoAsync(new ListLLMObsProjectsOptionalParameters()) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List LLM Observability projects. + * + *

See {@link #listLLMObsProjectsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return LLMObsProjectsResponse + * @throws ApiException if fails to make API call + */ + public LLMObsProjectsResponse listLLMObsProjects(ListLLMObsProjectsOptionalParameters parameters) + throws ApiException { + return listLLMObsProjectsWithHttpInfo(parameters).getData(); + } + + /** + * List LLM Observability projects. + * + *

See {@link #listLLMObsProjectsWithHttpInfoAsync}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<LLMObsProjectsResponse> + */ + public CompletableFuture listLLMObsProjectsAsync( + ListLLMObsProjectsOptionalParameters parameters) { + return listLLMObsProjectsWithHttpInfoAsync(parameters) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * List all LLM Observability projects sorted by creation date, newest first. + * + * @param parameters Optional parameters for the request. + * @return ApiResponse<LLMObsProjectsResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
429 Too many requests -
+ */ + public ApiResponse listLLMObsProjectsWithHttpInfo( + ListLLMObsProjectsOptionalParameters parameters) throws ApiException { + // Check if unstable operation is enabled + String operationId = "listLLMObsProjects"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = null; + String filterId = parameters.filterId; + String filterName = parameters.filterName; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/projects"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[name]", filterName)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsProjects", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * List LLM Observability projects. + * + *

See {@link #listLLMObsProjectsWithHttpInfo}. + * + * @param parameters Optional parameters for the request. + * @return CompletableFuture<ApiResponse<LLMObsProjectsResponse>> + */ + public CompletableFuture> listLLMObsProjectsWithHttpInfoAsync( + ListLLMObsProjectsOptionalParameters parameters) { + // Check if unstable operation is enabled + String operationId = "listLLMObsProjects"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = null; + String filterId = parameters.filterId; + String filterName = parameters.filterName; + String pageCursor = parameters.pageCursor; + Long pageLimit = parameters.pageLimit; + // create path and map variables + String localVarPath = "/api/v2/llm-obs/v1/projects"; + + List localVarQueryParams = new ArrayList(); + Map localVarHeaderParams = new HashMap(); + + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[id]", filterId)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "filter[name]", filterName)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[cursor]", pageCursor)); + localVarQueryParams.addAll(apiClient.parameterToPairs("", "page[limit]", pageLimit)); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.listLLMObsProjects", + localVarPath, + localVarQueryParams, + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "GET", + builder, + localVarHeaderParams, + new String[] {}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an LLM Observability dataset. + * + *

See {@link #updateLLMObsDatasetWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update dataset payload. (required) + * @return LLMObsDatasetResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetResponse updateLLMObsDataset( + String projectId, String datasetId, LLMObsDatasetUpdateRequest body) throws ApiException { + return updateLLMObsDatasetWithHttpInfo(projectId, datasetId, body).getData(); + } + + /** + * Update an LLM Observability dataset. + * + *

See {@link #updateLLMObsDatasetWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update dataset payload. (required) + * @return CompletableFuture<LLMObsDatasetResponse> + */ + public CompletableFuture updateLLMObsDatasetAsync( + String projectId, String datasetId, LLMObsDatasetUpdateRequest body) { + return updateLLMObsDatasetWithHttpInfoAsync(projectId, datasetId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Partially update an existing LLM Observability dataset within the specified project. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update dataset payload. (required) + * @return ApiResponse<LLMObsDatasetResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse updateLLMObsDatasetWithHttpInfo( + String projectId, String datasetId, LLMObsDatasetUpdateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "updateLLMObsDataset"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, "Missing the required parameter 'projectId' when calling updateLLMObsDataset"); + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + throw new ApiException( + 400, "Missing the required parameter 'datasetId' when calling updateLLMObsDataset"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateLLMObsDataset"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsDataset", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an LLM Observability dataset. + * + *

See {@link #updateLLMObsDatasetWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update dataset payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsDatasetResponse>> + */ + public CompletableFuture> updateLLMObsDatasetWithHttpInfoAsync( + String projectId, String datasetId, LLMObsDatasetUpdateRequest body) { + // Check if unstable operation is enabled + String operationId = "updateLLMObsDataset"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'projectId' when calling updateLLMObsDataset")); + return result; + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'datasetId' when calling updateLLMObsDataset")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling updateLLMObsDataset")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsDataset", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update LLM Observability dataset records. + * + *

See {@link #updateLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update records payload. (required) + * @return LLMObsDatasetRecordsMutationResponse + * @throws ApiException if fails to make API call + */ + public LLMObsDatasetRecordsMutationResponse updateLLMObsDatasetRecords( + String projectId, String datasetId, LLMObsDatasetRecordsUpdateRequest body) + throws ApiException { + return updateLLMObsDatasetRecordsWithHttpInfo(projectId, datasetId, body).getData(); + } + + /** + * Update LLM Observability dataset records. + * + *

See {@link #updateLLMObsDatasetRecordsWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update records payload. (required) + * @return CompletableFuture<LLMObsDatasetRecordsMutationResponse> + */ + public CompletableFuture updateLLMObsDatasetRecordsAsync( + String projectId, String datasetId, LLMObsDatasetRecordsUpdateRequest body) { + return updateLLMObsDatasetRecordsWithHttpInfoAsync(projectId, datasetId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Update one or more existing records in an LLM Observability dataset. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update records payload. (required) + * @return ApiResponse<LLMObsDatasetRecordsMutationResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse updateLLMObsDatasetRecordsWithHttpInfo( + String projectId, String datasetId, LLMObsDatasetRecordsUpdateRequest body) + throws ApiException { + // Check if unstable operation is enabled + String operationId = "updateLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'projectId' when calling updateLLMObsDatasetRecords"); + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + throw new ApiException( + 400, + "Missing the required parameter 'datasetId' when calling updateLLMObsDatasetRecords"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateLLMObsDatasetRecords"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsDatasetRecords", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update LLM Observability dataset records. + * + *

See {@link #updateLLMObsDatasetRecordsWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param datasetId The ID of the LLM Observability dataset. (required) + * @param body Update records payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsDatasetRecordsMutationResponse>> + */ + public CompletableFuture> + updateLLMObsDatasetRecordsWithHttpInfoAsync( + String projectId, String datasetId, LLMObsDatasetRecordsUpdateRequest body) { + // Check if unstable operation is enabled + String operationId = "updateLLMObsDatasetRecords"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'projectId' when calling" + + " updateLLMObsDatasetRecords")); + return result; + } + + // verify the required parameter 'datasetId' is set + if (datasetId == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'datasetId' when calling" + + " updateLLMObsDatasetRecords")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'body' when calling updateLLMObsDatasetRecords")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/{project_id}/datasets/{dataset_id}/records" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())) + .replaceAll("\\{" + "dataset_id" + "\\}", apiClient.escapeString(datasetId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsDatasetRecords", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = + new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an LLM Observability experiment. + * + *

See {@link #updateLLMObsExperimentWithHttpInfo}. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Update experiment payload. (required) + * @return LLMObsExperimentResponse + * @throws ApiException if fails to make API call + */ + public LLMObsExperimentResponse updateLLMObsExperiment( + String experimentId, LLMObsExperimentUpdateRequest body) throws ApiException { + return updateLLMObsExperimentWithHttpInfo(experimentId, body).getData(); + } + + /** + * Update an LLM Observability experiment. + * + *

See {@link #updateLLMObsExperimentWithHttpInfoAsync}. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Update experiment payload. (required) + * @return CompletableFuture<LLMObsExperimentResponse> + */ + public CompletableFuture updateLLMObsExperimentAsync( + String experimentId, LLMObsExperimentUpdateRequest body) { + return updateLLMObsExperimentWithHttpInfoAsync(experimentId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Partially update an existing LLM Observability experiment. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Update experiment payload. (required) + * @return ApiResponse<LLMObsExperimentResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse updateLLMObsExperimentWithHttpInfo( + String experimentId, LLMObsExperimentUpdateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "updateLLMObsExperiment"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'experimentId' is set + if (experimentId == null) { + throw new ApiException( + 400, "Missing the required parameter 'experimentId' when calling updateLLMObsExperiment"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateLLMObsExperiment"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/experiments/{experiment_id}" + .replaceAll( + "\\{" + "experiment_id" + "\\}", apiClient.escapeString(experimentId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsExperiment", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an LLM Observability experiment. + * + *

See {@link #updateLLMObsExperimentWithHttpInfo}. + * + * @param experimentId The ID of the LLM Observability experiment. (required) + * @param body Update experiment payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsExperimentResponse>> + */ + public CompletableFuture> + updateLLMObsExperimentWithHttpInfoAsync( + String experimentId, LLMObsExperimentUpdateRequest body) { + // Check if unstable operation is enabled + String operationId = "updateLLMObsExperiment"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'experimentId' is set + if (experimentId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, + "Missing the required parameter 'experimentId' when calling updateLLMObsExperiment")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling updateLLMObsExperiment")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/experiments/{experiment_id}" + .replaceAll( + "\\{" + "experiment_id" + "\\}", apiClient.escapeString(experimentId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsExperiment", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an LLM Observability project. + * + *

See {@link #updateLLMObsProjectWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Update project payload. (required) + * @return LLMObsProjectResponse + * @throws ApiException if fails to make API call + */ + public LLMObsProjectResponse updateLLMObsProject( + String projectId, LLMObsProjectUpdateRequest body) throws ApiException { + return updateLLMObsProjectWithHttpInfo(projectId, body).getData(); + } + + /** + * Update an LLM Observability project. + * + *

See {@link #updateLLMObsProjectWithHttpInfoAsync}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Update project payload. (required) + * @return CompletableFuture<LLMObsProjectResponse> + */ + public CompletableFuture updateLLMObsProjectAsync( + String projectId, LLMObsProjectUpdateRequest body) { + return updateLLMObsProjectWithHttpInfoAsync(projectId, body) + .thenApply( + response -> { + return response.getData(); + }); + } + + /** + * Partially update an existing LLM Observability project. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Update project payload. (required) + * @return ApiResponse<LLMObsProjectResponse> + * @throws ApiException if fails to make API call + * @http.response.details + * + * + * + * + * + * + * + * + * + *
Response details
Status Code Description Response Headers
200 OK -
400 Bad Request -
401 Unauthorized -
403 Forbidden -
404 Not Found -
429 Too many requests -
+ */ + public ApiResponse updateLLMObsProjectWithHttpInfo( + String projectId, LLMObsProjectUpdateRequest body) throws ApiException { + // Check if unstable operation is enabled + String operationId = "updateLLMObsProject"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + throw new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId)); + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + throw new ApiException( + 400, "Missing the required parameter 'projectId' when calling updateLLMObsProject"); + } + + // verify the required parameter 'body' is set + if (body == null) { + throw new ApiException( + 400, "Missing the required parameter 'body' when calling updateLLMObsProject"); + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/projects/{project_id}" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsProject", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + return apiClient.invokeAPI( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } + + /** + * Update an LLM Observability project. + * + *

See {@link #updateLLMObsProjectWithHttpInfo}. + * + * @param projectId The ID of the LLM Observability project. (required) + * @param body Update project payload. (required) + * @return CompletableFuture<ApiResponse<LLMObsProjectResponse>> + */ + public CompletableFuture> updateLLMObsProjectWithHttpInfoAsync( + String projectId, LLMObsProjectUpdateRequest body) { + // Check if unstable operation is enabled + String operationId = "updateLLMObsProject"; + if (apiClient.isUnstableOperationEnabled("v2." + operationId)) { + apiClient.getLogger().warning(String.format("Using unstable operation '%s'", operationId)); + } else { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException(0, String.format("Unstable operation '%s' is disabled", operationId))); + return result; + } + Object localVarPostBody = body; + + // verify the required parameter 'projectId' is set + if (projectId == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'projectId' when calling updateLLMObsProject")); + return result; + } + + // verify the required parameter 'body' is set + if (body == null) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally( + new ApiException( + 400, "Missing the required parameter 'body' when calling updateLLMObsProject")); + return result; + } + // create path and map variables + String localVarPath = + "/api/v2/llm-obs/v1/projects/{project_id}" + .replaceAll("\\{" + "project_id" + "\\}", apiClient.escapeString(projectId.toString())); + + Map localVarHeaderParams = new HashMap(); + + Invocation.Builder builder; + try { + builder = + apiClient.createBuilder( + "v2.LlmObservabilityApi.updateLLMObsProject", + localVarPath, + new ArrayList(), + localVarHeaderParams, + new HashMap(), + new String[] {"application/json"}, + new String[] {"apiKeyAuth", "appKeyAuth"}); + } catch (ApiException ex) { + CompletableFuture> result = new CompletableFuture<>(); + result.completeExceptionally(ex); + return result; + } + return apiClient.invokeAPIAsync( + "PATCH", + builder, + localVarHeaderParams, + new String[] {"application/json"}, + localVarPostBody, + new HashMap(), + false, + new GenericType() {}); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsCursorMeta.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsCursorMeta.java new file mode 100644 index 00000000000..9e322a6a9bd --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsCursorMeta.java @@ -0,0 +1,146 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.openapitools.jackson.nullable.JsonNullable; + +/** Pagination cursor metadata. */ +@JsonPropertyOrder({LLMObsCursorMeta.JSON_PROPERTY_AFTER}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsCursorMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_AFTER = "after"; + private JsonNullable after = JsonNullable.undefined(); + + public LLMObsCursorMeta after(String after) { + this.after = JsonNullable.of(after); + return this; + } + + /** + * Cursor for the next page of results. + * + * @return after + */ + @jakarta.annotation.Nullable + @JsonIgnore + public String getAfter() { + return after.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_AFTER) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getAfter_JsonNullable() { + return after; + } + + @JsonProperty(JSON_PROPERTY_AFTER) + public void setAfter_JsonNullable(JsonNullable after) { + this.after = after; + } + + public void setAfter(String after) { + this.after = JsonNullable.of(after); + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsCursorMeta + */ + @JsonAnySetter + public LLMObsCursorMeta putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsCursorMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsCursorMeta llmObsCursorMeta = (LLMObsCursorMeta) o; + return Objects.equals(this.after, llmObsCursorMeta.after) + && Objects.equals(this.additionalProperties, llmObsCursorMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(after, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsCursorMeta {\n"); + sb.append(" after: ").append(toIndentedString(after)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesRequest.java new file mode 100644 index 00000000000..6fc96880d84 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesRequest.java @@ -0,0 +1,209 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for creating an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetDataAttributesRequest.JSON_PROPERTY_DESCRIPTION, + LLMObsDatasetDataAttributesRequest.JSON_PROPERTY_METADATA, + LLMObsDatasetDataAttributesRequest.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = null; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public LLMObsDatasetDataAttributesRequest() {} + + @JsonCreator + public LLMObsDatasetDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name) { + this.name = name; + } + + public LLMObsDatasetDataAttributesRequest description(String description) { + this.description = description; + return this; + } + + /** + * Description of the dataset. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsDatasetDataAttributesRequest metadata(Map metadata) { + this.metadata = metadata; + return this; + } + + public LLMObsDatasetDataAttributesRequest putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Arbitrary metadata associated with the dataset. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + public LLMObsDatasetDataAttributesRequest name(String name) { + this.name = name; + return this; + } + + /** + * Name of the dataset. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDatasetDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetDataAttributesRequest llmObsDatasetDataAttributesRequest = + (LLMObsDatasetDataAttributesRequest) o; + return Objects.equals(this.description, llmObsDatasetDataAttributesRequest.description) + && Objects.equals(this.metadata, llmObsDatasetDataAttributesRequest.metadata) + && Objects.equals(this.name, llmObsDatasetDataAttributesRequest.name) + && Objects.equals( + this.additionalProperties, llmObsDatasetDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, metadata, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetDataAttributesRequest {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesResponse.java new file mode 100644 index 00000000000..cdd4efab957 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataAttributesResponse.java @@ -0,0 +1,300 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes of an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetDataAttributesResponse.JSON_PROPERTY_CREATED_AT, + LLMObsDatasetDataAttributesResponse.JSON_PROPERTY_CURRENT_VERSION, + LLMObsDatasetDataAttributesResponse.JSON_PROPERTY_DESCRIPTION, + LLMObsDatasetDataAttributesResponse.JSON_PROPERTY_METADATA, + LLMObsDatasetDataAttributesResponse.JSON_PROPERTY_NAME, + LLMObsDatasetDataAttributesResponse.JSON_PROPERTY_UPDATED_AT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetDataAttributesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_CURRENT_VERSION = "current_version"; + private Long currentVersion; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = new HashMap(); + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_UPDATED_AT = "updated_at"; + private OffsetDateTime updatedAt; + + public LLMObsDatasetDataAttributesResponse() {} + + @JsonCreator + public LLMObsDatasetDataAttributesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_CREATED_AT) OffsetDateTime createdAt, + @JsonProperty(required = true, value = JSON_PROPERTY_CURRENT_VERSION) Long currentVersion, + @JsonProperty(required = true, value = JSON_PROPERTY_DESCRIPTION) String description, + @JsonProperty(required = true, value = JSON_PROPERTY_METADATA) Map metadata, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_UPDATED_AT) OffsetDateTime updatedAt) { + this.createdAt = createdAt; + this.currentVersion = currentVersion; + this.description = description; + if (description != null) {} + this.metadata = metadata; + if (metadata != null) {} + this.name = name; + this.updatedAt = updatedAt; + } + + public LLMObsDatasetDataAttributesResponse createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Timestamp when the dataset was created. + * + * @return createdAt + */ + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + public LLMObsDatasetDataAttributesResponse currentVersion(Long currentVersion) { + this.currentVersion = currentVersion; + return this; + } + + /** + * Current version number of the dataset. + * + * @return currentVersion + */ + @JsonProperty(JSON_PROPERTY_CURRENT_VERSION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getCurrentVersion() { + return currentVersion; + } + + public void setCurrentVersion(Long currentVersion) { + this.currentVersion = currentVersion; + } + + public LLMObsDatasetDataAttributesResponse description(String description) { + this.description = description; + if (description != null) {} + return this; + } + + /** + * Description of the dataset. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsDatasetDataAttributesResponse metadata(Map metadata) { + this.metadata = metadata; + if (metadata != null) {} + return this; + } + + public LLMObsDatasetDataAttributesResponse putMetadataItem(String key, Object metadataItem) { + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Arbitrary metadata associated with the dataset. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + public LLMObsDatasetDataAttributesResponse name(String name) { + this.name = name; + return this; + } + + /** + * Name of the dataset. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LLMObsDatasetDataAttributesResponse updatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Timestamp when the dataset was last updated. + * + * @return updatedAt + */ + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetDataAttributesResponse + */ + @JsonAnySetter + public LLMObsDatasetDataAttributesResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetDataAttributesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetDataAttributesResponse llmObsDatasetDataAttributesResponse = + (LLMObsDatasetDataAttributesResponse) o; + return Objects.equals(this.createdAt, llmObsDatasetDataAttributesResponse.createdAt) + && Objects.equals(this.currentVersion, llmObsDatasetDataAttributesResponse.currentVersion) + && Objects.equals(this.description, llmObsDatasetDataAttributesResponse.description) + && Objects.equals(this.metadata, llmObsDatasetDataAttributesResponse.metadata) + && Objects.equals(this.name, llmObsDatasetDataAttributesResponse.name) + && Objects.equals(this.updatedAt, llmObsDatasetDataAttributesResponse.updatedAt) + && Objects.equals( + this.additionalProperties, llmObsDatasetDataAttributesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + createdAt, currentVersion, description, metadata, name, updatedAt, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetDataAttributesResponse {\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" currentVersion: ").append(toIndentedString(currentVersion)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataRequest.java new file mode 100644 index 00000000000..a8170900d99 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataRequest.java @@ -0,0 +1,181 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for creating an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDatasetDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDatasetDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsDatasetType type; + + public LLMObsDatasetDataRequest() {} + + @JsonCreator + public LLMObsDatasetDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDatasetDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsDatasetType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDatasetDataRequest attributes(LLMObsDatasetDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for creating an LLM Observability dataset. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDatasetDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDatasetDataRequest type(LLMObsDatasetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability dataset. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetType getType() { + return type; + } + + public void setType(LLMObsDatasetType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetDataRequest + */ + @JsonAnySetter + public LLMObsDatasetDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetDataRequest llmObsDatasetDataRequest = (LLMObsDatasetDataRequest) o; + return Objects.equals(this.attributes, llmObsDatasetDataRequest.attributes) + && Objects.equals(this.type, llmObsDatasetDataRequest.type) + && Objects.equals(this.additionalProperties, llmObsDatasetDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataResponse.java new file mode 100644 index 00000000000..9f3d5923d53 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetDataResponse.java @@ -0,0 +1,210 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetDataResponse.JSON_PROPERTY_ATTRIBUTES, + LLMObsDatasetDataResponse.JSON_PROPERTY_ID, + LLMObsDatasetDataResponse.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetDataResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDatasetDataAttributesResponse attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsDatasetType type; + + public LLMObsDatasetDataResponse() {} + + @JsonCreator + public LLMObsDatasetDataResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDatasetDataAttributesResponse attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsDatasetType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDatasetDataResponse attributes(LLMObsDatasetDataAttributesResponse attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of an LLM Observability dataset. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetDataAttributesResponse getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDatasetDataAttributesResponse attributes) { + this.attributes = attributes; + } + + public LLMObsDatasetDataResponse id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the dataset. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public LLMObsDatasetDataResponse type(LLMObsDatasetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability dataset. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetType getType() { + return type; + } + + public void setType(LLMObsDatasetType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetDataResponse + */ + @JsonAnySetter + public LLMObsDatasetDataResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetDataResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetDataResponse llmObsDatasetDataResponse = (LLMObsDatasetDataResponse) o; + return Objects.equals(this.attributes, llmObsDatasetDataResponse.attributes) + && Objects.equals(this.id, llmObsDatasetDataResponse.id) + && Objects.equals(this.type, llmObsDatasetDataResponse.type) + && Objects.equals( + this.additionalProperties, llmObsDatasetDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetDataResponse {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordDataResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordDataResponse.java new file mode 100644 index 00000000000..e89208ac055 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordDataResponse.java @@ -0,0 +1,339 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** A single LLM Observability dataset record. */ +@JsonPropertyOrder({ + LLMObsDatasetRecordDataResponse.JSON_PROPERTY_CREATED_AT, + LLMObsDatasetRecordDataResponse.JSON_PROPERTY_DATASET_ID, + LLMObsDatasetRecordDataResponse.JSON_PROPERTY_EXPECTED_OUTPUT, + LLMObsDatasetRecordDataResponse.JSON_PROPERTY_ID, + LLMObsDatasetRecordDataResponse.JSON_PROPERTY_INPUT, + LLMObsDatasetRecordDataResponse.JSON_PROPERTY_METADATA, + LLMObsDatasetRecordDataResponse.JSON_PROPERTY_UPDATED_AT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordDataResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_DATASET_ID = "dataset_id"; + private String datasetId; + + public static final String JSON_PROPERTY_EXPECTED_OUTPUT = "expected_output"; + private AnyValue expectedOutput; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_INPUT = "input"; + private AnyValue input; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = new HashMap(); + + public static final String JSON_PROPERTY_UPDATED_AT = "updated_at"; + private OffsetDateTime updatedAt; + + public LLMObsDatasetRecordDataResponse() {} + + @JsonCreator + public LLMObsDatasetRecordDataResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_CREATED_AT) OffsetDateTime createdAt, + @JsonProperty(required = true, value = JSON_PROPERTY_DATASET_ID) String datasetId, + @JsonProperty(required = true, value = JSON_PROPERTY_EXPECTED_OUTPUT) AnyValue expectedOutput, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_INPUT) AnyValue input, + @JsonProperty(required = true, value = JSON_PROPERTY_METADATA) Map metadata, + @JsonProperty(required = true, value = JSON_PROPERTY_UPDATED_AT) OffsetDateTime updatedAt) { + this.createdAt = createdAt; + this.datasetId = datasetId; + this.expectedOutput = expectedOutput; + if (expectedOutput != null) { + this.unparsed |= expectedOutput.unparsed; + } + this.id = id; + this.input = input; + if (input != null) { + this.unparsed |= input.unparsed; + } + this.metadata = metadata; + if (metadata != null) {} + this.updatedAt = updatedAt; + } + + public LLMObsDatasetRecordDataResponse createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Timestamp when the record was created. + * + * @return createdAt + */ + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + public LLMObsDatasetRecordDataResponse datasetId(String datasetId) { + this.datasetId = datasetId; + return this; + } + + /** + * Identifier of the dataset this record belongs to. + * + * @return datasetId + */ + @JsonProperty(JSON_PROPERTY_DATASET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDatasetId() { + return datasetId; + } + + public void setDatasetId(String datasetId) { + this.datasetId = datasetId; + } + + public LLMObsDatasetRecordDataResponse expectedOutput(AnyValue expectedOutput) { + this.expectedOutput = expectedOutput; + if (expectedOutput != null) { + this.unparsed |= expectedOutput.unparsed; + } + return this; + } + + /** + * Represents any valid JSON value. + * + * @return expectedOutput + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXPECTED_OUTPUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AnyValue getExpectedOutput() { + return expectedOutput; + } + + public void setExpectedOutput(AnyValue expectedOutput) { + this.expectedOutput = expectedOutput; + } + + public LLMObsDatasetRecordDataResponse id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the record. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public LLMObsDatasetRecordDataResponse input(AnyValue input) { + this.input = input; + if (input != null) { + this.unparsed |= input.unparsed; + } + return this; + } + + /** + * Represents any valid JSON value. + * + * @return input + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INPUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AnyValue getInput() { + return input; + } + + public void setInput(AnyValue input) { + this.input = input; + } + + public LLMObsDatasetRecordDataResponse metadata(Map metadata) { + this.metadata = metadata; + if (metadata != null) {} + return this; + } + + public LLMObsDatasetRecordDataResponse putMetadataItem(String key, Object metadataItem) { + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Arbitrary metadata associated with the record. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + public LLMObsDatasetRecordDataResponse updatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Timestamp when the record was last updated. + * + * @return updatedAt + */ + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordDataResponse + */ + @JsonAnySetter + public LLMObsDatasetRecordDataResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordDataResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordDataResponse llmObsDatasetRecordDataResponse = + (LLMObsDatasetRecordDataResponse) o; + return Objects.equals(this.createdAt, llmObsDatasetRecordDataResponse.createdAt) + && Objects.equals(this.datasetId, llmObsDatasetRecordDataResponse.datasetId) + && Objects.equals(this.expectedOutput, llmObsDatasetRecordDataResponse.expectedOutput) + && Objects.equals(this.id, llmObsDatasetRecordDataResponse.id) + && Objects.equals(this.input, llmObsDatasetRecordDataResponse.input) + && Objects.equals(this.metadata, llmObsDatasetRecordDataResponse.metadata) + && Objects.equals(this.updatedAt, llmObsDatasetRecordDataResponse.updatedAt) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + createdAt, datasetId, expectedOutput, id, input, metadata, updatedAt, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordDataResponse {\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" datasetId: ").append(toIndentedString(datasetId)).append("\n"); + sb.append(" expectedOutput: ").append(toIndentedString(expectedOutput)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" input: ").append(toIndentedString(input)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordItem.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordItem.java new file mode 100644 index 00000000000..ce3041d9561 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordItem.java @@ -0,0 +1,225 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.openapitools.jackson.nullable.JsonNullable; + +/** A single record to append to an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetRecordItem.JSON_PROPERTY_EXPECTED_OUTPUT, + LLMObsDatasetRecordItem.JSON_PROPERTY_INPUT, + LLMObsDatasetRecordItem.JSON_PROPERTY_METADATA +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordItem { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_EXPECTED_OUTPUT = "expected_output"; + private JsonNullable expectedOutput = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_INPUT = "input"; + private AnyValue input; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = null; + + public LLMObsDatasetRecordItem() {} + + @JsonCreator + public LLMObsDatasetRecordItem( + @JsonProperty(required = true, value = JSON_PROPERTY_INPUT) AnyValue input) { + this.input = input; + if (input != null) { + this.unparsed |= input.unparsed; + } + } + + public LLMObsDatasetRecordItem expectedOutput(AnyValue expectedOutput) { + this.expectedOutput = JsonNullable.of(expectedOutput); + return this; + } + + /** + * Represents any valid JSON value. + * + * @return expectedOutput + */ + @jakarta.annotation.Nullable + @JsonIgnore + public AnyValue getExpectedOutput() { + return expectedOutput.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_EXPECTED_OUTPUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getExpectedOutput_JsonNullable() { + return expectedOutput; + } + + @JsonProperty(JSON_PROPERTY_EXPECTED_OUTPUT) + public void setExpectedOutput_JsonNullable(JsonNullable expectedOutput) { + this.expectedOutput = expectedOutput; + } + + public void setExpectedOutput(AnyValue expectedOutput) { + this.expectedOutput = JsonNullable.of(expectedOutput); + } + + public LLMObsDatasetRecordItem input(AnyValue input) { + this.input = input; + if (input != null) { + this.unparsed |= input.unparsed; + } + return this; + } + + /** + * Represents any valid JSON value. + * + * @return input + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_INPUT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public AnyValue getInput() { + return input; + } + + public void setInput(AnyValue input) { + this.input = input; + } + + public LLMObsDatasetRecordItem metadata(Map metadata) { + this.metadata = metadata; + return this; + } + + public LLMObsDatasetRecordItem putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Arbitrary metadata associated with the record. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordItem + */ + @JsonAnySetter + public LLMObsDatasetRecordItem putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordItem object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordItem llmObsDatasetRecordItem = (LLMObsDatasetRecordItem) o; + return Objects.equals(this.expectedOutput, llmObsDatasetRecordItem.expectedOutput) + && Objects.equals(this.input, llmObsDatasetRecordItem.input) + && Objects.equals(this.metadata, llmObsDatasetRecordItem.metadata) + && Objects.equals(this.additionalProperties, llmObsDatasetRecordItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(expectedOutput, input, metadata, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordItem {\n"); + sb.append(" expectedOutput: ").append(toIndentedString(expectedOutput)).append("\n"); + sb.append(" input: ").append(toIndentedString(input)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordUpdateItem.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordUpdateItem.java new file mode 100644 index 00000000000..18098eebd3a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordUpdateItem.java @@ -0,0 +1,256 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.openapitools.jackson.nullable.JsonNullable; + +/** A record update payload for an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetRecordUpdateItem.JSON_PROPERTY_EXPECTED_OUTPUT, + LLMObsDatasetRecordUpdateItem.JSON_PROPERTY_ID, + LLMObsDatasetRecordUpdateItem.JSON_PROPERTY_INPUT, + LLMObsDatasetRecordUpdateItem.JSON_PROPERTY_METADATA +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordUpdateItem { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_EXPECTED_OUTPUT = "expected_output"; + private JsonNullable expectedOutput = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_INPUT = "input"; + private JsonNullable input = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = null; + + public LLMObsDatasetRecordUpdateItem() {} + + @JsonCreator + public LLMObsDatasetRecordUpdateItem( + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id) { + this.id = id; + } + + public LLMObsDatasetRecordUpdateItem expectedOutput(AnyValue expectedOutput) { + this.expectedOutput = JsonNullable.of(expectedOutput); + return this; + } + + /** + * Represents any valid JSON value. + * + * @return expectedOutput + */ + @jakarta.annotation.Nullable + @JsonIgnore + public AnyValue getExpectedOutput() { + return expectedOutput.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_EXPECTED_OUTPUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getExpectedOutput_JsonNullable() { + return expectedOutput; + } + + @JsonProperty(JSON_PROPERTY_EXPECTED_OUTPUT) + public void setExpectedOutput_JsonNullable(JsonNullable expectedOutput) { + this.expectedOutput = expectedOutput; + } + + public void setExpectedOutput(AnyValue expectedOutput) { + this.expectedOutput = JsonNullable.of(expectedOutput); + } + + public LLMObsDatasetRecordUpdateItem id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the record to update. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public LLMObsDatasetRecordUpdateItem input(AnyValue input) { + this.input = JsonNullable.of(input); + return this; + } + + /** + * Represents any valid JSON value. + * + * @return input + */ + @jakarta.annotation.Nullable + @JsonIgnore + public AnyValue getInput() { + return input.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_INPUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getInput_JsonNullable() { + return input; + } + + @JsonProperty(JSON_PROPERTY_INPUT) + public void setInput_JsonNullable(JsonNullable input) { + this.input = input; + } + + public void setInput(AnyValue input) { + this.input = JsonNullable.of(input); + } + + public LLMObsDatasetRecordUpdateItem metadata(Map metadata) { + this.metadata = metadata; + return this; + } + + public LLMObsDatasetRecordUpdateItem putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Updated metadata associated with the record. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordUpdateItem + */ + @JsonAnySetter + public LLMObsDatasetRecordUpdateItem putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordUpdateItem object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordUpdateItem llmObsDatasetRecordUpdateItem = (LLMObsDatasetRecordUpdateItem) o; + return Objects.equals(this.expectedOutput, llmObsDatasetRecordUpdateItem.expectedOutput) + && Objects.equals(this.id, llmObsDatasetRecordUpdateItem.id) + && Objects.equals(this.input, llmObsDatasetRecordUpdateItem.input) + && Objects.equals(this.metadata, llmObsDatasetRecordUpdateItem.metadata) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordUpdateItem.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(expectedOutput, id, input, metadata, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordUpdateItem {\n"); + sb.append(" expectedOutput: ").append(toIndentedString(expectedOutput)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" input: ").append(toIndentedString(input)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataAttributesRequest.java new file mode 100644 index 00000000000..df93430f41c --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataAttributesRequest.java @@ -0,0 +1,188 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes for appending records to an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetRecordsDataAttributesRequest.JSON_PROPERTY_DEDUPLICATE, + LLMObsDatasetRecordsDataAttributesRequest.JSON_PROPERTY_RECORDS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DEDUPLICATE = "deduplicate"; + private Boolean deduplicate; + + public static final String JSON_PROPERTY_RECORDS = "records"; + private List records = new ArrayList<>(); + + public LLMObsDatasetRecordsDataAttributesRequest() {} + + @JsonCreator + public LLMObsDatasetRecordsDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_RECORDS) + List records) { + this.records = records; + } + + public LLMObsDatasetRecordsDataAttributesRequest deduplicate(Boolean deduplicate) { + this.deduplicate = deduplicate; + return this; + } + + /** + * Whether to deduplicate records before appending. Defaults to true. + * + * @return deduplicate + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DEDUPLICATE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getDeduplicate() { + return deduplicate; + } + + public void setDeduplicate(Boolean deduplicate) { + this.deduplicate = deduplicate; + } + + public LLMObsDatasetRecordsDataAttributesRequest records(List records) { + this.records = records; + for (LLMObsDatasetRecordItem item : records) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsDatasetRecordsDataAttributesRequest addRecordsItem( + LLMObsDatasetRecordItem recordsItem) { + this.records.add(recordsItem); + this.unparsed |= recordsItem.unparsed; + return this; + } + + /** + * List of records to append to the dataset. + * + * @return records + */ + @JsonProperty(JSON_PROPERTY_RECORDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRecords() { + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDatasetRecordsDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsDataAttributesRequest llmObsDatasetRecordsDataAttributesRequest = + (LLMObsDatasetRecordsDataAttributesRequest) o; + return Objects.equals(this.deduplicate, llmObsDatasetRecordsDataAttributesRequest.deduplicate) + && Objects.equals(this.records, llmObsDatasetRecordsDataAttributesRequest.records) + && Objects.equals( + this.additionalProperties, + llmObsDatasetRecordsDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(deduplicate, records, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsDataAttributesRequest {\n"); + sb.append(" deduplicate: ").append(toIndentedString(deduplicate)).append("\n"); + sb.append(" records: ").append(toIndentedString(records)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataRequest.java new file mode 100644 index 00000000000..57adcd07ea6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for appending records to an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetRecordsDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDatasetRecordsDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDatasetRecordsDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsRecordType type; + + public LLMObsDatasetRecordsDataRequest() {} + + @JsonCreator + public LLMObsDatasetRecordsDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDatasetRecordsDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsRecordType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDatasetRecordsDataRequest attributes( + LLMObsDatasetRecordsDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for appending records to an LLM Observability dataset. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetRecordsDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDatasetRecordsDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDatasetRecordsDataRequest type(LLMObsRecordType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of LLM Observability dataset records. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsRecordType getType() { + return type; + } + + public void setType(LLMObsRecordType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsDataRequest + */ + @JsonAnySetter + public LLMObsDatasetRecordsDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsDataRequest llmObsDatasetRecordsDataRequest = + (LLMObsDatasetRecordsDataRequest) o; + return Objects.equals(this.attributes, llmObsDatasetRecordsDataRequest.attributes) + && Objects.equals(this.type, llmObsDatasetRecordsDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordsDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsListResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsListResponse.java new file mode 100644 index 00000000000..2a79e90ce77 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsListResponse.java @@ -0,0 +1,187 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing a paginated list of LLM Observability dataset records. */ +@JsonPropertyOrder({ + LLMObsDatasetRecordsListResponse.JSON_PROPERTY_DATA, + LLMObsDatasetRecordsListResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsListResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private LLMObsCursorMeta meta; + + public LLMObsDatasetRecordsListResponse() {} + + @JsonCreator + public LLMObsDatasetRecordsListResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public LLMObsDatasetRecordsListResponse data(List data) { + this.data = data; + for (LLMObsDatasetRecordDataResponse item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsDatasetRecordsListResponse addDataItem(LLMObsDatasetRecordDataResponse dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * List of dataset records. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public LLMObsDatasetRecordsListResponse meta(LLMObsCursorMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Pagination cursor metadata. + * + * @return meta + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsCursorMeta getMeta() { + return meta; + } + + public void setMeta(LLMObsCursorMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsListResponse + */ + @JsonAnySetter + public LLMObsDatasetRecordsListResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsListResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsListResponse llmObsDatasetRecordsListResponse = + (LLMObsDatasetRecordsListResponse) o; + return Objects.equals(this.data, llmObsDatasetRecordsListResponse.data) + && Objects.equals(this.meta, llmObsDatasetRecordsListResponse.meta) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordsListResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsListResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationData.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationData.java new file mode 100644 index 00000000000..2ba877c7b81 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationData.java @@ -0,0 +1,158 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing records after a create or update operation. */ +@JsonPropertyOrder({LLMObsDatasetRecordsMutationData.JSON_PROPERTY_RECORDS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsMutationData { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_RECORDS = "records"; + private List records = new ArrayList<>(); + + public LLMObsDatasetRecordsMutationData() {} + + @JsonCreator + public LLMObsDatasetRecordsMutationData( + @JsonProperty(required = true, value = JSON_PROPERTY_RECORDS) + List records) { + this.records = records; + } + + public LLMObsDatasetRecordsMutationData records(List records) { + this.records = records; + for (LLMObsDatasetRecordDataResponse item : records) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsDatasetRecordsMutationData addRecordsItem( + LLMObsDatasetRecordDataResponse recordsItem) { + this.records.add(recordsItem); + this.unparsed |= recordsItem.unparsed; + return this; + } + + /** + * List of affected dataset records. + * + * @return records + */ + @JsonProperty(JSON_PROPERTY_RECORDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRecords() { + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsMutationData + */ + @JsonAnySetter + public LLMObsDatasetRecordsMutationData putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsMutationData object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsMutationData llmObsDatasetRecordsMutationData = + (LLMObsDatasetRecordsMutationData) o; + return Objects.equals(this.records, llmObsDatasetRecordsMutationData.records) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordsMutationData.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(records, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsMutationData {\n"); + sb.append(" records: ").append(toIndentedString(records)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationResponse.java new file mode 100644 index 00000000000..408d3eecfe1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsMutationResponse.java @@ -0,0 +1,158 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing records after a create or update operation. */ +@JsonPropertyOrder({LLMObsDatasetRecordsMutationResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsMutationResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public LLMObsDatasetRecordsMutationResponse() {} + + @JsonCreator + public LLMObsDatasetRecordsMutationResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public LLMObsDatasetRecordsMutationResponse data(List data) { + this.data = data; + for (LLMObsDatasetRecordsMutationData item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsDatasetRecordsMutationResponse addDataItem( + LLMObsDatasetRecordsMutationData dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * List of affected dataset records. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsMutationResponse + */ + @JsonAnySetter + public LLMObsDatasetRecordsMutationResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsMutationResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsMutationResponse llmObsDatasetRecordsMutationResponse = + (LLMObsDatasetRecordsMutationResponse) o; + return Objects.equals(this.data, llmObsDatasetRecordsMutationResponse.data) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordsMutationResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsMutationResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsRequest.java new file mode 100644 index 00000000000..e01146e91c3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to append records to an LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDatasetRecordsRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDatasetRecordsDataRequest data; + + public LLMObsDatasetRecordsRequest() {} + + @JsonCreator + public LLMObsDatasetRecordsRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsDatasetRecordsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDatasetRecordsRequest data(LLMObsDatasetRecordsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for appending records to an LLM Observability dataset. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetRecordsDataRequest getData() { + return data; + } + + public void setData(LLMObsDatasetRecordsDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsRequest + */ + @JsonAnySetter + public LLMObsDatasetRecordsRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsRequest llmObsDatasetRecordsRequest = (LLMObsDatasetRecordsRequest) o; + return Objects.equals(this.data, llmObsDatasetRecordsRequest.data) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordsRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataAttributesRequest.java new file mode 100644 index 00000000000..e8660e1f0be --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataAttributesRequest.java @@ -0,0 +1,162 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes for updating records in an LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDatasetRecordsUpdateDataAttributesRequest.JSON_PROPERTY_RECORDS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsUpdateDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_RECORDS = "records"; + private List records = new ArrayList<>(); + + public LLMObsDatasetRecordsUpdateDataAttributesRequest() {} + + @JsonCreator + public LLMObsDatasetRecordsUpdateDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_RECORDS) + List records) { + this.records = records; + } + + public LLMObsDatasetRecordsUpdateDataAttributesRequest records( + List records) { + this.records = records; + for (LLMObsDatasetRecordUpdateItem item : records) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsDatasetRecordsUpdateDataAttributesRequest addRecordsItem( + LLMObsDatasetRecordUpdateItem recordsItem) { + this.records.add(recordsItem); + this.unparsed |= recordsItem.unparsed; + return this; + } + + /** + * List of records to update. + * + * @return records + */ + @JsonProperty(JSON_PROPERTY_RECORDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRecords() { + return records; + } + + public void setRecords(List records) { + this.records = records; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsUpdateDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDatasetRecordsUpdateDataAttributesRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsUpdateDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsUpdateDataAttributesRequest + llmObsDatasetRecordsUpdateDataAttributesRequest = + (LLMObsDatasetRecordsUpdateDataAttributesRequest) o; + return Objects.equals(this.records, llmObsDatasetRecordsUpdateDataAttributesRequest.records) + && Objects.equals( + this.additionalProperties, + llmObsDatasetRecordsUpdateDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(records, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsUpdateDataAttributesRequest {\n"); + sb.append(" records: ").append(toIndentedString(records)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataRequest.java new file mode 100644 index 00000000000..216d0d87b16 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for updating records in an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetRecordsUpdateDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDatasetRecordsUpdateDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsUpdateDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDatasetRecordsUpdateDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsRecordType type; + + public LLMObsDatasetRecordsUpdateDataRequest() {} + + @JsonCreator + public LLMObsDatasetRecordsUpdateDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDatasetRecordsUpdateDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsRecordType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDatasetRecordsUpdateDataRequest attributes( + LLMObsDatasetRecordsUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for updating records in an LLM Observability dataset. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetRecordsUpdateDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDatasetRecordsUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDatasetRecordsUpdateDataRequest type(LLMObsRecordType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of LLM Observability dataset records. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsRecordType getType() { + return type; + } + + public void setType(LLMObsRecordType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsUpdateDataRequest + */ + @JsonAnySetter + public LLMObsDatasetRecordsUpdateDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsUpdateDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsUpdateDataRequest llmObsDatasetRecordsUpdateDataRequest = + (LLMObsDatasetRecordsUpdateDataRequest) o; + return Objects.equals(this.attributes, llmObsDatasetRecordsUpdateDataRequest.attributes) + && Objects.equals(this.type, llmObsDatasetRecordsUpdateDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordsUpdateDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsUpdateDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateRequest.java new file mode 100644 index 00000000000..fbbc71d2c79 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRecordsUpdateRequest.java @@ -0,0 +1,148 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to update records in an LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDatasetRecordsUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRecordsUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDatasetRecordsUpdateDataRequest data; + + public LLMObsDatasetRecordsUpdateRequest() {} + + @JsonCreator + public LLMObsDatasetRecordsUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsDatasetRecordsUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDatasetRecordsUpdateRequest data(LLMObsDatasetRecordsUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for updating records in an LLM Observability dataset. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetRecordsUpdateDataRequest getData() { + return data; + } + + public void setData(LLMObsDatasetRecordsUpdateDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRecordsUpdateRequest + */ + @JsonAnySetter + public LLMObsDatasetRecordsUpdateRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRecordsUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRecordsUpdateRequest llmObsDatasetRecordsUpdateRequest = + (LLMObsDatasetRecordsUpdateRequest) o; + return Objects.equals(this.data, llmObsDatasetRecordsUpdateRequest.data) + && Objects.equals( + this.additionalProperties, llmObsDatasetRecordsUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRecordsUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRequest.java new file mode 100644 index 00000000000..071239abde5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetRequest.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to create an LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDatasetRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDatasetDataRequest data; + + public LLMObsDatasetRequest() {} + + @JsonCreator + public LLMObsDatasetRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) LLMObsDatasetDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDatasetRequest data(LLMObsDatasetDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for creating an LLM Observability dataset. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetDataRequest getData() { + return data; + } + + public void setData(LLMObsDatasetDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetRequest + */ + @JsonAnySetter + public LLMObsDatasetRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetRequest llmObsDatasetRequest = (LLMObsDatasetRequest) o; + return Objects.equals(this.data, llmObsDatasetRequest.data) + && Objects.equals(this.additionalProperties, llmObsDatasetRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetResponse.java new file mode 100644 index 00000000000..d14ded0f4ec --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetResponse.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Response containing a single LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDatasetResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDatasetDataResponse data; + + public LLMObsDatasetResponse() {} + + @JsonCreator + public LLMObsDatasetResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) LLMObsDatasetDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDatasetResponse data(LLMObsDatasetDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for an LLM Observability dataset. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetDataResponse getData() { + return data; + } + + public void setData(LLMObsDatasetDataResponse data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetResponse + */ + @JsonAnySetter + public LLMObsDatasetResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetResponse llmObsDatasetResponse = (LLMObsDatasetResponse) o; + return Objects.equals(this.data, llmObsDatasetResponse.data) + && Objects.equals(this.additionalProperties, llmObsDatasetResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetType.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetType.java new file mode 100644 index 00000000000..715e70879e6 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetType.java @@ -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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Resource type of an LLM Observability dataset. */ +@JsonSerialize(using = LLMObsDatasetType.LLMObsDatasetTypeSerializer.class) +public class LLMObsDatasetType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("datasets")); + + public static final LLMObsDatasetType DATASETS = new LLMObsDatasetType("datasets"); + + LLMObsDatasetType(String value) { + super(value, allowedValues); + } + + public static class LLMObsDatasetTypeSerializer extends StdSerializer { + public LLMObsDatasetTypeSerializer(Class t) { + super(t); + } + + public LLMObsDatasetTypeSerializer() { + this(null); + } + + @Override + public void serialize(LLMObsDatasetType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LLMObsDatasetType fromValue(String value) { + return new LLMObsDatasetType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataAttributesRequest.java new file mode 100644 index 00000000000..2d8ee1756ca --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataAttributesRequest.java @@ -0,0 +1,202 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for updating an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetUpdateDataAttributesRequest.JSON_PROPERTY_DESCRIPTION, + LLMObsDatasetUpdateDataAttributesRequest.JSON_PROPERTY_METADATA, + LLMObsDatasetUpdateDataAttributesRequest.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetUpdateDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = null; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public LLMObsDatasetUpdateDataAttributesRequest description(String description) { + this.description = description; + return this; + } + + /** + * Updated description of the dataset. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsDatasetUpdateDataAttributesRequest metadata(Map metadata) { + this.metadata = metadata; + return this; + } + + public LLMObsDatasetUpdateDataAttributesRequest putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Updated metadata associated with the dataset. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + public LLMObsDatasetUpdateDataAttributesRequest name(String name) { + this.name = name; + return this; + } + + /** + * Updated name of the dataset. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetUpdateDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDatasetUpdateDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetUpdateDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetUpdateDataAttributesRequest llmObsDatasetUpdateDataAttributesRequest = + (LLMObsDatasetUpdateDataAttributesRequest) o; + return Objects.equals(this.description, llmObsDatasetUpdateDataAttributesRequest.description) + && Objects.equals(this.metadata, llmObsDatasetUpdateDataAttributesRequest.metadata) + && Objects.equals(this.name, llmObsDatasetUpdateDataAttributesRequest.name) + && Objects.equals( + this.additionalProperties, + llmObsDatasetUpdateDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, metadata, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetUpdateDataAttributesRequest {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataRequest.java new file mode 100644 index 00000000000..2a770900007 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for updating an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDatasetUpdateDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDatasetUpdateDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetUpdateDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDatasetUpdateDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsDatasetType type; + + public LLMObsDatasetUpdateDataRequest() {} + + @JsonCreator + public LLMObsDatasetUpdateDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDatasetUpdateDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsDatasetType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDatasetUpdateDataRequest attributes( + LLMObsDatasetUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for updating an LLM Observability dataset. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetUpdateDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDatasetUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDatasetUpdateDataRequest type(LLMObsDatasetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability dataset. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetType getType() { + return type; + } + + public void setType(LLMObsDatasetType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetUpdateDataRequest + */ + @JsonAnySetter + public LLMObsDatasetUpdateDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetUpdateDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetUpdateDataRequest llmObsDatasetUpdateDataRequest = + (LLMObsDatasetUpdateDataRequest) o; + return Objects.equals(this.attributes, llmObsDatasetUpdateDataRequest.attributes) + && Objects.equals(this.type, llmObsDatasetUpdateDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsDatasetUpdateDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetUpdateDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateRequest.java new file mode 100644 index 00000000000..67559ea7e30 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetUpdateRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to partially update an LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDatasetUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDatasetUpdateDataRequest data; + + public LLMObsDatasetUpdateRequest() {} + + @JsonCreator + public LLMObsDatasetUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsDatasetUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDatasetUpdateRequest data(LLMObsDatasetUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for updating an LLM Observability dataset. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetUpdateDataRequest getData() { + return data; + } + + public void setData(LLMObsDatasetUpdateDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetUpdateRequest + */ + @JsonAnySetter + public LLMObsDatasetUpdateRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetUpdateRequest llmObsDatasetUpdateRequest = (LLMObsDatasetUpdateRequest) o; + return Objects.equals(this.data, llmObsDatasetUpdateRequest.data) + && Objects.equals( + this.additionalProperties, llmObsDatasetUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetsResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetsResponse.java new file mode 100644 index 00000000000..2c55dd6a61f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDatasetsResponse.java @@ -0,0 +1,185 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing a list of LLM Observability datasets. */ +@JsonPropertyOrder({ + LLMObsDatasetsResponse.JSON_PROPERTY_DATA, + LLMObsDatasetsResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDatasetsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private LLMObsCursorMeta meta; + + public LLMObsDatasetsResponse() {} + + @JsonCreator + public LLMObsDatasetsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public LLMObsDatasetsResponse data(List data) { + this.data = data; + for (LLMObsDatasetDataResponse item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsDatasetsResponse addDataItem(LLMObsDatasetDataResponse dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * List of datasets. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public LLMObsDatasetsResponse meta(LLMObsCursorMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Pagination cursor metadata. + * + * @return meta + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsCursorMeta getMeta() { + return meta; + } + + public void setMeta(LLMObsCursorMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDatasetsResponse + */ + @JsonAnySetter + public LLMObsDatasetsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDatasetsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDatasetsResponse llmObsDatasetsResponse = (LLMObsDatasetsResponse) o; + return Objects.equals(this.data, llmObsDatasetsResponse.data) + && Objects.equals(this.meta, llmObsDatasetsResponse.meta) + && Objects.equals(this.additionalProperties, llmObsDatasetsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDatasetsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataAttributesRequest.java new file mode 100644 index 00000000000..d61d36cba19 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataAttributesRequest.java @@ -0,0 +1,155 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes for deleting records from an LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDeleteDatasetRecordsDataAttributesRequest.JSON_PROPERTY_RECORD_IDS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteDatasetRecordsDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_RECORD_IDS = "record_ids"; + private List recordIds = new ArrayList<>(); + + public LLMObsDeleteDatasetRecordsDataAttributesRequest() {} + + @JsonCreator + public LLMObsDeleteDatasetRecordsDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_RECORD_IDS) List recordIds) { + this.recordIds = recordIds; + } + + public LLMObsDeleteDatasetRecordsDataAttributesRequest recordIds(List recordIds) { + this.recordIds = recordIds; + return this; + } + + public LLMObsDeleteDatasetRecordsDataAttributesRequest addRecordIdsItem(String recordIdsItem) { + this.recordIds.add(recordIdsItem); + return this; + } + + /** + * List of record IDs to delete. + * + * @return recordIds + */ + @JsonProperty(JSON_PROPERTY_RECORD_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getRecordIds() { + return recordIds; + } + + public void setRecordIds(List recordIds) { + this.recordIds = recordIds; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteDatasetRecordsDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDeleteDatasetRecordsDataAttributesRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteDatasetRecordsDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteDatasetRecordsDataAttributesRequest + llmObsDeleteDatasetRecordsDataAttributesRequest = + (LLMObsDeleteDatasetRecordsDataAttributesRequest) o; + return Objects.equals(this.recordIds, llmObsDeleteDatasetRecordsDataAttributesRequest.recordIds) + && Objects.equals( + this.additionalProperties, + llmObsDeleteDatasetRecordsDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(recordIds, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteDatasetRecordsDataAttributesRequest {\n"); + sb.append(" recordIds: ").append(toIndentedString(recordIds)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataRequest.java new file mode 100644 index 00000000000..7b7f6264173 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for deleting records from an LLM Observability dataset. */ +@JsonPropertyOrder({ + LLMObsDeleteDatasetRecordsDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDeleteDatasetRecordsDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteDatasetRecordsDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDeleteDatasetRecordsDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsRecordType type; + + public LLMObsDeleteDatasetRecordsDataRequest() {} + + @JsonCreator + public LLMObsDeleteDatasetRecordsDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDeleteDatasetRecordsDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsRecordType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDeleteDatasetRecordsDataRequest attributes( + LLMObsDeleteDatasetRecordsDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for deleting records from an LLM Observability dataset. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteDatasetRecordsDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDeleteDatasetRecordsDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDeleteDatasetRecordsDataRequest type(LLMObsRecordType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of LLM Observability dataset records. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsRecordType getType() { + return type; + } + + public void setType(LLMObsRecordType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteDatasetRecordsDataRequest + */ + @JsonAnySetter + public LLMObsDeleteDatasetRecordsDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteDatasetRecordsDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteDatasetRecordsDataRequest llmObsDeleteDatasetRecordsDataRequest = + (LLMObsDeleteDatasetRecordsDataRequest) o; + return Objects.equals(this.attributes, llmObsDeleteDatasetRecordsDataRequest.attributes) + && Objects.equals(this.type, llmObsDeleteDatasetRecordsDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsDeleteDatasetRecordsDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteDatasetRecordsDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsRequest.java new file mode 100644 index 00000000000..f6ad7b7749d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetRecordsRequest.java @@ -0,0 +1,148 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to delete records from an LLM Observability dataset. */ +@JsonPropertyOrder({LLMObsDeleteDatasetRecordsRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteDatasetRecordsRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDeleteDatasetRecordsDataRequest data; + + public LLMObsDeleteDatasetRecordsRequest() {} + + @JsonCreator + public LLMObsDeleteDatasetRecordsRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsDeleteDatasetRecordsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDeleteDatasetRecordsRequest data(LLMObsDeleteDatasetRecordsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for deleting records from an LLM Observability dataset. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteDatasetRecordsDataRequest getData() { + return data; + } + + public void setData(LLMObsDeleteDatasetRecordsDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteDatasetRecordsRequest + */ + @JsonAnySetter + public LLMObsDeleteDatasetRecordsRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteDatasetRecordsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteDatasetRecordsRequest llmObsDeleteDatasetRecordsRequest = + (LLMObsDeleteDatasetRecordsRequest) o; + return Objects.equals(this.data, llmObsDeleteDatasetRecordsRequest.data) + && Objects.equals( + this.additionalProperties, llmObsDeleteDatasetRecordsRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteDatasetRecordsRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataAttributesRequest.java new file mode 100644 index 00000000000..7e2f661403a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataAttributesRequest.java @@ -0,0 +1,153 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes for deleting LLM Observability datasets. */ +@JsonPropertyOrder({LLMObsDeleteDatasetsDataAttributesRequest.JSON_PROPERTY_DATASET_IDS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteDatasetsDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATASET_IDS = "dataset_ids"; + private List datasetIds = new ArrayList<>(); + + public LLMObsDeleteDatasetsDataAttributesRequest() {} + + @JsonCreator + public LLMObsDeleteDatasetsDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATASET_IDS) List datasetIds) { + this.datasetIds = datasetIds; + } + + public LLMObsDeleteDatasetsDataAttributesRequest datasetIds(List datasetIds) { + this.datasetIds = datasetIds; + return this; + } + + public LLMObsDeleteDatasetsDataAttributesRequest addDatasetIdsItem(String datasetIdsItem) { + this.datasetIds.add(datasetIdsItem); + return this; + } + + /** + * List of dataset IDs to delete. + * + * @return datasetIds + */ + @JsonProperty(JSON_PROPERTY_DATASET_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getDatasetIds() { + return datasetIds; + } + + public void setDatasetIds(List datasetIds) { + this.datasetIds = datasetIds; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteDatasetsDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDeleteDatasetsDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteDatasetsDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteDatasetsDataAttributesRequest llmObsDeleteDatasetsDataAttributesRequest = + (LLMObsDeleteDatasetsDataAttributesRequest) o; + return Objects.equals(this.datasetIds, llmObsDeleteDatasetsDataAttributesRequest.datasetIds) + && Objects.equals( + this.additionalProperties, + llmObsDeleteDatasetsDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(datasetIds, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteDatasetsDataAttributesRequest {\n"); + sb.append(" datasetIds: ").append(toIndentedString(datasetIds)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataRequest.java new file mode 100644 index 00000000000..dc9836633a9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for deleting LLM Observability datasets. */ +@JsonPropertyOrder({ + LLMObsDeleteDatasetsDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDeleteDatasetsDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteDatasetsDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDeleteDatasetsDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsDatasetType type; + + public LLMObsDeleteDatasetsDataRequest() {} + + @JsonCreator + public LLMObsDeleteDatasetsDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDeleteDatasetsDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsDatasetType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDeleteDatasetsDataRequest attributes( + LLMObsDeleteDatasetsDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for deleting LLM Observability datasets. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteDatasetsDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDeleteDatasetsDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDeleteDatasetsDataRequest type(LLMObsDatasetType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability dataset. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDatasetType getType() { + return type; + } + + public void setType(LLMObsDatasetType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteDatasetsDataRequest + */ + @JsonAnySetter + public LLMObsDeleteDatasetsDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteDatasetsDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteDatasetsDataRequest llmObsDeleteDatasetsDataRequest = + (LLMObsDeleteDatasetsDataRequest) o; + return Objects.equals(this.attributes, llmObsDeleteDatasetsDataRequest.attributes) + && Objects.equals(this.type, llmObsDeleteDatasetsDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsDeleteDatasetsDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteDatasetsDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsRequest.java new file mode 100644 index 00000000000..20d0df18448 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteDatasetsRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to delete one or more LLM Observability datasets. */ +@JsonPropertyOrder({LLMObsDeleteDatasetsRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteDatasetsRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDeleteDatasetsDataRequest data; + + public LLMObsDeleteDatasetsRequest() {} + + @JsonCreator + public LLMObsDeleteDatasetsRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsDeleteDatasetsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDeleteDatasetsRequest data(LLMObsDeleteDatasetsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for deleting LLM Observability datasets. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteDatasetsDataRequest getData() { + return data; + } + + public void setData(LLMObsDeleteDatasetsDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteDatasetsRequest + */ + @JsonAnySetter + public LLMObsDeleteDatasetsRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteDatasetsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteDatasetsRequest llmObsDeleteDatasetsRequest = (LLMObsDeleteDatasetsRequest) o; + return Objects.equals(this.data, llmObsDeleteDatasetsRequest.data) + && Objects.equals( + this.additionalProperties, llmObsDeleteDatasetsRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteDatasetsRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataAttributesRequest.java new file mode 100644 index 00000000000..1e40163f345 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataAttributesRequest.java @@ -0,0 +1,157 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes for deleting LLM Observability experiments. */ +@JsonPropertyOrder({LLMObsDeleteExperimentsDataAttributesRequest.JSON_PROPERTY_EXPERIMENT_IDS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteExperimentsDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_EXPERIMENT_IDS = "experiment_ids"; + private List experimentIds = new ArrayList<>(); + + public LLMObsDeleteExperimentsDataAttributesRequest() {} + + @JsonCreator + public LLMObsDeleteExperimentsDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_EXPERIMENT_IDS) + List experimentIds) { + this.experimentIds = experimentIds; + } + + public LLMObsDeleteExperimentsDataAttributesRequest experimentIds(List experimentIds) { + this.experimentIds = experimentIds; + return this; + } + + public LLMObsDeleteExperimentsDataAttributesRequest addExperimentIdsItem( + String experimentIdsItem) { + this.experimentIds.add(experimentIdsItem); + return this; + } + + /** + * List of experiment IDs to delete. + * + * @return experimentIds + */ + @JsonProperty(JSON_PROPERTY_EXPERIMENT_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getExperimentIds() { + return experimentIds; + } + + public void setExperimentIds(List experimentIds) { + this.experimentIds = experimentIds; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteExperimentsDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDeleteExperimentsDataAttributesRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteExperimentsDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteExperimentsDataAttributesRequest llmObsDeleteExperimentsDataAttributesRequest = + (LLMObsDeleteExperimentsDataAttributesRequest) o; + return Objects.equals( + this.experimentIds, llmObsDeleteExperimentsDataAttributesRequest.experimentIds) + && Objects.equals( + this.additionalProperties, + llmObsDeleteExperimentsDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(experimentIds, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteExperimentsDataAttributesRequest {\n"); + sb.append(" experimentIds: ").append(toIndentedString(experimentIds)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataRequest.java new file mode 100644 index 00000000000..b02c62dce69 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for deleting LLM Observability experiments. */ +@JsonPropertyOrder({ + LLMObsDeleteExperimentsDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDeleteExperimentsDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteExperimentsDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDeleteExperimentsDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsExperimentType type; + + public LLMObsDeleteExperimentsDataRequest() {} + + @JsonCreator + public LLMObsDeleteExperimentsDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDeleteExperimentsDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsExperimentType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDeleteExperimentsDataRequest attributes( + LLMObsDeleteExperimentsDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for deleting LLM Observability experiments. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteExperimentsDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDeleteExperimentsDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDeleteExperimentsDataRequest type(LLMObsExperimentType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability experiment. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentType getType() { + return type; + } + + public void setType(LLMObsExperimentType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteExperimentsDataRequest + */ + @JsonAnySetter + public LLMObsDeleteExperimentsDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteExperimentsDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteExperimentsDataRequest llmObsDeleteExperimentsDataRequest = + (LLMObsDeleteExperimentsDataRequest) o; + return Objects.equals(this.attributes, llmObsDeleteExperimentsDataRequest.attributes) + && Objects.equals(this.type, llmObsDeleteExperimentsDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsDeleteExperimentsDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteExperimentsDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsRequest.java new file mode 100644 index 00000000000..84812e37e8e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteExperimentsRequest.java @@ -0,0 +1,148 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to delete one or more LLM Observability experiments. */ +@JsonPropertyOrder({LLMObsDeleteExperimentsRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteExperimentsRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDeleteExperimentsDataRequest data; + + public LLMObsDeleteExperimentsRequest() {} + + @JsonCreator + public LLMObsDeleteExperimentsRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsDeleteExperimentsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDeleteExperimentsRequest data(LLMObsDeleteExperimentsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for deleting LLM Observability experiments. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteExperimentsDataRequest getData() { + return data; + } + + public void setData(LLMObsDeleteExperimentsDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteExperimentsRequest + */ + @JsonAnySetter + public LLMObsDeleteExperimentsRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteExperimentsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteExperimentsRequest llmObsDeleteExperimentsRequest = + (LLMObsDeleteExperimentsRequest) o; + return Objects.equals(this.data, llmObsDeleteExperimentsRequest.data) + && Objects.equals( + this.additionalProperties, llmObsDeleteExperimentsRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteExperimentsRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataAttributesRequest.java new file mode 100644 index 00000000000..b1e329da061 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataAttributesRequest.java @@ -0,0 +1,153 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes for deleting LLM Observability projects. */ +@JsonPropertyOrder({LLMObsDeleteProjectsDataAttributesRequest.JSON_PROPERTY_PROJECT_IDS}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteProjectsDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_PROJECT_IDS = "project_ids"; + private List projectIds = new ArrayList<>(); + + public LLMObsDeleteProjectsDataAttributesRequest() {} + + @JsonCreator + public LLMObsDeleteProjectsDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_IDS) List projectIds) { + this.projectIds = projectIds; + } + + public LLMObsDeleteProjectsDataAttributesRequest projectIds(List projectIds) { + this.projectIds = projectIds; + return this; + } + + public LLMObsDeleteProjectsDataAttributesRequest addProjectIdsItem(String projectIdsItem) { + this.projectIds.add(projectIdsItem); + return this; + } + + /** + * List of project IDs to delete. + * + * @return projectIds + */ + @JsonProperty(JSON_PROPERTY_PROJECT_IDS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getProjectIds() { + return projectIds; + } + + public void setProjectIds(List projectIds) { + this.projectIds = projectIds; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteProjectsDataAttributesRequest + */ + @JsonAnySetter + public LLMObsDeleteProjectsDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteProjectsDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteProjectsDataAttributesRequest llmObsDeleteProjectsDataAttributesRequest = + (LLMObsDeleteProjectsDataAttributesRequest) o; + return Objects.equals(this.projectIds, llmObsDeleteProjectsDataAttributesRequest.projectIds) + && Objects.equals( + this.additionalProperties, + llmObsDeleteProjectsDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(projectIds, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteProjectsDataAttributesRequest {\n"); + sb.append(" projectIds: ").append(toIndentedString(projectIds)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataRequest.java new file mode 100644 index 00000000000..ed311d513a0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for deleting LLM Observability projects. */ +@JsonPropertyOrder({ + LLMObsDeleteProjectsDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsDeleteProjectsDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteProjectsDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsDeleteProjectsDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsProjectType type; + + public LLMObsDeleteProjectsDataRequest() {} + + @JsonCreator + public LLMObsDeleteProjectsDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsDeleteProjectsDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsProjectType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsDeleteProjectsDataRequest attributes( + LLMObsDeleteProjectsDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for deleting LLM Observability projects. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteProjectsDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsDeleteProjectsDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsDeleteProjectsDataRequest type(LLMObsProjectType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability project. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectType getType() { + return type; + } + + public void setType(LLMObsProjectType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteProjectsDataRequest + */ + @JsonAnySetter + public LLMObsDeleteProjectsDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteProjectsDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteProjectsDataRequest llmObsDeleteProjectsDataRequest = + (LLMObsDeleteProjectsDataRequest) o; + return Objects.equals(this.attributes, llmObsDeleteProjectsDataRequest.attributes) + && Objects.equals(this.type, llmObsDeleteProjectsDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsDeleteProjectsDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteProjectsDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsRequest.java new file mode 100644 index 00000000000..10d105f5e60 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsDeleteProjectsRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to delete one or more LLM Observability projects. */ +@JsonPropertyOrder({LLMObsDeleteProjectsRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsDeleteProjectsRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsDeleteProjectsDataRequest data; + + public LLMObsDeleteProjectsRequest() {} + + @JsonCreator + public LLMObsDeleteProjectsRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsDeleteProjectsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsDeleteProjectsRequest data(LLMObsDeleteProjectsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for deleting LLM Observability projects. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsDeleteProjectsDataRequest getData() { + return data; + } + + public void setData(LLMObsDeleteProjectsDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsDeleteProjectsRequest + */ + @JsonAnySetter + public LLMObsDeleteProjectsRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsDeleteProjectsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsDeleteProjectsRequest llmObsDeleteProjectsRequest = (LLMObsDeleteProjectsRequest) o; + return Objects.equals(this.data, llmObsDeleteProjectsRequest.data) + && Objects.equals( + this.additionalProperties, llmObsDeleteProjectsRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsDeleteProjectsRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsEventType.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsEventType.java new file mode 100644 index 00000000000..7cb03e65d7d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsEventType.java @@ -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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Resource type for LLM Observability experiment events. */ +@JsonSerialize(using = LLMObsEventType.LLMObsEventTypeSerializer.class) +public class LLMObsEventType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("events")); + + public static final LLMObsEventType EVENTS = new LLMObsEventType("events"); + + LLMObsEventType(String value) { + super(value, allowedValues); + } + + public static class LLMObsEventTypeSerializer extends StdSerializer { + public LLMObsEventTypeSerializer(Class t) { + super(t); + } + + public LLMObsEventTypeSerializer() { + this(null); + } + + @Override + public void serialize(LLMObsEventType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LLMObsEventType fromValue(String value) { + return new LLMObsEventType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesRequest.java new file mode 100644 index 00000000000..67b70d3c9dc --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesRequest.java @@ -0,0 +1,363 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for creating an LLM Observability experiment. */ +@JsonPropertyOrder({ + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_CONFIG, + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_DATASET_ID, + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_DATASET_VERSION, + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_DESCRIPTION, + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_ENSURE_UNIQUE, + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_METADATA, + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_NAME, + LLMObsExperimentDataAttributesRequest.JSON_PROPERTY_PROJECT_ID +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CONFIG = "config"; + private Map config = null; + + public static final String JSON_PROPERTY_DATASET_ID = "dataset_id"; + private String datasetId; + + public static final String JSON_PROPERTY_DATASET_VERSION = "dataset_version"; + private Long datasetVersion; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_ENSURE_UNIQUE = "ensure_unique"; + private Boolean ensureUnique; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = null; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_PROJECT_ID = "project_id"; + private String projectId; + + public LLMObsExperimentDataAttributesRequest() {} + + @JsonCreator + public LLMObsExperimentDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATASET_ID) String datasetId, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_ID) String projectId) { + this.datasetId = datasetId; + this.name = name; + this.projectId = projectId; + } + + public LLMObsExperimentDataAttributesRequest config(Map config) { + this.config = config; + return this; + } + + public LLMObsExperimentDataAttributesRequest putConfigItem(String key, Object configItem) { + if (this.config == null) { + this.config = new HashMap<>(); + } + this.config.put(key, configItem); + return this; + } + + /** + * Configuration parameters for the experiment. + * + * @return config + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CONFIG) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getConfig() { + return config; + } + + public void setConfig(Map config) { + this.config = config; + } + + public LLMObsExperimentDataAttributesRequest datasetId(String datasetId) { + this.datasetId = datasetId; + return this; + } + + /** + * Identifier of the dataset used in this experiment. + * + * @return datasetId + */ + @JsonProperty(JSON_PROPERTY_DATASET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDatasetId() { + return datasetId; + } + + public void setDatasetId(String datasetId) { + this.datasetId = datasetId; + } + + public LLMObsExperimentDataAttributesRequest datasetVersion(Long datasetVersion) { + this.datasetVersion = datasetVersion; + return this; + } + + /** + * Version of the dataset to use. Defaults to the current version if not specified. + * + * @return datasetVersion + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DATASET_VERSION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Long getDatasetVersion() { + return datasetVersion; + } + + public void setDatasetVersion(Long datasetVersion) { + this.datasetVersion = datasetVersion; + } + + public LLMObsExperimentDataAttributesRequest description(String description) { + this.description = description; + return this; + } + + /** + * Description of the experiment. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsExperimentDataAttributesRequest ensureUnique(Boolean ensureUnique) { + this.ensureUnique = ensureUnique; + return this; + } + + /** + * Whether to ensure the experiment name is unique. Defaults to true. + * + * @return ensureUnique + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ENSURE_UNIQUE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getEnsureUnique() { + return ensureUnique; + } + + public void setEnsureUnique(Boolean ensureUnique) { + this.ensureUnique = ensureUnique; + } + + public LLMObsExperimentDataAttributesRequest metadata(Map metadata) { + this.metadata = metadata; + return this; + } + + public LLMObsExperimentDataAttributesRequest putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Arbitrary metadata associated with the experiment. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + public LLMObsExperimentDataAttributesRequest name(String name) { + this.name = name; + return this; + } + + /** + * Name of the experiment. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LLMObsExperimentDataAttributesRequest projectId(String projectId) { + this.projectId = projectId; + return this; + } + + /** + * Identifier of the project this experiment belongs to. + * + * @return projectId + */ + @JsonProperty(JSON_PROPERTY_PROJECT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentDataAttributesRequest + */ + @JsonAnySetter + public LLMObsExperimentDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentDataAttributesRequest llmObsExperimentDataAttributesRequest = + (LLMObsExperimentDataAttributesRequest) o; + return Objects.equals(this.config, llmObsExperimentDataAttributesRequest.config) + && Objects.equals(this.datasetId, llmObsExperimentDataAttributesRequest.datasetId) + && Objects.equals(this.datasetVersion, llmObsExperimentDataAttributesRequest.datasetVersion) + && Objects.equals(this.description, llmObsExperimentDataAttributesRequest.description) + && Objects.equals(this.ensureUnique, llmObsExperimentDataAttributesRequest.ensureUnique) + && Objects.equals(this.metadata, llmObsExperimentDataAttributesRequest.metadata) + && Objects.equals(this.name, llmObsExperimentDataAttributesRequest.name) + && Objects.equals(this.projectId, llmObsExperimentDataAttributesRequest.projectId) + && Objects.equals( + this.additionalProperties, llmObsExperimentDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + config, + datasetId, + datasetVersion, + description, + ensureUnique, + metadata, + name, + projectId, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentDataAttributesRequest {\n"); + sb.append(" config: ").append(toIndentedString(config)).append("\n"); + sb.append(" datasetId: ").append(toIndentedString(datasetId)).append("\n"); + sb.append(" datasetVersion: ").append(toIndentedString(datasetVersion)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" ensureUnique: ").append(toIndentedString(ensureUnique)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesResponse.java new file mode 100644 index 00000000000..f9fc15a2e44 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataAttributesResponse.java @@ -0,0 +1,372 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes of an LLM Observability experiment. */ +@JsonPropertyOrder({ + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_CONFIG, + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_CREATED_AT, + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_DATASET_ID, + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_DESCRIPTION, + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_METADATA, + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_NAME, + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_PROJECT_ID, + LLMObsExperimentDataAttributesResponse.JSON_PROPERTY_UPDATED_AT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentDataAttributesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CONFIG = "config"; + private Map config = new HashMap(); + + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_DATASET_ID = "dataset_id"; + private String datasetId; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = new HashMap(); + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_PROJECT_ID = "project_id"; + private String projectId; + + public static final String JSON_PROPERTY_UPDATED_AT = "updated_at"; + private OffsetDateTime updatedAt; + + public LLMObsExperimentDataAttributesResponse() {} + + @JsonCreator + public LLMObsExperimentDataAttributesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_CONFIG) Map config, + @JsonProperty(required = true, value = JSON_PROPERTY_CREATED_AT) OffsetDateTime createdAt, + @JsonProperty(required = true, value = JSON_PROPERTY_DATASET_ID) String datasetId, + @JsonProperty(required = true, value = JSON_PROPERTY_DESCRIPTION) String description, + @JsonProperty(required = true, value = JSON_PROPERTY_METADATA) Map metadata, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_ID) String projectId, + @JsonProperty(required = true, value = JSON_PROPERTY_UPDATED_AT) OffsetDateTime updatedAt) { + this.config = config; + if (config != null) {} + this.createdAt = createdAt; + this.datasetId = datasetId; + this.description = description; + if (description != null) {} + this.metadata = metadata; + if (metadata != null) {} + this.name = name; + this.projectId = projectId; + this.updatedAt = updatedAt; + } + + public LLMObsExperimentDataAttributesResponse config(Map config) { + this.config = config; + if (config != null) {} + return this; + } + + public LLMObsExperimentDataAttributesResponse putConfigItem(String key, Object configItem) { + this.config.put(key, configItem); + return this; + } + + /** + * Configuration parameters for the experiment. + * + * @return config + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CONFIG) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map getConfig() { + return config; + } + + public void setConfig(Map config) { + this.config = config; + } + + public LLMObsExperimentDataAttributesResponse createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Timestamp when the experiment was created. + * + * @return createdAt + */ + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + public LLMObsExperimentDataAttributesResponse datasetId(String datasetId) { + this.datasetId = datasetId; + return this; + } + + /** + * Identifier of the dataset used in this experiment. + * + * @return datasetId + */ + @JsonProperty(JSON_PROPERTY_DATASET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDatasetId() { + return datasetId; + } + + public void setDatasetId(String datasetId) { + this.datasetId = datasetId; + } + + public LLMObsExperimentDataAttributesResponse description(String description) { + this.description = description; + if (description != null) {} + return this; + } + + /** + * Description of the experiment. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsExperimentDataAttributesResponse metadata(Map metadata) { + this.metadata = metadata; + if (metadata != null) {} + return this; + } + + public LLMObsExperimentDataAttributesResponse putMetadataItem(String key, Object metadataItem) { + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Arbitrary metadata associated with the experiment. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + public LLMObsExperimentDataAttributesResponse name(String name) { + this.name = name; + return this; + } + + /** + * Name of the experiment. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LLMObsExperimentDataAttributesResponse projectId(String projectId) { + this.projectId = projectId; + return this; + } + + /** + * Identifier of the project this experiment belongs to. + * + * @return projectId + */ + @JsonProperty(JSON_PROPERTY_PROJECT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public LLMObsExperimentDataAttributesResponse updatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Timestamp when the experiment was last updated. + * + * @return updatedAt + */ + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentDataAttributesResponse + */ + @JsonAnySetter + public LLMObsExperimentDataAttributesResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentDataAttributesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentDataAttributesResponse llmObsExperimentDataAttributesResponse = + (LLMObsExperimentDataAttributesResponse) o; + return Objects.equals(this.config, llmObsExperimentDataAttributesResponse.config) + && Objects.equals(this.createdAt, llmObsExperimentDataAttributesResponse.createdAt) + && Objects.equals(this.datasetId, llmObsExperimentDataAttributesResponse.datasetId) + && Objects.equals(this.description, llmObsExperimentDataAttributesResponse.description) + && Objects.equals(this.metadata, llmObsExperimentDataAttributesResponse.metadata) + && Objects.equals(this.name, llmObsExperimentDataAttributesResponse.name) + && Objects.equals(this.projectId, llmObsExperimentDataAttributesResponse.projectId) + && Objects.equals(this.updatedAt, llmObsExperimentDataAttributesResponse.updatedAt) + && Objects.equals( + this.additionalProperties, llmObsExperimentDataAttributesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + config, + createdAt, + datasetId, + description, + metadata, + name, + projectId, + updatedAt, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentDataAttributesResponse {\n"); + sb.append(" config: ").append(toIndentedString(config)).append("\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" datasetId: ").append(toIndentedString(datasetId)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataRequest.java new file mode 100644 index 00000000000..65821f7fd0d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataRequest.java @@ -0,0 +1,182 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for creating an LLM Observability experiment. */ +@JsonPropertyOrder({ + LLMObsExperimentDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsExperimentDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsExperimentDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsExperimentType type; + + public LLMObsExperimentDataRequest() {} + + @JsonCreator + public LLMObsExperimentDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsExperimentDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsExperimentType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsExperimentDataRequest attributes(LLMObsExperimentDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for creating an LLM Observability experiment. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsExperimentDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsExperimentDataRequest type(LLMObsExperimentType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability experiment. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentType getType() { + return type; + } + + public void setType(LLMObsExperimentType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentDataRequest + */ + @JsonAnySetter + public LLMObsExperimentDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentDataRequest llmObsExperimentDataRequest = (LLMObsExperimentDataRequest) o; + return Objects.equals(this.attributes, llmObsExperimentDataRequest.attributes) + && Objects.equals(this.type, llmObsExperimentDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsExperimentDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataResponse.java new file mode 100644 index 00000000000..a6137c668ee --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentDataResponse.java @@ -0,0 +1,211 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for an LLM Observability experiment. */ +@JsonPropertyOrder({ + LLMObsExperimentDataResponse.JSON_PROPERTY_ATTRIBUTES, + LLMObsExperimentDataResponse.JSON_PROPERTY_ID, + LLMObsExperimentDataResponse.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentDataResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsExperimentDataAttributesResponse attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsExperimentType type; + + public LLMObsExperimentDataResponse() {} + + @JsonCreator + public LLMObsExperimentDataResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsExperimentDataAttributesResponse attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsExperimentType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsExperimentDataResponse attributes( + LLMObsExperimentDataAttributesResponse attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of an LLM Observability experiment. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentDataAttributesResponse getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsExperimentDataAttributesResponse attributes) { + this.attributes = attributes; + } + + public LLMObsExperimentDataResponse id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the experiment. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public LLMObsExperimentDataResponse type(LLMObsExperimentType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability experiment. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentType getType() { + return type; + } + + public void setType(LLMObsExperimentType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentDataResponse + */ + @JsonAnySetter + public LLMObsExperimentDataResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentDataResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentDataResponse llmObsExperimentDataResponse = (LLMObsExperimentDataResponse) o; + return Objects.equals(this.attributes, llmObsExperimentDataResponse.attributes) + && Objects.equals(this.id, llmObsExperimentDataResponse.id) + && Objects.equals(this.type, llmObsExperimentDataResponse.type) + && Objects.equals( + this.additionalProperties, llmObsExperimentDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentDataResponse {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataAttributesRequest.java new file mode 100644 index 00000000000..5ea670c768d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataAttributesRequest.java @@ -0,0 +1,195 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Attributes for pushing experiment events including spans and metrics. */ +@JsonPropertyOrder({ + LLMObsExperimentEventsDataAttributesRequest.JSON_PROPERTY_METRICS, + LLMObsExperimentEventsDataAttributesRequest.JSON_PROPERTY_SPANS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentEventsDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_METRICS = "metrics"; + private List metrics = null; + + public static final String JSON_PROPERTY_SPANS = "spans"; + private List spans = null; + + public LLMObsExperimentEventsDataAttributesRequest metrics(List metrics) { + this.metrics = metrics; + for (LLMObsExperimentMetric item : metrics) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsExperimentEventsDataAttributesRequest addMetricsItem( + LLMObsExperimentMetric metricsItem) { + if (this.metrics == null) { + this.metrics = new ArrayList<>(); + } + this.metrics.add(metricsItem); + this.unparsed |= metricsItem.unparsed; + return this; + } + + /** + * List of metrics to push for the experiment. + * + * @return metrics + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METRICS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getMetrics() { + return metrics; + } + + public void setMetrics(List metrics) { + this.metrics = metrics; + } + + public LLMObsExperimentEventsDataAttributesRequest spans(List spans) { + this.spans = spans; + for (LLMObsExperimentSpan item : spans) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsExperimentEventsDataAttributesRequest addSpansItem(LLMObsExperimentSpan spansItem) { + if (this.spans == null) { + this.spans = new ArrayList<>(); + } + this.spans.add(spansItem); + this.unparsed |= spansItem.unparsed; + return this; + } + + /** + * List of spans to push for the experiment. + * + * @return spans + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SPANS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getSpans() { + return spans; + } + + public void setSpans(List spans) { + this.spans = spans; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentEventsDataAttributesRequest + */ + @JsonAnySetter + public LLMObsExperimentEventsDataAttributesRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentEventsDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentEventsDataAttributesRequest llmObsExperimentEventsDataAttributesRequest = + (LLMObsExperimentEventsDataAttributesRequest) o; + return Objects.equals(this.metrics, llmObsExperimentEventsDataAttributesRequest.metrics) + && Objects.equals(this.spans, llmObsExperimentEventsDataAttributesRequest.spans) + && Objects.equals( + this.additionalProperties, + llmObsExperimentEventsDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(metrics, spans, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentEventsDataAttributesRequest {\n"); + sb.append(" metrics: ").append(toIndentedString(metrics)).append("\n"); + sb.append(" spans: ").append(toIndentedString(spans)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataRequest.java new file mode 100644 index 00000000000..f69eb464c14 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for pushing experiment events. */ +@JsonPropertyOrder({ + LLMObsExperimentEventsDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsExperimentEventsDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentEventsDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsExperimentEventsDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsEventType type; + + public LLMObsExperimentEventsDataRequest() {} + + @JsonCreator + public LLMObsExperimentEventsDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsExperimentEventsDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsEventType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsExperimentEventsDataRequest attributes( + LLMObsExperimentEventsDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for pushing experiment events including spans and metrics. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentEventsDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsExperimentEventsDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsExperimentEventsDataRequest type(LLMObsEventType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type for LLM Observability experiment events. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsEventType getType() { + return type; + } + + public void setType(LLMObsEventType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentEventsDataRequest + */ + @JsonAnySetter + public LLMObsExperimentEventsDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentEventsDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentEventsDataRequest llmObsExperimentEventsDataRequest = + (LLMObsExperimentEventsDataRequest) o; + return Objects.equals(this.attributes, llmObsExperimentEventsDataRequest.attributes) + && Objects.equals(this.type, llmObsExperimentEventsDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsExperimentEventsDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentEventsDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsRequest.java new file mode 100644 index 00000000000..938d8687084 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentEventsRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to push spans and metrics for an LLM Observability experiment. */ +@JsonPropertyOrder({LLMObsExperimentEventsRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentEventsRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsExperimentEventsDataRequest data; + + public LLMObsExperimentEventsRequest() {} + + @JsonCreator + public LLMObsExperimentEventsRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsExperimentEventsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsExperimentEventsRequest data(LLMObsExperimentEventsDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for pushing experiment events. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentEventsDataRequest getData() { + return data; + } + + public void setData(LLMObsExperimentEventsDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentEventsRequest + */ + @JsonAnySetter + public LLMObsExperimentEventsRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentEventsRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentEventsRequest llmObsExperimentEventsRequest = (LLMObsExperimentEventsRequest) o; + return Objects.equals(this.data, llmObsExperimentEventsRequest.data) + && Objects.equals( + this.additionalProperties, llmObsExperimentEventsRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentEventsRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetric.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetric.java new file mode 100644 index 00000000000..cc229e4d983 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetric.java @@ -0,0 +1,523 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** A metric associated with an LLM Observability experiment span. */ +@JsonPropertyOrder({ + LLMObsExperimentMetric.JSON_PROPERTY_ASSESSMENT, + LLMObsExperimentMetric.JSON_PROPERTY_BOOLEAN_VALUE, + LLMObsExperimentMetric.JSON_PROPERTY_CATEGORICAL_VALUE, + LLMObsExperimentMetric.JSON_PROPERTY_ERROR, + LLMObsExperimentMetric.JSON_PROPERTY_JSON_VALUE, + LLMObsExperimentMetric.JSON_PROPERTY_LABEL, + LLMObsExperimentMetric.JSON_PROPERTY_METADATA, + LLMObsExperimentMetric.JSON_PROPERTY_METRIC_TYPE, + LLMObsExperimentMetric.JSON_PROPERTY_REASONING, + LLMObsExperimentMetric.JSON_PROPERTY_SCORE_VALUE, + LLMObsExperimentMetric.JSON_PROPERTY_SPAN_ID, + LLMObsExperimentMetric.JSON_PROPERTY_TAGS, + LLMObsExperimentMetric.JSON_PROPERTY_TIMESTAMP_MS +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentMetric { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ASSESSMENT = "assessment"; + private LLMObsMetricAssessment assessment; + + public static final String JSON_PROPERTY_BOOLEAN_VALUE = "boolean_value"; + private Boolean booleanValue; + + public static final String JSON_PROPERTY_CATEGORICAL_VALUE = "categorical_value"; + private String categoricalValue; + + public static final String JSON_PROPERTY_ERROR = "error"; + private LLMObsExperimentMetricError error; + + public static final String JSON_PROPERTY_JSON_VALUE = "json_value"; + private Map jsonValue = null; + + public static final String JSON_PROPERTY_LABEL = "label"; + private String label; + + public static final String JSON_PROPERTY_METADATA = "metadata"; + private Map metadata = null; + + public static final String JSON_PROPERTY_METRIC_TYPE = "metric_type"; + private LLMObsMetricScoreType metricType; + + public static final String JSON_PROPERTY_REASONING = "reasoning"; + private String reasoning; + + public static final String JSON_PROPERTY_SCORE_VALUE = "score_value"; + private Double scoreValue; + + public static final String JSON_PROPERTY_SPAN_ID = "span_id"; + private String spanId; + + public static final String JSON_PROPERTY_TAGS = "tags"; + private List tags = null; + + public static final String JSON_PROPERTY_TIMESTAMP_MS = "timestamp_ms"; + private Long timestampMs; + + public LLMObsExperimentMetric() {} + + @JsonCreator + public LLMObsExperimentMetric( + @JsonProperty(required = true, value = JSON_PROPERTY_LABEL) String label, + @JsonProperty(required = true, value = JSON_PROPERTY_METRIC_TYPE) + LLMObsMetricScoreType metricType, + @JsonProperty(required = true, value = JSON_PROPERTY_SPAN_ID) String spanId, + @JsonProperty(required = true, value = JSON_PROPERTY_TIMESTAMP_MS) Long timestampMs) { + this.label = label; + this.metricType = metricType; + this.unparsed |= !metricType.isValid(); + this.spanId = spanId; + this.timestampMs = timestampMs; + } + + public LLMObsExperimentMetric assessment(LLMObsMetricAssessment assessment) { + this.assessment = assessment; + this.unparsed |= !assessment.isValid(); + return this; + } + + /** + * Assessment result for an LLM Observability experiment metric. + * + * @return assessment + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ASSESSMENT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsMetricAssessment getAssessment() { + return assessment; + } + + public void setAssessment(LLMObsMetricAssessment assessment) { + if (!assessment.isValid()) { + this.unparsed = true; + } + this.assessment = assessment; + } + + public LLMObsExperimentMetric booleanValue(Boolean booleanValue) { + this.booleanValue = booleanValue; + return this; + } + + /** + * Boolean value. Used when metric_type is boolean. + * + * @return booleanValue + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_BOOLEAN_VALUE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Boolean getBooleanValue() { + return booleanValue; + } + + public void setBooleanValue(Boolean booleanValue) { + this.booleanValue = booleanValue; + } + + public LLMObsExperimentMetric categoricalValue(String categoricalValue) { + this.categoricalValue = categoricalValue; + return this; + } + + /** + * Categorical value. Used when metric_type is categorical. + * + * @return categoricalValue + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_CATEGORICAL_VALUE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getCategoricalValue() { + return categoricalValue; + } + + public void setCategoricalValue(String categoricalValue) { + this.categoricalValue = categoricalValue; + } + + public LLMObsExperimentMetric error(LLMObsExperimentMetricError error) { + this.error = error; + this.unparsed |= error.unparsed; + return this; + } + + /** + * Error details for an experiment metric evaluation. + * + * @return error + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ERROR) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsExperimentMetricError getError() { + return error; + } + + public void setError(LLMObsExperimentMetricError error) { + this.error = error; + } + + public LLMObsExperimentMetric jsonValue(Map jsonValue) { + this.jsonValue = jsonValue; + return this; + } + + public LLMObsExperimentMetric putJsonValueItem(String key, Object jsonValueItem) { + if (this.jsonValue == null) { + this.jsonValue = new HashMap<>(); + } + this.jsonValue.put(key, jsonValueItem); + return this; + } + + /** + * JSON value. Used when metric_type is json. + * + * @return jsonValue + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_JSON_VALUE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getJsonValue() { + return jsonValue; + } + + public void setJsonValue(Map jsonValue) { + this.jsonValue = jsonValue; + } + + public LLMObsExperimentMetric label(String label) { + this.label = label; + return this; + } + + /** + * Label or name for the metric. + * + * @return label + */ + @JsonProperty(JSON_PROPERTY_LABEL) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public LLMObsExperimentMetric metadata(Map metadata) { + this.metadata = metadata; + return this; + } + + public LLMObsExperimentMetric putMetadataItem(String key, Object metadataItem) { + if (this.metadata == null) { + this.metadata = new HashMap<>(); + } + this.metadata.put(key, metadataItem); + return this; + } + + /** + * Arbitrary metadata associated with the metric. + * + * @return metadata + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_METADATA) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getMetadata() { + return metadata; + } + + public void setMetadata(Map metadata) { + this.metadata = metadata; + } + + public LLMObsExperimentMetric metricType(LLMObsMetricScoreType metricType) { + this.metricType = metricType; + this.unparsed |= !metricType.isValid(); + return this; + } + + /** + * Type of metric recorded for an LLM Observability experiment. + * + * @return metricType + */ + @JsonProperty(JSON_PROPERTY_METRIC_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsMetricScoreType getMetricType() { + return metricType; + } + + public void setMetricType(LLMObsMetricScoreType metricType) { + if (!metricType.isValid()) { + this.unparsed = true; + } + this.metricType = metricType; + } + + public LLMObsExperimentMetric reasoning(String reasoning) { + this.reasoning = reasoning; + return this; + } + + /** + * Human-readable reasoning for the metric value. + * + * @return reasoning + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_REASONING) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getReasoning() { + return reasoning; + } + + public void setReasoning(String reasoning) { + this.reasoning = reasoning; + } + + public LLMObsExperimentMetric scoreValue(Double scoreValue) { + this.scoreValue = scoreValue; + return this; + } + + /** + * Numeric score value. Used when metric_type is score. + * + * @return scoreValue + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_SCORE_VALUE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Double getScoreValue() { + return scoreValue; + } + + public void setScoreValue(Double scoreValue) { + this.scoreValue = scoreValue; + } + + public LLMObsExperimentMetric spanId(String spanId) { + this.spanId = spanId; + return this; + } + + /** + * Identifier of the span this metric is associated with. + * + * @return spanId + */ + @JsonProperty(JSON_PROPERTY_SPAN_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSpanId() { + return spanId; + } + + public void setSpanId(String spanId) { + this.spanId = spanId; + } + + public LLMObsExperimentMetric tags(List tags) { + this.tags = tags; + return this; + } + + public LLMObsExperimentMetric addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * List of tags associated with the metric. + * + * @return tags + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TAGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public LLMObsExperimentMetric timestampMs(Long timestampMs) { + this.timestampMs = timestampMs; + return this; + } + + /** + * Timestamp when the metric was recorded, in milliseconds since Unix epoch. + * + * @return timestampMs + */ + @JsonProperty(JSON_PROPERTY_TIMESTAMP_MS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getTimestampMs() { + return timestampMs; + } + + public void setTimestampMs(Long timestampMs) { + this.timestampMs = timestampMs; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentMetric + */ + @JsonAnySetter + public LLMObsExperimentMetric putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentMetric object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentMetric llmObsExperimentMetric = (LLMObsExperimentMetric) o; + return Objects.equals(this.assessment, llmObsExperimentMetric.assessment) + && Objects.equals(this.booleanValue, llmObsExperimentMetric.booleanValue) + && Objects.equals(this.categoricalValue, llmObsExperimentMetric.categoricalValue) + && Objects.equals(this.error, llmObsExperimentMetric.error) + && Objects.equals(this.jsonValue, llmObsExperimentMetric.jsonValue) + && Objects.equals(this.label, llmObsExperimentMetric.label) + && Objects.equals(this.metadata, llmObsExperimentMetric.metadata) + && Objects.equals(this.metricType, llmObsExperimentMetric.metricType) + && Objects.equals(this.reasoning, llmObsExperimentMetric.reasoning) + && Objects.equals(this.scoreValue, llmObsExperimentMetric.scoreValue) + && Objects.equals(this.spanId, llmObsExperimentMetric.spanId) + && Objects.equals(this.tags, llmObsExperimentMetric.tags) + && Objects.equals(this.timestampMs, llmObsExperimentMetric.timestampMs) + && Objects.equals(this.additionalProperties, llmObsExperimentMetric.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + assessment, + booleanValue, + categoricalValue, + error, + jsonValue, + label, + metadata, + metricType, + reasoning, + scoreValue, + spanId, + tags, + timestampMs, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentMetric {\n"); + sb.append(" assessment: ").append(toIndentedString(assessment)).append("\n"); + sb.append(" booleanValue: ").append(toIndentedString(booleanValue)).append("\n"); + sb.append(" categoricalValue: ").append(toIndentedString(categoricalValue)).append("\n"); + sb.append(" error: ").append(toIndentedString(error)).append("\n"); + sb.append(" jsonValue: ").append(toIndentedString(jsonValue)).append("\n"); + sb.append(" label: ").append(toIndentedString(label)).append("\n"); + sb.append(" metadata: ").append(toIndentedString(metadata)).append("\n"); + sb.append(" metricType: ").append(toIndentedString(metricType)).append("\n"); + sb.append(" reasoning: ").append(toIndentedString(reasoning)).append("\n"); + sb.append(" scoreValue: ").append(toIndentedString(scoreValue)).append("\n"); + sb.append(" spanId: ").append(toIndentedString(spanId)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" timestampMs: ").append(toIndentedString(timestampMs)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetricError.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetricError.java new file mode 100644 index 00000000000..9aaa9089db5 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentMetricError.java @@ -0,0 +1,136 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Error details for an experiment metric evaluation. */ +@JsonPropertyOrder({LLMObsExperimentMetricError.JSON_PROPERTY_MESSAGE}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentMetricError { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MESSAGE = "message"; + private String message; + + public LLMObsExperimentMetricError message(String message) { + this.message = message; + return this; + } + + /** + * Error message associated with the metric evaluation. + * + * @return message + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentMetricError + */ + @JsonAnySetter + public LLMObsExperimentMetricError putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentMetricError object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentMetricError llmObsExperimentMetricError = (LLMObsExperimentMetricError) o; + return Objects.equals(this.message, llmObsExperimentMetricError.message) + && Objects.equals( + this.additionalProperties, llmObsExperimentMetricError.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(message, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentMetricError {\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentRequest.java new file mode 100644 index 00000000000..fdf0399e2c1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentRequest.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to create an LLM Observability experiment. */ +@JsonPropertyOrder({LLMObsExperimentRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsExperimentDataRequest data; + + public LLMObsExperimentRequest() {} + + @JsonCreator + public LLMObsExperimentRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) LLMObsExperimentDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsExperimentRequest data(LLMObsExperimentDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for creating an LLM Observability experiment. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentDataRequest getData() { + return data; + } + + public void setData(LLMObsExperimentDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentRequest + */ + @JsonAnySetter + public LLMObsExperimentRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentRequest llmObsExperimentRequest = (LLMObsExperimentRequest) o; + return Objects.equals(this.data, llmObsExperimentRequest.data) + && Objects.equals(this.additionalProperties, llmObsExperimentRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentResponse.java new file mode 100644 index 00000000000..b9ef311111d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentResponse.java @@ -0,0 +1,146 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Response containing a single LLM Observability experiment. */ +@JsonPropertyOrder({LLMObsExperimentResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsExperimentDataResponse data; + + public LLMObsExperimentResponse() {} + + @JsonCreator + public LLMObsExperimentResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsExperimentDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsExperimentResponse data(LLMObsExperimentDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for an LLM Observability experiment. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentDataResponse getData() { + return data; + } + + public void setData(LLMObsExperimentDataResponse data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentResponse + */ + @JsonAnySetter + public LLMObsExperimentResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentResponse llmObsExperimentResponse = (LLMObsExperimentResponse) o; + return Objects.equals(this.data, llmObsExperimentResponse.data) + && Objects.equals(this.additionalProperties, llmObsExperimentResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpan.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpan.java new file mode 100644 index 00000000000..2b9174c52e7 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpan.java @@ -0,0 +1,417 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** A span associated with an LLM Observability experiment. */ +@JsonPropertyOrder({ + LLMObsExperimentSpan.JSON_PROPERTY_DATASET_ID, + LLMObsExperimentSpan.JSON_PROPERTY_DURATION, + LLMObsExperimentSpan.JSON_PROPERTY_META, + LLMObsExperimentSpan.JSON_PROPERTY_NAME, + LLMObsExperimentSpan.JSON_PROPERTY_PROJECT_ID, + LLMObsExperimentSpan.JSON_PROPERTY_SPAN_ID, + LLMObsExperimentSpan.JSON_PROPERTY_START_NS, + LLMObsExperimentSpan.JSON_PROPERTY_STATUS, + LLMObsExperimentSpan.JSON_PROPERTY_TAGS, + LLMObsExperimentSpan.JSON_PROPERTY_TRACE_ID +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentSpan { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATASET_ID = "dataset_id"; + private String datasetId; + + public static final String JSON_PROPERTY_DURATION = "duration"; + private Long duration; + + public static final String JSON_PROPERTY_META = "meta"; + private LLMObsExperimentSpanMeta meta; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_PROJECT_ID = "project_id"; + private String projectId; + + public static final String JSON_PROPERTY_SPAN_ID = "span_id"; + private String spanId; + + public static final String JSON_PROPERTY_START_NS = "start_ns"; + private Long startNs; + + public static final String JSON_PROPERTY_STATUS = "status"; + private String status; + + public static final String JSON_PROPERTY_TAGS = "tags"; + private List tags = null; + + public static final String JSON_PROPERTY_TRACE_ID = "trace_id"; + private String traceId; + + public LLMObsExperimentSpan() {} + + @JsonCreator + public LLMObsExperimentSpan( + @JsonProperty(required = true, value = JSON_PROPERTY_DATASET_ID) String datasetId, + @JsonProperty(required = true, value = JSON_PROPERTY_DURATION) Long duration, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_PROJECT_ID) String projectId, + @JsonProperty(required = true, value = JSON_PROPERTY_SPAN_ID) String spanId, + @JsonProperty(required = true, value = JSON_PROPERTY_START_NS) Long startNs, + @JsonProperty(required = true, value = JSON_PROPERTY_STATUS) String status, + @JsonProperty(required = true, value = JSON_PROPERTY_TRACE_ID) String traceId) { + this.datasetId = datasetId; + this.duration = duration; + this.name = name; + this.projectId = projectId; + this.spanId = spanId; + this.startNs = startNs; + this.status = status; + this.traceId = traceId; + } + + public LLMObsExperimentSpan datasetId(String datasetId) { + this.datasetId = datasetId; + return this; + } + + /** + * Dataset ID associated with this span. + * + * @return datasetId + */ + @JsonProperty(JSON_PROPERTY_DATASET_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDatasetId() { + return datasetId; + } + + public void setDatasetId(String datasetId) { + this.datasetId = datasetId; + } + + public LLMObsExperimentSpan duration(Long duration) { + this.duration = duration; + return this; + } + + /** + * Duration of the span in nanoseconds. + * + * @return duration + */ + @JsonProperty(JSON_PROPERTY_DURATION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getDuration() { + return duration; + } + + public void setDuration(Long duration) { + this.duration = duration; + } + + public LLMObsExperimentSpan meta(LLMObsExperimentSpanMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Metadata associated with an experiment span. + * + * @return meta + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsExperimentSpanMeta getMeta() { + return meta; + } + + public void setMeta(LLMObsExperimentSpanMeta meta) { + this.meta = meta; + } + + public LLMObsExperimentSpan name(String name) { + this.name = name; + return this; + } + + /** + * Name of the span. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LLMObsExperimentSpan projectId(String projectId) { + this.projectId = projectId; + return this; + } + + /** + * Project ID associated with this span. + * + * @return projectId + */ + @JsonProperty(JSON_PROPERTY_PROJECT_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getProjectId() { + return projectId; + } + + public void setProjectId(String projectId) { + this.projectId = projectId; + } + + public LLMObsExperimentSpan spanId(String spanId) { + this.spanId = spanId; + return this; + } + + /** + * Unique identifier of the span. + * + * @return spanId + */ + @JsonProperty(JSON_PROPERTY_SPAN_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getSpanId() { + return spanId; + } + + public void setSpanId(String spanId) { + this.spanId = spanId; + } + + public LLMObsExperimentSpan startNs(Long startNs) { + this.startNs = startNs; + return this; + } + + /** + * Start time of the span in nanoseconds since Unix epoch. + * + * @return startNs + */ + @JsonProperty(JSON_PROPERTY_START_NS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public Long getStartNs() { + return startNs; + } + + public void setStartNs(Long startNs) { + this.startNs = startNs; + } + + public LLMObsExperimentSpan status(String status) { + this.status = status; + return this; + } + + /** + * Status of the span. + * + * @return status + */ + @JsonProperty(JSON_PROPERTY_STATUS) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + + public LLMObsExperimentSpan tags(List tags) { + this.tags = tags; + return this; + } + + public LLMObsExperimentSpan addTagsItem(String tagsItem) { + if (this.tags == null) { + this.tags = new ArrayList<>(); + } + this.tags.add(tagsItem); + return this; + } + + /** + * List of tags associated with the span. + * + * @return tags + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TAGS) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public List getTags() { + return tags; + } + + public void setTags(List tags) { + this.tags = tags; + } + + public LLMObsExperimentSpan traceId(String traceId) { + this.traceId = traceId; + return this; + } + + /** + * Trace ID for the span. + * + * @return traceId + */ + @JsonProperty(JSON_PROPERTY_TRACE_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getTraceId() { + return traceId; + } + + public void setTraceId(String traceId) { + this.traceId = traceId; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentSpan + */ + @JsonAnySetter + public LLMObsExperimentSpan putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentSpan object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentSpan llmObsExperimentSpan = (LLMObsExperimentSpan) o; + return Objects.equals(this.datasetId, llmObsExperimentSpan.datasetId) + && Objects.equals(this.duration, llmObsExperimentSpan.duration) + && Objects.equals(this.meta, llmObsExperimentSpan.meta) + && Objects.equals(this.name, llmObsExperimentSpan.name) + && Objects.equals(this.projectId, llmObsExperimentSpan.projectId) + && Objects.equals(this.spanId, llmObsExperimentSpan.spanId) + && Objects.equals(this.startNs, llmObsExperimentSpan.startNs) + && Objects.equals(this.status, llmObsExperimentSpan.status) + && Objects.equals(this.tags, llmObsExperimentSpan.tags) + && Objects.equals(this.traceId, llmObsExperimentSpan.traceId) + && Objects.equals(this.additionalProperties, llmObsExperimentSpan.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash( + datasetId, + duration, + meta, + name, + projectId, + spanId, + startNs, + status, + tags, + traceId, + additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentSpan {\n"); + sb.append(" datasetId: ").append(toIndentedString(datasetId)).append("\n"); + sb.append(" duration: ").append(toIndentedString(duration)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" projectId: ").append(toIndentedString(projectId)).append("\n"); + sb.append(" spanId: ").append(toIndentedString(spanId)).append("\n"); + sb.append(" startNs: ").append(toIndentedString(startNs)).append("\n"); + sb.append(" status: ").append(toIndentedString(status)).append("\n"); + sb.append(" tags: ").append(toIndentedString(tags)).append("\n"); + sb.append(" traceId: ").append(toIndentedString(traceId)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanError.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanError.java new file mode 100644 index 00000000000..b8d88eb9ee3 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanError.java @@ -0,0 +1,192 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Error details for an experiment span. */ +@JsonPropertyOrder({ + LLMObsExperimentSpanError.JSON_PROPERTY_MESSAGE, + LLMObsExperimentSpanError.JSON_PROPERTY_STACK, + LLMObsExperimentSpanError.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentSpanError { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_MESSAGE = "message"; + private String message; + + public static final String JSON_PROPERTY_STACK = "stack"; + private String stack; + + public static final String JSON_PROPERTY_TYPE = "type"; + private String type; + + public LLMObsExperimentSpanError message(String message) { + this.message = message; + return this; + } + + /** + * Error message. + * + * @return message + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_MESSAGE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getMessage() { + return message; + } + + public void setMessage(String message) { + this.message = message; + } + + public LLMObsExperimentSpanError stack(String stack) { + this.stack = stack; + return this; + } + + /** + * Stack trace of the error. + * + * @return stack + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_STACK) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getStack() { + return stack; + } + + public void setStack(String stack) { + this.stack = stack; + } + + public LLMObsExperimentSpanError type(String type) { + this.type = type; + return this; + } + + /** + * Type or class of the error. + * + * @return type + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentSpanError + */ + @JsonAnySetter + public LLMObsExperimentSpanError putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentSpanError object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentSpanError llmObsExperimentSpanError = (LLMObsExperimentSpanError) o; + return Objects.equals(this.message, llmObsExperimentSpanError.message) + && Objects.equals(this.stack, llmObsExperimentSpanError.stack) + && Objects.equals(this.type, llmObsExperimentSpanError.type) + && Objects.equals( + this.additionalProperties, llmObsExperimentSpanError.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(message, stack, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentSpanError {\n"); + sb.append(" message: ").append(toIndentedString(message)).append("\n"); + sb.append(" stack: ").append(toIndentedString(stack)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanMeta.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanMeta.java new file mode 100644 index 00000000000..b7f4e1c9c1f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentSpanMeta.java @@ -0,0 +1,248 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; +import org.openapitools.jackson.nullable.JsonNullable; + +/** Metadata associated with an experiment span. */ +@JsonPropertyOrder({ + LLMObsExperimentSpanMeta.JSON_PROPERTY_ERROR, + LLMObsExperimentSpanMeta.JSON_PROPERTY_EXPECTED_OUTPUT, + LLMObsExperimentSpanMeta.JSON_PROPERTY_INPUT, + LLMObsExperimentSpanMeta.JSON_PROPERTY_OUTPUT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentSpanMeta { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ERROR = "error"; + private LLMObsExperimentSpanError error; + + public static final String JSON_PROPERTY_EXPECTED_OUTPUT = "expected_output"; + private Map expectedOutput = null; + + public static final String JSON_PROPERTY_INPUT = "input"; + private JsonNullable input = JsonNullable.undefined(); + + public static final String JSON_PROPERTY_OUTPUT = "output"; + private JsonNullable output = JsonNullable.undefined(); + + public LLMObsExperimentSpanMeta error(LLMObsExperimentSpanError error) { + this.error = error; + this.unparsed |= error.unparsed; + return this; + } + + /** + * Error details for an experiment span. + * + * @return error + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_ERROR) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsExperimentSpanError getError() { + return error; + } + + public void setError(LLMObsExperimentSpanError error) { + this.error = error; + } + + public LLMObsExperimentSpanMeta expectedOutput(Map expectedOutput) { + this.expectedOutput = expectedOutput; + return this; + } + + public LLMObsExperimentSpanMeta putExpectedOutputItem(String key, Object expectedOutputItem) { + if (this.expectedOutput == null) { + this.expectedOutput = new HashMap<>(); + } + this.expectedOutput.put(key, expectedOutputItem); + return this; + } + + /** + * Expected output for the span, used for evaluation. + * + * @return expectedOutput + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_EXPECTED_OUTPUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public Map getExpectedOutput() { + return expectedOutput; + } + + public void setExpectedOutput(Map expectedOutput) { + this.expectedOutput = expectedOutput; + } + + public LLMObsExperimentSpanMeta input(AnyValue input) { + this.input = JsonNullable.of(input); + return this; + } + + /** + * Represents any valid JSON value. + * + * @return input + */ + @jakarta.annotation.Nullable + @JsonIgnore + public AnyValue getInput() { + return input.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_INPUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getInput_JsonNullable() { + return input; + } + + @JsonProperty(JSON_PROPERTY_INPUT) + public void setInput_JsonNullable(JsonNullable input) { + this.input = input; + } + + public void setInput(AnyValue input) { + this.input = JsonNullable.of(input); + } + + public LLMObsExperimentSpanMeta output(AnyValue output) { + this.output = JsonNullable.of(output); + return this; + } + + /** + * Represents any valid JSON value. + * + * @return output + */ + @jakarta.annotation.Nullable + @JsonIgnore + public AnyValue getOutput() { + return output.orElse(null); + } + + @JsonProperty(JSON_PROPERTY_OUTPUT) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public JsonNullable getOutput_JsonNullable() { + return output; + } + + @JsonProperty(JSON_PROPERTY_OUTPUT) + public void setOutput_JsonNullable(JsonNullable output) { + this.output = output; + } + + public void setOutput(AnyValue output) { + this.output = JsonNullable.of(output); + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentSpanMeta + */ + @JsonAnySetter + public LLMObsExperimentSpanMeta putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentSpanMeta object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentSpanMeta llmObsExperimentSpanMeta = (LLMObsExperimentSpanMeta) o; + return Objects.equals(this.error, llmObsExperimentSpanMeta.error) + && Objects.equals(this.expectedOutput, llmObsExperimentSpanMeta.expectedOutput) + && Objects.equals(this.input, llmObsExperimentSpanMeta.input) + && Objects.equals(this.output, llmObsExperimentSpanMeta.output) + && Objects.equals(this.additionalProperties, llmObsExperimentSpanMeta.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(error, expectedOutput, input, output, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentSpanMeta {\n"); + sb.append(" error: ").append(toIndentedString(error)).append("\n"); + sb.append(" expectedOutput: ").append(toIndentedString(expectedOutput)).append("\n"); + sb.append(" input: ").append(toIndentedString(input)).append("\n"); + sb.append(" output: ").append(toIndentedString(output)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentType.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentType.java new file mode 100644 index 00000000000..a19182063aa --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentType.java @@ -0,0 +1,55 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Resource type of an LLM Observability experiment. */ +@JsonSerialize(using = LLMObsExperimentType.LLMObsExperimentTypeSerializer.class) +public class LLMObsExperimentType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("experiments")); + + public static final LLMObsExperimentType EXPERIMENTS = new LLMObsExperimentType("experiments"); + + LLMObsExperimentType(String value) { + super(value, allowedValues); + } + + public static class LLMObsExperimentTypeSerializer extends StdSerializer { + public LLMObsExperimentTypeSerializer(Class t) { + super(t); + } + + public LLMObsExperimentTypeSerializer() { + this(null); + } + + @Override + public void serialize( + LLMObsExperimentType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LLMObsExperimentType fromValue(String value) { + return new LLMObsExperimentType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataAttributesRequest.java new file mode 100644 index 00000000000..7d87f15d3cb --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataAttributesRequest.java @@ -0,0 +1,168 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for updating an LLM Observability experiment. */ +@JsonPropertyOrder({ + LLMObsExperimentUpdateDataAttributesRequest.JSON_PROPERTY_DESCRIPTION, + LLMObsExperimentUpdateDataAttributesRequest.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentUpdateDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public LLMObsExperimentUpdateDataAttributesRequest description(String description) { + this.description = description; + return this; + } + + /** + * Updated description of the experiment. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsExperimentUpdateDataAttributesRequest name(String name) { + this.name = name; + return this; + } + + /** + * Updated name of the experiment. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentUpdateDataAttributesRequest + */ + @JsonAnySetter + public LLMObsExperimentUpdateDataAttributesRequest putAdditionalProperty( + String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentUpdateDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentUpdateDataAttributesRequest llmObsExperimentUpdateDataAttributesRequest = + (LLMObsExperimentUpdateDataAttributesRequest) o; + return Objects.equals(this.description, llmObsExperimentUpdateDataAttributesRequest.description) + && Objects.equals(this.name, llmObsExperimentUpdateDataAttributesRequest.name) + && Objects.equals( + this.additionalProperties, + llmObsExperimentUpdateDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentUpdateDataAttributesRequest {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataRequest.java new file mode 100644 index 00000000000..d83a7db9182 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for updating an LLM Observability experiment. */ +@JsonPropertyOrder({ + LLMObsExperimentUpdateDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsExperimentUpdateDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentUpdateDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsExperimentUpdateDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsExperimentType type; + + public LLMObsExperimentUpdateDataRequest() {} + + @JsonCreator + public LLMObsExperimentUpdateDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsExperimentUpdateDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsExperimentType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsExperimentUpdateDataRequest attributes( + LLMObsExperimentUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for updating an LLM Observability experiment. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentUpdateDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsExperimentUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsExperimentUpdateDataRequest type(LLMObsExperimentType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability experiment. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentType getType() { + return type; + } + + public void setType(LLMObsExperimentType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentUpdateDataRequest + */ + @JsonAnySetter + public LLMObsExperimentUpdateDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentUpdateDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentUpdateDataRequest llmObsExperimentUpdateDataRequest = + (LLMObsExperimentUpdateDataRequest) o; + return Objects.equals(this.attributes, llmObsExperimentUpdateDataRequest.attributes) + && Objects.equals(this.type, llmObsExperimentUpdateDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsExperimentUpdateDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentUpdateDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateRequest.java new file mode 100644 index 00000000000..88daddbb50d --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentUpdateRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to partially update an LLM Observability experiment. */ +@JsonPropertyOrder({LLMObsExperimentUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsExperimentUpdateDataRequest data; + + public LLMObsExperimentUpdateRequest() {} + + @JsonCreator + public LLMObsExperimentUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsExperimentUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsExperimentUpdateRequest data(LLMObsExperimentUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for updating an LLM Observability experiment. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsExperimentUpdateDataRequest getData() { + return data; + } + + public void setData(LLMObsExperimentUpdateDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentUpdateRequest + */ + @JsonAnySetter + public LLMObsExperimentUpdateRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentUpdateRequest llmObsExperimentUpdateRequest = (LLMObsExperimentUpdateRequest) o; + return Objects.equals(this.data, llmObsExperimentUpdateRequest.data) + && Objects.equals( + this.additionalProperties, llmObsExperimentUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentsResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentsResponse.java new file mode 100644 index 00000000000..5507048c544 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsExperimentsResponse.java @@ -0,0 +1,186 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing a list of LLM Observability experiments. */ +@JsonPropertyOrder({ + LLMObsExperimentsResponse.JSON_PROPERTY_DATA, + LLMObsExperimentsResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsExperimentsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private LLMObsCursorMeta meta; + + public LLMObsExperimentsResponse() {} + + @JsonCreator + public LLMObsExperimentsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public LLMObsExperimentsResponse data(List data) { + this.data = data; + for (LLMObsExperimentDataResponse item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsExperimentsResponse addDataItem(LLMObsExperimentDataResponse dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * List of experiments. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public LLMObsExperimentsResponse meta(LLMObsCursorMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Pagination cursor metadata. + * + * @return meta + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsCursorMeta getMeta() { + return meta; + } + + public void setMeta(LLMObsCursorMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsExperimentsResponse + */ + @JsonAnySetter + public LLMObsExperimentsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsExperimentsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsExperimentsResponse llmObsExperimentsResponse = (LLMObsExperimentsResponse) o; + return Objects.equals(this.data, llmObsExperimentsResponse.data) + && Objects.equals(this.meta, llmObsExperimentsResponse.meta) + && Objects.equals( + this.additionalProperties, llmObsExperimentsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsExperimentsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsMetricAssessment.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsMetricAssessment.java new file mode 100644 index 00000000000..24866d3af38 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsMetricAssessment.java @@ -0,0 +1,57 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Assessment result for an LLM Observability experiment metric. */ +@JsonSerialize(using = LLMObsMetricAssessment.LLMObsMetricAssessmentSerializer.class) +public class LLMObsMetricAssessment extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("pass", "fail")); + + public static final LLMObsMetricAssessment PASS = new LLMObsMetricAssessment("pass"); + public static final LLMObsMetricAssessment FAIL = new LLMObsMetricAssessment("fail"); + + LLMObsMetricAssessment(String value) { + super(value, allowedValues); + } + + public static class LLMObsMetricAssessmentSerializer + extends StdSerializer { + public LLMObsMetricAssessmentSerializer(Class t) { + super(t); + } + + public LLMObsMetricAssessmentSerializer() { + this(null); + } + + @Override + public void serialize( + LLMObsMetricAssessment value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LLMObsMetricAssessment fromValue(String value) { + return new LLMObsMetricAssessment(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsMetricScoreType.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsMetricScoreType.java new file mode 100644 index 00000000000..2dc2cadd068 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsMetricScoreType.java @@ -0,0 +1,58 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Type of metric recorded for an LLM Observability experiment. */ +@JsonSerialize(using = LLMObsMetricScoreType.LLMObsMetricScoreTypeSerializer.class) +public class LLMObsMetricScoreType extends ModelEnum { + + private static final Set allowedValues = + new HashSet(Arrays.asList("score", "categorical", "boolean", "json")); + + public static final LLMObsMetricScoreType SCORE = new LLMObsMetricScoreType("score"); + public static final LLMObsMetricScoreType CATEGORICAL = new LLMObsMetricScoreType("categorical"); + public static final LLMObsMetricScoreType BOOLEAN = new LLMObsMetricScoreType("boolean"); + public static final LLMObsMetricScoreType JSON = new LLMObsMetricScoreType("json"); + + LLMObsMetricScoreType(String value) { + super(value, allowedValues); + } + + public static class LLMObsMetricScoreTypeSerializer extends StdSerializer { + public LLMObsMetricScoreTypeSerializer(Class t) { + super(t); + } + + public LLMObsMetricScoreTypeSerializer() { + this(null); + } + + @Override + public void serialize( + LLMObsMetricScoreType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LLMObsMetricScoreType fromValue(String value) { + return new LLMObsMetricScoreType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesRequest.java new file mode 100644 index 00000000000..cbc36da6895 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesRequest.java @@ -0,0 +1,174 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for creating an LLM Observability project. */ +@JsonPropertyOrder({ + LLMObsProjectDataAttributesRequest.JSON_PROPERTY_DESCRIPTION, + LLMObsProjectDataAttributesRequest.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public LLMObsProjectDataAttributesRequest() {} + + @JsonCreator + public LLMObsProjectDataAttributesRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name) { + this.name = name; + } + + public LLMObsProjectDataAttributesRequest description(String description) { + this.description = description; + return this; + } + + /** + * Description of the project. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsProjectDataAttributesRequest name(String name) { + this.name = name; + return this; + } + + /** + * Name of the project. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectDataAttributesRequest + */ + @JsonAnySetter + public LLMObsProjectDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectDataAttributesRequest llmObsProjectDataAttributesRequest = + (LLMObsProjectDataAttributesRequest) o; + return Objects.equals(this.description, llmObsProjectDataAttributesRequest.description) + && Objects.equals(this.name, llmObsProjectDataAttributesRequest.name) + && Objects.equals( + this.additionalProperties, llmObsProjectDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectDataAttributesRequest {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesResponse.java new file mode 100644 index 00000000000..9e373451005 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataAttributesResponse.java @@ -0,0 +1,235 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.time.OffsetDateTime; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes of an LLM Observability project. */ +@JsonPropertyOrder({ + LLMObsProjectDataAttributesResponse.JSON_PROPERTY_CREATED_AT, + LLMObsProjectDataAttributesResponse.JSON_PROPERTY_DESCRIPTION, + LLMObsProjectDataAttributesResponse.JSON_PROPERTY_NAME, + LLMObsProjectDataAttributesResponse.JSON_PROPERTY_UPDATED_AT +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectDataAttributesResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_CREATED_AT = "created_at"; + private OffsetDateTime createdAt; + + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public static final String JSON_PROPERTY_UPDATED_AT = "updated_at"; + private OffsetDateTime updatedAt; + + public LLMObsProjectDataAttributesResponse() {} + + @JsonCreator + public LLMObsProjectDataAttributesResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_CREATED_AT) OffsetDateTime createdAt, + @JsonProperty(required = true, value = JSON_PROPERTY_DESCRIPTION) String description, + @JsonProperty(required = true, value = JSON_PROPERTY_NAME) String name, + @JsonProperty(required = true, value = JSON_PROPERTY_UPDATED_AT) OffsetDateTime updatedAt) { + this.createdAt = createdAt; + this.description = description; + if (description != null) {} + this.name = name; + this.updatedAt = updatedAt; + } + + public LLMObsProjectDataAttributesResponse createdAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + return this; + } + + /** + * Timestamp when the project was created. + * + * @return createdAt + */ + @JsonProperty(JSON_PROPERTY_CREATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(OffsetDateTime createdAt) { + this.createdAt = createdAt; + } + + public LLMObsProjectDataAttributesResponse description(String description) { + this.description = description; + if (description != null) {} + return this; + } + + /** + * Description of the project. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsProjectDataAttributesResponse name(String name) { + this.name = name; + return this; + } + + /** + * Name of the project. + * + * @return name + */ + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public LLMObsProjectDataAttributesResponse updatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + return this; + } + + /** + * Timestamp when the project was last updated. + * + * @return updatedAt + */ + @JsonProperty(JSON_PROPERTY_UPDATED_AT) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public OffsetDateTime getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(OffsetDateTime updatedAt) { + this.updatedAt = updatedAt; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectDataAttributesResponse + */ + @JsonAnySetter + public LLMObsProjectDataAttributesResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectDataAttributesResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectDataAttributesResponse llmObsProjectDataAttributesResponse = + (LLMObsProjectDataAttributesResponse) o; + return Objects.equals(this.createdAt, llmObsProjectDataAttributesResponse.createdAt) + && Objects.equals(this.description, llmObsProjectDataAttributesResponse.description) + && Objects.equals(this.name, llmObsProjectDataAttributesResponse.name) + && Objects.equals(this.updatedAt, llmObsProjectDataAttributesResponse.updatedAt) + && Objects.equals( + this.additionalProperties, llmObsProjectDataAttributesResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(createdAt, description, name, updatedAt, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectDataAttributesResponse {\n"); + sb.append(" createdAt: ").append(toIndentedString(createdAt)).append("\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" updatedAt: ").append(toIndentedString(updatedAt)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataRequest.java new file mode 100644 index 00000000000..53c962b44d1 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataRequest.java @@ -0,0 +1,181 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for creating an LLM Observability project. */ +@JsonPropertyOrder({ + LLMObsProjectDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsProjectDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsProjectDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsProjectType type; + + public LLMObsProjectDataRequest() {} + + @JsonCreator + public LLMObsProjectDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsProjectDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsProjectType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsProjectDataRequest attributes(LLMObsProjectDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for creating an LLM Observability project. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsProjectDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsProjectDataRequest type(LLMObsProjectType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability project. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectType getType() { + return type; + } + + public void setType(LLMObsProjectType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectDataRequest + */ + @JsonAnySetter + public LLMObsProjectDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectDataRequest llmObsProjectDataRequest = (LLMObsProjectDataRequest) o; + return Objects.equals(this.attributes, llmObsProjectDataRequest.attributes) + && Objects.equals(this.type, llmObsProjectDataRequest.type) + && Objects.equals(this.additionalProperties, llmObsProjectDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataResponse.java new file mode 100644 index 00000000000..542b2b8544f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectDataResponse.java @@ -0,0 +1,210 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for an LLM Observability project. */ +@JsonPropertyOrder({ + LLMObsProjectDataResponse.JSON_PROPERTY_ATTRIBUTES, + LLMObsProjectDataResponse.JSON_PROPERTY_ID, + LLMObsProjectDataResponse.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectDataResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsProjectDataAttributesResponse attributes; + + public static final String JSON_PROPERTY_ID = "id"; + private String id; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsProjectType type; + + public LLMObsProjectDataResponse() {} + + @JsonCreator + public LLMObsProjectDataResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsProjectDataAttributesResponse attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_ID) String id, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsProjectType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.id = id; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsProjectDataResponse attributes(LLMObsProjectDataAttributesResponse attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes of an LLM Observability project. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectDataAttributesResponse getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsProjectDataAttributesResponse attributes) { + this.attributes = attributes; + } + + public LLMObsProjectDataResponse id(String id) { + this.id = id; + return this; + } + + /** + * Unique identifier of the project. + * + * @return id + */ + @JsonProperty(JSON_PROPERTY_ID) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public LLMObsProjectDataResponse type(LLMObsProjectType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability project. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectType getType() { + return type; + } + + public void setType(LLMObsProjectType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectDataResponse + */ + @JsonAnySetter + public LLMObsProjectDataResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectDataResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectDataResponse llmObsProjectDataResponse = (LLMObsProjectDataResponse) o; + return Objects.equals(this.attributes, llmObsProjectDataResponse.attributes) + && Objects.equals(this.id, llmObsProjectDataResponse.id) + && Objects.equals(this.type, llmObsProjectDataResponse.type) + && Objects.equals( + this.additionalProperties, llmObsProjectDataResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, id, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectDataResponse {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" id: ").append(toIndentedString(id)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectRequest.java new file mode 100644 index 00000000000..263ab59a73e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectRequest.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to create an LLM Observability project. */ +@JsonPropertyOrder({LLMObsProjectRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsProjectDataRequest data; + + public LLMObsProjectRequest() {} + + @JsonCreator + public LLMObsProjectRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) LLMObsProjectDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsProjectRequest data(LLMObsProjectDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for creating an LLM Observability project. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectDataRequest getData() { + return data; + } + + public void setData(LLMObsProjectDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectRequest + */ + @JsonAnySetter + public LLMObsProjectRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectRequest llmObsProjectRequest = (LLMObsProjectRequest) o; + return Objects.equals(this.data, llmObsProjectRequest.data) + && Objects.equals(this.additionalProperties, llmObsProjectRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectResponse.java new file mode 100644 index 00000000000..62444c44cc9 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectResponse.java @@ -0,0 +1,145 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Response containing a single LLM Observability project. */ +@JsonPropertyOrder({LLMObsProjectResponse.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsProjectDataResponse data; + + public LLMObsProjectResponse() {} + + @JsonCreator + public LLMObsProjectResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) LLMObsProjectDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsProjectResponse data(LLMObsProjectDataResponse data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for an LLM Observability project. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectDataResponse getData() { + return data; + } + + public void setData(LLMObsProjectDataResponse data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectResponse + */ + @JsonAnySetter + public LLMObsProjectResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectResponse llmObsProjectResponse = (LLMObsProjectResponse) o; + return Objects.equals(this.data, llmObsProjectResponse.data) + && Objects.equals(this.additionalProperties, llmObsProjectResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectType.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectType.java new file mode 100644 index 00000000000..3ddfb7019d0 --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectType.java @@ -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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Resource type of an LLM Observability project. */ +@JsonSerialize(using = LLMObsProjectType.LLMObsProjectTypeSerializer.class) +public class LLMObsProjectType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("projects")); + + public static final LLMObsProjectType PROJECTS = new LLMObsProjectType("projects"); + + LLMObsProjectType(String value) { + super(value, allowedValues); + } + + public static class LLMObsProjectTypeSerializer extends StdSerializer { + public LLMObsProjectTypeSerializer(Class t) { + super(t); + } + + public LLMObsProjectTypeSerializer() { + this(null); + } + + @Override + public void serialize(LLMObsProjectType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LLMObsProjectType fromValue(String value) { + return new LLMObsProjectType(value); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataAttributesRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataAttributesRequest.java new file mode 100644 index 00000000000..097f6f4325e --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataAttributesRequest.java @@ -0,0 +1,167 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Attributes for updating an LLM Observability project. */ +@JsonPropertyOrder({ + LLMObsProjectUpdateDataAttributesRequest.JSON_PROPERTY_DESCRIPTION, + LLMObsProjectUpdateDataAttributesRequest.JSON_PROPERTY_NAME +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectUpdateDataAttributesRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DESCRIPTION = "description"; + private String description; + + public static final String JSON_PROPERTY_NAME = "name"; + private String name; + + public LLMObsProjectUpdateDataAttributesRequest description(String description) { + this.description = description; + return this; + } + + /** + * Updated description of the project. + * + * @return description + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_DESCRIPTION) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public LLMObsProjectUpdateDataAttributesRequest name(String name) { + this.name = name; + return this; + } + + /** + * Updated name of the project. + * + * @return name + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_NAME) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectUpdateDataAttributesRequest + */ + @JsonAnySetter + public LLMObsProjectUpdateDataAttributesRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectUpdateDataAttributesRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectUpdateDataAttributesRequest llmObsProjectUpdateDataAttributesRequest = + (LLMObsProjectUpdateDataAttributesRequest) o; + return Objects.equals(this.description, llmObsProjectUpdateDataAttributesRequest.description) + && Objects.equals(this.name, llmObsProjectUpdateDataAttributesRequest.name) + && Objects.equals( + this.additionalProperties, + llmObsProjectUpdateDataAttributesRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(description, name, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectUpdateDataAttributesRequest {\n"); + sb.append(" description: ").append(toIndentedString(description)).append("\n"); + sb.append(" name: ").append(toIndentedString(name)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataRequest.java new file mode 100644 index 00000000000..b5a0e195b0b --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateDataRequest.java @@ -0,0 +1,184 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Data object for updating an LLM Observability project. */ +@JsonPropertyOrder({ + LLMObsProjectUpdateDataRequest.JSON_PROPERTY_ATTRIBUTES, + LLMObsProjectUpdateDataRequest.JSON_PROPERTY_TYPE +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectUpdateDataRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_ATTRIBUTES = "attributes"; + private LLMObsProjectUpdateDataAttributesRequest attributes; + + public static final String JSON_PROPERTY_TYPE = "type"; + private LLMObsProjectType type; + + public LLMObsProjectUpdateDataRequest() {} + + @JsonCreator + public LLMObsProjectUpdateDataRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_ATTRIBUTES) + LLMObsProjectUpdateDataAttributesRequest attributes, + @JsonProperty(required = true, value = JSON_PROPERTY_TYPE) LLMObsProjectType type) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + this.type = type; + this.unparsed |= !type.isValid(); + } + + public LLMObsProjectUpdateDataRequest attributes( + LLMObsProjectUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + this.unparsed |= attributes.unparsed; + return this; + } + + /** + * Attributes for updating an LLM Observability project. + * + * @return attributes + */ + @JsonProperty(JSON_PROPERTY_ATTRIBUTES) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectUpdateDataAttributesRequest getAttributes() { + return attributes; + } + + public void setAttributes(LLMObsProjectUpdateDataAttributesRequest attributes) { + this.attributes = attributes; + } + + public LLMObsProjectUpdateDataRequest type(LLMObsProjectType type) { + this.type = type; + this.unparsed |= !type.isValid(); + return this; + } + + /** + * Resource type of an LLM Observability project. + * + * @return type + */ + @JsonProperty(JSON_PROPERTY_TYPE) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectType getType() { + return type; + } + + public void setType(LLMObsProjectType type) { + if (!type.isValid()) { + this.unparsed = true; + } + this.type = type; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectUpdateDataRequest + */ + @JsonAnySetter + public LLMObsProjectUpdateDataRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectUpdateDataRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectUpdateDataRequest llmObsProjectUpdateDataRequest = + (LLMObsProjectUpdateDataRequest) o; + return Objects.equals(this.attributes, llmObsProjectUpdateDataRequest.attributes) + && Objects.equals(this.type, llmObsProjectUpdateDataRequest.type) + && Objects.equals( + this.additionalProperties, llmObsProjectUpdateDataRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(attributes, type, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectUpdateDataRequest {\n"); + sb.append(" attributes: ").append(toIndentedString(attributes)).append("\n"); + sb.append(" type: ").append(toIndentedString(type)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateRequest.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateRequest.java new file mode 100644 index 00000000000..e095e2aadac --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectUpdateRequest.java @@ -0,0 +1,147 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** Request to partially update an LLM Observability project. */ +@JsonPropertyOrder({LLMObsProjectUpdateRequest.JSON_PROPERTY_DATA}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectUpdateRequest { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private LLMObsProjectUpdateDataRequest data; + + public LLMObsProjectUpdateRequest() {} + + @JsonCreator + public LLMObsProjectUpdateRequest( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + LLMObsProjectUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + } + + public LLMObsProjectUpdateRequest data(LLMObsProjectUpdateDataRequest data) { + this.data = data; + this.unparsed |= data.unparsed; + return this; + } + + /** + * Data object for updating an LLM Observability project. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public LLMObsProjectUpdateDataRequest getData() { + return data; + } + + public void setData(LLMObsProjectUpdateDataRequest data) { + this.data = data; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectUpdateRequest + */ + @JsonAnySetter + public LLMObsProjectUpdateRequest putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectUpdateRequest object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectUpdateRequest llmObsProjectUpdateRequest = (LLMObsProjectUpdateRequest) o; + return Objects.equals(this.data, llmObsProjectUpdateRequest.data) + && Objects.equals( + this.additionalProperties, llmObsProjectUpdateRequest.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectUpdateRequest {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectsResponse.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectsResponse.java new file mode 100644 index 00000000000..a4f84a19d2a --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsProjectsResponse.java @@ -0,0 +1,185 @@ +/* + * 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. + */ + +package com.datadog.api.client.v2.model; + +import com.fasterxml.jackson.annotation.JsonAnyGetter; +import com.fasterxml.jackson.annotation.JsonAnySetter; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonPropertyOrder; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** Response containing a list of LLM Observability projects. */ +@JsonPropertyOrder({ + LLMObsProjectsResponse.JSON_PROPERTY_DATA, + LLMObsProjectsResponse.JSON_PROPERTY_META +}) +@jakarta.annotation.Generated( + value = "https://github.com/DataDog/datadog-api-client-java/blob/master/.generator") +public class LLMObsProjectsResponse { + @JsonIgnore public boolean unparsed = false; + public static final String JSON_PROPERTY_DATA = "data"; + private List data = new ArrayList<>(); + + public static final String JSON_PROPERTY_META = "meta"; + private LLMObsCursorMeta meta; + + public LLMObsProjectsResponse() {} + + @JsonCreator + public LLMObsProjectsResponse( + @JsonProperty(required = true, value = JSON_PROPERTY_DATA) + List data) { + this.data = data; + } + + public LLMObsProjectsResponse data(List data) { + this.data = data; + for (LLMObsProjectDataResponse item : data) { + this.unparsed |= item.unparsed; + } + return this; + } + + public LLMObsProjectsResponse addDataItem(LLMObsProjectDataResponse dataItem) { + this.data.add(dataItem); + this.unparsed |= dataItem.unparsed; + return this; + } + + /** + * List of projects. + * + * @return data + */ + @JsonProperty(JSON_PROPERTY_DATA) + @JsonInclude(value = JsonInclude.Include.ALWAYS) + public List getData() { + return data; + } + + public void setData(List data) { + this.data = data; + } + + public LLMObsProjectsResponse meta(LLMObsCursorMeta meta) { + this.meta = meta; + this.unparsed |= meta.unparsed; + return this; + } + + /** + * Pagination cursor metadata. + * + * @return meta + */ + @jakarta.annotation.Nullable + @JsonProperty(JSON_PROPERTY_META) + @JsonInclude(value = JsonInclude.Include.USE_DEFAULTS) + public LLMObsCursorMeta getMeta() { + return meta; + } + + public void setMeta(LLMObsCursorMeta meta) { + this.meta = meta; + } + + /** + * A container for additional, undeclared properties. This is a holder for any undeclared + * properties as specified with the 'additionalProperties' keyword in the OAS document. + */ + private Map additionalProperties; + + /** + * Set the additional (undeclared) property with the specified name and value. If the property + * does not already exist, create it otherwise replace it. + * + * @param key The arbitrary key to set + * @param value The associated value + * @return LLMObsProjectsResponse + */ + @JsonAnySetter + public LLMObsProjectsResponse putAdditionalProperty(String key, Object value) { + if (this.additionalProperties == null) { + this.additionalProperties = new HashMap(); + } + this.additionalProperties.put(key, value); + return this; + } + + /** + * Return the additional (undeclared) property. + * + * @return The additional properties + */ + @JsonAnyGetter + public Map getAdditionalProperties() { + return additionalProperties; + } + + /** + * Return the additional (undeclared) property with the specified name. + * + * @param key The arbitrary key to get + * @return The specific additional property for the given key + */ + public Object getAdditionalProperty(String key) { + if (this.additionalProperties == null) { + return null; + } + return this.additionalProperties.get(key); + } + + /** Return true if this LLMObsProjectsResponse object is equal to o. */ + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + LLMObsProjectsResponse llmObsProjectsResponse = (LLMObsProjectsResponse) o; + return Objects.equals(this.data, llmObsProjectsResponse.data) + && Objects.equals(this.meta, llmObsProjectsResponse.meta) + && Objects.equals(this.additionalProperties, llmObsProjectsResponse.additionalProperties); + } + + @Override + public int hashCode() { + return Objects.hash(data, meta, additionalProperties); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append("class LLMObsProjectsResponse {\n"); + sb.append(" data: ").append(toIndentedString(data)).append("\n"); + sb.append(" meta: ").append(toIndentedString(meta)).append("\n"); + sb.append(" additionalProperties: ") + .append(toIndentedString(additionalProperties)) + .append("\n"); + sb.append('}'); + return sb.toString(); + } + + /** + * Convert the given object to string with each line indented by 4 spaces (except the first line). + */ + private String toIndentedString(Object o) { + if (o == null) { + return "null"; + } + return o.toString().replace("\n", "\n "); + } +} diff --git a/src/main/java/com/datadog/api/client/v2/model/LLMObsRecordType.java b/src/main/java/com/datadog/api/client/v2/model/LLMObsRecordType.java new file mode 100644 index 00000000000..14fa4d9308f --- /dev/null +++ b/src/main/java/com/datadog/api/client/v2/model/LLMObsRecordType.java @@ -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. + */ + +package com.datadog.api.client.v2.model; + +import com.datadog.api.client.ModelEnum; +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; +import java.io.IOException; +import java.util.Arrays; +import java.util.HashSet; +import java.util.Set; + +/** Resource type of LLM Observability dataset records. */ +@JsonSerialize(using = LLMObsRecordType.LLMObsRecordTypeSerializer.class) +public class LLMObsRecordType extends ModelEnum { + + private static final Set allowedValues = new HashSet(Arrays.asList("records")); + + public static final LLMObsRecordType RECORDS = new LLMObsRecordType("records"); + + LLMObsRecordType(String value) { + super(value, allowedValues); + } + + public static class LLMObsRecordTypeSerializer extends StdSerializer { + public LLMObsRecordTypeSerializer(Class t) { + super(t); + } + + public LLMObsRecordTypeSerializer() { + this(null); + } + + @Override + public void serialize(LLMObsRecordType value, JsonGenerator jgen, SerializerProvider provider) + throws IOException, JsonProcessingException { + jgen.writeObject(value.value); + } + } + + @JsonCreator + public static LLMObsRecordType fromValue(String value) { + return new LLMObsRecordType(value); + } +} diff --git a/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_deserializes_successfully.json b/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_deserializes_successfully.json index 0b1cdf6a6a8..dbf89c929d7 100644 --- a/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_deserializes_successfully.json +++ b/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_deserializes_successfully.json @@ -28,6 +28,6 @@ "timeToLive": { "unlimited": true }, - "id": "d5bade64-6ebb-4f4d-903d-8069b52bb31e" + "id": "d5bade64-6ebb-4f4d-903d-8069b52bb31d" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_for_your_organization_returns_OK_response.json b/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_for_your_organization_returns_OK_response.json index 91c8275f382..e94edfb7099 100644 --- a/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_for_your_organization_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v1/Get_all_hosts_with_metadata_for_your_organization_returns_OK_response.json @@ -28,6 +28,6 @@ "timeToLive": { "unlimited": true }, - "id": "d5bade64-6ebb-4f4d-903d-8069b52bb31d" + "id": "d5bade64-6ebb-4f4d-903d-8069b52bb31e" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v1/Validate_API_key_returns_Forbidden_response.json b/src/test/resources/cassettes/features/v1/Validate_API_key_returns_Forbidden_response.json index 1489fb9e00e..907a2641363 100644 --- a/src/test/resources/cassettes/features/v1/Validate_API_key_returns_Forbidden_response.json +++ b/src/test/resources/cassettes/features/v1/Validate_API_key_returns_Forbidden_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "3f83caea-c405-97df-c554-ee2d9f9e4f01" + "id": "3f83caea-c405-97df-c554-ee2d9f9e4f02" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v1/Validate_API_key_returns_OK_response.json b/src/test/resources/cassettes/features/v1/Validate_API_key_returns_OK_response.json index 45e484f0b48..d03bf9ca97e 100644 --- a/src/test/resources/cassettes/features/v1/Validate_API_key_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v1/Validate_API_key_returns_OK_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "3f83caea-c405-97df-c554-ee2d9f9e4f02" + "id": "3f83caea-c405-97df-c554-ee2d9f9e4f01" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_AWS_Account_object_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_AWS_Account_object_response.json index bc99e6e9183..97e4959085e 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_AWS_Account_object_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_AWS_Account_object_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c206b9cd-771e-14f0-5d18-42a3a48556cf" + "id": "c206b9cd-771e-14f0-5d18-42a3a48556ce" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_Conflict_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_Conflict_response.json index af01fdb67c5..1be13c1c8f8 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_Conflict_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Create_account_config_returns_Conflict_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eec" + "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eed" }, { "httpRequest": { @@ -57,7 +57,7 @@ "timeToLive": { "unlimited": true }, - "id": "c206b9cd-771e-14f0-5d18-42a3a48556ce" + "id": "c206b9cd-771e-14f0-5d18-42a3a48556cf" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Bad_Request_response.json index c82b6c27f29..a42ef29bfae 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Bad_Request_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "73fd406e-d686-10bd-50ee-83f2c499e8a9" + "id": "73fd406e-d686-10bd-50ee-83f2c499e8a8" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_No_Content_response.json index cf63593c8d1..20187b03f7f 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_No_Content_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9ee9" + "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eea" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Not_Found_response.json index aa5b0a6e9b8..89c80bd879e 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Delete_account_config_returns_Not_Found_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eed" + "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9ee9" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Generate_new_external_ID_returns_AWS_External_ID_object_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Generate_new_external_ID_returns_AWS_External_ID_object_response.json index efb480e06b4..7bf88c684fb 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Generate_new_external_ID_returns_AWS_External_ID_object_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Generate_new_external_ID_returns_AWS_External_ID_object_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "a3ebb722-60eb-fa89-589a-ff3630e3a2cc" + "id": "a3ebb722-60eb-fa89-589a-ff3630e3a2ce" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_AWS_Account_object_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_AWS_Account_object_response.json index b06edb7febf..f02f71207af 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_AWS_Account_object_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_AWS_Account_object_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eea" + "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eeb" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Bad_Request_response.json index 87cb96a7640..6352d5f0102 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Bad_Request_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "3d4d0603-9fed-1cc5-8004-086b9b6ef690" + "id": "3d4d0603-9fed-1cc5-8004-086b9b6ef691" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Not_Found_response.json index 55368f4ae1c..7e5c7b1234d 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Get_account_config_returns_Not_Found_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "9b33b83c-c8bb-714f-cf71-33ab2f3af9d4" + "id": "9b33b83c-c8bb-714f-cf71-33ab2f3af9d3" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_List_available_namespaces_returns_AWS_Namespaces_List_object_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_List_available_namespaces_returns_AWS_Namespaces_List_object_response.json index 96ea2f1d661..7711ea26b7b 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_List_available_namespaces_returns_AWS_Namespaces_List_object_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_List_available_namespaces_returns_AWS_Namespaces_List_object_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "d0ec7736-ef6c-d071-3390-4a5c3a301d0f" + "id": "d0ec7736-ef6c-d071-3390-4a5c3a301d0e" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/AWS_Integration_Patch_account_config_returns_AWS_Account_object_response.json b/src/test/resources/cassettes/features/v2/AWS_Integration_Patch_account_config_returns_AWS_Account_object_response.json index 5be48f564e3..520c88368e3 100644 --- a/src/test/resources/cassettes/features/v2/AWS_Integration_Patch_account_config_returns_AWS_Account_object_response.json +++ b/src/test/resources/cassettes/features/v2/AWS_Integration_Patch_account_config_returns_AWS_Account_object_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eeb" + "id": "194b15fb-fcae-9b9a-e1a7-0daa19dc9eec" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json index 73ccee50ec7..ff390c55dd3 100644 --- a/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Archive_case_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145ea" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ed" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json index 4462748bb01..95a63801c5f 100644 --- a/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Archive_case_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f0" + "id": "79babc38-7a70-5347-c8a6-73b0e70145e9" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json index 97d2e012fb0..1009eda9cb4 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f2" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ec" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json index c791186e6fd..72decbcf558 100644 --- a/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Assign_case_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145fd" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f5" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_Bad_Request_response.json index 3e6caee50a0..33f481ce3be 100644 --- a/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d31" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d2c" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_OK_response.json index b8c9cddb379..3bf5cd3a7c1 100644 --- a/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Bulk_delete_datastore_items_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d2e" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d30" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Bulk_write_datastore_items_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Bulk_write_datastore_items_returns_Bad_Request_response.json index 65e125afa4a..d2aaa4405eb 100644 --- a/src/test/resources/cassettes/features/v2/Bulk_write_datastore_items_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Bulk_write_datastore_items_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d33" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d31" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Cancel_a_historical_job_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Cancel_a_historical_job_returns_OK_response.json index 8df6e835fb8..f5cf418e965 100644 --- a/src/test/resources/cassettes/features/v2/Cancel_a_historical_job_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Cancel_a_historical_job_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "4c138fa0-d834-5972-8bd7-894a659525ac" + "id": "4c138fa0-d834-5972-8bd7-894a659525ae" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json index ad9498044cf..8c97b2392b3 100644 --- a/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f3" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f6" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json index 7a1d8329345..58c1764cc21 100644 --- a/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Comment_case_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145ed" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f3" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_App_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_App_returns_Created_response.json index 12d11a05f48..d78d4e863c8 100644 --- a/src/test/resources/cassettes/features/v2/Create_App_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_App_returns_Created_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50c" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c512" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_GCP_scan_options_returns_Agentless_scan_options_enabled_successfully_response.json b/src/test/resources/cassettes/features/v2/Create_GCP_scan_options_returns_Agentless_scan_options_enabled_successfully_response.json index 25b85370788..848565e096f 100644 --- a/src/test/resources/cassettes/features/v2/Create_GCP_scan_options_returns_Agentless_scan_options_enabled_successfully_response.json +++ b/src/test/resources/cassettes/features/v2/Create_GCP_scan_options_returns_Agentless_scan_options_enabled_successfully_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "95d55fc8-65c9-599d-fc62-5922c335758f" + "id": "95d55fc8-65c9-599d-fc62-5922c3357590" }, { "httpRequest": { @@ -48,6 +48,6 @@ "timeToLive": { "unlimited": true }, - "id": "7e1fd6df-f1a0-70b4-90c2-13c11f689f82" + "id": "7e1fd6df-f1a0-70b4-90c2-13c11f689f83" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_Conflict_response.json b/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_Conflict_response.json index 579f9d82f26..0f1fb58adbb 100644 --- a/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_Conflict_response.json +++ b/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_Conflict_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae46" + "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae44" }, { "httpRequest": { @@ -57,7 +57,7 @@ "timeToLive": { "unlimited": true }, - "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae47" + "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae45" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_OK_response.json index c6e2a2c6b52..2e9b172f720 100644 --- a/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_Org_Connection_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae45" + "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae49" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_Scanning_Group_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_Scanning_Group_returns_OK_response.json index 0735776ab7d..052e9a267e7 100644 --- a/src/test/resources/cassettes/features/v2/Create_Scanning_Group_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_Scanning_Group_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e7f" + "id": "01611a93-5e74-0630-3c51-f707c3b51e79" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_Bad_Request_response.json index dfbeb4c7e2f..335179625bd 100644 --- a/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_Bad_Request_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e7a" + "id": "01611a93-5e74-0630-3c51-f707c3b51e83" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238a9f" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa5" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_OK_response.json index 1c04e0309ee..f545b0e20ae 100644 --- a/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e81" + "id": "01611a93-5e74-0630-3c51-f707c3b51e7b" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa4" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238a9f" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_with_should_save_match_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_with_should_save_match_returns_OK_response.json index ef83201b336..e84757a0280 100644 --- a/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_with_should_save_match_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_Scanning_Rule_with_should_save_match_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e85" + "id": "01611a93-5e74-0630-3c51-f707c3b51e7c" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa7" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa0" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_a_custom_framework_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_a_custom_framework_returns_OK_response.json index ad63cd81994..09067379e94 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_custom_framework_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_custom_framework_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "13fe9685-b072-5fe0-c841-4499a9e71c72" + "id": "13fe9685-b072-5fe0-c841-4499a9e71c71" }, { "httpRequest": { @@ -53,6 +53,6 @@ "timeToLive": { "unlimited": true }, - "id": "e535722a-99e3-30cf-49f7-2d093bd78b3b" + "id": "e535722a-99e3-30cf-49f7-2d093bd78b3a" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.json index 94ec04c070e..fba8b2ccd41 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_dataset_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addcf" + "id": "32c558cf-4a2e-f914-f443-ab94000addcd" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_a_restriction_query_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_a_restriction_query_returns_OK_response.json index 7753c1c20c2..992baa6ee80 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_restriction_query_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_restriction_query_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "eb3b308b-3d56-9ef8-4096-dd7718f51860" + "id": "eb3b308b-3d56-9ef8-4096-dd7718f51862" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.freeze b/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.freeze index 957e037f23c..62723cd8d29 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.freeze +++ b/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.freeze @@ -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/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.json index fd483847e68..170f3322e1a 100644 --- a/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_a_test_suite_returns_OK_response.json @@ -12,7 +12,7 @@ "secure": true }, "httpResponse": { - "body": "{\"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\"}}\n", + "body": "{\"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}}}\n", "headers": { "Content-Type": [ "application/json" @@ -33,7 +33,7 @@ "httpRequest": { "body": { "type": "JSON", - "json": "{\"data\":{\"attributes\":{\"public_ids\":[\"hik-xp5-9q6\"]},\"type\":\"delete_suites_request\"}}" + "json": "{\"data\":{\"attributes\":{\"public_ids\":[\"36n-bb6-njj\"]},\"type\":\"delete_suites_request\"}}" }, "headers": {}, "method": "POST", @@ -42,7 +42,7 @@ "secure": true }, "httpResponse": { - "body": "{\"data\":[{\"type\":\"suites\",\"attributes\":{\"deleted_at\":\"2026-02-18 16:57:06.420679\",\"public_id\":\"hik-xp5-9q6\"},\"id\":\"hik-xp5-9q6\"}]}\n", + "body": "{\"data\":[{\"type\":\"suites\",\"attributes\":{\"public_id\":\"36n-bb6-njj\",\"deleted_at\":\"2026-01-07 12:38:46.679914\"},\"id\":\"36n-bb6-njj\"}]}\n", "headers": { "Content-Type": [ "application/json" @@ -57,6 +57,6 @@ "timeToLive": { "unlimited": true }, - "id": "79a4484e-b99a-993b-e9f8-04bc2937a220" + "id": "1bd5428b-eb45-1f07-ea8a-b3d0bc71b1e8" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_an_AWS_integration_returns_Conflict_response.json b/src/test/resources/cassettes/features/v2/Create_an_AWS_integration_returns_Conflict_response.json index c7a019ef829..19dc53b7c6a 100644 --- a/src/test/resources/cassettes/features/v2/Create_an_AWS_integration_returns_Conflict_response.json +++ b/src/test/resources/cassettes/features/v2/Create_an_AWS_integration_returns_Conflict_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce5" + "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce4" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_an_incident_type_returns_CREATED_response.json b/src/test/resources/cassettes/features/v2/Create_an_incident_type_returns_CREATED_response.json index 62d6001c9d0..5fdb5139b99 100644 --- a/src/test/resources/cassettes/features/v2/Create_an_incident_type_returns_CREATED_response.json +++ b/src/test/resources/cassettes/features/v2/Create_an_incident_type_returns_CREATED_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd7" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd3" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_case_for_security_finding_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_case_for_security_finding_returns_Created_response.json index 7eed52fb390..3186336472d 100644 --- a/src/test/resources/cassettes/features/v2/Create_case_for_security_finding_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_case_for_security_finding_returns_Created_response.json @@ -52,6 +52,6 @@ "timeToLive": { "unlimited": true }, - "id": "4e58c44b-f265-fde4-198b-af61fd50c0a7" + "id": "4e58c44b-f265-fde4-198b-af61fd50c0a6" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_cases_for_security_findings_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_cases_for_security_findings_returns_Created_response.json index 7b6e009c016..ce5258eed5e 100644 --- a/src/test/resources/cassettes/features/v2/Create_cases_for_security_findings_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_cases_for_security_findings_returns_Created_response.json @@ -52,6 +52,6 @@ "timeToLive": { "unlimited": true }, - "id": "4e58c44b-f265-fde4-198b-af61fd50c0a6" + "id": "4e58c44b-f265-fde4-198b-af61fd50c0a7" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json index c312b3face8..e7858392bb2 100644 --- a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6466" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6464" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json index 2ce378fae66..76a037f2ed4 100644 --- a/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json +++ b/src/test/resources/cassettes/features/v2/Create_custom_attribute_config_for_a_case_type_returns_CREATED_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af646a" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6467" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_incident_notification_rule_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_incident_notification_rule_returns_Created_response.json index 31333da4750..4032fbdc8fc 100644 --- a/src/test/resources/cassettes/features/v2/Create_incident_notification_rule_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_incident_notification_rule_returns_Created_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd6" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bdc" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_incident_notification_template_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Create_incident_notification_template_returns_Created_response.json index c4359207f23..6b69cce1630 100644 --- a/src/test/resources/cassettes/features/v2/Create_incident_notification_template_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Create_incident_notification_template_returns_Created_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd9" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bdb" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Create_role_with_a_permission_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Create_role_with_a_permission_returns_OK_response.json index 036e7ac60ea..3fbaa0291c3 100644 --- a/src/test/resources/cassettes/features/v2/Create_role_with_a_permission_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Create_role_with_a_permission_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb892172" + "id": "ab2c08c1-60c7-9278-3246-d650bb89216c" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Creates_a_data_deletion_request_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Creates_a_data_deletion_request_returns_OK_response.json index c12abc0c362..626d104be82 100644 --- a/src/test/resources/cassettes/features/v2/Creates_a_data_deletion_request_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Creates_a_data_deletion_request_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "516e2b97-25f6-b08c-4d4a-1da22948b330" + "id": "516e2b97-25f6-b08c-4d4a-1da22948b32f" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_App_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_App_returns_OK_response.json index e3c687db896..ac61cefff94 100644 --- a/src/test/resources/cassettes/features/v2/Delete_App_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_App_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c513" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c514" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_Multiple_Apps_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_Multiple_Apps_returns_OK_response.json index 3c087b157b3..17f6987468c 100644 --- a/src/test/resources/cassettes/features/v2/Delete_Multiple_Apps_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_Multiple_Apps_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50e" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c513" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_Org_Connection_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_Org_Connection_returns_OK_response.json index bb02652c1ea..c63dd04ca65 100644 --- a/src/test/resources/cassettes/features/v2/Delete_Org_Connection_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_Org_Connection_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae43" + "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae48" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_Scanning_Group_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_Scanning_Group_returns_OK_response.json index 5a542ece674..1077273c329 100644 --- a/src/test/resources/cassettes/features/v2/Delete_Scanning_Group_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_Scanning_Group_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e79" + "id": "01611a93-5e74-0630-3c51-f707c3b51e7e" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238a9e" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa2" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_a_WAF_exclusion_filter_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_a_WAF_exclusion_filter_returns_OK_response.json index d14b87aa29b..e17e659929e 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_WAF_exclusion_filter_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_WAF_exclusion_filter_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "f87651cf-cb9d-db71-c4de-1be9e301b3ea" + "id": "f87651cf-cb9d-db71-c4de-1be9e301b3e9" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json index 423beb9380f..1511b4f762f 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_NotContent_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6461" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6462" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json index d44f28ca671..7919b99b4ff 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_case_type_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6462" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6461" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_a_critical_asset_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_a_critical_asset_returns_OK_response.json index 44970e3b2b4..4fe7616f61c 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_critical_asset_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_critical_asset_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6ffb5b4d-a3b7-6fa1-1d1c-e0464f43c9e6" + "id": "6ffb5b4d-a3b7-6fa1-1d1c-e0464f43c9e7" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.json index c7ce15f6147..92c10c6b507 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_dataset_returns_No_Content_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addcd" + "id": "32c558cf-4a2e-f914-f443-ab94000addc9" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_a_restriction_query_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_a_restriction_query_returns_OK_response.json index 9d5fec45de3..b4f342c7c6b 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_restriction_query_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_restriction_query_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "eb3b308b-3d56-9ef8-4096-dd7718f5185f" + "id": "eb3b308b-3d56-9ef8-4096-dd7718f5185e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_a_retention_filter_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_a_retention_filter_returns_OK_response.json index 245c33ef97b..a0473dce8a1 100644 --- a/src/test/resources/cassettes/features/v2/Delete_a_retention_filter_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_a_retention_filter_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff0698" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Bad_Request_response.json index a42ef29bfae..c82b6c27f29 100644 --- a/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Bad_Request_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "73fd406e-d686-10bd-50ee-83f2c499e8a8" + "id": "73fd406e-d686-10bd-50ee-83f2c499e8a9" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Not_Found_response.json index 5a5f85e9e24..27a3b2378c8 100644 --- a/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_an_AWS_integration_returns_Not_Found_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce4" + "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce2" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_an_incident_type_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_an_incident_type_returns_OK_response.json index ee9ff41cc5e..10d1b44602d 100644 --- a/src/test/resources/cassettes/features/v2/Delete_an_incident_type_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_an_incident_type_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd1" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd7" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json index a9b1b0a59f2..01ab24ad981 100644 --- a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145ff" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f8" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json index 329ab257b1d..d5073efc8b6 100644 --- a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_No_Content_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f6" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f1" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json index 4a4af70d4d6..9f67c161366 100644 --- a/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_case_comment_returns_Not_Found_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f5" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f7" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json index 4d6f43f87bf..8d2bf345763 100644 --- a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_Not_Found_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145eb" + "id": "79babc38-7a70-5347-c8a6-73b0e7014600" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json index 63612794c7f..98d4f2e89be 100644 --- a/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attribute_from_case_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6463" + "id": "dc45fc73-0f09-c12d-941b-eaf799af646a" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json index 2dc635d3a78..87794c5dcab 100644 --- a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6467" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6466" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json index c787f38d63d..89e714c46e3 100644 --- a/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_custom_attributes_config_returns_No_Content_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6469" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6465" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_datastore_item_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_datastore_item_returns_OK_response.json index e1f6cfcce7c..9906d02abaf 100644 --- a/src/test/resources/cassettes/features/v2/Delete_datastore_item_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_datastore_item_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d30" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d35" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_datastore_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Delete_datastore_returns_OK_response.json index 3ffceed3185..ccc4c95513a 100644 --- a/src/test/resources/cassettes/features/v2/Delete_datastore_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_datastore_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d2c" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d33" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_incident_notification_rule_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_incident_notification_rule_returns_No_Content_response.json index e4a05802f28..ecbf48088cd 100644 --- a/src/test/resources/cassettes/features/v2/Delete_incident_notification_rule_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_incident_notification_rule_returns_No_Content_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd2" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bda" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Delete_incident_notification_template_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Delete_incident_notification_template_returns_No_Content_response.json index e668325311c..e315b0658c4 100644 --- a/src/test/resources/cassettes/features/v2/Delete_incident_notification_template_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Delete_incident_notification_template_returns_No_Content_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd4" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd2" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.json index 75a40d06c1c..12a959775bd 100644 --- a/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Edit_a_dataset_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addc9" + "id": "32c558cf-4a2e-f914-f443-ab94000addce" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Generate_a_new_external_ID_returns_AWS_External_ID_object_response.json b/src/test/resources/cassettes/features/v2/Generate_a_new_external_ID_returns_AWS_External_ID_object_response.json index 6ef442b0c31..c2491988476 100644 --- a/src/test/resources/cassettes/features/v2/Generate_a_new_external_ID_returns_AWS_External_ID_object_response.json +++ b/src/test/resources/cassettes/features/v2/Generate_a_new_external_ID_returns_AWS_External_ID_object_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "a3ebb722-60eb-fa89-589a-ff3630e3a2ce" + "id": "a3ebb722-60eb-fa89-589a-ff3630e3a2cc" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_task_by_id_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_task_by_id_returns_Bad_Request_response.json index fe4cf251d57..6b2882ea815 100644 --- a/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_task_by_id_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_task_by_id_returns_Bad_Request_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "4fd99083-06ab-185c-0a48-d579a5f192c1" + "id": "4fd99083-06ab-185c-0a48-d579a5f192c2" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_tasks_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_tasks_returns_OK_response.json index 5fe868f6988..774e33bf524 100644 --- a/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_tasks_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_AWS_On_Demand_tasks_returns_OK_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "7442c701-c89c-a74b-3de9-6b4cff876178" + "id": "7442c701-c89c-a74b-3de9-6b4cff876179" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_AWS_on_demand_task_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Get_AWS_on_demand_task_returns_Bad_Request_response.json index 6b2882ea815..fe4cf251d57 100644 --- a/src/test/resources/cassettes/features/v2/Get_AWS_on_demand_task_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Get_AWS_on_demand_task_returns_Bad_Request_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "4fd99083-06ab-185c-0a48-d579a5f192c2" + "id": "4fd99083-06ab-185c-0a48-d579a5f192c1" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_App_returns_Gone_response.json b/src/test/resources/cassettes/features/v2/Get_App_returns_Gone_response.json index ca6f6eb76a9..f2e8ebc7ed1 100644 --- a/src/test/resources/cassettes/features/v2/Get_App_returns_Gone_response.json +++ b/src/test/resources/cassettes/features/v2/Get_App_returns_Gone_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c514" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_App_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_App_returns_OK_response.json index cdbd8c2d803..b461aa9101d 100644 --- a/src/test/resources/cassettes/features/v2/Get_App_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_App_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c511" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_GCP_scan_options_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_GCP_scan_options_returns_OK_response.json index cab40f18769..018b1504a4a 100644 --- a/src/test/resources/cassettes/features/v2/Get_GCP_scan_options_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_GCP_scan_options_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "f9eb4412-690a-34d5-e9ac-6eb62df01fab" + "id": "f9eb4412-690a-34d5-e9ac-6eb62df01fac" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_a_critical_asset_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_critical_asset_returns_OK_response.json index 9190a1a8019..0baec6032c5 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_critical_asset_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_critical_asset_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6ffb5b4d-a3b7-6fa1-1d1c-e0464f43c9e7" + "id": "6ffb5b4d-a3b7-6fa1-1d1c-e0464f43c9e5" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_a_custom_framework_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_custom_framework_returns_OK_response.json index 2249ad7f8b8..009fff14323 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_custom_framework_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_custom_framework_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "13fe9685-b072-5fe0-c841-4499a9e71c71" + "id": "13fe9685-b072-5fe0-c841-4499a9e71c72" }, { "httpRequest": { @@ -79,6 +79,6 @@ "timeToLive": { "unlimited": true }, - "id": "e535722a-99e3-30cf-49f7-2d093bd78b3a" + "id": "e535722a-99e3-30cf-49f7-2d093bd78b3b" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_a_given_APM_retention_filter_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_given_APM_retention_filter_returns_OK_response.json index 3a14fe62055..99e1be2e6b8 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_given_APM_retention_filter_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_given_APM_retention_filter_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069a" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069b" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_a_job_s_details_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_job_s_details_returns_OK_response.json index 4b177525577..082ad2fe876 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_job_s_details_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_job_s_details_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "4c138fa0-d834-5972-8bd7-894a659525af" + "id": "4c138fa0-d834-5972-8bd7-894a659525ad" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_a_restriction_query_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_restriction_query_returns_OK_response.json index d76b3217ed0..0c7c6a0abc1 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_restriction_query_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_restriction_query_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "eb3b308b-3d56-9ef8-4096-dd7718f51862" + "id": "eb3b308b-3d56-9ef8-4096-dd7718f5185f" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.json index d3568a82564..59a863c261f 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_single_dataset_by_ID_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "32c558cf-4a2e-f914-f443-ab94000addce" + "id": "32c558cf-4a2e-f914-f443-ab94000addcf" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_a_specific_pipeline_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_a_specific_pipeline_returns_OK_response.json index 40f41bf5c71..c6e40d9ebaf 100644 --- a/src/test/resources/cassettes/features/v2/Get_a_specific_pipeline_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_a_specific_pipeline_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c7d" + "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c7c" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json index 7fb128d6529..07da3e25a95 100644 --- a/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_all_custom_attributes_config_of_case_type_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6468" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6463" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_all_rules_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_all_rules_returns_OK_response.json index e1d7d6dfa5f..6e336f005de 100644 --- a/src/test/resources/cassettes/features/v2/Get_all_rules_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_all_rules_returns_OK_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "7e2e839d-ac73-21dc-b480-36e366ae09da" + "id": "7e2e839d-ac73-21dc-b480-36e366ae09d9" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Bad_Request_response.json index 6352d5f0102..87cb96a7640 100644 --- a/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Bad_Request_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "3d4d0603-9fed-1cc5-8004-086b9b6ef691" + "id": "3d4d0603-9fed-1cc5-8004-086b9b6ef690" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Not_Found_response.json index 7e5c7b1234d..55368f4ae1c 100644 --- a/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Get_an_AWS_integration_by_config_ID_returns_Not_Found_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "9b33b83c-c8bb-714f-cf71-33ab2f3af9d3" + "id": "9b33b83c-c8bb-714f-cf71-33ab2f3af9d4" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Get_an_existing_Workflow_returns_Successfully_got_a_workflow_response.json b/src/test/resources/cassettes/features/v2/Get_an_existing_Workflow_returns_Successfully_got_a_workflow_response.json index 79b249db928..c859297de35 100644 --- a/src/test/resources/cassettes/features/v2/Get_an_existing_Workflow_returns_Successfully_got_a_workflow_response.json +++ b/src/test/resources/cassettes/features/v2/Get_an_existing_Workflow_returns_Successfully_got_a_workflow_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "ef58c8e5-8d44-f741-5735-0d8c01ffa21f" + "id": "ef58c8e5-8d44-f741-5735-0d8c01ffa21d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_datastore_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_datastore_returns_OK_response.json index 4aba2dd2af0..b79df729351 100644 --- a/src/test/resources/cassettes/features/v2/Get_datastore_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_datastore_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d35" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d34" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_incident_notification_rule_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_incident_notification_rule_returns_OK_response.json index 00f0e4bc8fd..cb29d3d82c6 100644 --- a/src/test/resources/cassettes/features/v2/Get_incident_notification_rule_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_incident_notification_rule_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bdc" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd1" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_incident_notification_template_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_incident_notification_template_returns_OK_response.json index 8af5e0e1230..9e4125a5f12 100644 --- a/src/test/resources/cassettes/features/v2/Get_incident_notification_template_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_incident_notification_template_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bdb" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd8" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json index 5b5d81e7265..0731ce00dfd 100644 --- a/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_the_details_of_a_case_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145ef" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ea" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_Not_Found_response.json index cc6c1703e9a..e9ddbf352f7 100644 --- a/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_Not_Found_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "16438026-1168-3bfa-3763-949697b01fe9" + "id": "16438026-1168-3bfa-3763-949697b01fea" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_OK_response.json index c0406058bb1..6b6dc7ffeef 100644 --- a/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Get_the_details_of_an_error_tracking_issue_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "16438026-1168-3bfa-3763-949697b01fea" + "id": "16438026-1168-3bfa-3763-949697b01fe9" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Gets_a_list_of_data_deletion_requests_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Gets_a_list_of_data_deletion_requests_returns_OK_response.json index 1eccad92176..6ab71e5cb0b 100644 --- a/src/test/resources/cassettes/features/v2/Gets_a_list_of_data_deletion_requests_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Gets_a_list_of_data_deletion_requests_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "516e2b97-25f6-b08c-4d4a-1da22948b32f" + "id": "516e2b97-25f6-b08c-4d4a-1da22948b330" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Grant_permission_to_a_role_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Grant_permission_to_a_role_returns_OK_response.json index efc1f126be5..ce9579ed86c 100644 --- a/src/test/resources/cassettes/features/v2/Grant_permission_to_a_role_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Grant_permission_to_a_role_returns_OK_response.json @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb89216e" + "id": "ab2c08c1-60c7-9278-3246-d650bb892172" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Grant_role_to_a_restriction_query_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Grant_role_to_a_restriction_query_returns_OK_response.json index 1d634f061da..bbb7fb5acd3 100644 --- a/src/test/resources/cassettes/features/v2/Grant_role_to_a_restriction_query_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Grant_role_to_a_restriction_query_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "eb3b308b-3d56-9ef8-4096-dd7718f51861" + "id": "eb3b308b-3d56-9ef8-4096-dd7718f51860" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_AWS_on_demand_tasks_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_AWS_on_demand_tasks_returns_OK_response.json index f5543674faa..61e60b91801 100644 --- a/src/test/resources/cassettes/features/v2/List_AWS_on_demand_tasks_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_AWS_on_demand_tasks_returns_OK_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "7442c701-c89c-a74b-3de9-6b4cff876179" + "id": "7442c701-c89c-a74b-3de9-6b4cff876178" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_GCP_scan_options_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_GCP_scan_options_returns_OK_response.json index e200ee772e9..c09bb52e54b 100644 --- a/src/test/resources/cassettes/features/v2/List_GCP_scan_options_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_GCP_scan_options_returns_OK_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "f9eb4412-690a-34d5-e9ac-6eb62df01fac" + "id": "f9eb4412-690a-34d5-e9ac-6eb62df01fab" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_Scanning_Groups_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_Scanning_Groups_returns_OK_response.json index 386d8e0e05a..b5c65afa164 100644 --- a/src/test/resources/cassettes/features/v2/List_Scanning_Groups_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_Scanning_Groups_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e7b" + "id": "01611a93-5e74-0630-3c51-f707c3b51e7f" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa0" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa3" }, { "httpRequest": { @@ -79,7 +79,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e7c" + "id": "01611a93-5e74-0630-3c51-f707c3b51e80" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_all_APM_retention_filters_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_all_APM_retention_filters_returns_OK_response.json index 83f01f32714..2964c9bb0a0 100644 --- a/src/test/resources/cassettes/features/v2/List_all_APM_retention_filters_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_all_APM_retention_filters_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069e" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff0697" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_all_rules_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_all_rules_returns_OK_response.json index 80e2da9ecca..2cd151adcdb 100644 --- a/src/test/resources/cassettes/features/v2/List_all_rules_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_all_rules_returns_OK_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "7e2e839d-ac73-21dc-b480-36e366ae09d9" + "id": "7e2e839d-ac73-21dc-b480-36e366ae09da" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_datastore_items_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_datastore_items_returns_OK_response.json index 1ec023c7a3f..0251f9fdc84 100644 --- a/src/test/resources/cassettes/features/v2/List_datastore_items_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_datastore_items_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d34" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d2d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_historical_jobs_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_historical_jobs_returns_OK_response.json index 496fbb6e65d..c59d5f476eb 100644 --- a/src/test/resources/cassettes/features/v2/List_historical_jobs_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_historical_jobs_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "4c138fa0-d834-5972-8bd7-894a659525ad" + "id": "4c138fa0-d834-5972-8bd7-894a659525af" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_incident_notification_rules_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_incident_notification_rules_returns_OK_response.json index dd7ac63f41c..3b4c609f8c5 100644 --- a/src/test/resources/cassettes/features/v2/List_incident_notification_rules_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_incident_notification_rules_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bda" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd9" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_namespaces_returns_AWS_Namespaces_List_object_response.json b/src/test/resources/cassettes/features/v2/List_namespaces_returns_AWS_Namespaces_List_object_response.json index b4ab43f6993..f0011c849a4 100644 --- a/src/test/resources/cassettes/features/v2/List_namespaces_returns_AWS_Namespaces_List_object_response.json +++ b/src/test/resources/cassettes/features/v2/List_namespaces_returns_AWS_Namespaces_List_object_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "d0ec7736-ef6c-d071-3390-4a5c3a301d0e" + "id": "d0ec7736-ef6c-d071-3390-4a5c3a301d0f" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_permissions_for_a_role_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_permissions_for_a_role_returns_OK_response.json index e0386327470..a48da463a36 100644 --- a/src/test/resources/cassettes/features/v2/List_permissions_for_a_role_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_permissions_for_a_role_returns_OK_response.json @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb89216f" + "id": "ab2c08c1-60c7-9278-3246-d650bb89216e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_permissions_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_permissions_returns_OK_response.json index 8b5185d00c4..72d39aac15b 100644 --- a/src/test/resources/cassettes/features/v2/List_permissions_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_permissions_returns_OK_response.json @@ -23,6 +23,6 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb89216d" + "id": "ab2c08c1-60c7-9278-3246-d650bb892170" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/List_pipelines_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_pipelines_returns_OK_response.json index 7f8215348d1..be0c8e1fc69 100644 --- a/src/test/resources/cassettes/features/v2/List_pipelines_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_pipelines_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c80" + "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c7d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/List_roles_for_a_restriction_query_returns_OK_response.json b/src/test/resources/cassettes/features/v2/List_roles_for_a_restriction_query_returns_OK_response.json index 76dcecf2554..cd78d0c8aac 100644 --- a/src/test/resources/cassettes/features/v2/List_roles_for_a_restriction_query_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/List_roles_for_a_restriction_query_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "eb3b308b-3d56-9ef8-4096-dd7718f5185e" + "id": "eb3b308b-3d56-9ef8-4096-dd7718f51861" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_No_Content_response.json index 0a176ee003e..1b2ef6880a2 100644 --- a/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_No_Content_response.json @@ -22,6 +22,6 @@ "timeToLive": { "unlimited": true }, - "id": "0f485c8a-a29e-ebed-3836-545f90bc9457" + "id": "0f485c8a-a29e-ebed-3836-545f90bc9458" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_OK_response.json index 974c53ce63d..0a176ee003e 100644 --- a/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Patch_AWS_Scan_Options_returns_OK_response.json @@ -22,6 +22,6 @@ "timeToLive": { "unlimited": true }, - "id": "0f485c8a-a29e-ebed-3836-545f90bc9456" + "id": "0f485c8a-a29e-ebed-3836-545f90bc9457" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Post_GCP_Scan_Options_returns_Agentless_scan_options_enabled_successfully_response.json b/src/test/resources/cassettes/features/v2/Post_GCP_Scan_Options_returns_Agentless_scan_options_enabled_successfully_response.json index 848565e096f..25b85370788 100644 --- a/src/test/resources/cassettes/features/v2/Post_GCP_Scan_Options_returns_Agentless_scan_options_enabled_successfully_response.json +++ b/src/test/resources/cassettes/features/v2/Post_GCP_Scan_Options_returns_Agentless_scan_options_enabled_successfully_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "95d55fc8-65c9-599d-fc62-5922c3357590" + "id": "95d55fc8-65c9-599d-fc62-5922c335758f" }, { "httpRequest": { @@ -48,6 +48,6 @@ "timeToLive": { "unlimited": true }, - "id": "7e1fd6df-f1a0-70b4-90c2-13c11f689f83" + "id": "7e1fd6df-f1a0-70b4-90c2-13c11f689f82" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Publish_App_returns_Created_response.json b/src/test/resources/cassettes/features/v2/Publish_App_returns_Created_response.json index 435d359240b..2a83223836d 100644 --- a/src/test/resources/cassettes/features/v2/Publish_App_returns_Created_response.json +++ b/src/test/resources/cassettes/features/v2/Publish_App_returns_Created_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50d" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50f" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_Bad_Request_response.json index 2925d76e394..8aabfa4bb3c 100644 --- a/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_Bad_Request_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e80" + "id": "01611a93-5e74-0630-3c51-f707c3b51e84" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa3" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa6" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_OK_response.json index 391ac6f5a82..30c90f2c7a1 100644 --- a/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Reorder_Groups_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e82" + "id": "01611a93-5e74-0630-3c51-f707c3b51e81" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa5" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa4" }, { "httpRequest": { @@ -79,7 +79,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e83" + "id": "01611a93-5e74-0630-3c51-f707c3b51e82" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Revoke_permission_returns_Not_found_response.json b/src/test/resources/cassettes/features/v2/Revoke_permission_returns_Not_found_response.json index 7ddd5351e8b..965c63575d1 100644 --- a/src/test/resources/cassettes/features/v2/Revoke_permission_returns_Not_found_response.json +++ b/src/test/resources/cassettes/features/v2/Revoke_permission_returns_Not_found_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb892171" + "id": "ab2c08c1-60c7-9278-3246-d650bb89216d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Revoke_permission_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Revoke_permission_returns_OK_response.json index c412cfe00ae..988f4ea02fd 100644 --- a/src/test/resources/cassettes/features/v2/Revoke_permission_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Revoke_permission_returns_OK_response.json @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb892173" + "id": "ab2c08c1-60c7-9278-3246-d650bb892175" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Run_a_threat_hunting_job_returns_Status_created_response.json b/src/test/resources/cassettes/features/v2/Run_a_threat_hunting_job_returns_Status_created_response.json index de52f958b01..b0ab0c61ed8 100644 --- a/src/test/resources/cassettes/features/v2/Run_a_threat_hunting_job_returns_Status_created_response.json +++ b/src/test/resources/cassettes/features/v2/Run_a_threat_hunting_job_returns_Status_created_response.json @@ -27,6 +27,6 @@ "timeToLive": { "unlimited": true }, - "id": "4c138fa0-d834-5972-8bd7-894a659525ae" + "id": "4c138fa0-d834-5972-8bd7-894a659525ac" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json index 5e1eff89d33..1f92d5f8ee0 100644 --- a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145fb" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f4" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json index 60a873eea23..c5a5a493747 100644 --- a/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Unarchive_case_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145e9" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fe" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json index 30ea1068d6c..75b686bdbbe 100644 --- a/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Unassign_case_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145fe" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f2" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json index 49fb8cc064c..00e0a12ca8e 100644 --- a/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Unassign_case_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145ec" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ee" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Unpublish_App_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Unpublish_App_returns_OK_response.json index 102c77a74fe..f9c3486386c 100644 --- a/src/test/resources/cassettes/features/v2/Unpublish_App_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Unpublish_App_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50f" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c50c" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_AWS_scan_options_returns_No_Content_response.json b/src/test/resources/cassettes/features/v2/Update_AWS_scan_options_returns_No_Content_response.json index 1b2ef6880a2..974c53ce63d 100644 --- a/src/test/resources/cassettes/features/v2/Update_AWS_scan_options_returns_No_Content_response.json +++ b/src/test/resources/cassettes/features/v2/Update_AWS_scan_options_returns_No_Content_response.json @@ -22,6 +22,6 @@ "timeToLive": { "unlimited": true }, - "id": "0f485c8a-a29e-ebed-3836-545f90bc9458" + "id": "0f485c8a-a29e-ebed-3836-545f90bc9456" } ] \ No newline at end of file diff --git a/src/test/resources/cassettes/features/v2/Update_App_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_App_returns_Bad_Request_response.json index 691c38c81f5..3ad98fd9666 100644 --- a/src/test/resources/cassettes/features/v2/Update_App_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_App_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c510" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c511" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_App_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_App_returns_OK_response.json index 1d4cdc5d72d..385920ba074 100644 --- a/src/test/resources/cassettes/features/v2/Update_App_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_App_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "c782b1f3-1b03-d50f-8fcd-12e51226c512" + "id": "c782b1f3-1b03-d50f-8fcd-12e51226c510" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Bad_Request_response.json index f6a98d32dfc..970a0b596df 100644 --- a/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae49" + "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae47" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Not_Found_response.json index b372a39399d..1c923bb6635 100644 --- a/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_Not_Found_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae44" + "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae46" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_OK_response.json index 4f2914f13a5..085c2a10ee9 100644 --- a/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_Org_Connection_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae48" + "id": "76efebf6-d204-c8e8-5a8c-bd11c0a4ae43" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_Scanning_Group_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_Scanning_Group_returns_OK_response.json index 949fd15a46e..31624316407 100644 --- a/src/test/resources/cassettes/features/v2/Update_Scanning_Group_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_Scanning_Group_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e78" + "id": "01611a93-5e74-0630-3c51-f707c3b51e85" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238a9d" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa7" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_Bad_Request_response.json index 62066321bb4..8c7573a6b24 100644 --- a/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_Bad_Request_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e7e" + "id": "01611a93-5e74-0630-3c51-f707c3b51e78" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa2" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238a9d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_OK_response.json index 2a7586fcda9..18d3e95b847 100644 --- a/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_Scanning_Rule_returns_OK_response.json @@ -23,7 +23,7 @@ "timeToLive": { "unlimited": true }, - "id": "01611a93-5e74-0630-3c51-f707c3b51e84" + "id": "01611a93-5e74-0630-3c51-f707c3b51e7a" }, { "httpRequest": { @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238aa6" + "id": "e6af4a2f-dfda-8f06-6f3a-f5528b238a9e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_Bad_Request_response.json index c7a6553a4f2..ffe3aefae73 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "337b2f05-cc5f-2fb5-c7be-e2e0e5bf9442" + "id": "337b2f05-cc5f-2fb5-c7be-e2e0e5bf9443" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_OK_response.json index 7b5287a216a..72e65a80efe 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_WAF_Custom_Rule_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "337b2f05-cc5f-2fb5-c7be-e2e0e5bf9443" + "id": "337b2f05-cc5f-2fb5-c7be-e2e0e5bf9441" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_WAF_exclusion_filter_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_a_WAF_exclusion_filter_returns_Bad_Request_response.json index f24b50ca13f..402e0d483a0 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_WAF_exclusion_filter_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_WAF_exclusion_filter_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "337b2f05-cc5f-2fb5-c7be-e2e0e5bf9441" + "id": "337b2f05-cc5f-2fb5-c7be-e2e0e5bf9442" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_critical_asset_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_critical_asset_returns_OK_response.json index 6b10b1f99cb..3f634cdfdc4 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_critical_asset_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_critical_asset_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6ffb5b4d-a3b7-6fa1-1d1c-e0464f43c9e5" + "id": "6ffb5b4d-a3b7-6fa1-1d1c-e0464f43c9e6" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_legacy_WAF_exclusion_filter_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_a_legacy_WAF_exclusion_filter_returns_Bad_Request_response.json index c3918bef3d9..3d963f1eb76 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_legacy_WAF_exclusion_filter_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_legacy_WAF_exclusion_filter_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "f87651cf-cb9d-db71-c4de-1be9e301b3e9" + "id": "f87651cf-cb9d-db71-c4de-1be9e301b3ea" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_Bad_Request_response.json index 7507a4ec463..3f6cb5725eb 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c7e" + "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c80" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_OK_response.json index 5486c5522b1..7ee7239080c 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_pipeline_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c7c" + "id": "1c5790bf-1fdc-930d-ee1e-046e57b87c7e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_Bad_Request_response.json index e8a192ca3ed..f86ae381a6a 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff0699" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069c" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_OK_response.json index 19bafda234f..a69a6922bcb 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_retention_filter_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff0697" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_retention_filter_with_trace_rate_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_retention_filter_with_trace_rate_returns_OK_response.json index a39d900e784..8ec3516aa37 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_retention_filter_with_trace_rate_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_retention_filter_with_trace_rate_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069d" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff0699" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_Bad_Request_response.json index 889d546c6ee..4e5ca79a29d 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069b" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff0698" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_OK_response.json index 19d4cf1a034..4dbd4d81382 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_retention_filters_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069c" + "id": "b2404278-8cc9-cba4-e3eb-03a7fdff069a" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Request_response.json index a0d5f9cc2e9..2733aa2afce 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Request_response.json @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb892175" + "id": "ab2c08c1-60c7-9278-3246-d650bb89216f" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Role_ID_response.json b/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Role_ID_response.json index 1f8f591d76e..cd124c0cca2 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Role_ID_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_role_returns_Bad_Role_ID_response.json @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb892170" + "id": "ab2c08c1-60c7-9278-3246-d650bb892173" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_a_role_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_a_role_returns_OK_response.json index 3e8008f2657..a6258c72557 100644 --- a/src/test/resources/cassettes/features/v2/Update_a_role_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_a_role_returns_OK_response.json @@ -53,7 +53,7 @@ "timeToLive": { "unlimited": true }, - "id": "ab2c08c1-60c7-9278-3246-d650bb89216c" + "id": "ab2c08c1-60c7-9278-3246-d650bb892171" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_AWS_Account_object_response.json b/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_AWS_Account_object_response.json index e25ebe1df98..6f8a3b3ff88 100644 --- a/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_AWS_Account_object_response.json +++ b/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_AWS_Account_object_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce2" + "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce1" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_Bad_Request_response.json index 5e43645a6a4..b3d0c2aebe2 100644 --- a/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_an_AWS_integration_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce1" + "id": "479ab602-1a6a-ff9c-cfae-4a71849b3ce5" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Bad_request_response.json b/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Bad_request_response.json index 3fff6d70d3c..59be0a3c587 100644 --- a/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Bad_request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Bad_request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "ef58c8e5-8d44-f741-5735-0d8c01ffa21e" + "id": "ef58c8e5-8d44-f741-5735-0d8c01ffa21f" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Successfully_updated_a_workflow_response.json b/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Successfully_updated_a_workflow_response.json index ab514e51ba2..be6cf1cbadf 100644 --- a/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Successfully_updated_a_workflow_response.json +++ b/src/test/resources/cassettes/features/v2/Update_an_existing_Workflow_returns_Successfully_updated_a_workflow_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "ef58c8e5-8d44-f741-5735-0d8c01ffa21d" + "id": "ef58c8e5-8d44-f741-5735-0d8c01ffa21e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_an_incident_type_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_an_incident_type_returns_OK_response.json index d8cb401f985..7bd770826d4 100644 --- a/src/test/resources/cassettes/features/v2/Update_an_incident_type_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_an_incident_type_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd8" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd6" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json index c403571c4ea..743bfbc7078 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8d" + "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json index d2688342500..07e56a25e8a 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_attributes_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f9" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fd" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json index 0fb05ef1dd5..0587c45a38b 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6465" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6468" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json index 87c697b97a9..8630f955ca7 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_Not_Found_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f8" + "id": "79babc38-7a70-5347-c8a6-73b0e70145eb" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json index ee590d62b00..c2b2cab762b 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_custom_attribute_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "dc45fc73-0f09-c12d-941b-eaf799af6464" + "id": "dc45fc73-0f09-c12d-941b-eaf799af6469" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json index 431f560d206..d1c977728b3 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8e" + "id": "0a6534d0-42f2-5075-64f8-7ab28f449a8d" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json index 0facddc7bca..61fbae645d9 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_description_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e7014600" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f9" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json index f17e853b338..dcfef467346 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f7" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fa" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json index f58f1fcd76c..5ccc5cd5b49 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_priority_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145ee" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ff" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json index 9843435430c..6be14122c9a 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_status_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f4" + "id": "79babc38-7a70-5347-c8a6-73b0e70145fb" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json index eb21dfe7899..7bcb7dbadb9 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_Bad_Request_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145fa" + "id": "79babc38-7a70-5347-c8a6-73b0e70145f0" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json index b0f714f21ea..1403550dfe7 100644 --- a/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_case_title_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "79babc38-7a70-5347-c8a6-73b0e70145f1" + "id": "79babc38-7a70-5347-c8a6-73b0e70145ef" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_datastore_item_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_datastore_item_returns_OK_response.json index a293ad3ef40..9f3ed984b69 100644 --- a/src/test/resources/cassettes/features/v2/Update_datastore_item_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_datastore_item_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d2d" + "id": "6574cf7e-1c55-24e1-45d2-b92f9fa74d2e" }, { "httpRequest": { diff --git a/src/test/resources/cassettes/features/v2/Update_incident_notification_rule_returns_OK_response.json b/src/test/resources/cassettes/features/v2/Update_incident_notification_rule_returns_OK_response.json index 0d7f3383d17..4b4aaa2bc5d 100644 --- a/src/test/resources/cassettes/features/v2/Update_incident_notification_rule_returns_OK_response.json +++ b/src/test/resources/cassettes/features/v2/Update_incident_notification_rule_returns_OK_response.json @@ -27,7 +27,7 @@ "timeToLive": { "unlimited": true }, - "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd3" + "id": "7bcfec66-5300-9891-51e5-e4d7e0833bd4" }, { "httpRequest": { diff --git a/src/test/resources/com/datadog/api/client/v2/api/llm_observability.feature b/src/test/resources/com/datadog/api/client/v2/api/llm_observability.feature new file mode 100644 index 00000000000..8462c65eed8 --- /dev/null +++ b/src/test/resources/com/datadog/api/client/v2/api/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/src/test/resources/com/datadog/api/client/v2/api/undo.json b/src/test/resources/com/datadog/api/client/v2/api/undo.json index 09186eef673..80e23efba9e 100644 --- a/src/test/resources/com/datadog/api/client/v2/api/undo.json +++ b/src/test/resources/com/datadog/api/client/v2/api/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": {