Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions .generator/schemas/v2/openapi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42479,6 +42479,24 @@ components:
- type
- method
type: object
OnCallTrigger:
description: 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.
properties:
rateLimit:
$ref: '#/components/schemas/TriggerRateLimit'
type: object
OnCallTriggerWrapper:
description: Schema for an On-Call-based trigger.
properties:
onCallTrigger:
$ref: '#/components/schemas/OnCallTrigger'
startStepNames:
$ref: '#/components/schemas/StartStepNames'
required:
- onCallTrigger
type: object
OnDemandConcurrencyCap:
description: On-demand concurrency cap.
properties:
Expand Down Expand Up @@ -62075,6 +62093,7 @@ components:
- $ref: '#/components/schemas/IncidentTriggerWrapper'
- $ref: '#/components/schemas/MonitorTriggerWrapper'
- $ref: '#/components/schemas/NotebookTriggerWrapper'
- $ref: '#/components/schemas/OnCallTriggerWrapper'
- $ref: '#/components/schemas/ScheduleTriggerWrapper'
- $ref: '#/components/schemas/SecurityTriggerWrapper'
- $ref: '#/components/schemas/SelfServiceTriggerWrapper'
Expand Down
111 changes: 111 additions & 0 deletions api/datadogV2/model_on_call_trigger.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2019-Present Datadog, Inc.

package datadogV2

import (
"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
)

// 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.
type OnCallTrigger struct {
// Defines a rate limit for a trigger.
RateLimit *TriggerRateLimit `json:"rateLimit,omitempty"`
// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
UnparsedObject map[string]interface{} `json:"-"`
AdditionalProperties map[string]interface{} `json:"-"`
}

// NewOnCallTrigger instantiates a new OnCallTrigger object.
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed.
func NewOnCallTrigger() *OnCallTrigger {
this := OnCallTrigger{}
return &this
}

// NewOnCallTriggerWithDefaults instantiates a new OnCallTrigger object.
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set.
func NewOnCallTriggerWithDefaults() *OnCallTrigger {
this := OnCallTrigger{}
return &this
}

// GetRateLimit returns the RateLimit field value if set, zero value otherwise.
func (o *OnCallTrigger) GetRateLimit() TriggerRateLimit {
if o == nil || o.RateLimit == nil {
var ret TriggerRateLimit
return ret
}
return *o.RateLimit
}

// GetRateLimitOk returns a tuple with the RateLimit field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *OnCallTrigger) GetRateLimitOk() (*TriggerRateLimit, bool) {
if o == nil || o.RateLimit == nil {
return nil, false
}
return o.RateLimit, true
}

// HasRateLimit returns a boolean if a field has been set.
func (o *OnCallTrigger) HasRateLimit() bool {
return o != nil && o.RateLimit != nil
}

// SetRateLimit gets a reference to the given TriggerRateLimit and assigns it to the RateLimit field.
func (o *OnCallTrigger) SetRateLimit(v TriggerRateLimit) {
o.RateLimit = &v
}

// MarshalJSON serializes the struct using spec logic.
func (o OnCallTrigger) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.UnparsedObject != nil {
return datadog.Marshal(o.UnparsedObject)
}
if o.RateLimit != nil {
toSerialize["rateLimit"] = o.RateLimit
}

for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return datadog.Marshal(toSerialize)
}

// UnmarshalJSON deserializes the given payload.
func (o *OnCallTrigger) UnmarshalJSON(bytes []byte) (err error) {
all := struct {
RateLimit *TriggerRateLimit `json:"rateLimit,omitempty"`
}{}
if err = datadog.Unmarshal(bytes, &all); err != nil {
return datadog.Unmarshal(bytes, &o.UnparsedObject)
}
additionalProperties := make(map[string]interface{})
if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil {
datadog.DeleteKeys(additionalProperties, &[]string{"rateLimit"})
} else {
return err
}

hasInvalidField := false
if all.RateLimit != nil && all.RateLimit.UnparsedObject != nil && o.UnparsedObject == nil {
hasInvalidField = true
}
o.RateLimit = all.RateLimit

if len(additionalProperties) > 0 {
o.AdditionalProperties = additionalProperties
}

if hasInvalidField {
return datadog.Unmarshal(bytes, &o.UnparsedObject)
}

return nil
}
145 changes: 145 additions & 0 deletions api/datadogV2/model_on_call_trigger_wrapper.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
// Unless explicitly stated otherwise all files in this repository are licensed under the Apache-2.0 License.
// This product includes software developed at Datadog (https://www.datadoghq.com/).
// Copyright 2019-Present Datadog, Inc.

