Skip to content

Commit 9c89ced

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add Datastore trigger to Workflow Automation public API (DataDog#3373)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent cfab4fa commit 9c89ced

4 files changed

Lines changed: 306 additions & 0 deletions

File tree

.generator/schemas/v2/openapi.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14697,6 +14697,23 @@ components:
1469714697
x-enum-varnames:
1469814698
- NONE
1469914699
- UUID
14700+
DatastoreTrigger:
14701+
description: Trigger a workflow from a Datastore. For automatic triggering a
14702+
handle must be configured and the workflow must be published.
14703+
properties:
14704+
rateLimit:
14705+
$ref: '#/components/schemas/TriggerRateLimit'
14706+
type: object
14707+
DatastoreTriggerWrapper:
14708+
description: Schema for a Datastore-based trigger.
14709+
properties:
14710+
datastoreTrigger:
14711+
$ref: '#/components/schemas/DatastoreTrigger'
14712+
startStepNames:
14713+
$ref: '#/components/schemas/StartStepNames'
14714+
required:
14715+
- datastoreTrigger
14716+
type: object
1470014717
Date:
1470114718
description: Date as Unix timestamp in milliseconds.
1470214719
example: 1722439510282
@@ -47710,6 +47727,7 @@ components:
4771047727
- $ref: '#/components/schemas/CaseTriggerWrapper'
4771147728
- $ref: '#/components/schemas/ChangeEventTriggerWrapper'
4771247729
- $ref: '#/components/schemas/DatabaseMonitoringTriggerWrapper'
47730+
- $ref: '#/components/schemas/DatastoreTriggerWrapper'
4771347731
- $ref: '#/components/schemas/DashboardTriggerWrapper'
4771447732
- $ref: '#/components/schemas/GithubWebhookTriggerWrapper'
4771547733
- $ref: '#/components/schemas/IncidentTriggerWrapper'
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+
// DatastoreTrigger Trigger a workflow from a Datastore. For automatic triggering a handle must be configured and the workflow must be published.
12+
type DatastoreTrigger struct {
13+
// Defines a rate limit for a trigger.
14+
RateLimit *TriggerRateLimit `json:"rateLimit,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+
// NewDatastoreTrigger instantiates a new DatastoreTrigger 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 NewDatastoreTrigger() *DatastoreTrigger {
25+
this := DatastoreTrigger{}
26+
return &this
27+
}
28+
29+
// NewDatastoreTriggerWithDefaults instantiates a new DatastoreTrigger 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 NewDatastoreTriggerWithDefaults() *DatastoreTrigger {
33+
this := DatastoreTrigger{}
34+
return &this
35+
}
36+
37+
// GetRateLimit returns the RateLimit field value if set, zero value otherwise.
38+
func (o *DatastoreTrigger) GetRateLimit() TriggerRateLimit {
39+
if o == nil || o.RateLimit == nil {
40+
var ret TriggerRateLimit
41+
return ret
42+
}
43+
return *o.RateLimit
44+
}
45+
46+
// GetRateLimitOk returns a tuple with the RateLimit field value if set, nil otherwise
47+
// and a boolean to check if the value has been set.
48+
func (o *DatastoreTrigger) GetRateLimitOk() (*TriggerRateLimit, bool) {
49+
if o == nil || o.RateLimit == nil {
50+
return nil, false
51+
}
52+
return o.RateLimit, true
53+
}
54+
55+
// HasRateLimit returns a boolean if a field has been set.
56+
func (o *DatastoreTrigger) HasRateLimit() bool {
57+
return o != nil && o.RateLimit != nil
58+
}
59+
60+
// SetRateLimit gets a reference to the given TriggerRateLimit and assigns it to the RateLimit field.
61+
func (o *DatastoreTrigger) SetRateLimit(v TriggerRateLimit) {
62+
o.RateLimit = &v
63+
}
64+
65+
// MarshalJSON serializes the struct using spec logic.
66+
func (o DatastoreTrigger) MarshalJSON() ([]byte, error) {
67+
toSerialize := map[string]interface{}{}
68+
if o.UnparsedObject != nil {
69+
return datadog.Marshal(o.UnparsedObject)
70+
}
71+
if o.RateLimit != nil {
72+
toSerialize["rateLimit"] = o.RateLimit
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 *DatastoreTrigger) UnmarshalJSON(bytes []byte) (err error) {
83+
all := struct {
84+
RateLimit *TriggerRateLimit `json:"rateLimit,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{"rateLimit"})
92+
} else {
93+
return err
94+
}
95+
96+
hasInvalidField := false
97+
if all.RateLimit != nil && all.RateLimit.UnparsedObject != nil && o.UnparsedObject == nil {
98+
hasInvalidField = true
99+
}
100+
o.RateLimit = all.RateLimit
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+
}
Lines changed: 145 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,145 @@
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+
"fmt"
9+
10+
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
11+
)
12+
13+
// DatastoreTriggerWrapper Schema for a Datastore-based trigger.
14+
type DatastoreTriggerWrapper struct {
15+
// Trigger a workflow from a Datastore. For automatic triggering a handle must be configured and the workflow must be published.
16+
DatastoreTrigger DatastoreTrigger `json:"datastoreTrigger"`
17+
// A list of steps that run first after a trigger fires.
18+
StartStepNames []string `json:"startStepNames,omitempty"`
19+
// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
20+
UnparsedObject map[string]interface{} `json:"-"`
21+
AdditionalProperties map[string]interface{} `json:"-"`
22+
}
23+
24+
// NewDatastoreTriggerWrapper instantiates a new DatastoreTriggerWrapper object.
25+
// This constructor will assign default values to properties that have it defined,
26+
// and makes sure properties required by API are set, but the set of arguments
27+
// will change when the set of required properties is changed.
28+
func NewDatastoreTriggerWrapper(datastoreTrigger DatastoreTrigger) *DatastoreTriggerWrapper {
29+
this := DatastoreTriggerWrapper{}
30+
this.DatastoreTrigger = datastoreTrigger
31+
return &this
32+
}
33+
34+
// NewDatastoreTriggerWrapperWithDefaults instantiates a new DatastoreTriggerWrapper object.
35+
// This constructor will only assign default values to properties that have it defined,
36+
// but it doesn't guarantee that properties required by API are set.
37+
func NewDatastoreTriggerWrapperWithDefaults() *DatastoreTriggerWrapper {
38+
this := DatastoreTriggerWrapper{}
39+
return &this
40+
}
41+
42+
// GetDatastoreTrigger returns the DatastoreTrigger field value.
43+
func (o *DatastoreTriggerWrapper) GetDatastoreTrigger() DatastoreTrigger {
44+
if o == nil {
45+
var ret DatastoreTrigger
46+
return ret
47+
}
48+
return o.DatastoreTrigger
49+
}
50+
51+
// GetDatastoreTriggerOk returns a tuple with the DatastoreTrigger field value
52+
// and a boolean to check if the value has been set.
53+
func (o *DatastoreTriggerWrapper) GetDatastoreTriggerOk() (*DatastoreTrigger, bool) {
54+
if o == nil {
55+
return nil, false
56+
}
57+
return &o.DatastoreTrigger, true
58+
}
59+
60+
// SetDatastoreTrigger sets field value.
61+
func (o *DatastoreTriggerWrapper) SetDatastoreTrigger(v DatastoreTrigger) {
62+
o.DatastoreTrigger = v
63+
}
64+
65+
// GetStartStepNames returns the StartStepNames field value if set, zero value otherwise.
66+
func (o *DatastoreTriggerWrapper) GetStartStepNames() []string {
67+
if o == nil || o.StartStepNames == nil {
68+
var ret []string
69+
return ret
70+
}
71+
return o.StartStepNames
72+
}
73+
74+
// GetStartStepNamesOk returns a tuple with the StartStepNames field value if set, nil otherwise
75+
// and a boolean to check if the value has been set.
76+
func (o *DatastoreTriggerWrapper) GetStartStepNamesOk() (*[]string, bool) {
77+
if o == nil || o.StartStepNames == nil {
78+
return nil, false
79+
}
80+
return &o.StartStepNames, true
81+
}
82+
83+
// HasStartStepNames returns a boolean if a field has been set.
84+
func (o *DatastoreTriggerWrapper) HasStartStepNames() bool {
85+
return o != nil && o.StartStepNames != nil
86+
}
87+
88+
// SetStartStepNames gets a reference to the given []string and assigns it to the StartStepNames field.
89+
func (o *DatastoreTriggerWrapper) SetStartStepNames(v []string) {
90+
o.StartStepNames = v
91+
}
92+
93+
// MarshalJSON serializes the struct using spec logic.
94+
func (o DatastoreTriggerWrapper) MarshalJSON() ([]byte, error) {
95+
toSerialize := map[string]interface{}{}
96+
if o.UnparsedObject != nil {
97+
return datadog.Marshal(o.UnparsedObject)
98+
}
99+
toSerialize["datastoreTrigger"] = o.DatastoreTrigger
100+
if o.StartStepNames != nil {
101+
toSerialize["startStepNames"] = o.StartStepNames
102+
}
103+
104+
for key, value := range o.AdditionalProperties {
105+
toSerialize[key] = value
106+
}
107+
return datadog.Marshal(toSerialize)
108+
}
109+
110+
// UnmarshalJSON deserializes the given payload.
111+
func (o *DatastoreTriggerWrapper) UnmarshalJSON(bytes []byte) (err error) {
112+
all := struct {
113+
DatastoreTrigger *DatastoreTrigger `json:"datastoreTrigger"`
114+
StartStepNames []string `json:"startStepNames,omitempty"`
115+
}{}
116+
if err = datadog.Unmarshal(bytes, &all); err != nil {
117+
return datadog.Unmarshal(bytes, &o.UnparsedObject)
118+
}
119+
if all.DatastoreTrigger == nil {
120+
return fmt.Errorf("required field datastoreTrigger missing")
121+
}
122+
additionalProperties := make(map[string]interface{})
123+
if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil {
124+
datadog.DeleteKeys(additionalProperties, &[]string{"datastoreTrigger", "startStepNames"})
125+
} else {
126+
return err
127+
}
128+
129+
hasInvalidField := false
130+
if all.DatastoreTrigger.UnparsedObject != nil && o.UnparsedObject == nil {
131+
hasInvalidField = true
132+
}
133+
o.DatastoreTrigger = *all.DatastoreTrigger
134+
o.StartStepNames = all.StartStepNames
135+
136+
if len(additionalProperties) > 0 {
137+
o.AdditionalProperties = additionalProperties
138+
}
139+
140+
if hasInvalidField {
141+
return datadog.Unmarshal(bytes, &o.UnparsedObject)
142+
}
143+
144+
return nil
145+
}

