/
datasets_client_gen.go
146 lines (135 loc) · 5.32 KB
/
datasets_client_gen.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
package api
// This code is automatically generated based on the open api spec of:
// Lenses API, version: v5.0.0-12-g2721a0e54.
import (
"fmt"
"net/http"
"net/url"
"strconv"
)
// DatasetField is part of the dataset api query params.
type DatasetField string
// DatasetField enum values.
const (
DatasetFieldName DatasetField = "name"
DatasetFieldRecords DatasetField = "records"
DatasetFieldConnectionName DatasetField = "connectionName"
DatasetFieldSourceType DatasetField = "sourceType"
DatasetFieldIsSystemEntity DatasetField = "isSystemEntity"
DatasetFieldRecordsPerSecond DatasetField = "recordsPerSecond"
DatasetFieldKeyType DatasetField = "keyType"
DatasetFieldValueType DatasetField = "valueType"
DatasetFieldReplication DatasetField = "replication"
DatasetFieldConsumers DatasetField = "consumers"
DatasetFieldPartitions DatasetField = "partitions"
DatasetFieldRetentionBytes DatasetField = "retentionBytes"
DatasetFieldRetentionMs DatasetField = "retentionMs"
DatasetFieldSizeBytes DatasetField = "sizeBytes"
DatasetFieldReplicas DatasetField = "replicas"
DatasetFieldShard DatasetField = "shard"
DatasetFieldVersion DatasetField = "version"
DatasetFieldFormat DatasetField = "format"
DatasetFieldCompatibility DatasetField = "compatibility"
)
// Order is part of the dataset api query params.
type Order string
// Order enum values.
const (
OrderAsc Order = "asc"
OrderDesc Order = "desc"
)
// RecordCount is part of the dataset api query params.
type RecordCount string
// RecordCount enum values.
const (
RecordCountEmpty RecordCount = "empty"
RecordCountNonEmpty RecordCount = "nonEmpty"
RecordCountAll RecordCount = "all"
)
// ListDatasetsParameters contain the query parameters for ListDatasets.
type ListDatasetsParameters struct {
Page *int // Optional. The page number to be returned, must be greater than zero. Defaults to 1.
PageSize int // Required. The elements amount on a single page, must be greater than zero.
Query *string // Optional. A search keyword to match dataset, fields and description against.
Connections []string // Optional. A list of connection names to filter by. All connections will be included when no value is supplied.
Tags []string // Optional. A list of tag names to filter by. All tags will be included when no value is supplied.
SortBy DatasetField // Optional. The field to sort results by.
SortingOrder Order // Optional. Sorting order. Defaults to ascending.
IncludeSystemEntities *bool // Optional. A flag to include in the search also system entities (e.g. Kafka's `__consumer_offsets` topic).
IncludeMetadata *bool // Optional. Whether to search only by table name, or also to include field names/documentation (defaults to true).
Format []string // Optional. Schema format. Relevant only when sourceType is `ScheamRegistrySubject`.
HasRecords *bool // Optional. TODO.
Compacted *bool // Optional. TODO.
}
// ListDatasetsPg hides ListDatasets' paging.
func (c *Client) ListDatasetsPg(params ListDatasetsParameters, maxResults int) (vs []DatasetMatch, err error) {
for page := 1; ; page++ {
params.PageSize = 50
params.Page = &page
r, err := c.ListDatasets(params)
if err != nil {
return nil, err
}
vs = append(vs, r.Datasets.Values...)
if maxResults != 0 && len(vs) >= maxResults { // Be dumb. Over-ask and shrink.
vs = vs[:maxResults]
break
}
if page >= r.Datasets.PagesAmount {
break
}
}
return vs, nil
}
// ListDatasets retrieves a list of datasets.
// Tags: Datasets.
func (c *Client) ListDatasets(reqParams ListDatasetsParameters) (res Results, err error) {
query := url.Values{}
if reqParams.Page != nil {
query.Add("page", strconv.Itoa(*reqParams.Page)) // Optional.
}
query.Add("pageSize", strconv.Itoa(reqParams.PageSize)) // Required.
if reqParams.Query != nil {
query.Add("query", *reqParams.Query) // Optional.
}
for _, v := range reqParams.Connections {
query.Add("connections", v)
}
for _, v := range reqParams.Tags {
query.Add("tags", v)
}
if reqParams.SortBy != "" {
query.Add("sortBy", string(reqParams.SortBy)) // Optional.
}
if reqParams.SortingOrder != "" {
query.Add("sortingOrder", string(reqParams.SortingOrder)) // Optional.
}
if reqParams.IncludeSystemEntities != nil {
query.Add("includeSystemEntities", strconv.FormatBool(*reqParams.IncludeSystemEntities)) // Optional.
}
if reqParams.IncludeMetadata != nil {
query.Add("includeMetadata", strconv.FormatBool(*reqParams.IncludeMetadata)) // Optional.
}
for _, v := range reqParams.Format { // Optional.
query.Add("format", v)
}
if reqParams.HasRecords != nil { // Optional.
query.Add("hasRecords", strconv.FormatBool(*reqParams.HasRecords))
}
if reqParams.Compacted != nil { // Optional.
query.Add("compacted", strconv.FormatBool(*reqParams.Compacted))
}
resp, err := c.Do(
http.MethodGet,
"/api/v1/datasets?"+query.Encode(),
contentTypeJSON,
nil,
)
if err != nil {
return Results{}, fmt.Errorf("client do: %w", err)
}
if err := c.ReadJSON(resp, &res); err != nil {
return Results{}, fmt.Errorf("read json: %w", err)
}
return
}