Skip to content

Commit b810aa1

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add public documentation on NDM interface tags endpoint (DataDog#3711)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent e3089b9 commit b810aa1

17 files changed

Lines changed: 739 additions & 0 deletions

.generator/schemas/v2/openapi.yaml

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33939,6 +33939,25 @@ components:
3393933939
- data
3394033940
- meta
3394133941
type: object
33942+
ListInterfaceTagsResponse:
33943+
description: Response for listing interface tags.
33944+
properties:
33945+
data:
33946+
$ref: '#/components/schemas/ListInterfaceTagsResponseData'
33947+
type: object
33948+
ListInterfaceTagsResponseData:
33949+
description: Response data for listing interface tags.
33950+
properties:
33951+
attributes:
33952+
$ref: '#/components/schemas/ListTagsResponseDataAttributes'
33953+
id:
33954+
description: The interface ID
33955+
example: example:1.2.3.4:1
33956+
type: string
33957+
type:
33958+
description: The type of the resource. The value should always be tags.
33959+
type: string
33960+
type: object
3394233961
ListKindCatalogResponse:
3394333962
description: List kind response.
3394433963
properties:
@@ -86637,6 +86656,67 @@ paths:
8663786656
summary: Update the tags for a device
8663886657
tags:
8663986658
- Network Device Monitoring
86659+
/api/v2/ndm/tags/interfaces/{interface_id}:
86660+
get:
86661+
description: Returns the tags associated with the specified interface.
86662+
operationId: ListInterfaceUserTags
86663+
parameters:
86664+
- description: The ID of the interface for which to retrieve tags.
86665+
example: example:1.2.3.4:1
86666+
in: path
86667+
name: interface_id
86668+
required: true
86669+
schema:
86670+
type: string
86671+
responses:
86672+
'200':
86673+
content:
86674+
application/json:
86675+
schema:
86676+
$ref: '#/components/schemas/ListInterfaceTagsResponse'
86677+
description: OK
86678+
'403':
86679+
$ref: '#/components/responses/ForbiddenResponse'
86680+
'404':
86681+
$ref: '#/components/responses/NotFoundResponse'
86682+
'429':
86683+
$ref: '#/components/responses/TooManyRequestsResponse'
86684+
summary: List tags for an interface
86685+
tags:
86686+
- Network Device Monitoring
86687+
patch:
86688+
description: Updates the tags associated with the specified interface.
86689+
operationId: UpdateInterfaceUserTags
86690+
parameters:
86691+
- description: The ID of the interface for which to update tags.
86692+
example: example:1.2.3.4:1
86693+
in: path
86694+
name: interface_id
86695+
required: true
86696+
schema:
86697+
type: string
86698+
requestBody:
86699+
content:
86700+
application/json:
86701+
schema:
86702+
$ref: '#/components/schemas/ListInterfaceTagsResponse'
86703+
required: true
86704+
responses:
86705+
'200':
86706+
content:
86707+
application/json:
86708+
schema:
86709+
$ref: '#/components/schemas/ListInterfaceTagsResponse'
86710+
description: OK
86711+
'403':
86712+
$ref: '#/components/responses/ForbiddenResponse'
86713+
'404':
86714+
$ref: '#/components/responses/NotFoundResponse'
86715+
'429':
86716+
$ref: '#/components/responses/TooManyRequestsResponse'
86717+
summary: Update the tags for an interface
86718+
tags:
86719+
- Network Device Monitoring
8664086720
/api/v2/network/connections/aggregate:
8664186721
get:
8664286722
description: Get all aggregated connections.

api/datadogV2/api_network_device_monitoring.go

Lines changed: 159 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -460,6 +460,84 @@ func (a *NetworkDeviceMonitoringApi) ListDevicesWithPagination(ctx _context.Cont
460460
return items, cancel
461461
}
462462

463+
// ListInterfaceUserTags List tags for an interface.
464+
// Returns the tags associated with the specified interface.
465+
func (a *NetworkDeviceMonitoringApi) ListInterfaceUserTags(ctx _context.Context, interfaceId string) (ListInterfaceTagsResponse, *_nethttp.Response, error) {
466+
var (
467+
localVarHTTPMethod = _nethttp.MethodGet
468+
localVarPostBody interface{}
469+
localVarReturnValue ListInterfaceTagsResponse
470+
)
471+
472+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.NetworkDeviceMonitoringApi.ListInterfaceUserTags")
473+
if err != nil {
474+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
475+
}
476+
477+
localVarPath := localBasePath + "/api/v2/ndm/tags/interfaces/{interface_id}"
478+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{interface_id}", _neturl.PathEscape(datadog.ParameterToString(interfaceId, "")))
479+
480+
localVarHeaderParams := make(map[string]string)
481+
localVarQueryParams := _neturl.Values{}
482+
localVarFormParams := _neturl.Values{}
483+
localVarHeaderParams["Accept"] = "application/json"
484+
485+
if a.Client.Cfg.DelegatedTokenConfig != nil {
486+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
487+
if err != nil {
488+
return localVarReturnValue, nil, err
489+
}
490+
} else {
491+
datadog.SetAuthKeys(
492+
ctx,
493+
&localVarHeaderParams,
494+
[2]string{"apiKeyAuth", "DD-API-KEY"},
495+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
496+
)
497+
}
498+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
499+
if err != nil {
500+
return localVarReturnValue, nil, err
501+
}
502+
503+
localVarHTTPResponse, err := a.Client.CallAPI(req)
504+
if err != nil || localVarHTTPResponse == nil {
505+
return localVarReturnValue, localVarHTTPResponse, err
506+
}
507+
508+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
509+
if err != nil {
510+
return localVarReturnValue, localVarHTTPResponse, err
511+
}
512+
513+
if localVarHTTPResponse.StatusCode >= 300 {
514+
newErr := datadog.GenericOpenAPIError{
515+
ErrorBody: localVarBody,
516+
ErrorMessage: localVarHTTPResponse.Status,
517+
}
518+
if localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
519+
var v APIErrorResponse
520+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
521+
if err != nil {
522+
return localVarReturnValue, localVarHTTPResponse, newErr
523+
}
524+
newErr.ErrorModel = v
525+
}
526+
return localVarReturnValue, localVarHTTPResponse, newErr
527+
}
528+
529+
err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
530+
if err != nil {
531+
newErr := datadog.GenericOpenAPIError{
532+
ErrorBody: localVarBody,
533+
ErrorMessage: err.Error(),
534+
}
535+
return localVarReturnValue, localVarHTTPResponse, newErr
536+
}
537+
538+
return localVarReturnValue, localVarHTTPResponse, nil
539+
}
540+
463541
// UpdateDeviceUserTags Update the tags for a device.
464542
// Update the tags for a device.
465543
func (a *NetworkDeviceMonitoringApi) UpdateDeviceUserTags(ctx _context.Context, deviceId string, body ListTagsResponse) (ListTagsResponse, *_nethttp.Response, error) {
@@ -541,6 +619,87 @@ func (a *NetworkDeviceMonitoringApi) UpdateDeviceUserTags(ctx _context.Context,
541619
return localVarReturnValue, localVarHTTPResponse, nil
542620
}
543621

622+
// UpdateInterfaceUserTags Update the tags for an interface.
623+
// Updates the tags associated with the specified interface.
624+
func (a *NetworkDeviceMonitoringApi) UpdateInterfaceUserTags(ctx _context.Context, interfaceId string, body ListInterfaceTagsResponse) (ListInterfaceTagsResponse, *_nethttp.Response, error) {
625+
var (
626+
localVarHTTPMethod = _nethttp.MethodPatch
627+
localVarPostBody interface{}
628+
localVarReturnValue ListInterfaceTagsResponse
629+
)
630+
631+
localBasePath, err := a.Client.Cfg.ServerURLWithContext(ctx, "v2.NetworkDeviceMonitoringApi.UpdateInterfaceUserTags")
632+
if err != nil {
633+
return localVarReturnValue, nil, datadog.GenericOpenAPIError{ErrorMessage: err.Error()}
634+
}
635+
636+
localVarPath := localBasePath + "/api/v2/ndm/tags/interfaces/{interface_id}"
637+
localVarPath = datadog.ReplacePathParameter(localVarPath, "{interface_id}", _neturl.PathEscape(datadog.ParameterToString(interfaceId, "")))
638+
639+
localVarHeaderParams := make(map[string]string)
640+
localVarQueryParams := _neturl.Values{}
641+
localVarFormParams := _neturl.Values{}
642+
localVarHeaderParams["Content-Type"] = "application/json"
643+
localVarHeaderParams["Accept"] = "application/json"
644+
645+
// body params
646+
localVarPostBody = &body
647+
if a.Client.Cfg.DelegatedTokenConfig != nil {
648+
err = datadog.UseDelegatedTokenAuth(ctx, &localVarHeaderParams, a.Client.Cfg.DelegatedTokenConfig)
649+
if err != nil {
650+
return localVarReturnValue, nil, err
651+
}
652+
} else {
653+
datadog.SetAuthKeys(
654+
ctx,
655+
&localVarHeaderParams,
656+
[2]string{"apiKeyAuth", "DD-API-KEY"},
657+
[2]string{"appKeyAuth", "DD-APPLICATION-KEY"},
658+
)
659+
}
660+
req, err := a.Client.PrepareRequest(ctx, localVarPath, localVarHTTPMethod, localVarPostBody, localVarHeaderParams, localVarQueryParams, localVarFormParams, nil)
661+
if err != nil {
662+
return localVarReturnValue, nil, err
663+
}
664+
665+
localVarHTTPResponse, err := a.Client.CallAPI(req)
666+
if err != nil || localVarHTTPResponse == nil {
667+
return localVarReturnValue, localVarHTTPResponse, err
668+
}
669+
670+
localVarBody, err := datadog.ReadBody(localVarHTTPResponse)
671+
if err != nil {
672+
return localVarReturnValue, localVarHTTPResponse, err
673+
}
674+
675+
if localVarHTTPResponse.StatusCode >= 300 {
676+
newErr := datadog.GenericOpenAPIError{
677+
ErrorBody: localVarBody,
678+
ErrorMessage: localVarHTTPResponse.Status,
679+
}
680+
if localVarHTTPResponse.StatusCode == 403 || localVarHTTPResponse.StatusCode == 404 || localVarHTTPResponse.StatusCode == 429 {
681+
var v APIErrorResponse
682+
err = a.Client.Decode(&v, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
683+
if err != nil {
684+
return localVarReturnValue, localVarHTTPResponse, newErr
685+
}
686+
newErr.ErrorModel = v
687+
}
688+
return localVarReturnValue, localVarHTTPResponse, newErr
689+
}
690+
691+
err = a.Client.Decode(&localVarReturnValue, localVarBody, localVarHTTPResponse.Header.Get("Content-Type"))
692+
if err != nil {
693+
newErr := datadog.GenericOpenAPIError{
694+
ErrorBody: localVarBody,
695+
ErrorMessage: err.Error(),
696+
}
697+
return localVarReturnValue, localVarHTTPResponse, newErr
698+
}
699+
700+
return localVarReturnValue, localVarHTTPResponse, nil
701+
}
702+
544703
// NewNetworkDeviceMonitoringApi Returns NewNetworkDeviceMonitoringApi.
545704
func NewNetworkDeviceMonitoringApi(client *datadog.APIClient) *NetworkDeviceMonitoringApi {
546705
return &NetworkDeviceMonitoringApi{

api/datadogV2/doc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,7 +464,9 @@
464464
// - [NetworkDeviceMonitoringApi.GetInterfaces]
465465
// - [NetworkDeviceMonitoringApi.ListDeviceUserTags]
466466
// - [NetworkDeviceMonitoringApi.ListDevices]
467+
// - [NetworkDeviceMonitoringApi.ListInterfaceUserTags]
467468
// - [NetworkDeviceMonitoringApi.UpdateDeviceUserTags]
469+
// - [NetworkDeviceMonitoringApi.UpdateInterfaceUserTags]
468470
// - [OCIIntegrationApi.CreateTenancyConfig]
469471
// - [OCIIntegrationApi.DeleteTenancyConfig]
470472
// - [OCIIntegrationApi.GetTenancyConfig]
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
2+
// This product includes software developed at Datadog (https://www.datadoghq.com/).
3+
// Copyright 2019-Present Datadog, Inc.
4+
5+
package datadogV2
6+
7+
import (
8+
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
9+
)
10+
11+
// ListInterfaceTagsResponse Response for listing interface tags.
12+
type ListInterfaceTagsResponse struct {
13+
// Response data for listing interface tags.
14+
Data *ListInterfaceTagsResponseData `json:"data,omitempty"`
15+
// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
16+
UnparsedObject map[string]interface{} `json:"-"`
17+
AdditionalProperties map[string]interface{} `json:"-"`
18+
}
19+
20+
// NewListInterfaceTagsResponse instantiates a new ListInterfaceTagsResponse object.
21+
// This constructor will assign default values to properties that have it defined,
22+
// and makes sure properties required by API are set, but the set of arguments
23+
// will change when the set of required properties is changed.
24+
func NewListInterfaceTagsResponse() *ListInterfaceTagsResponse {
25+
this := ListInterfaceTagsResponse{}
26+
return &this
27+
}
28+
29+
// NewListInterfaceTagsResponseWithDefaults instantiates a new ListInterfaceTagsResponse object.
30+
// This constructor will only assign default values to properties that have it defined,
31+
// but it doesn't guarantee that properties required by API are set.
32+
func NewListInterfaceTagsResponseWithDefaults() *ListInterfaceTagsResponse {
33+
this := ListInterfaceTagsResponse{}
34+
return &this
35+
}
36+
37+
// GetData returns the Data field value if set, zero value otherwise.
38+
func (o *ListInterfaceTagsResponse) GetData() ListInterfaceTagsResponseData {
39+
if o == nil || o.Data == nil {
40+
var ret ListInterfaceTagsResponseData
41+
return ret
42+
}
43+
return *o.Data
44+
}
45+
46+
// GetDataOk returns a tuple with the Data field value if set, nil otherwise
47+
// and a boolean to check if the value has been set.
48+
func (o *ListInterfaceTagsResponse) GetDataOk() (*ListInterfaceTagsResponseData, bool) {
49+
if o == nil || o.Data == nil {
50+
return nil, false
51+
}
52+
return o.Data, true
53+
}
54+
55+
// HasData returns a boolean if a field has been set.
56+
func (o *ListInterfaceTagsResponse) HasData() bool {
57+
return o != nil && o.Data != nil
58+
}
59+
60+
// SetData gets a reference to the given ListInterfaceTagsResponseData and assigns it to the Data field.
61+
func (o *ListInterfaceTagsResponse) SetData(v ListInterfaceTagsResponseData) {
62+
o.Data = &v
63+
}
64+
65+
// MarshalJSON serializes the struct using spec logic.
66+
func (o ListInterfaceTagsResponse) MarshalJSON() ([]byte, error) {
67+
toSerialize := map[string]interface{}{}
68+
if o.UnparsedObject != nil {
69+
return datadog.Marshal(o.UnparsedObject)
70+
}
71+
if o.Data != nil {
72+
toSerialize["data"] = o.Data
73+
}
74+
75+
for key, value := range o.AdditionalProperties {
76+
toSerialize[key] = value
77+
}
78+
return datadog.Marshal(toSerialize)
79+
}
80+
81+
// UnmarshalJSON deserializes the given payload.
82+
func (o *ListInterfaceTagsResponse) UnmarshalJSON(bytes []byte) (err error) {
83+
all := struct {
84+
Data *ListInterfaceTagsResponseData `json:"data,omitempty"`
85+
}{}
86+
if err = datadog.Unmarshal(bytes, &all); err != nil {
87+
return datadog.Unmarshal(bytes, &o.UnparsedObject)
88+
}
89+
additionalProperties := make(map[string]interface{})
90+
if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil {
91+
datadog.DeleteKeys(additionalProperties, &[]string{"data"})
92+
} else {
93+
return err
94+
}
95+
96+
hasInvalidField := false
97+
if all.Data != nil && all.Data.UnparsedObject != nil && o.UnparsedObject == nil {
98+
hasInvalidField = true
99+
}
100+
o.Data = all.Data
101+
102+
if len(additionalProperties) > 0 {
103+
o.AdditionalProperties = additionalProperties
104+
}
105+
106+
if hasInvalidField {
107+
return datadog.Unmarshal(bytes, &o.UnparsedObject)
108+
}
109+
110+
return nil
111+
}

0 commit comments

Comments
 (0)