From 5d3dd5334c0cfb2c6f59675d3df65a58a44df56e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Antonio=20Reyes?= Date: Fri, 19 Apr 2024 13:59:37 -0400 Subject: [PATCH 1/2] add support for IW triggers team restrictions --- pagerduty/incident_workflow_trigger.go | 20 +++++++++++++------- pagerduty/incident_workflow_trigger_test.go | 4 ++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/pagerduty/incident_workflow_trigger.go b/pagerduty/incident_workflow_trigger.go index a5ef8de..a9537e2 100644 --- a/pagerduty/incident_workflow_trigger.go +++ b/pagerduty/incident_workflow_trigger.go @@ -11,13 +11,19 @@ type IncidentWorkflowTriggerService service // IncidentWorkflowTrigger represents an incident workflow. type IncidentWorkflowTrigger struct { - ID string `json:"id,omitempty"` - Type string `json:"type,omitempty"` - TriggerType IncidentWorkflowTriggerType `json:"trigger_type,omitempty"` - Workflow *IncidentWorkflow `json:"workflow,omitempty"` - Services []*ServiceReference `json:"services,omitempty"` - Condition *string `json:"condition,omitempty"` - SubscribedToAllServices bool `json:"is_subscribed_to_all_services,omitempty"` + ID string `json:"id,omitempty"` + Type string `json:"type,omitempty"` + TriggerType IncidentWorkflowTriggerType `json:"trigger_type,omitempty"` + Workflow *IncidentWorkflow `json:"workflow,omitempty"` + Services []*ServiceReference `json:"services,omitempty"` + Condition *string `json:"condition,omitempty"` + SubscribedToAllServices bool `json:"is_subscribed_to_all_services,omitempty"` + Permissions *IncidentWorkflowTriggerPermissions `json:"permissions,omitempty"` +} + +type IncidentWorkflowTriggerPermissions struct { + Restricted bool `json:"restricted"` + TeamID string `json:"team_id,omitempty"` } // ListIncidentWorkflowTriggerResponse represents a list response of incident workflow triggers. diff --git a/pagerduty/incident_workflow_trigger_test.go b/pagerduty/incident_workflow_trigger_test.go index 7f68b15..05d36d0 100644 --- a/pagerduty/incident_workflow_trigger_test.go +++ b/pagerduty/incident_workflow_trigger_test.go @@ -245,6 +245,10 @@ func TestIncidentWorkflowTriggerGet(t *testing.T) { }, }, Condition: &cond, + Permissions: &IncidentWorkflowTriggerPermissions{ + Restricted: true, + TeamID: "PDEJ7MP", + }, } if !reflect.DeepEqual(resp, want) { From eace2b31e15bfd7f5792a63d4b181b78a1f6ef39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Antonio=20Reyes?= Date: Fri, 19 Apr 2024 14:00:41 -0400 Subject: [PATCH 2/2] go fmt ./... --- .../event_orchestration_cache_variable.go | 16 +++++----- ...event_orchestration_cache_variable_test.go | 29 +++++++++--------- pagerduty/event_orchestration_path.go | 2 +- pagerduty/event_orchestration_path_test.go | 4 +-- pagerduty/incident_workflow.go | 2 +- pagerduty/incident_workflow_test.go | 30 +++++++++---------- 6 files changed, 41 insertions(+), 42 deletions(-) diff --git a/pagerduty/event_orchestration_cache_variable.go b/pagerduty/event_orchestration_cache_variable.go index 6df0fa8..5d7232e 100644 --- a/pagerduty/event_orchestration_cache_variable.go +++ b/pagerduty/event_orchestration_cache_variable.go @@ -23,15 +23,15 @@ type EventOrchestrationCacheVariableConfiguration struct { } type EventOrchestrationCacheVariable struct { - ID string `json:"id,omitempty"` - Name string `json:"name,omitempty"` - Disabled bool `json:"disabled"` + ID string `json:"id,omitempty"` + Name string `json:"name,omitempty"` + Disabled bool `json:"disabled"` Conditions []*EventOrchestrationCacheVariableCondition `json:"conditions"` Configuration *EventOrchestrationCacheVariableConfiguration `json:"configuration,omitempty"` - CreatedAt string `json:"created_at,omitempty"` - CreatedBy *UserReference `json:"created_by,omitempty"` - UpdatedAt string `json:"updated_at,omitempty"` - UpdatedBy *UserReference `json:"updated_by,omitempty"` + CreatedAt string `json:"created_at,omitempty"` + CreatedBy *UserReference `json:"created_by,omitempty"` + UpdatedAt string `json:"updated_at,omitempty"` + UpdatedBy *UserReference `json:"updated_by,omitempty"` } type EventOrchestrationCacheVariablePayload struct { @@ -67,7 +67,7 @@ func (s *EventOrchestrationCacheVariableService) List(ctx context.Context, cache return v, resp, nil } -func (s *EventOrchestrationCacheVariableService) Create(ctx context.Context, cacheVariableType string, orchestrationId string, cacheVariable *EventOrchestrationCacheVariable) (*EventOrchestrationCacheVariable, *Response, error) { +func (s *EventOrchestrationCacheVariableService) Create(ctx context.Context, cacheVariableType string, orchestrationId string, cacheVariable *EventOrchestrationCacheVariable) (*EventOrchestrationCacheVariable, *Response, error) { u := buildEventOrchestrationCacheVariableUrl(cacheVariableType, orchestrationId, "") v := new(EventOrchestrationCacheVariablePayload) p := &EventOrchestrationCacheVariablePayload{CacheVariable: cacheVariable} diff --git a/pagerduty/event_orchestration_cache_variable_test.go b/pagerduty/event_orchestration_cache_variable_test.go index 8921e0a..661939f 100644 --- a/pagerduty/event_orchestration_cache_variable_test.go +++ b/pagerduty/event_orchestration_cache_variable_test.go @@ -13,9 +13,9 @@ func TestGlobalEventOrchestrationCacheVariableList(t *testing.T) { setup() defer teardown() - oId := "a64f9c87-6adc-4f89-a64c-2fdd8cba4639" + oId := "a64f9c87-6adc-4f89-a64c-2fdd8cba4639" oType := "global" - url := fmt.Sprintf("%s/%s/cache_variables/", eventOrchestrationBaseUrl, oId) + url := fmt.Sprintf("%s/%s/cache_variables/", eventOrchestrationBaseUrl, oId) mux.HandleFunc(url, func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") @@ -78,8 +78,8 @@ func TestGlobalEventOrchestrationCacheVariableList(t *testing.T) { want := &ListEventOrchestrationCacheVariablesResponse{ CacheVariables: []*EventOrchestrationCacheVariable{ { - ID: "45be0a94-55b2-4691-b285-7a14478f4fe2", - Name: "example_1", + ID: "45be0a94-55b2-4691-b285-7a14478f4fe2", + Name: "example_1", Conditions: []*EventOrchestrationCacheVariableCondition{}, Configuration: &EventOrchestrationCacheVariableConfiguration{ Type: "trigger_event_count", @@ -234,8 +234,8 @@ func TestGlobalOrchestrationCacheVariableGet(t *testing.T) { } want := &EventOrchestrationCacheVariable{ - ID: "9aa13ae3-81f3-4456-9abc-79233555fc3f", - Name: "get_example", + ID: "9aa13ae3-81f3-4456-9abc-79233555fc3f", + Name: "get_example", Conditions: []*EventOrchestrationCacheVariableCondition{ { Expression: "event.source matches part 'test'", @@ -320,7 +320,7 @@ func TestGlobalOrchestrationCacheVariableUpdate(t *testing.T) { Type: "trigger_event_count", TTLSeconds: 10, }, - Disabled: true, + Disabled: true, CreatedAt: "2024-02-12T14:44:58Z", CreatedBy: &UserReference{ ID: "P8B9WR7", @@ -363,9 +363,9 @@ func TestServiceEventOrchestrationCacheVariableList(t *testing.T) { setup() defer teardown() - oId := "P3ZQXDF" + oId := "P3ZQXDF" oType := "service" - url := fmt.Sprintf("%s/services/%s/cache_variables/", eventOrchestrationBaseUrl, oId) + url := fmt.Sprintf("%s/services/%s/cache_variables/", eventOrchestrationBaseUrl, oId) mux.HandleFunc(url, func(w http.ResponseWriter, r *http.Request) { testMethod(t, r, "GET") @@ -428,8 +428,8 @@ func TestServiceEventOrchestrationCacheVariableList(t *testing.T) { want := &ListEventOrchestrationCacheVariablesResponse{ CacheVariables: []*EventOrchestrationCacheVariable{ { - ID: "45be0a94-55b2-4691-b285-7a14478f4fe2", - Name: "example_1", + ID: "45be0a94-55b2-4691-b285-7a14478f4fe2", + Name: "example_1", Conditions: []*EventOrchestrationCacheVariableCondition{}, Configuration: &EventOrchestrationCacheVariableConfiguration{ Type: "trigger_event_count", @@ -584,8 +584,8 @@ func TestServiceOrchestrationCacheVariableGet(t *testing.T) { } want := &EventOrchestrationCacheVariable{ - ID: "9aa13ae3-81f3-4456-9abc-79233555fc3f", - Name: "get_example", + ID: "9aa13ae3-81f3-4456-9abc-79233555fc3f", + Name: "get_example", Conditions: []*EventOrchestrationCacheVariableCondition{ { Expression: "event.source matches part 'test'", @@ -670,7 +670,7 @@ func TestServiceOrchestrationCacheVariableUpdate(t *testing.T) { Type: "trigger_event_count", TTLSeconds: 10, }, - Disabled: true, + Disabled: true, CreatedAt: "2024-02-12T14:44:58Z", CreatedBy: &UserReference{ ID: "P8B9WR7", @@ -708,4 +708,3 @@ func TestServiceOrchestrationCacheVariableDelete(t *testing.T) { t.Fatal(err) } } - diff --git a/pagerduty/event_orchestration_path.go b/pagerduty/event_orchestration_path.go index 42bd643..72b60e0 100644 --- a/pagerduty/event_orchestration_path.go +++ b/pagerduty/event_orchestration_path.go @@ -67,7 +67,7 @@ type EventOrchestrationPathRuleActions struct { } type EventOrchestrationPathIncidentCustomFieldUpdate struct { - ID string `json:"id,omitempty"` + ID string `json:"id,omitempty"` Value string `json:"value,omitempty"` } diff --git a/pagerduty/event_orchestration_path_test.go b/pagerduty/event_orchestration_path_test.go index 096dc6e..ed4f7c3 100644 --- a/pagerduty/event_orchestration_path_test.go +++ b/pagerduty/event_orchestration_path_test.go @@ -340,8 +340,8 @@ func TestEventOrchestrationPathGlobalUpdate(t *testing.T) { }, }, }, - Label: "Set Impact Start custom field from event", - ID: "yu3bv02m", + Label: "Set Impact Start custom field from event", + ID: "yu3bv02m", Conditions: []*EventOrchestrationPathRuleCondition{}, }, }, diff --git a/pagerduty/incident_workflow.go b/pagerduty/incident_workflow.go index 09b131c..5fd58cb 100644 --- a/pagerduty/incident_workflow.go +++ b/pagerduty/incident_workflow.go @@ -45,7 +45,7 @@ type IncidentWorkflowActionInput struct { // IncidentWorkflowActionInlineStepsInput represents the configuration for an incident workflow action input with a series of inlined steps as the value type IncidentWorkflowActionInlineStepsInput struct { - Name string `json:"name,omitempty"` + Name string `json:"name,omitempty"` Value *IncidentWorkflowActionInlineStepsInputValue `json:"value,omitempty"` } diff --git a/pagerduty/incident_workflow_test.go b/pagerduty/incident_workflow_test.go index 15cf852..104deea 100644 --- a/pagerduty/incident_workflow_test.go +++ b/pagerduty/incident_workflow_test.go @@ -328,13 +328,13 @@ func TestIncidentWorkflowGet(t *testing.T) { }, InlineStepsInputs: []*IncidentWorkflowActionInlineStepsInput{ { - Name: "Example inline_steps_input", + Name: "Example inline_steps_input", Value: &IncidentWorkflowActionInlineStepsInputValue{ Steps: []*IncidentWorkflowActionInlineStep{ { - Name: "Inline Step 1", + Name: "Inline Step 1", Configuration: &IncidentWorkflowActionConfiguration{ - ActionID: "example/action/v1", + ActionID: "example/action/v1", Inputs: []*IncidentWorkflowActionInput{ { Name: "Example input", @@ -487,13 +487,13 @@ func TestIncidentWorkflowCreate(t *testing.T) { }, InlineStepsInputs: []*IncidentWorkflowActionInlineStepsInput{ { - Name: "Example inline_steps_input", + Name: "Example inline_steps_input", Value: &IncidentWorkflowActionInlineStepsInputValue{ Steps: []*IncidentWorkflowActionInlineStep{ { - Name: "Inline Step 1", + Name: "Inline Step 1", Configuration: &IncidentWorkflowActionConfiguration{ - ActionID: "example/action/v1", + ActionID: "example/action/v1", Inputs: []*IncidentWorkflowActionInput{ { Name: "Example input", @@ -552,13 +552,13 @@ func TestIncidentWorkflowCreate(t *testing.T) { }, InlineStepsInputs: []*IncidentWorkflowActionInlineStepsInput{ { - Name: "Example inline_steps_input", + Name: "Example inline_steps_input", Value: &IncidentWorkflowActionInlineStepsInputValue{ Steps: []*IncidentWorkflowActionInlineStep{ { - Name: "Inline Step 1", + Name: "Inline Step 1", Configuration: &IncidentWorkflowActionConfiguration{ - ActionID: "example/action/v1", + ActionID: "example/action/v1", Inputs: []*IncidentWorkflowActionInput{ { Name: "Example input", @@ -720,13 +720,13 @@ func TestIncidentWorkflowUpdate(t *testing.T) { }, InlineStepsInputs: []*IncidentWorkflowActionInlineStepsInput{ { - Name: "Example inline_steps_input", + Name: "Example inline_steps_input", Value: &IncidentWorkflowActionInlineStepsInputValue{ Steps: []*IncidentWorkflowActionInlineStep{ { - Name: "Inline Step 1 Updated Name", + Name: "Inline Step 1 Updated Name", Configuration: &IncidentWorkflowActionConfiguration{ - ActionID: "example/action/v1", + ActionID: "example/action/v1", Inputs: []*IncidentWorkflowActionInput{ { Name: "Example input", @@ -785,13 +785,13 @@ func TestIncidentWorkflowUpdate(t *testing.T) { }, InlineStepsInputs: []*IncidentWorkflowActionInlineStepsInput{ { - Name: "Example inline_steps_input", + Name: "Example inline_steps_input", Value: &IncidentWorkflowActionInlineStepsInputValue{ Steps: []*IncidentWorkflowActionInlineStep{ { - Name: "Inline Step 1 Updated Name", + Name: "Inline Step 1 Updated Name", Configuration: &IncidentWorkflowActionConfiguration{ - ActionID: "example/action/v1", + ActionID: "example/action/v1", Inputs: []*IncidentWorkflowActionInput{ { Name: "Example input",