api/datadogV2/model_trigger.go

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ type Trigger struct {
1515
CaseTriggerWrapper *CaseTriggerWrapper
1616
ChangeEventTriggerWrapper *ChangeEventTriggerWrapper
1717
DatabaseMonitoringTriggerWrapper *DatabaseMonitoringTriggerWrapper
18+
DatastoreTriggerWrapper *DatastoreTriggerWrapper
1819
DashboardTriggerWrapper *DashboardTriggerWrapper
1920
GithubWebhookTriggerWrapper *GithubWebhookTriggerWrapper
2021
IncidentTriggerWrapper *IncidentTriggerWrapper
@@ -56,6 +57,11 @@ func DatabaseMonitoringTriggerWrapperAsTrigger(v *DatabaseMonitoringTriggerWrapp
5657
return Trigger{DatabaseMonitoringTriggerWrapper: v}
5758
}
5859

60+
// DatastoreTriggerWrapperAsTrigger is a convenience function that returns DatastoreTriggerWrapper wrapped in Trigger.
61+
func DatastoreTriggerWrapperAsTrigger(v *DatastoreTriggerWrapper) Trigger {
62+
return Trigger{DatastoreTriggerWrapper: v}
63+
}
64+
5965
// DashboardTriggerWrapperAsTrigger is a convenience function that returns DashboardTriggerWrapper wrapped in Trigger.
6066
func DashboardTriggerWrapperAsTrigger(v *DashboardTriggerWrapper) Trigger {
6167
return Trigger{DashboardTriggerWrapper: v}
@@ -200,6 +206,23 @@ func (obj *Trigger) UnmarshalJSON(data []byte) error {
200206
obj.DatabaseMonitoringTriggerWrapper = nil
201207
}
202208

209+
// try to unmarshal data into DatastoreTriggerWrapper
210+
err = datadog.Unmarshal(data, &obj.DatastoreTriggerWrapper)
211+
if err == nil {
212+
if obj.DatastoreTriggerWrapper != nil && obj.DatastoreTriggerWrapper.UnparsedObject == nil {
213+
jsonDatastoreTriggerWrapper, _ := datadog.Marshal(obj.DatastoreTriggerWrapper)
214+
if string(jsonDatastoreTriggerWrapper) == "{}" { // empty struct
215+
obj.DatastoreTriggerWrapper = nil
216+
} else {
217+
match++
218+
}
219+
} else {
220+
obj.DatastoreTriggerWrapper = nil
221+
}
222+
} else {
223+
obj.DatastoreTriggerWrapper = nil
224+
}
225+
203226
// try to unmarshal data into DashboardTriggerWrapper
204227
err = datadog.Unmarshal(data, &obj.DashboardTriggerWrapper)
205228
if err == nil {
@@ -394,6 +417,7 @@ func (obj *Trigger) UnmarshalJSON(data []byte) error {
394417
obj.CaseTriggerWrapper = nil
395418
obj.ChangeEventTriggerWrapper = nil
396419
obj.DatabaseMonitoringTriggerWrapper = nil
420+
obj.DatastoreTriggerWrapper = nil
397421
obj.DashboardTriggerWrapper = nil
398422
obj.GithubWebhookTriggerWrapper = nil
399423
obj.IncidentTriggerWrapper = nil
@@ -432,6 +456,10 @@ func (obj Trigger) MarshalJSON() ([]byte, error) {
432456
return datadog.Marshal(&obj.DatabaseMonitoringTriggerWrapper)
433457
}
434458

459+
if obj.DatastoreTriggerWrapper != nil {
460+
return datadog.Marshal(&obj.DatastoreTriggerWrapper)
461+
}
462+
435463
if obj.DashboardTriggerWrapper != nil {
436464
return datadog.Marshal(&obj.DashboardTriggerWrapper)
437465
}
@@ -504,6 +532,10 @@ func (obj *Trigger) GetActualInstance() interface{} {
504532
return obj.DatabaseMonitoringTriggerWrapper
505533
}
506534

535+
if obj.DatastoreTriggerWrapper != nil {
536+
return obj.DatastoreTriggerWrapper
537+
}
538+
507539
if obj.DashboardTriggerWrapper != nil {
508540
return obj.DashboardTriggerWrapper
509541
}

0 commit comments

Comments
 (0)