diff --git a/.generator/schemas/v2/openapi.yaml b/.generator/schemas/v2/openapi.yaml index 70523726660..ca425e6bd9f 100644 --- a/.generator/schemas/v2/openapi.yaml +++ b/.generator/schemas/v2/openapi.yaml @@ -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: @@ -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' diff --git a/api/datadogV2/model_on_call_trigger.go b/api/datadogV2/model_on_call_trigger.go new file mode 100644 index 00000000000..4409666ec13 --- /dev/null +++ b/api/datadogV2/model_on_call_trigger.go @@ -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 +} diff --git a/api/datadogV2/model_on_call_trigger_wrapper.go b/api/datadogV2/model_on_call_trigger_wrapper.go new file mode 100644 index 00000000000..18b2d8d1c02 --- /dev/null +++ b/api/datadogV2/model_on_call_trigger_wrapper.go @@ -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 +} diff --git a/api/datadogV2/model_trigger.go b/api/datadogV2/model_trigger.go index 16c0908d4dc..7663da4a95a 100644 --- a/api/datadogV2/model_trigger.go +++ b/api/datadogV2/model_trigger.go @@ -21,6 +21,7 @@ type Trigger struct { IncidentTriggerWrapper *IncidentTriggerWrapper MonitorTriggerWrapper *MonitorTriggerWrapper NotebookTriggerWrapper *NotebookTriggerWrapper + OnCallTriggerWrapper *OnCallTriggerWrapper ScheduleTriggerWrapper *ScheduleTriggerWrapper SecurityTriggerWrapper *SecurityTriggerWrapper SelfServiceTriggerWrapper *SelfServiceTriggerWrapper @@ -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} @@ -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 { @@ -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 @@ -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) } @@ -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 }