From a9a272305cf9935e70b0553832a36661b160b796 Mon Sep 17 00:00:00 2001 From: idebeijer <71566757+idebeijer@users.noreply.github.com> Date: Mon, 4 Dec 2023 20:59:49 +0100 Subject: [PATCH] add pause and unpause --- cmd/monitors/examples/pause.txt | 5 ++ cmd/monitors/examples/unpause.txt | 5 ++ cmd/monitors/pause.go | 34 ++++++++++++ cmd/monitors/unpause.go | 34 ++++++++++++ docs/references/uptimectl.md | 4 +- docs/references/uptimectl_auth.md | 2 +- docs/references/uptimectl_auth_login.md | 2 +- docs/references/uptimectl_auth_logout.md | 2 +- docs/references/uptimectl_config.md | 2 +- .../uptimectl_config_current-context.md | 2 +- .../uptimectl_config_get-contexts.md | 2 +- .../uptimectl_config_use-context.md | 2 +- .../uptimectl_config_use-organisation.md | 2 +- docs/references/uptimectl_config_view.md | 2 +- docs/references/uptimectl_incident.md | 2 +- .../uptimectl_incident_acknowledge.md | 2 +- docs/references/uptimectl_incident_delete.md | 2 +- docs/references/uptimectl_incident_list.md | 2 +- docs/references/uptimectl_incident_resolve.md | 6 +-- docs/references/uptimectl_monitor-groups.md | 2 +- .../uptimectl_monitor-groups_create.md | 2 +- .../uptimectl_monitor-groups_delete.md | 2 +- .../uptimectl_monitor-groups_get.md | 2 +- docs/references/uptimectl_monitors.md | 6 ++- docs/references/uptimectl_monitors_create.md | 2 +- docs/references/uptimectl_monitors_delete.md | 2 +- docs/references/uptimectl_monitors_get.md | 2 +- docs/references/uptimectl_monitors_pause.md | 39 ++++++++++++++ docs/references/uptimectl_monitors_unpause.md | 39 ++++++++++++++ docs/references/uptimectl_on-call.md | 4 +- docs/references/uptimectl_status-pages.md | 4 +- .../uptimectl_status-pages_create.md | 4 +- .../uptimectl_status-pages_delete.md | 4 +- docs/references/uptimectl_status-pages_get.md | 4 +- .../uptimectl_status-pages_resources.md | 4 +- docs/references/uptimectl_version.md | 4 +- pkg/betteruptime/monitors.go | 54 +++++++++++++++++++ 37 files changed, 253 insertions(+), 41 deletions(-) create mode 100644 cmd/monitors/examples/pause.txt create mode 100644 cmd/monitors/examples/unpause.txt create mode 100644 cmd/monitors/pause.go create mode 100644 cmd/monitors/unpause.go create mode 100644 docs/references/uptimectl_monitors_pause.md create mode 100644 docs/references/uptimectl_monitors_unpause.md diff --git a/cmd/monitors/examples/pause.txt b/cmd/monitors/examples/pause.txt new file mode 100644 index 0000000..04ba770 --- /dev/null +++ b/cmd/monitors/examples/pause.txt @@ -0,0 +1,5 @@ +# Pause a monitor +uptimectl monitors pause 1234567 + +# Pause multiple monitors +uptimectl monitors pause 1234567 2345678 3456789 \ No newline at end of file diff --git a/cmd/monitors/examples/unpause.txt b/cmd/monitors/examples/unpause.txt new file mode 100644 index 0000000..f2aab0a --- /dev/null +++ b/cmd/monitors/examples/unpause.txt @@ -0,0 +1,5 @@ +# Unpause a monitor +uptimectl monitors unpause 1234567 + +# Unpause multiple monitors +uptimectl monitors unpause 1234567 2345678 3456789 \ No newline at end of file diff --git a/cmd/monitors/pause.go b/cmd/monitors/pause.go new file mode 100644 index 0000000..2c75d94 --- /dev/null +++ b/cmd/monitors/pause.go @@ -0,0 +1,34 @@ +package monitors + +import ( + _ "embed" + + "github.com/spf13/cobra" + "github.com/uptime-cli/uptimectl/pkg/betteruptime" +) + +//go:embed examples/pause.txt +var pauseExamples string + +// pauseCmd represents the pause command +var pauseCmd = &cobra.Command{ + Use: "pause", + Short: "Pause monitors by ID", + Args: cobra.MinimumNArgs(1), + Example: pauseExamples, + RunE: func(cmd *cobra.Command, args []string) error { + client := betteruptime.NewClient() + + for _, monitor := range args { + err := client.PauseMonitor(monitor) + if err != nil { + return err + } + } + return nil + }, +} + +func init() { + MonitorsCmd.AddCommand(pauseCmd) +} diff --git a/cmd/monitors/unpause.go b/cmd/monitors/unpause.go new file mode 100644 index 0000000..6060ff2 --- /dev/null +++ b/cmd/monitors/unpause.go @@ -0,0 +1,34 @@ +package monitors + +import ( + _ "embed" + + "github.com/spf13/cobra" + "github.com/uptime-cli/uptimectl/pkg/betteruptime" +) + +//go:embed examples/unpause.txt +var unPauseExamples string + +// unPauseCmd represents the unpause command +var unPauseCmd = &cobra.Command{ + Use: "unpause", + Short: "Unpause monitors by ID", + Args: cobra.MinimumNArgs(1), + Example: unPauseExamples, + RunE: func(cmd *cobra.Command, args []string) error { + client := betteruptime.NewClient() + + for _, monitor := range args { + err := client.UnpauseMonitor(monitor) + if err != nil { + return err + } + } + return nil + }, +} + +func init() { + MonitorsCmd.AddCommand(unPauseCmd) +} diff --git a/docs/references/uptimectl.md b/docs/references/uptimectl.md index 91cf0e6..16cb428 100644 --- a/docs/references/uptimectl.md +++ b/docs/references/uptimectl.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl" displayName: "uptimectl" slug: uptimectl url: /docs/references/uptimectl/uptimectl/ description: "" lead: "" -weight: 730 +weight: 728 toc: true --- ## uptimectl diff --git a/docs/references/uptimectl_auth.md b/docs/references/uptimectl_auth.md index a479d1b..4fa9f4c 100644 --- a/docs/references/uptimectl_auth.md +++ b/docs/references/uptimectl_auth.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl auth" displayName: "auth" slug: uptimectl_auth diff --git a/docs/references/uptimectl_auth_login.md b/docs/references/uptimectl_auth_login.md index 3e70a82..5b2af36 100644 --- a/docs/references/uptimectl_auth_login.md +++ b/docs/references/uptimectl_auth_login.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl auth login" displayName: "auth login" slug: uptimectl_auth_login diff --git a/docs/references/uptimectl_auth_logout.md b/docs/references/uptimectl_auth_logout.md index d1730a5..99d8b9b 100644 --- a/docs/references/uptimectl_auth_logout.md +++ b/docs/references/uptimectl_auth_logout.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl auth logout" displayName: "auth logout" slug: uptimectl_auth_logout diff --git a/docs/references/uptimectl_config.md b/docs/references/uptimectl_config.md index a3b2b8e..90f22ee 100644 --- a/docs/references/uptimectl_config.md +++ b/docs/references/uptimectl_config.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl config" displayName: "config" slug: uptimectl_config diff --git a/docs/references/uptimectl_config_current-context.md b/docs/references/uptimectl_config_current-context.md index 8820282..3fee1b7 100644 --- a/docs/references/uptimectl_config_current-context.md +++ b/docs/references/uptimectl_config_current-context.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl config current-context" displayName: "config current-context" slug: uptimectl_config_current-context diff --git a/docs/references/uptimectl_config_get-contexts.md b/docs/references/uptimectl_config_get-contexts.md index fe34cc4..4d433e5 100644 --- a/docs/references/uptimectl_config_get-contexts.md +++ b/docs/references/uptimectl_config_get-contexts.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl config get-contexts" displayName: "config get-contexts" slug: uptimectl_config_get-contexts diff --git a/docs/references/uptimectl_config_use-context.md b/docs/references/uptimectl_config_use-context.md index 246329c..251076e 100644 --- a/docs/references/uptimectl_config_use-context.md +++ b/docs/references/uptimectl_config_use-context.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl config use-context" displayName: "config use-context" slug: uptimectl_config_use-context diff --git a/docs/references/uptimectl_config_use-organisation.md b/docs/references/uptimectl_config_use-organisation.md index e50313b..1b5e7e5 100644 --- a/docs/references/uptimectl_config_use-organisation.md +++ b/docs/references/uptimectl_config_use-organisation.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl config use-organisation" displayName: "config use-organisation" slug: uptimectl_config_use-organisation diff --git a/docs/references/uptimectl_config_view.md b/docs/references/uptimectl_config_view.md index 5f92122..c930a46 100644 --- a/docs/references/uptimectl_config_view.md +++ b/docs/references/uptimectl_config_view.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl config view" displayName: "config view" slug: uptimectl_config_view diff --git a/docs/references/uptimectl_incident.md b/docs/references/uptimectl_incident.md index bc5d8f8..d3cd9ab 100644 --- a/docs/references/uptimectl_incident.md +++ b/docs/references/uptimectl_incident.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl incident" displayName: "incident" slug: uptimectl_incident diff --git a/docs/references/uptimectl_incident_acknowledge.md b/docs/references/uptimectl_incident_acknowledge.md index 28df185..9dd3bb2 100644 --- a/docs/references/uptimectl_incident_acknowledge.md +++ b/docs/references/uptimectl_incident_acknowledge.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl incident acknowledge" displayName: "incident acknowledge" slug: uptimectl_incident_acknowledge diff --git a/docs/references/uptimectl_incident_delete.md b/docs/references/uptimectl_incident_delete.md index 261346d..9ca6346 100644 --- a/docs/references/uptimectl_incident_delete.md +++ b/docs/references/uptimectl_incident_delete.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl incident delete" displayName: "incident delete" slug: uptimectl_incident_delete diff --git a/docs/references/uptimectl_incident_list.md b/docs/references/uptimectl_incident_list.md index 006d72e..9d0ad35 100644 --- a/docs/references/uptimectl_incident_list.md +++ b/docs/references/uptimectl_incident_list.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl incident list" displayName: "incident list" slug: uptimectl_incident_list diff --git a/docs/references/uptimectl_incident_resolve.md b/docs/references/uptimectl_incident_resolve.md index 15a1c56..b40eeac 100644 --- a/docs/references/uptimectl_incident_resolve.md +++ b/docs/references/uptimectl_incident_resolve.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl incident resolve" displayName: "incident resolve" slug: uptimectl_incident_resolve @@ -20,8 +20,8 @@ uptimectl incident resolve [flags] ### Options ``` - --acknowledged-by string User e-mail or a custom identifier of the entity that acknowledged the incident (default "uptimectl") - -h, --help help for resolve + -h, --help help for resolve + --resolved-by string User e-mail or a custom identifier of the entity that resolved the incident (default "uptimectl") ``` ### SEE ALSO diff --git a/docs/references/uptimectl_monitor-groups.md b/docs/references/uptimectl_monitor-groups.md index b9df477..869b725 100644 --- a/docs/references/uptimectl_monitor-groups.md +++ b/docs/references/uptimectl_monitor-groups.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitor-groups" displayName: "monitor-groups" slug: uptimectl_monitor-groups diff --git a/docs/references/uptimectl_monitor-groups_create.md b/docs/references/uptimectl_monitor-groups_create.md index 2bb3774..4d79721 100644 --- a/docs/references/uptimectl_monitor-groups_create.md +++ b/docs/references/uptimectl_monitor-groups_create.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitor-groups create" displayName: "monitor-groups create" slug: uptimectl_monitor-groups_create diff --git a/docs/references/uptimectl_monitor-groups_delete.md b/docs/references/uptimectl_monitor-groups_delete.md index 1ba7dfa..4432130 100644 --- a/docs/references/uptimectl_monitor-groups_delete.md +++ b/docs/references/uptimectl_monitor-groups_delete.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitor-groups delete" displayName: "monitor-groups delete" slug: uptimectl_monitor-groups_delete diff --git a/docs/references/uptimectl_monitor-groups_get.md b/docs/references/uptimectl_monitor-groups_get.md index 38bb80b..05245b0 100644 --- a/docs/references/uptimectl_monitor-groups_get.md +++ b/docs/references/uptimectl_monitor-groups_get.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitor-groups get" displayName: "monitor-groups get" slug: uptimectl_monitor-groups_get diff --git a/docs/references/uptimectl_monitors.md b/docs/references/uptimectl_monitors.md index b0fd1e1..38faea8 100644 --- a/docs/references/uptimectl_monitors.md +++ b/docs/references/uptimectl_monitors.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitors" displayName: "monitors" slug: uptimectl_monitors url: /docs/references/uptimectl/uptimectl_monitors/ description: "" lead: "" -weight: 738 +weight: 736 toc: true --- ## uptimectl monitors @@ -25,4 +25,6 @@ Manage monitors * [uptimectl monitors create](/docs/references/uptimectl/uptimectl_monitors_create/) - create a monitor * [uptimectl monitors delete](/docs/references/uptimectl/uptimectl_monitors_delete/) - delete a monitor * [uptimectl monitors get](/docs/references/uptimectl/uptimectl_monitors_get/) - Get a list of monitors +* [uptimectl monitors pause](/docs/references/uptimectl/uptimectl_monitors_pause/) - Pause monitors by ID +* [uptimectl monitors unpause](/docs/references/uptimectl/uptimectl_monitors_unpause/) - Unpause monitors by ID diff --git a/docs/references/uptimectl_monitors_create.md b/docs/references/uptimectl_monitors_create.md index 57de94e..4c23698 100644 --- a/docs/references/uptimectl_monitors_create.md +++ b/docs/references/uptimectl_monitors_create.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitors create" displayName: "monitors create" slug: uptimectl_monitors_create diff --git a/docs/references/uptimectl_monitors_delete.md b/docs/references/uptimectl_monitors_delete.md index 1e0f52f..16032c1 100644 --- a/docs/references/uptimectl_monitors_delete.md +++ b/docs/references/uptimectl_monitors_delete.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitors delete" displayName: "monitors delete" slug: uptimectl_monitors_delete diff --git a/docs/references/uptimectl_monitors_get.md b/docs/references/uptimectl_monitors_get.md index b621330..8ee4051 100644 --- a/docs/references/uptimectl_monitors_get.md +++ b/docs/references/uptimectl_monitors_get.md @@ -1,5 +1,5 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl monitors get" displayName: "monitors get" slug: uptimectl_monitors_get diff --git a/docs/references/uptimectl_monitors_pause.md b/docs/references/uptimectl_monitors_pause.md new file mode 100644 index 0000000..2e73c43 --- /dev/null +++ b/docs/references/uptimectl_monitors_pause.md @@ -0,0 +1,39 @@ +--- +date: 2023-12-04T20:57:39+01:00 +title: "uptimectl monitors pause" +displayName: "monitors pause" +slug: uptimectl_monitors_pause +url: /docs/references/uptimectl/uptimectl_monitors_pause/ +description: "" +lead: "" +weight: 738 +toc: true +--- +## uptimectl monitors pause + +Pause monitors by ID + +``` +uptimectl monitors pause [flags] +``` + +### Examples + +``` +# Pause a monitor +uptimectl monitors pause 1234567 + +# Pause multiple monitors +uptimectl monitors pause 1234567 2345678 3456789 +``` + +### Options + +``` + -h, --help help for pause +``` + +### SEE ALSO + +* [uptimectl monitors](/docs/references/uptimectl/uptimectl_monitors/) - Manage monitors + diff --git a/docs/references/uptimectl_monitors_unpause.md b/docs/references/uptimectl_monitors_unpause.md new file mode 100644 index 0000000..8d1a952 --- /dev/null +++ b/docs/references/uptimectl_monitors_unpause.md @@ -0,0 +1,39 @@ +--- +date: 2023-12-04T20:57:39+01:00 +title: "uptimectl monitors unpause" +displayName: "monitors unpause" +slug: uptimectl_monitors_unpause +url: /docs/references/uptimectl/uptimectl_monitors_unpause/ +description: "" +lead: "" +weight: 737 +toc: true +--- +## uptimectl monitors unpause + +Unpause monitors by ID + +``` +uptimectl monitors unpause [flags] +``` + +### Examples + +``` +# Unpause a monitor +uptimectl monitors unpause 1234567 + +# Unpause multiple monitors +uptimectl monitors unpause 1234567 2345678 3456789 +``` + +### Options + +``` + -h, --help help for unpause +``` + +### SEE ALSO + +* [uptimectl monitors](/docs/references/uptimectl/uptimectl_monitors/) - Manage monitors + diff --git a/docs/references/uptimectl_on-call.md b/docs/references/uptimectl_on-call.md index 5a200f8..d336050 100644 --- a/docs/references/uptimectl_on-call.md +++ b/docs/references/uptimectl_on-call.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl on-call" displayName: "on-call" slug: uptimectl_on-call url: /docs/references/uptimectl/uptimectl_on-call/ description: "" lead: "" -weight: 737 +weight: 735 toc: true --- ## uptimectl on-call diff --git a/docs/references/uptimectl_status-pages.md b/docs/references/uptimectl_status-pages.md index 5caec34..c6ea77a 100644 --- a/docs/references/uptimectl_status-pages.md +++ b/docs/references/uptimectl_status-pages.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl status-pages" displayName: "status-pages" slug: uptimectl_status-pages url: /docs/references/uptimectl/uptimectl_status-pages/ description: "" lead: "" -weight: 732 +weight: 730 toc: true --- ## uptimectl status-pages diff --git a/docs/references/uptimectl_status-pages_create.md b/docs/references/uptimectl_status-pages_create.md index f606a5e..8ac9efb 100644 --- a/docs/references/uptimectl_status-pages_create.md +++ b/docs/references/uptimectl_status-pages_create.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl status-pages create" displayName: "status-pages create" slug: uptimectl_status-pages_create url: /docs/references/uptimectl/uptimectl_status-pages_create/ description: "" lead: "" -weight: 736 +weight: 734 toc: true --- ## uptimectl status-pages create diff --git a/docs/references/uptimectl_status-pages_delete.md b/docs/references/uptimectl_status-pages_delete.md index e85a020..d5476db 100644 --- a/docs/references/uptimectl_status-pages_delete.md +++ b/docs/references/uptimectl_status-pages_delete.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl status-pages delete" displayName: "status-pages delete" slug: uptimectl_status-pages_delete url: /docs/references/uptimectl/uptimectl_status-pages_delete/ description: "" lead: "" -weight: 735 +weight: 733 toc: true --- ## uptimectl status-pages delete diff --git a/docs/references/uptimectl_status-pages_get.md b/docs/references/uptimectl_status-pages_get.md index 55b9f0d..90e2ace 100644 --- a/docs/references/uptimectl_status-pages_get.md +++ b/docs/references/uptimectl_status-pages_get.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl status-pages get" displayName: "status-pages get" slug: uptimectl_status-pages_get url: /docs/references/uptimectl/uptimectl_status-pages_get/ description: "" lead: "" -weight: 734 +weight: 732 toc: true --- ## uptimectl status-pages get diff --git a/docs/references/uptimectl_status-pages_resources.md b/docs/references/uptimectl_status-pages_resources.md index 54fbd82..aac3fac 100644 --- a/docs/references/uptimectl_status-pages_resources.md +++ b/docs/references/uptimectl_status-pages_resources.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl status-pages resources" displayName: "status-pages resources" slug: uptimectl_status-pages_resources url: /docs/references/uptimectl/uptimectl_status-pages_resources/ description: "" lead: "" -weight: 733 +weight: 731 toc: true --- ## uptimectl status-pages resources diff --git a/docs/references/uptimectl_version.md b/docs/references/uptimectl_version.md index fe5372d..a7adf11 100644 --- a/docs/references/uptimectl_version.md +++ b/docs/references/uptimectl_version.md @@ -1,12 +1,12 @@ --- -date: 2023-11-17T13:00:50-05:00 +date: 2023-12-04T20:57:39+01:00 title: "uptimectl version" displayName: "version" slug: uptimectl_version url: /docs/references/uptimectl/uptimectl_version/ description: "" lead: "" -weight: 731 +weight: 729 toc: true --- ## uptimectl version diff --git a/pkg/betteruptime/monitors.go b/pkg/betteruptime/monitors.go index c01f7a7..e7d6b28 100644 --- a/pkg/betteruptime/monitors.go +++ b/pkg/betteruptime/monitors.go @@ -102,12 +102,66 @@ func (c *client) ListMonitors() ([]Monitor, error) { return monitors, nil } +func (c *client) PauseMonitor(id string) error { + result := GetMonitorResponse{} + + endpoint := fmt.Sprintf("%s/%s/%s", contextmanager.APIEndpoint(), monitorEndpoint, id) + + updateRequest := UpdateMonitorRequest{ + Paused: true, + } + + resp, err := c.rest.R(). + SetResult(&result). + SetBody(updateRequest). + Patch(endpoint) + if err != nil { + return err + } + if resp.StatusCode() != http.StatusOK { + return fmt.Errorf("incorrect status response") + } + + fmt.Printf("monitor \"%s\" paused\n", id) + + return nil +} + +func (c *client) UnpauseMonitor(id string) error { + result := GetMonitorResponse{} + + endpoint := fmt.Sprintf("%s/%s/%s", contextmanager.APIEndpoint(), monitorEndpoint, id) + + updateRequest := UpdateMonitorRequest{ + Paused: false, + } + + resp, err := c.rest.R(). + SetResult(&result). + SetBody(updateRequest). + Patch(endpoint) + if err != nil { + return err + } + if resp.StatusCode() != http.StatusOK { + return fmt.Errorf("incorrect status response") + } + + fmt.Printf("monitor \"%s\" unpaused\n", id) + + return nil +} + type CreateMonitorRequest struct { Name string `json:"name"` Paused bool `json:"paused"` SortIndex *int `json:"sort_index"` } +type UpdateMonitorRequest struct { + Paused bool `json:"paused"` +} + type ListMonitorResponse struct { Data []Monitor Pagination Pagination