package datadogV2

import (
"fmt"

"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
)

// OnCallTriggerWrapper Schema for an On-Call-based trigger.
type OnCallTriggerWrapper struct {
// 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.
OnCallTrigger OnCallTrigger `json:"onCallTrigger"`
// A list of steps that run first after a trigger fires.
StartStepNames []string `json:"startStepNames,omitempty"`
// UnparsedObject contains the raw value of the object if there was an error when deserializing into the struct
UnparsedObject map[string]interface{} `json:"-"`
AdditionalProperties map[string]interface{} `json:"-"`
}

// NewOnCallTriggerWrapper instantiates a new OnCallTriggerWrapper object.
// This constructor will assign default values to properties that have it defined,
// and makes sure properties required by API are set, but the set of arguments
// will change when the set of required properties is changed.
func NewOnCallTriggerWrapper(onCallTrigger OnCallTrigger) *OnCallTriggerWrapper {
this := OnCallTriggerWrapper{}
this.OnCallTrigger = onCallTrigger
return &this
}

// NewOnCallTriggerWrapperWithDefaults instantiates a new OnCallTriggerWrapper object.
// This constructor will only assign default values to properties that have it defined,
// but it doesn't guarantee that properties required by API are set.
func NewOnCallTriggerWrapperWithDefaults() *OnCallTriggerWrapper {
this := OnCallTriggerWrapper{}
return &this
}

// GetOnCallTrigger returns the OnCallTrigger field value.
func (o *OnCallTriggerWrapper) GetOnCallTrigger() OnCallTrigger {
if o == nil {
var ret OnCallTrigger
return ret
}
return o.OnCallTrigger
}

// GetOnCallTriggerOk returns a tuple with the OnCallTrigger field value
// and a boolean to check if the value has been set.
func (o *OnCallTriggerWrapper) GetOnCallTriggerOk() (*OnCallTrigger, bool) {
if o == nil {
return nil, false
}
return &o.OnCallTrigger, true
}

// SetOnCallTrigger sets field value.
func (o *OnCallTriggerWrapper) SetOnCallTrigger(v OnCallTrigger) {
o.OnCallTrigger = v
}

// GetStartStepNames returns the StartStepNames field value if set, zero value otherwise.
func (o *OnCallTriggerWrapper) GetStartStepNames() []string {
if o == nil || o.StartStepNames == nil {
var ret []string
return ret
}
return o.StartStepNames
}

// GetStartStepNamesOk returns a tuple with the StartStepNames field value if set, nil otherwise
// and a boolean to check if the value has been set.
func (o *OnCallTriggerWrapper) GetStartStepNamesOk() (*[]string, bool) {
if o == nil || o.StartStepNames == nil {
return nil, false
}
return &o.StartStepNames, true
}

// HasStartStepNames returns a boolean if a field has been set.
func (o *OnCallTriggerWrapper) HasStartStepNames() bool {
return o != nil && o.StartStepNames != nil
}

// SetStartStepNames gets a reference to the given []string and assigns it to the StartStepNames field.
func (o *OnCallTriggerWrapper) SetStartStepNames(v []string) {
o.StartStepNames = v
}

// MarshalJSON serializes the struct using spec logic.
func (o OnCallTriggerWrapper) MarshalJSON() ([]byte, error) {
toSerialize := map[string]interface{}{}
if o.UnparsedObject != nil {
return datadog.Marshal(o.UnparsedObject)
}
toSerialize["onCallTrigger"] = o.OnCallTrigger
if o.StartStepNames != nil {
toSerialize["startStepNames"] = o.StartStepNames
}

for key, value := range o.AdditionalProperties {
toSerialize[key] = value
}
return datadog.Marshal(toSerialize)
}

