Skip to content

Commit 7346b32

Browse files
api-clients-generation-pipeline[bot]ci.datadog-api-spec
andauthored
Add On-Call Trigger to Workflow Automation Public API (#3639)
Co-authored-by: ci.datadog-api-spec <packages@datadoghq.com>
1 parent da8bc38 commit 7346b32

4 files changed

Lines changed: 307 additions & 0 deletions

File tree

.generator/schemas/v2/openapi.yaml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42479,6 +42479,24 @@ components:
4247942479
- type
4248042480
- method
4248142481
type: object
42482+
OnCallTrigger:
42483+
description: Trigger a workflow from an On-Call Page or On-Call Handover. For
42484+
automatic triggering a handle must be configured and the workflow must be
42485+
published.
42486+
properties:
42487+
rateLimit:
42488+
$ref: '#/components/schemas/TriggerRateLimit'
42489+
type: object
42490+
OnCallTriggerWrapper:
42491+
description: Schema for an On-Call-based trigger.
42492+
properties:
42493+
onCallTrigger:
42494+
$ref: '#/components/schemas/OnCallTrigger'
42495+
startStepNames:
42496+
$ref: '#/components/schemas/StartStepNames'
42497+
required:
42498+
- onCallTrigger
42499+
type: object
4248242500
OnDemandConcurrencyCap:
4248342501
description: On-demand concurrency cap.
4248442502
properties:
@@ -62075,6 +62093,7 @@ components:
6207562093
- $ref: '#/components/schemas/IncidentTriggerWrapper'
6207662094
- $ref: '#/components/schemas/MonitorTriggerWrapper'
6207762095
- $ref: '#/components/schemas/NotebookTriggerWrapper'
62096+
- $ref: '#/components/schemas/OnCallTriggerWrapper'
6207862097
- $ref: '#/components/schemas/ScheduleTriggerWrapper'
6207962098
- $ref: '#/components/schemas/SecurityTriggerWrapper'
6208062099
- $ref: '#/components/schemas/SelfServiceTriggerWrapper'
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+
// OnCallTrigger Trigger a workflow from an On-Call Page or On-Call Handover. For automatic triggering a handle must be configured and the workflow must be published.
12+
type OnCallTrigger 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+
// NewOnCallTrigger instantiates a new OnCallTrigger 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 NewOnCallTrigger() *OnCallTrigger {
25+
this := OnCallTrigger{}
26+
return &this
27+
}
28+
29+
// NewOnCallTriggerWithDefaults instantiates a new OnCallTrigger 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 NewOnCallTriggerWithDefaults() *OnCallTrigger {
33+
this := OnCallTrigger{}
34+
return &this
35+
}
36+
37+
// GetRateLimit returns the RateLimit field value if set, zero value otherwise.
38+
func (o *OnCallTrigger) 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 *OnCallTrigger) 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 *OnCallTrigger) 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 *OnCallTrigger) SetRateLimit(v TriggerRateLimit) {
62+
o.RateLimit = &v
63+
}
64+
65+
// MarshalJSON serializes the struct using spec logic.
66+
func (o OnCallTrigger) 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 *OnCallTrigger) 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+
// OnCallTriggerWrapper Schema for an On-Call-based trigger.
14+
type OnCallTriggerWrapper struct {
15+
// Trigger a workflow from an On-Call Page or On-Call Handover. For automatic triggering a handle must be configured and the workflow must be published.
16+
OnCallTrigger OnCallTrigger `json:"onCallTrigger"`
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+
// NewOnCallTriggerWrapper instantiates a new OnCallTriggerWrapper 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 NewOnCallTriggerWrapper(onCallTrigger OnCallTrigger) *OnCallTriggerWrapper {
29+
this := OnCallTriggerWrapper{}
30+
this.OnCallTrigger = onCallTrigger
31+
return &this
32+
}
33+
34+
// NewOnCallTriggerWrapperWithDefaults instantiates a new OnCallTriggerWrapper 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 NewOnCallTriggerWrapperWithDefaults() *OnCallTriggerWrapper {
38+
this := OnCallTriggerWrapper{}
39+
return &this
40+
}
41+
42+
// GetOnCallTrigger returns the OnCallTrigger field value.
43+
func (o *OnCallTriggerWrapper) GetOnCallTrigger() OnCallTrigger {
44+
if o == nil {
45+
var ret OnCallTrigger
46+
return ret
47+
}
48+
return o.OnCallTrigger
49+
}
50+
51+
// GetOnCallTriggerOk returns a tuple with the OnCallTrigger field value
52+
// and a boolean to check if the value has been set.
53+
func (o *OnCallTriggerWrapper) GetOnCallTriggerOk() (*OnCallTrigger, bool) {
54+
if o == nil {
55+
return nil, false
56+
}
57+
return &o.OnCallTrigger, true
58+
}
59+
60+
// SetOnCallTrigger sets field value.
61+
func (o *OnCallTriggerWrapper) SetOnCallTrigger(v OnCallTrigger) {
62+
o.OnCallTrigger = v
63+
}
64+
65+
// GetStartStepNames returns the StartStepNames field value if set, zero value otherwise.
66+
func (o *OnCallTriggerWrapper) 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 *OnCallTriggerWrapper) 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 *OnCallTriggerWrapper) 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 *OnCallTriggerWrapper) SetStartStepNames(v []string) {
90+
o.StartStepNames = v
91+
}
92+
93+
// MarshalJSON serializes the struct using spec logic.
94+
func (o OnCallTriggerWrapper) MarshalJSON() ([]byte, error) {
95+
toSerialize := map[string]interface{}{}
96+
if o.UnparsedObject != nil {
97+
return datadog.Marshal(o.UnparsedObject)
98+
}
99+
toSerialize["onCallTrigger"] = o.OnCallTrigger
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 *OnCallTriggerWrapper) UnmarshalJSON(bytes []byte) (err error) {
112+
all := struct {
113+
OnCallTrigger *OnCallTrigger `json:"onCallTrigger"`
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.OnCallTrigger == nil {
120+
return fmt.Errorf("required field onCallTrigger missing")
121+
}
122+
additionalProperties := make(map[string]interface{})
123+
if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil {
124+
datadog.DeleteKeys(additionalProperties, &[]string{"onCallTrigger", "startStepNames"})
125+
} else {
126+
return err
127+
}
128+
129+
hasInvalidField := false
130+
if all.OnCallTrigger.UnparsedObject != nil && o.UnparsedObject == nil {
131+
hasInvalidField = true
132+
}
133+
o.OnCallTrigger = *all.OnCallTrigger
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
@@ -21,6 +21,7 @@ type Trigger struct {
2121
IncidentTriggerWrapper *IncidentTriggerWrapper
2222
MonitorTriggerWrapper *MonitorTriggerWrapper
2323
NotebookTriggerWrapper *NotebookTriggerWrapper
24+
OnCallTriggerWrapper *OnCallTriggerWrapper
2425
ScheduleTriggerWrapper *ScheduleTriggerWrapper
2526
SecurityTriggerWrapper *SecurityTriggerWrapper
2627
SelfServiceTriggerWrapper *SelfServiceTriggerWrapper
@@ -87,6 +88,11 @@ func NotebookTriggerWrapperAsTrigger(v *NotebookTriggerWrapper) Trigger {
8788
return Trigger{NotebookTriggerWrapper: v}
8889
}
8990

91+
// OnCallTriggerWrapperAsTrigger is a convenience function that returns OnCallTriggerWrapper wrapped in Trigger.
92+
func OnCallTriggerWrapperAsTrigger(v *OnCallTriggerWrapper) Trigger {
93+
return Trigger{OnCallTriggerWrapper: v}
94+
}
95+
9096
// ScheduleTriggerWrapperAsTrigger is a convenience function that returns ScheduleTriggerWrapper wrapped in Trigger.
9197
func ScheduleTriggerWrapperAsTrigger(v *ScheduleTriggerWrapper) Trigger {
9298
return Trigger{ScheduleTriggerWrapper: v}
@@ -308,6 +314,23 @@ func (obj *Trigger) UnmarshalJSON(data []byte) error {
308314
obj.NotebookTriggerWrapper = nil
309315
}
310316

317+
// try to unmarshal data into OnCallTriggerWrapper
318+
err = datadog.Unmarshal(data, &obj.OnCallTriggerWrapper)
319+
if err == nil {
320+
if obj.OnCallTriggerWrapper != nil && obj.OnCallTriggerWrapper.UnparsedObject == nil {
321+
jsonOnCallTriggerWrapper, _ := datadog.Marshal(obj.OnCallTriggerWrapper)
322+
if string(jsonOnCallTriggerWrapper) == "{}" { // empty struct
323+
obj.OnCallTriggerWrapper = nil
324+
} else {
325+
match++
326+
}
327+
} else {
328+
obj.OnCallTriggerWrapper = nil
329+
}
330+
} else {
331+
obj.OnCallTriggerWrapper = nil
332+
}
333+
311334
// try to unmarshal data into ScheduleTriggerWrapper
312335
err = datadog.Unmarshal(data, &obj.ScheduleTriggerWrapper)
313336
if err == nil {
@@ -423,6 +446,7 @@ func (obj *Trigger) UnmarshalJSON(data []byte) error {
423446
obj.IncidentTriggerWrapper = nil
424447
obj.MonitorTriggerWrapper = nil
425448
obj.NotebookTriggerWrapper = nil
449+
obj.OnCallTriggerWrapper = nil
426450
obj.ScheduleTriggerWrapper = nil
427451
obj.SecurityTriggerWrapper = nil
428452
obj.SelfServiceTriggerWrapper = nil
@@ -480,6 +504,10 @@ func (obj Trigger) MarshalJSON() ([]byte, error) {
480504
return datadog.Marshal(&obj.NotebookTriggerWrapper)
481505
}
482506

507+
if obj.OnCallTriggerWrapper != nil {
508+
return datadog.Marshal(&obj.OnCallTriggerWrapper)
509+
}
510+
483511
if obj.ScheduleTriggerWrapper != nil {
484512
return datadog.Marshal(&obj.ScheduleTriggerWrapper)
485513
}
@@ -556,6 +584,10 @@ func (obj *Trigger) GetActualInstance() interface{} {
556584
return obj.NotebookTriggerWrapper
557585
}
558586

587+
if obj.OnCallTriggerWrapper != nil {
588+
return obj.OnCallTriggerWrapper
589+
}
590+
559591
if obj.ScheduleTriggerWrapper != nil {
560592
return obj.ScheduleTriggerWrapper
561593
}

0 commit comments

Comments
 (0)