package main

import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)

func main() {

	url := "https://api.pagerduty.com/schedules/PNJX5IS"

	payload := strings.NewReader("{\n  \"schedule\": {\n    \"name\": \"Daily Engineering Rotation\",\n    \"type\": \"schedule\",\n    \"time_zone\": \"America/New_York\",\n    \"description\": \"Rotation schedule for engineering\",\n    \"schedule_layers\": [\n      {\n        \"name\": \"Night Shift\",\n        \"start\": \"2015-11-06T20:00:00-05:00\",\n        \"end\": \"2016-11-06T20:00:00-05:00\",\n        \"rotation_virtual_start\": \"2015-11-06T20:00:00-05:00\",\n        \"rotation_turn_length_seconds\": 86400,\n        \"users\": [\n          {\n            \"user\": {\n              \"id\": \"PXPGF42\",\n              \"type\": \"user_reference\"\n            }\n          }\n        ],\n        \"restrictions\": [\n          {\n            \"type\": \"daily_restriction\",\n            \"start_time_of_day\": \"08:00:00\",\n            \"duration_seconds\": 32400\n          }\n        ]\n      }\n    ]\n  }\n}")

	req, _ := http.NewRequest("PUT", url, payload)

	req.Header.Add("Content-Type", "application/json")
	req.Header.Add("Accept", "application/vnd.pagerduty+json;version=2")
	req.Header.Add("Authorization", "Token token=u+jVLmVAHTykCgkw2PYQ")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
