Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Typing Inconsistency for "v1.SearchSLOResponse" on GET /api/v1/slo endpoints #1461

Open
Vroomfrondal opened this issue Dec 19, 2023 · 5 comments

Comments

@Vroomfrondal
Copy link

Describe the bug
Bad key typing on the v1.SearchSLOResponse typescript type for GET /api/v1/slo/search. Proper response type is in snake_case while intellisense suggests camelCase for the property type.

Example 1:

const type = sloData.data.attributes.slos[0].data.attributes?.sloType // actual property is `.slo_type`

Example 2:

const status = sloData.data.attributes.slos[0].data.attributes?.overallStatus // actual property is `.overall_status`

To Reproduce

  1. in a typescript environment create a GET request to https://api.datadoghq.com/api/v1/slo/search
  2. Ensure the response type is using v1.SearchSLOResponse
  3. View the response data and observe examples listed above within code-editors intellisense

Expected behavior

  • When using the property in code you should see a snake_case suggestion.

Screenshots
Screenshot 2023-12-19 at 3 01 46 PM

Environment and Versions (please complete the following information):

  • datadog/datadog-api-client version 1.19.0
  • Typescript
@Vroomfrondal Vroomfrondal changed the title Typing Inconsistency for "v1.SearchSLOResponse" on GET /api/v1/slo/search Typing Inconsistency for "v1.SearchSLOResponse" on GET /api/v1/slo endpoints Dec 19, 2023
@therve
Copy link
Contributor

therve commented Dec 21, 2023

Hi,

Do you have a reproducible example? Models are creating camelCase properties, which are available in my testing. Here is what I run:

import { client, v1 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v1.ServiceLevelObjectivesApi(configuration);

const params: v1.ServiceLevelObjectivesApiSearchSLORequest = {
  pageSize: 20,
  pageNumber: 0,
};

apiInstance
  .searchSLO(params)
  .then((data: v1.SearchSLOResponse) => {
    console.log(data.data.attributes.slos[0].data.attributes?.sloType)
    console.log(data.data.attributes.slos[0].data.attributes?.overallStatus)
  })
  .catch((error: any) => console.error(error));

Thanks.

@Vroomfrondal
Copy link
Author

Vroomfrondal commented Dec 26, 2023

Hey @therve

So that example you provided works for you? Because if asked that's the example I would provide. For me sloType and overallStatus are actually slo_type and overall_status. Requiring a @ts-expect-error for intellisense to ignore.

There are similar (but unrelated) issues like this throughout. For example, on the POST endpoint to create embedded graphs - the "size" parameter is an enum of strings (by fact and documentation) but vscode is saying it should be a number type.

@therve
Copy link
Contributor

therve commented Dec 26, 2023

Yes that example work for me. What's your typescript version? The embedded graphs doesn't generate clients. so it's a different issue indeed.

@Vroomfrondal
Copy link
Author

5.0.4, Admittedly a few behind. Maybe this was solved already?

Copy link

Thanks for your contribution!

This issue has been automatically marked as stale because it has not had activity in the last 30 days. Note that the issue will not be automatically closed, but this notification will remind us to investigate why there's been inactivity. Thank you for participating in the Datadog open source community.

If you would like this issue to remain open:

  1. Verify that you can still reproduce the issue in the latest version of this project.

  2. Comment that the issue is still reproducible and include updated details requested in the issue template.

@github-actions github-actions bot added the stale label Jan 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants