Repository: PagerDuty/go-pagerduty (go)

Issue:
UpdateService is not working properly with AlertGroupingParameters
If a PD service has data inside svc.AlerGroupingParameters.Config.Timeout it doesn't appear to be correctly sent when updating, for example if there was an indefinite time-based alert grouping configured.

POC:
```go
package main

import (
	"context"
	"fmt"
	"github.com/PagerDuty/go-pagerduty"
)

var (
	authToken = "<REDACTED>"
	serviceId = "<REDACTED>"
)

func main() {
	client := pagerduty.NewClient(authToken)
	svc, err := client.GetServiceWithContext(context.TODO(), serviceId, nil)
	if err != nil {
		panic(err)
	}

       // If the service has data inside svc.AlertGroupingParameters.Config.Timeout it doesn't appear to be respected, e.g.
       // if there was an indefinite time-based alert grouping configured.
       // pagerduty.AlertGroupingParameters{Type:"time", Config:(*pagerduty.AlertGroupParamsConfig)(0x140001810e0)}
       // pagerduty.AlertGroupParamsConfig{Timeout:0x0, Aggregate:"", Fields:[]string(nil)}

	_, err = client.UpdateServiceWithContext(context.TODO(), *svc)
	if err != nil {
		// Results in panic: HTTP response failed with status code 400,
		// message: Invalid Input Provided (code: 2001): Config is invalid.
		panic(err)
	}
}
```

Pull request:
Fix unmarshaling error with AlertGroupingParameters timeout
Fixes #458 by allowing `Timeout` to be successfully unmarshalled and sent as a 0 when needed instead of being omitted as a default value.

Patch:
diff --git a/service.go b/service.go
index 9206614..3404014 100644
--- a/service.go
+++ b/service.go
@@ -107,7 +107,7 @@ type AlertGroupingParameters struct {
 
 // AlertGroupParamsConfig is the config object on alert_grouping_parameters
 type AlertGroupParamsConfig struct {
-	Timeout   uint     `json:"timeout,omitempty"`
+	Timeout   *uint    `json:"timeout,omitempty"`
 	Aggregate string   `json:"aggregate,omitempty"`
 	Fields    []string `json:"fields,omitempty"`
 }


Test patch:
diff --git a/service_test.go b/service_test.go
index 2012626..b886451 100644
--- a/service_test.go
+++ b/service_test.go
@@ -179,7 +179,7 @@ func TestService_CreateWithAlertGroupParamsTime(t *testing.T) {
 		AlertGroupingParameters: &AlertGroupingParameters{
 			Type: "time",
 			Config: &AlertGroupParamsConfig{
-				Timeout: 2,
+				Timeout: new(uint),
 			},
 		},
 	}