// UnmarshalJSON deserializes the given payload.
func (o *OnCallTriggerWrapper) UnmarshalJSON(bytes []byte) (err error) {
all := struct {
OnCallTrigger *OnCallTrigger `json:"onCallTrigger"`
StartStepNames []string `json:"startStepNames,omitempty"`
}{}
if err = datadog.Unmarshal(bytes, &all); err != nil {
return datadog.Unmarshal(bytes, &o.UnparsedObject)
}
if all.OnCallTrigger == nil {
return fmt.Errorf("required field onCallTrigger missing")
}
additionalProperties := make(map[string]interface{})
if err = datadog.Unmarshal(bytes, &additionalProperties); err == nil {
datadog.DeleteKeys(additionalProperties, &[]string{"onCallTrigger", "startStepNames"})
} else {
return err
}

hasInvalidField := false
if all.OnCallTrigger.UnparsedObject != nil && o.UnparsedObject == nil {
hasInvalidField = true
}
o.OnCallTrigger = *all.OnCallTrigger
o.StartStepNames = all.StartStepNames

if len(additionalProperties) > 0 {
o.AdditionalProperties = additionalProperties
}

if hasInvalidField {
return datadog.Unmarshal(bytes, &o.UnparsedObject)
}

return nil
}
32 changes: 32 additions & 0 deletions api/datadogV2/model_trigger.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ type Trigger struct {
IncidentTriggerWrapper *IncidentTriggerWrapper
MonitorTriggerWrapper *MonitorTriggerWrapper
NotebookTriggerWrapper *NotebookTriggerWrapper
OnCallTriggerWrapper *OnCallTriggerWrapper
ScheduleTriggerWrapper *ScheduleTriggerWrapper
SecurityTriggerWrapper *SecurityTriggerWrapper
SelfServiceTriggerWrapper *SelfServiceTriggerWrapper
Expand Down Expand Up @@ -87,6 +88,11 @@ func NotebookTriggerWrapperAsTrigger(v *NotebookTriggerWrapper) Trigger {
return Trigger{NotebookTriggerWrapper: v}
}

// OnCallTriggerWrapperAsTrigger is a convenience function that returns OnCallTriggerWrapper wrapped in Trigger.
func OnCallTriggerWrapperAsTrigger(v *OnCallTriggerWrapper) Trigger {
return Trigger{OnCallTriggerWrapper: v}
}

// ScheduleTriggerWrapperAsTrigger is a convenience function that returns ScheduleTriggerWrapper wrapped in Trigger.
func ScheduleTriggerWrapperAsTrigger(v *ScheduleTriggerWrapper) Trigger {
return Trigger{ScheduleTriggerWrapper: v}
Expand Down Expand Up @@ -308,6 +314,23 @@ func (obj *Trigger) UnmarshalJSON(data []byte) error {
obj.NotebookTriggerWrapper = nil
}

// try to unmarshal data into OnCallTriggerWrapper
err = datadog.Unmarshal(data, &obj.OnCallTriggerWrapper)
if err == nil {
if obj.OnCallTriggerWrapper != nil && obj.OnCallTriggerWrapper.UnparsedObject == nil {
jsonOnCallTriggerWrapper, _ := datadog.Marshal(obj.OnCallTriggerWrapper)
if string(jsonOnCallTriggerWrapper) == "{}" { // empty struct
obj.OnCallTriggerWrapper = nil
} else {
match++
}
} else {
obj.OnCallTriggerWrapper = nil
}
} else {
obj.OnCallTriggerWrapper = nil
}

// try to unmarshal data into ScheduleTriggerWrapper
err = datadog.Unmarshal(data, &obj.ScheduleTriggerWrapper)
if err == nil {
Expand Down Expand Up @@ -423,6 +446,7 @@ func (obj *Trigger) UnmarshalJSON(data []byte) error {
obj.IncidentTriggerWrapper = nil
obj.MonitorTriggerWrapper = nil
obj.NotebookTriggerWrapper = nil
obj.OnCallTriggerWrapper = nil
obj.ScheduleTriggerWrapper = nil
obj.SecurityTriggerWrapper = nil
obj.SelfServiceTriggerWrapper = nil
Expand Down Expand Up @@ -480,6 +504,10 @@ func (obj Trigger) MarshalJSON() ([]byte, error) {
return datadog.Marshal(&obj.NotebookTriggerWrapper)
}

if obj.OnCallTriggerWrapper != nil {
return datadog.Marshal(&obj.OnCallTriggerWrapper)
}

if obj.ScheduleTriggerWrapper != nil {
return datadog.Marshal(&obj.ScheduleTriggerWrapper)
}
Expand Down Expand Up @@ -556,6 +584,10 @@ func (obj *Trigger) GetActualInstance() interface{} {
return obj.NotebookTriggerWrapper
}

if obj.OnCallTriggerWrapper != nil {
return obj.OnCallTriggerWrapper
}

if obj.ScheduleTriggerWrapper != nil {
return obj.ScheduleTriggerWrapper
}
Expand Down
Loading