diff --git a/args.go b/args.go index fcd1b5f1c..3402aae5e 100644 --- a/args.go +++ b/args.go @@ -48,6 +48,8 @@ const ( ArgAppLogTail = "tail" // ArgAppForceRebuild forces a deployment rebuild ArgAppForceRebuild = "force-rebuild" + // ArgAppAlertDestinations is a path to an app alert destination file. + ArgAppAlertDestinations = "app-alert-destinations" // ArgClusterName is a cluster name argument. ArgClusterName = "cluster-name" // ArgClusterVersionSlug is a cluster version argument. diff --git a/commands/apps.go b/commands/apps.go index 7d2b7b1ce..456a3bb8a 100644 --- a/commands/apps.go +++ b/commands/apps.go @@ -197,6 +197,29 @@ Only basic information is included with the text output format. For complete app AddStringFlag(propose, doctl.ArgAppSpec, "", "", "Path to an app spec in JSON or YAML format. For more information about app specs, see https://www.digitalocean.com/docs/app-platform/concepts/app-spec", requiredOpt()) AddStringFlag(propose, doctl.ArgApp, "", "", "An optional existing app ID. If specified, the app spec will be treated as a proposed update to the existing app.") + CmdBuilder( + cmd, + RunAppListAlerts, + "list-alerts ", + "List alerts on an app", + `List all alerts associated to an app and its components`, + Writer, + aliasOpt("la"), + displayerType(&displayers.AppAlerts{}), + ) + + updateAlertDestinations := CmdBuilder( + cmd, + RunAppUpdateAlertDestinations, + "update-alert-destinations ", + "Update alert destinations", + `Update alert destinations`, + Writer, + aliasOpt("uad"), + displayerType(&displayers.AppAlerts{}), + ) + AddStringFlag(updateAlertDestinations, doctl.ArgAppAlertDestinations, "", "", "Path to an alert destinations file in JSON or YAML format.") + cmd.AddCommand(appsSpec()) cmd.AddCommand(appsTier()) @@ -837,3 +860,88 @@ func RunAppsTierInstanceSizeGet(c *CmdConfig) error { return c.Display(displayers.AppInstanceSizes([]*godo.AppInstanceSize{instanceSize})) } + +// RunAppListAlerts gets configured alerts on an app +func RunAppListAlerts(c *CmdConfig) error { + if len(c.Args) < 1 { + return doctl.NewMissingArgsErr(c.NS) + } + + appID := c.Args[0] + + alerts, err := c.Apps().ListAlerts(appID) + if err != nil { + return err + } + return c.Display(displayers.AppAlerts(alerts)) +} + +func RunAppUpdateAlertDestinations(c *CmdConfig) error { + if len(c.Args) < 2 { + return doctl.NewMissingArgsErr(c.NS) + } + + appID := c.Args[0] + alertID := c.Args[1] + + alertDestinationsPath, err := c.Doit.GetString(c.NS, doctl.ArgAppAlertDestinations) + if err != nil { + return err + } + update, err := readAppAlertDestination(os.Stdin, alertDestinationsPath) + if err != nil { + return err + } + + alert, err := c.Apps().UpdateAlertDestinations(appID, alertID, update) + if err != nil { + return err + } + return c.Display(displayers.AppAlerts([]*godo.AppAlert{alert})) +} + +func readAppAlertDestination(stdin io.Reader, path string) (*godo.AlertDestinationUpdateRequest, error) { + var alertDestinations io.Reader + if path == "-" { + alertDestinations = stdin + } else { + alertDestinationsFile, err := os.Open(path) // guardrails-disable-line + if err != nil { + if os.IsNotExist(err) { + return nil, fmt.Errorf("opening app alert destinations: %s does not exist", path) + } + return nil, fmt.Errorf("opening app alert destinations: %w", err) + } + defer alertDestinationsFile.Close() + alertDestinations = alertDestinationsFile + } + + byt, err := ioutil.ReadAll(alertDestinations) + if err != nil { + return nil, fmt.Errorf("reading app alert destinations: %w", err) + } + + s, err := parseAppAlert(byt) + if err != nil { + return nil, fmt.Errorf("parsing app alert destinations: %w", err) + } + + return s, nil +} + +func parseAppAlert(destinations []byte) (*godo.AlertDestinationUpdateRequest, error) { + jsonAlertDestinations, err := yaml.YAMLToJSON(destinations) + if err != nil { + return nil, err + } + + dec := json.NewDecoder(bytes.NewReader(jsonAlertDestinations)) + dec.DisallowUnknownFields() + + var alertDestinations godo.AlertDestinationUpdateRequest + if err := dec.Decode(&alertDestinations); err != nil { + return nil, err + } + + return &alertDestinations, nil +} diff --git a/commands/apps_test.go b/commands/apps_test.go index ec6af2bfa..b66ca32e1 100644 --- a/commands/apps_test.go +++ b/commands/apps_test.go @@ -35,6 +35,8 @@ func TestAppsCommand(t *testing.T) { "propose", "spec", "tier", + "list-alerts", + "update-alert-destinations", ) } @@ -71,6 +73,46 @@ var ( TierUpgradeTo: "professional-xs", TierDowngradeTo: "basic-xxxs", } + + testAlerts = []*godo.AppAlert{ + { + ID: "c586fc0d-e8e2-4c50-9bf6-6c0a6b2ed2a7", + Spec: &godo.AppAlertSpec{ + Rule: godo.AppAlertSpecRule_DeploymentFailed, + }, + Emails: []string{"test@example.com", "test2@example.com"}, + SlackWebhooks: []*godo.AppAlertSlackWebhook{ + { + URL: "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX", + Channel: "channel name", + }, + }, + }, + } + + testAlert = godo.AppAlert{ + ID: "c586fc0d-e8e2-4c50-9bf6-6c0a6b2ed2a7", + Spec: &godo.AppAlertSpec{ + Rule: godo.AppAlertSpecRule_DeploymentFailed, + }, + Emails: []string{"test@example.com", "test2@example.com"}, + SlackWebhooks: []*godo.AppAlertSlackWebhook{ + { + URL: "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX", + Channel: "channel name", + }, + }, + } + + testAlertUpdate = godo.AlertDestinationUpdateRequest{ + Emails: []string{"test@example.com", "test2@example.com"}, + SlackWebhooks: []*godo.AppAlertSlackWebhook{ + { + URL: "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX", + Channel: "channel name", + }, + }, + } ) func TestRunAppsCreate(t *testing.T) { @@ -762,3 +804,35 @@ func TestRunAppsTierInstanceSizeGet(t *testing.T) { require.NoError(t, err) }) } + +func TestRunAppsListAlerts(t *testing.T) { + withTestClient(t, func(config *CmdConfig, tm *tcMocks) { + appID := uuid.New().String() + tm.apps.EXPECT().ListAlerts(appID).Times(1).Return(testAlerts, nil) + + config.Args = append(config.Args, appID) + err := RunAppListAlerts(config) + require.NoError(t, err) + }) +} + +func TestRunAppsUpdateAlertDestinations(t *testing.T) { + withTestClient(t, func(config *CmdConfig, tm *tcMocks) { + destinationsFile, err := ioutil.TempFile("", "dest") + require.NoError(t, err) + defer func() { + os.Remove(destinationsFile.Name()) + destinationsFile.Close() + }() + + err = json.NewEncoder(destinationsFile).Encode(&testAlertUpdate) + require.NoError(t, err) + appID := uuid.New().String() + tm.apps.EXPECT().UpdateAlertDestinations(appID, testAlert.ID, &testAlertUpdate).Times(1).Return(&testAlert, nil) + + config.Args = append(config.Args, appID, testAlert.ID) + config.Doit.Set(config.NS, doctl.ArgAppAlertDestinations, destinationsFile.Name()) + err = RunAppUpdateAlertDestinations(config) + require.NoError(t, err) + }) +} diff --git a/commands/displayers/apps.go b/commands/displayers/apps.go index a9854af14..052179e9d 100644 --- a/commands/displayers/apps.go +++ b/commands/displayers/apps.go @@ -369,3 +369,87 @@ func (r AppProposeResponse) JSON(w io.Writer) error { e.SetIndent("", " ") return e.Encode(r.Res) } + +type AppAlerts []*godo.AppAlert + +var _ Displayable = (*AppAlerts)(nil) + +func (a AppAlerts) Cols() []string { + return []string{ + "ID", + "Spec.Rule", + "Trigger", + "ComponentName", + "Emails", + "SlackWebhooks", + "Spec.Disabled", + } +} + +func (a AppAlerts) ColMap() map[string]string { + return map[string]string{ + "ID": "ID", + "Spec.Rule": "Alert Rule", + "Trigger": "Alert Trigger", + "ComponentName": "Component Name", + "Emails": "Number Of Emails", + "SlackWebhooks": "Number Of Slack Webhooks", + "Spec.Disabled": "Alert Disabled?", + } +} + +func (a AppAlerts) KV() []map[string]interface{} { + out := make([]map[string]interface{}, len(a)) + + for i, alert := range a { + var trigger string + switch alert.Spec.Rule { + case godo.AppAlertSpecRule_UnspecifiedRule: + trigger = "Unknown" + case godo.AppAlertSpecRule_CPUUtilization, godo.AppAlertSpecRule_MemUtilization, godo.AppAlertSpecRule_RestartCount: + var operator, window string + switch alert.Spec.Operator { + case godo.AppAlertSpecOperator_GreaterThan: + operator = ">" + case godo.AppAlertSpecOperator_LessThan: + operator = "<" + default: + operator = "Unknown" + } + switch alert.Spec.Window { + case godo.AppAlertSpecWindow_FiveMinutes: + window = "5m" + case godo.AppAlertSpecWindow_TenMinutes: + window = "10m" + case godo.AppAlertSpecWindow_ThirtyMinutes: + window = "30M" + case godo.AppAlertSpecWindow_OneHour: + window = "1h" + default: + window = "Unknown" + } + trigger = fmt.Sprintf("%s %.2f for %s", operator, alert.Spec.Value, window) + case godo.AppAlertSpecRule_DeploymentFailed, godo.AppAlertSpecRule_DeploymentLive, godo.AppAlertSpecRule_DomainFailed, godo.AppAlertSpecRule_DomainLive: + trigger = "Event" + default: + trigger = "Unknown" + } + + out[i] = map[string]interface{}{ + "ID": alert.ID, + "Spec.Rule": alert.Spec.Rule, + "Trigger": trigger, + "ComponentName": alert.ComponentName, + "Emails": len(alert.Emails), + "SlackWebhooks": len(alert.SlackWebhooks), + "Spec.Disabled": alert.Spec.Disabled, + } + } + return out +} + +func (a AppAlerts) JSON(w io.Writer) error { + e := json.NewEncoder(w) + e.SetIndent("", " ") + return e.Encode(a) +} diff --git a/do/apps.go b/do/apps.go index 024fabd3c..0e7cfa159 100644 --- a/do/apps.go +++ b/do/apps.go @@ -41,6 +41,9 @@ type AppsService interface { ListInstanceSizes() ([]*godo.AppInstanceSize, error) GetInstanceSize(slug string) (*godo.AppInstanceSize, error) + + ListAlerts(appID string) ([]*godo.AppAlert, error) + UpdateAlertDestinations(appID, alertID string, update *godo.AlertDestinationUpdateRequest) (*godo.AppAlert, error) } type appsService struct { @@ -218,3 +221,19 @@ func (s *appsService) GetInstanceSize(slug string) (*godo.AppInstanceSize, error } return instanceSize, nil } + +func (s *appsService) ListAlerts(appID string) ([]*godo.AppAlert, error) { + alerts, _, err := s.client.Apps.ListAlerts(s.ctx, appID) + if err != nil { + return nil, err + } + return alerts, nil +} + +func (s *appsService) UpdateAlertDestinations(appID, alertID string, update *godo.AlertDestinationUpdateRequest) (*godo.AppAlert, error) { + alert, _, err := s.client.Apps.UpdateAlertDestinations(s.ctx, appID, alertID, update) + if err != nil { + return nil, err + } + return alert, nil +} diff --git a/do/mocks/AppsService.go b/do/mocks/AppsService.go index 906f93ed1..b94f8adf5 100644 --- a/do/mocks/AppsService.go +++ b/do/mocks/AppsService.go @@ -168,6 +168,21 @@ func (mr *MockAppsServiceMockRecorder) List() *gomock.Call { return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockAppsService)(nil).List)) } +// ListAlerts mocks base method. +func (m *MockAppsService) ListAlerts(appID string) ([]*godo.AppAlert, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "ListAlerts", appID) + ret0, _ := ret[0].([]*godo.AppAlert) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ListAlerts indicates an expected call of ListAlerts. +func (mr *MockAppsServiceMockRecorder) ListAlerts(appID interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ListAlerts", reflect.TypeOf((*MockAppsService)(nil).ListAlerts), appID) +} + // ListDeployments mocks base method. func (m *MockAppsService) ListDeployments(appID string) ([]*godo.Deployment, error) { m.ctrl.T.Helper() @@ -257,3 +272,18 @@ func (mr *MockAppsServiceMockRecorder) Update(appID, req interface{}) *gomock.Ca mr.mock.ctrl.T.Helper() return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockAppsService)(nil).Update), appID, req) } + +// UpdateAlertDestinations mocks base method. +func (m *MockAppsService) UpdateAlertDestinations(appID, alertID string, update *godo.AlertDestinationUpdateRequest) (*godo.AppAlert, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateAlertDestinations", appID, alertID, update) + ret0, _ := ret[0].(*godo.AppAlert) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateAlertDestinations indicates an expected call of UpdateAlertDestinations. +func (mr *MockAppsServiceMockRecorder) UpdateAlertDestinations(appID, alertID, update interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateAlertDestinations", reflect.TypeOf((*MockAppsService)(nil).UpdateAlertDestinations), appID, alertID, update) +} diff --git a/go.mod b/go.mod index 56365ff48..ae0a203cb 100644 --- a/go.mod +++ b/go.mod @@ -4,16 +4,11 @@ go 1.16 require ( github.com/Microsoft/hcsshim v0.8.10 // indirect - github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 // indirect github.com/blang/semver v3.5.1+incompatible github.com/containerd/continuity v0.0.0-20200413184840-d3ef23f19fbb // indirect - github.com/coreos/bbolt v1.3.2 // indirect - github.com/coreos/etcd v3.3.10+incompatible // indirect - github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e // indirect - github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f // indirect github.com/cpuguy83/go-md2man v1.0.10 // indirect github.com/creack/pty v1.1.11 - github.com/digitalocean/godo v1.64.2 + github.com/digitalocean/godo v1.65.0 github.com/docker/cli v0.0.0-20200622130859-87db43814b48 github.com/docker/docker v17.12.0-ce-rc1.0.20200531234253-77e06fda0c94+incompatible // indirect github.com/docker/docker-credential-helpers v0.6.3 // indirect @@ -21,41 +16,26 @@ require ( github.com/fatih/color v1.12.0 github.com/gobwas/glob v0.2.3 github.com/golang/mock v1.5.0 - github.com/golang/protobuf v1.5.2 // indirect github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.1.2 github.com/gorilla/websocket v1.4.2 - github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 // indirect - github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 // indirect github.com/imdario/mergo v0.3.6 // indirect - github.com/jonboulle/clockwork v0.1.0 // indirect github.com/mattn/go-isatty v0.0.13 // indirect github.com/mitchellh/copystructure v1.0.0 github.com/natefinch/pie v0.0.0-20170715172608-9a0d72014007 github.com/opencontainers/image-spec v1.0.1 // indirect github.com/opencontainers/runc v1.0.0-rc95 // indirect - github.com/prometheus/client_golang v0.9.3 // indirect github.com/sclevine/spec v1.3.0 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 - github.com/sirupsen/logrus v1.7.0 // indirect - github.com/soheilhy/cmux v0.1.4 // indirect github.com/spf13/cast v1.4.0 // indirect github.com/spf13/cobra v0.0.3 - github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/viper v1.8.1 github.com/stretchr/testify v1.7.0 - github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect - github.com/ugorji/go v1.1.4 // indirect - github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect - github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 // indirect - go.etcd.io/bbolt v1.3.2 // indirect golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 // indirect golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914 golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c // indirect - google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.27.1 // indirect - gopkg.in/resty.v1 v1.12.0 // indirect gopkg.in/yaml.v2 v2.4.0 gotest.tools/v3 v3.0.2 // indirect k8s.io/api v0.20.0 diff --git a/go.sum b/go.sum index dfa8c0f55..b93ba0565 100644 --- a/go.sum +++ b/go.sum @@ -47,7 +47,6 @@ github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935 github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Microsoft/go-winio v0.4.15-0.20200908182639-5b44b70ab3ab h1:9pygWVFqbY9lPxM0peffumuVDyMuIMzNLyO9uFjJuQo= @@ -55,25 +54,18 @@ github.com/Microsoft/go-winio v0.4.15-0.20200908182639-5b44b70ab3ab/go.mod h1:tT github.com/Microsoft/hcsshim v0.8.10 h1:k5wTrpnVU2/xv8ZuzGkbXVd3js5zJ8RnumPo5RxiIxU= github.com/Microsoft/hcsshim v0.8.10/go.mod h1:g5uw8EV2mAlzqe94tfNBNdr89fnbD/n3HV0OhsddkmM= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= -github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= -github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= -github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= @@ -95,15 +87,10 @@ github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= -github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= -github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= -github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= github.com/coreos/go-systemd/v22 v22.3.1/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= @@ -115,9 +102,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= -github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= -github.com/digitalocean/godo v1.64.2 h1:lJEB2TVIkJydFWJMPtdYOPa2Xwib+smZqq/oUZF8/iA= -github.com/digitalocean/godo v1.64.2/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU= +github.com/digitalocean/godo v1.65.0 h1:3SywGJBC18HaYtPQF+T36jYzXBi+a6eIMonSjDll7TA= +github.com/digitalocean/godo v1.65.0/go.mod h1:p7dOjjtSBqCTUksqtA5Fd3uaKs9kyTq2xcz76ulEJRU= github.com/docker/cli v0.0.0-20200622130859-87db43814b48 h1:AC8qbhi/SjYf4iN2W3jSsofZGHWPjG8pjf5P143KUM8= github.com/docker/cli v0.0.0-20200622130859-87db43814b48/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v17.12.0-ce-rc1.0.20200531234253-77e06fda0c94+incompatible h1:PmGHHCZ43l6h8aZIi+Xa+z1SWe4dFImd5EK3TNp1jlo= @@ -141,7 +127,6 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/fatih/color v1.7.0 h1:DkWD4oS2D8LGGgTQ6IvwJJXSL5Vp2ffcQg58nFV38Ys= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= @@ -155,9 +140,6 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= -github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= -github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0 h1:QvGt2nLcHH0WK9orKa+ppBPAxREcH364nPUedEpK0TY= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= @@ -168,19 +150,14 @@ github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL9 github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= -github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= -github.com/gogo/protobuf v1.3.1 h1:DqDEcV5aeaTmdFBePNpYsp3FlcVH/2ISVVM9Qf8PSls= github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -190,7 +167,6 @@ github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFU github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4 h1:l75CXGRSwbaYNpl/Z2X1XIIAMSCquvXgpVZDhwEIJsc= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0 h1:jlYHihg//f7RRwuPfptm04yp4s7O6Kw8EZiVYIGcH0g= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= @@ -253,16 +229,11 @@ github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+ github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= -github.com/gorilla/websocket v1.4.1 h1:q7AeDBpnBk8AogcD4DSag/Ukw/KV+YhzLj2bP5HvKCM= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= -github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= @@ -293,50 +264,39 @@ github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.0 h1:s5hAObm+yFO5uHYt5dYjxi2rXrsnmRpJx4OYvIWUaQs= github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4= -github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= -github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.13 h1:qdl+GuBjcsKKDco5BsxPJlId98mSWNKqYA+Co0SC1yA= github.com/mattn/go-isatty v0.0.13/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/copystructure v1.0.0 h1:Laisrj+bAB6b/yJwB5Bt3ITZhGJdqmxquMKeZ+mmkFQ= @@ -346,7 +306,6 @@ github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eI github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= @@ -361,11 +320,9 @@ github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9 github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/natefinch/pie v0.0.0-20170715172608-9a0d72014007 h1:Ohgj9L0EYOgXxkDp+bczlMBiulwmqYzQpvQNUdtt3oc= github.com/natefinch/pie v0.0.0-20170715172608-9a0d72014007/go.mod h1:wKCOWMb6iNlvKiOToY2cNuaovSXvIiv1zDi9QDR7aGQ= -github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -378,21 +335,15 @@ github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQ github.com/opencontainers/image-spec v1.0.1 h1:JMemWkRwHx4Zj+fVxWoMCFm/8sYGGrUVojFA6h/TRcI= github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= -github.com/opencontainers/runc v1.0.0-rc90 h1:4+xo8mtWixbHoEm451+WJNUrq12o2/tDsyK9Vgc/NcA= -github.com/opencontainers/runc v1.0.0-rc90/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= github.com/opencontainers/runc v1.0.0-rc95 h1:RMuWVfY3E1ILlVsC3RhIq38n4sJtlOFwU9gfFZSqrd0= github.com/opencontainers/runc v1.0.0-rc95/go.mod h1:z+bZxa/+Tz/FmYVWkhUajJdzFeOqjc5vrqskhVyHGUM= github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.6.0 h1:aetoXYr0Tv7xRU/V4B4IZJ2QcbtMUFoNb3ORp7TzIK4= -github.com/pelletier/go-toml v1.6.0/go.mod h1:5N711Q9dKgbdkxHL+MEfF31hpT7l0S0s/t2kKREewys= github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ= github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -401,18 +352,8 @@ github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= -github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= -github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= @@ -427,29 +368,23 @@ github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 h1:X+yvsM2yrEktyI github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644/go.mod h1:nkxAfR/5quYxwPZhyDxgasBMnRtBZd0FCEpawpjMUFg= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= -github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= -github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= -github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= -github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.4.0 h1:WhlbjwB9EGCc8W5Rxdkus+wmH2ASRwwTJk6tgHKwdqQ= github.com/spf13/cast v1.4.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -457,8 +392,6 @@ github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bd github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.4.0 h1:yXHLWeravcrgGyFSyCgdYpXQ9dR9c/WED3pg1RhxqEU= -github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.8.1 h1:Kq1fyeebqsBfbjZj4EL7gj2IO0mMaiyjYUWcUsl2O44= github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= @@ -468,28 +401,22 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= @@ -500,14 +427,10 @@ go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -558,16 +481,13 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= @@ -598,8 +518,6 @@ golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/net v0.0.0-20210716203947-853a461950ff h1:j2EK/QoxYNBsXI4R7fQkkRUk8y6wnOBI+6hgPdP/6Ds= -golang.org/x/net v0.0.0-20210716203947-853a461950ff/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 h1:4CSI6oo7cOjJKajidEljs9h+uP0rRZBPPPhcCbj5mw8= golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= @@ -632,8 +550,6 @@ golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -683,7 +599,6 @@ golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -706,7 +621,6 @@ golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e h1:EHBhcS0mlXEAVwNyO2dLfjToGsyY4j24pTs2ScHnX7s= golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -839,7 +753,6 @@ google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaE google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= @@ -874,7 +787,6 @@ google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQ google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= -gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo= @@ -886,18 +798,13 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/vendor/github.com/digitalocean/godo/1-click.go b/vendor/github.com/digitalocean/godo/1-click.go index d1ba001f1..2e07cf689 100644 --- a/vendor/github.com/digitalocean/godo/1-click.go +++ b/vendor/github.com/digitalocean/godo/1-click.go @@ -10,7 +10,7 @@ const oneClickBasePath = "v2/1-clicks" // OneClickService is an interface for interacting with 1-clicks with the // DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2/#1-click-applications +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/1-Click-Applications type OneClickService interface { List(context.Context, string) ([]*OneClick, *Response, error) InstallKubernetes(context.Context, *InstallKubernetesAppsRequest) (*InstallKubernetesAppsResponse, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/CHANGELOG.md b/vendor/github.com/digitalocean/godo/CHANGELOG.md index 76a80c8cd..1fc1e356a 100644 --- a/vendor/github.com/digitalocean/godo/CHANGELOG.md +++ b/vendor/github.com/digitalocean/godo/CHANGELOG.md @@ -1,5 +1,11 @@ # Change Log +## [v1.65.0] - 2021-08-05 + +- #468 - @notxarb - New alerts feature for App Platform +- #467 - @andrewsomething - docs: Update links to API documentation. +- #466 - @andrewsomething - Mark Response.Monitor as deprecated. + ## [v1.64.2] - 2021-07-23 - #464 - @bsnyder788 - insights: update HTTP method for alert policy update diff --git a/vendor/github.com/digitalocean/godo/README.md b/vendor/github.com/digitalocean/godo/README.md index 2ceff7887..3cfc6f9a8 100644 --- a/vendor/github.com/digitalocean/godo/README.md +++ b/vendor/github.com/digitalocean/godo/README.md @@ -7,7 +7,7 @@ Godo is a Go client library for accessing the DigitalOcean V2 API. You can view the client API docs here: [http://godoc.org/github.com/digitalocean/godo](http://godoc.org/github.com/digitalocean/godo) -You can view DigitalOcean API docs here: [https://developers.digitalocean.com/documentation/v2/](https://developers.digitalocean.com/documentation/v2/) +You can view DigitalOcean API docs here: [https://docs.digitalocean.com/reference/api/api-reference/](https://docs.digitalocean.com/reference/api/api-reference/) ## Install ```sh @@ -127,7 +127,7 @@ To see the list of past versions, run `git tag`. ## Documentation -For a comprehensive list of examples, check out the [API documentation](https://developers.digitalocean.com/documentation/v2/). +For a comprehensive list of examples, check out the [API documentation](https://docs.digitalocean.com/reference/api/api-reference/#tag/SSH-Keys). For details on all the functionality in this library, see the [GoDoc](http://godoc.org/github.com/digitalocean/godo) documentation. diff --git a/vendor/github.com/digitalocean/godo/account.go b/vendor/github.com/digitalocean/godo/account.go index 7d3e105d3..a6691e84a 100644 --- a/vendor/github.com/digitalocean/godo/account.go +++ b/vendor/github.com/digitalocean/godo/account.go @@ -7,7 +7,7 @@ import ( // AccountService is an interface for interfacing with the Account // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2/#account +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Account type AccountService interface { Get(context.Context) (*Account, *Response, error) } diff --git a/vendor/github.com/digitalocean/godo/action.go b/vendor/github.com/digitalocean/godo/action.go index e3176005b..b74a28432 100644 --- a/vendor/github.com/digitalocean/godo/action.go +++ b/vendor/github.com/digitalocean/godo/action.go @@ -17,7 +17,7 @@ const ( ) // ActionsService handles communction with action related methods of the -// DigitalOcean API: https://developers.digitalocean.com/documentation/v2#actions +// DigitalOcean API: https://docs.digitalocean.com/reference/api/api-reference/#tag/Actions type ActionsService interface { List(context.Context, *ListOptions) ([]Action, *Response, error) Get(context.Context, int) (*Action, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/apps.gen.go b/vendor/github.com/digitalocean/godo/apps.gen.go index ba48e2091..fa4e943be 100644 --- a/vendor/github.com/digitalocean/godo/apps.gen.go +++ b/vendor/github.com/digitalocean/godo/apps.gen.go @@ -7,6 +7,68 @@ import ( "time" ) +// AppAlert struct for AppAlert +type AppAlert struct { + ID string `json:"id,omitempty"` + ComponentName string `json:"component_name,omitempty"` + Spec *AppAlertSpec `json:"spec,omitempty"` + Emails []string `json:"emails,omitempty"` + SlackWebhooks []*AppAlertSlackWebhook `json:"slack_webhooks,omitempty"` + Phase AppAlertPhase `json:"phase,omitempty"` + Progress *AppAlertProgress `json:"progress,omitempty"` +} + +// AppAlertPhase the model 'AppAlertPhase' +type AppAlertPhase string + +// List of AppAlertPhase +const ( + AppAlertPhase_Unknown AppAlertPhase = "UNKNOWN" + AppAlertPhase_Pending AppAlertPhase = "PENDING" + AppAlertPhase_Configuring AppAlertPhase = "CONFIGURING" + AppAlertPhase_Active AppAlertPhase = "ACTIVE" + AppAlertPhase_Error AppAlertPhase = "ERROR" +) + +// AppAlertProgress struct for AppAlertProgress +type AppAlertProgress struct { + Steps []*AppAlertProgressStep `json:"steps,omitempty"` +} + +// AppAlertProgressStep struct for AppAlertProgressStep +type AppAlertProgressStep struct { + Name string `json:"name,omitempty"` + Status AppAlertProgressStepStatus `json:"status,omitempty"` + Steps []*AppAlertProgressStep `json:"steps,omitempty"` + StartedAt time.Time `json:"started_at,omitempty"` + EndedAt time.Time `json:"ended_at,omitempty"` + Reason *AppAlertProgressStepReason `json:"reason,omitempty"` +} + +// AppAlertProgressStepReason struct for AppAlertProgressStepReason +type AppAlertProgressStepReason struct { + Code string `json:"code,omitempty"` + Message string `json:"message,omitempty"` +} + +// AppAlertProgressStepStatus the model 'AppAlertProgressStepStatus' +type AppAlertProgressStepStatus string + +// List of AppAlertProgressStepStatus +const ( + AppAlertProgressStepStatus_Unknown AppAlertProgressStepStatus = "UNKNOWN" + AppAlertProgressStepStatus_Pending AppAlertProgressStepStatus = "PENDING" + AppAlertProgressStepStatus_Running AppAlertProgressStepStatus = "RUNNING" + AppAlertProgressStepStatus_Error AppAlertProgressStepStatus = "ERROR" + AppAlertProgressStepStatus_Success AppAlertProgressStepStatus = "SUCCESS" +) + +// AppAlertSlackWebhook struct for AppAlertSlackWebhook +type AppAlertSlackWebhook struct { + URL string `json:"url,omitempty"` + Channel string `json:"channel,omitempty"` +} + // App An application's configuration and status. type App struct { ID string `json:"id,omitempty"` @@ -27,6 +89,52 @@ type App struct { Domains []*AppDomain `json:"domains,omitempty"` } +// AppAlertSpec struct for AppAlertSpec +type AppAlertSpec struct { + Rule AppAlertSpecRule `json:"rule,omitempty"` + Disabled bool `json:"disabled,omitempty"` + Operator AppAlertSpecOperator `json:"operator,omitempty"` + Value float32 `json:"value,omitempty"` + Window AppAlertSpecWindow `json:"window,omitempty"` +} + +// AppAlertSpecOperator the model 'AppAlertSpecOperator' +type AppAlertSpecOperator string + +// List of AppAlertSpecOperator +const ( + AppAlertSpecOperator_UnspecifiedOperator AppAlertSpecOperator = "UNSPECIFIED_OPERATOR" + AppAlertSpecOperator_GreaterThan AppAlertSpecOperator = "GREATER_THAN" + AppAlertSpecOperator_LessThan AppAlertSpecOperator = "LESS_THAN" +) + +// AppAlertSpecRule the model 'AppAlertSpecRule' +type AppAlertSpecRule string + +// List of AppAlertSpecRule +const ( + AppAlertSpecRule_UnspecifiedRule AppAlertSpecRule = "UNSPECIFIED_RULE" + AppAlertSpecRule_CPUUtilization AppAlertSpecRule = "CPU_UTILIZATION" + AppAlertSpecRule_MemUtilization AppAlertSpecRule = "MEM_UTILIZATION" + AppAlertSpecRule_RestartCount AppAlertSpecRule = "RESTART_COUNT" + AppAlertSpecRule_DeploymentFailed AppAlertSpecRule = "DEPLOYMENT_FAILED" + AppAlertSpecRule_DeploymentLive AppAlertSpecRule = "DEPLOYMENT_LIVE" + AppAlertSpecRule_DomainFailed AppAlertSpecRule = "DOMAIN_FAILED" + AppAlertSpecRule_DomainLive AppAlertSpecRule = "DOMAIN_LIVE" +) + +// AppAlertSpecWindow the model 'AppAlertSpecWindow' +type AppAlertSpecWindow string + +// List of AppAlertSpecWindow +const ( + AppAlertSpecWindow_UnspecifiedWindow AppAlertSpecWindow = "UNSPECIFIED_WINDOW" + AppAlertSpecWindow_FiveMinutes AppAlertSpecWindow = "FIVE_MINUTES" + AppAlertSpecWindow_TenMinutes AppAlertSpecWindow = "TEN_MINUTES" + AppAlertSpecWindow_ThirtyMinutes AppAlertSpecWindow = "THIRTY_MINUTES" + AppAlertSpecWindow_OneHour AppAlertSpecWindow = "ONE_HOUR" +) + // AppDatabaseSpec struct for AppDatabaseSpec type AppDatabaseSpec struct { // The name. Must be unique across all components within the same app. @@ -52,10 +160,11 @@ type AppDatabaseSpecEngine string // List of AppDatabaseSpecEngine const ( - AppDatabaseSpecEngine_Unset AppDatabaseSpecEngine = "UNSET" - AppDatabaseSpecEngine_MySQL AppDatabaseSpecEngine = "MYSQL" - AppDatabaseSpecEngine_PG AppDatabaseSpecEngine = "PG" - AppDatabaseSpecEngine_Redis AppDatabaseSpecEngine = "REDIS" + AppDatabaseSpecEngine_Unset AppDatabaseSpecEngine = "UNSET" + AppDatabaseSpecEngine_MySQL AppDatabaseSpecEngine = "MYSQL" + AppDatabaseSpecEngine_PG AppDatabaseSpecEngine = "PG" + AppDatabaseSpecEngine_Redis AppDatabaseSpecEngine = "REDIS" + AppDatabaseSpecEngine_MongoDB AppDatabaseSpecEngine = "MONGODB" ) // AppDomainSpec struct for AppDomainSpec @@ -99,9 +208,10 @@ type AppJobSpec struct { // A list of environment variables made available to the component. Envs []*AppVariableDefinition `json:"envs,omitempty"` // The instance size to use for this component. - InstanceSizeSlug string `json:"instance_size_slug,omitempty"` - InstanceCount int64 `json:"instance_count,omitempty"` - Kind AppJobSpecKind `json:"kind,omitempty"` + InstanceSizeSlug string `json:"instance_size_slug,omitempty"` + InstanceCount int64 `json:"instance_count,omitempty"` + Kind AppJobSpecKind `json:"kind,omitempty"` + Alerts []*AppAlertSpec `json:"alerts,omitempty"` } // AppJobSpecKind - UNSPECIFIED: Default job type, will auto-complete to POST_DEPLOY kind. - PRE_DEPLOY: Indicates a job that runs before an app deployment. - POST_DEPLOY: Indicates a job that runs after an app deployment. - FAILED_DEPLOY: Indicates a job that runs after a component fails to deploy. @@ -150,7 +260,8 @@ type AppServiceSpec struct { HealthCheck *AppServiceSpecHealthCheck `json:"health_check,omitempty"` CORS *AppCORSPolicy `json:"cors,omitempty"` // The ports on which this service will listen for internal traffic. - InternalPorts []int64 `json:"internal_ports,omitempty"` + InternalPorts []int64 `json:"internal_ports,omitempty"` + Alerts []*AppAlertSpec `json:"alerts,omitempty"` } // AppServiceSpecHealthCheck struct for AppServiceSpecHealthCheck @@ -189,7 +300,8 @@ type AppSpec struct { Domains []*AppDomainSpec `json:"domains,omitempty"` Region string `json:"region,omitempty"` // A list of environment variables made available to all components in the app. - Envs []*AppVariableDefinition `json:"envs,omitempty"` + Envs []*AppVariableDefinition `json:"envs,omitempty"` + Alerts []*AppAlertSpec `json:"alerts,omitempty"` } // AppStaticSiteSpec struct for AppStaticSiteSpec @@ -252,8 +364,31 @@ type AppWorkerSpec struct { // A list of environment variables made available to the component. Envs []*AppVariableDefinition `json:"envs,omitempty"` // The instance size to use for this component. - InstanceSizeSlug string `json:"instance_size_slug,omitempty"` - InstanceCount int64 `json:"instance_count,omitempty"` + InstanceSizeSlug string `json:"instance_size_slug,omitempty"` + InstanceCount int64 `json:"instance_count,omitempty"` + Alerts []*AppAlertSpec `json:"alerts,omitempty"` +} + +// DeploymentCauseDetailsDigitalOceanUser struct for DeploymentCauseDetailsDigitalOceanUser +type DeploymentCauseDetailsDigitalOceanUser struct { + UUID string `json:"uuid,omitempty"` + Email string `json:"email,omitempty"` + FullName string `json:"full_name,omitempty"` +} + +// DeploymentCauseDetailsDigitalOceanUserAction struct for DeploymentCauseDetailsDigitalOceanUserAction +type DeploymentCauseDetailsDigitalOceanUserAction struct { + User *DeploymentCauseDetailsDigitalOceanUser `json:"user,omitempty"` + Name DeploymentCauseDetailsDigitalOceanUserActionName `json:"name,omitempty"` +} + +// DeploymentCauseDetailsGitPush struct for DeploymentCauseDetailsGitPush +type DeploymentCauseDetailsGitPush struct { + GitHub *GitHubSourceSpec `json:"github,omitempty"` + GitLab *GitLabSourceSpec `json:"gitlab,omitempty"` + Username string `json:"username,omitempty"` + CommitAuthor string `json:"commit_author,omitempty"` + CommitSHA string `json:"commit_sha,omitempty"` } // AppCORSPolicy struct for AppCORSPolicy @@ -272,23 +407,50 @@ type AppCORSPolicy struct { AllowCredentials bool `json:"allow_credentials,omitempty"` } +// AppCreateRequest struct for AppCreateRequest +type AppCreateRequest struct { + Spec *AppSpec `json:"spec"` +} + // Deployment struct for Deployment type Deployment struct { - ID string `json:"id,omitempty"` - Spec *AppSpec `json:"spec,omitempty"` - Services []*DeploymentService `json:"services,omitempty"` - StaticSites []*DeploymentStaticSite `json:"static_sites,omitempty"` - Workers []*DeploymentWorker `json:"workers,omitempty"` - Jobs []*DeploymentJob `json:"jobs,omitempty"` - PhaseLastUpdatedAt time.Time `json:"phase_last_updated_at,omitempty"` - CreatedAt time.Time `json:"created_at,omitempty"` - UpdatedAt time.Time `json:"updated_at,omitempty"` - Cause string `json:"cause,omitempty"` - ClonedFrom string `json:"cloned_from,omitempty"` - Progress *DeploymentProgress `json:"progress,omitempty"` - Phase DeploymentPhase `json:"phase,omitempty"` - TierSlug string `json:"tier_slug,omitempty"` -} + ID string `json:"id,omitempty"` + Spec *AppSpec `json:"spec,omitempty"` + Services []*DeploymentService `json:"services,omitempty"` + StaticSites []*DeploymentStaticSite `json:"static_sites,omitempty"` + Workers []*DeploymentWorker `json:"workers,omitempty"` + Jobs []*DeploymentJob `json:"jobs,omitempty"` + PhaseLastUpdatedAt time.Time `json:"phase_last_updated_at,omitempty"` + CreatedAt time.Time `json:"created_at,omitempty"` + UpdatedAt time.Time `json:"updated_at,omitempty"` + Cause string `json:"cause,omitempty"` + ClonedFrom string `json:"cloned_from,omitempty"` + Progress *DeploymentProgress `json:"progress,omitempty"` + Phase DeploymentPhase `json:"phase,omitempty"` + TierSlug string `json:"tier_slug,omitempty"` + PreviousDeploymentID string `json:"previous_deployment_id,omitempty"` + CauseDetails *DeploymentCauseDetails `json:"cause_details,omitempty"` +} + +// DeploymentCauseDetails struct for DeploymentCauseDetails +type DeploymentCauseDetails struct { + DigitalOceanUserAction *DeploymentCauseDetailsDigitalOceanUserAction `json:"digitalocean_user_action,omitempty"` + GitPush *DeploymentCauseDetailsGitPush `json:"git_push,omitempty"` + Internal bool `json:"internal,omitempty"` + Type DeploymentCauseDetailsType `json:"type,omitempty"` +} + +// DeploymentCauseDetailsType - MANUAL: A deployment that was manually created - DEPLOY_ON_PUSH: A deployment that was automatically created by a Deploy on Push hook - MAINTENANCE: A deployment created for App Platform maintenance - AUTO_ROLLBACK: An automatic rollback deployment created as a result of a previous deployment failing +type DeploymentCauseDetailsType string + +// List of DeploymentCauseDetailsType +const ( + DeploymentCauseDetailsType_Unknown DeploymentCauseDetailsType = "UNKNOWN" + DeploymentCauseDetailsType_Manual DeploymentCauseDetailsType = "MANUAL" + DeploymentCauseDetailsType_DeployOnPush DeploymentCauseDetailsType = "DEPLOY_ON_PUSH" + DeploymentCauseDetailsType_Maintenance DeploymentCauseDetailsType = "MAINTENANCE" + DeploymentCauseDetailsType_AutoRollback DeploymentCauseDetailsType = "AUTO_ROLLBACK" +) // DeploymentJob struct for DeploymentJob type DeploymentJob struct { @@ -372,6 +534,16 @@ type DeploymentWorker struct { SourceCommitHash string `json:"source_commit_hash,omitempty"` } +// DeploymentCauseDetailsDigitalOceanUserActionName the model 'CauseDetailsDigitalOceanUserActionName' +type DeploymentCauseDetailsDigitalOceanUserActionName string + +// List of DeploymentCauseDetailsDigitalOceanUserActionName +const ( + DeploymentCauseDetailsDigitalOceanUserActionName_Unknown DeploymentCauseDetailsDigitalOceanUserActionName = "UNKNOWN" + DeploymentCauseDetailsDigitalOceanUserActionName_CreateDeployment DeploymentCauseDetailsDigitalOceanUserActionName = "CREATE_DEPLOYMENT" + DeploymentCauseDetailsDigitalOceanUserActionName_UpdateSpec DeploymentCauseDetailsDigitalOceanUserActionName = "UPDATE_SPEC" +) + // AppDomain struct for AppDomain type AppDomain struct { ID string `json:"id,omitempty"` diff --git a/vendor/github.com/digitalocean/godo/apps.go b/vendor/github.com/digitalocean/godo/apps.go index 7b174c192..aa8ecfe8a 100644 --- a/vendor/github.com/digitalocean/godo/apps.go +++ b/vendor/github.com/digitalocean/godo/apps.go @@ -45,6 +45,9 @@ type AppsService interface { ListInstanceSizes(ctx context.Context) ([]*AppInstanceSize, *Response, error) GetInstanceSize(ctx context.Context, slug string) (*AppInstanceSize, *Response, error) + + ListAlerts(ctx context.Context, appID string) ([]*AppAlert, *Response, error) + UpdateAlertDestinations(ctx context.Context, appID, alertID string, update *AlertDestinationUpdateRequest) (*AppAlert, *Response, error) } // AppLogs represent app logs. @@ -53,11 +56,6 @@ type AppLogs struct { HistoricURLs []string `json:"historic_urls"` } -// AppCreateRequest represents a request to create an app. -type AppCreateRequest struct { - Spec *AppSpec `json:"spec"` -} - // AppUpdateRequest represents a request to update an app. type AppUpdateRequest struct { Spec *AppSpec `json:"spec"` @@ -68,6 +66,12 @@ type DeploymentCreateRequest struct { ForceBuild bool `json:"force_build"` } +// AlertDestinationUpdateRequest represents a request to update alert destinations. +type AlertDestinationUpdateRequest struct { + Emails []string `json:"emails"` + SlackWebhooks []*AppAlertSlackWebhook `json:"slack_webhooks"` +} + type appRoot struct { App *App `json:"app"` } @@ -108,6 +112,14 @@ type appRegionsRoot struct { Regions []*AppRegion `json:"regions"` } +type appAlertsRoot struct { + Alerts []*AppAlert `json:"alerts"` +} + +type appAlertRoot struct { + Alert *AppAlert `json:"alert"` +} + // AppsServiceOp handles communication with Apps methods of the DigitalOcean API. type AppsServiceOp struct { client *Client @@ -377,3 +389,33 @@ func (s *AppsServiceOp) GetInstanceSize(ctx context.Context, slug string) (*AppI } return root.InstanceSize, resp, nil } + +// ListAlerts retrieves a list of alerts on an app +func (s *AppsServiceOp) ListAlerts(ctx context.Context, appID string) ([]*AppAlert, *Response, error) { + path := fmt.Sprintf("%s/%s/alerts", appsBasePath, appID) + req, err := s.client.NewRequest(ctx, http.MethodGet, path, nil) + if err != nil { + return nil, nil, err + } + root := new(appAlertsRoot) + resp, err := s.client.Do(ctx, req, root) + if err != nil { + return nil, resp, err + } + return root.Alerts, resp, nil +} + +// UpdateAlertDestinations updates the alert destinations of an app's alert +func (s *AppsServiceOp) UpdateAlertDestinations(ctx context.Context, appID, alertID string, update *AlertDestinationUpdateRequest) (*AppAlert, *Response, error) { + path := fmt.Sprintf("%s/%s/alerts/%s/destinations", appsBasePath, appID, alertID) + req, err := s.client.NewRequest(ctx, http.MethodPost, path, update) + if err != nil { + return nil, nil, err + } + root := new(appAlertRoot) + resp, err := s.client.Do(ctx, req, root) + if err != nil { + return nil, resp, err + } + return root.Alert, resp, nil +} diff --git a/vendor/github.com/digitalocean/godo/balance.go b/vendor/github.com/digitalocean/godo/balance.go index 4da697836..ace6a6ebc 100644 --- a/vendor/github.com/digitalocean/godo/balance.go +++ b/vendor/github.com/digitalocean/godo/balance.go @@ -8,7 +8,7 @@ import ( // BalanceService is an interface for interfacing with the Balance // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2/#balance +// See: https://docs.digitalocean.com/reference/api/api-reference/#operation/get_customer_balance type BalanceService interface { Get(context.Context) (*Balance, *Response, error) } diff --git a/vendor/github.com/digitalocean/godo/billing_history.go b/vendor/github.com/digitalocean/godo/billing_history.go index a51010006..822ecb2dc 100644 --- a/vendor/github.com/digitalocean/godo/billing_history.go +++ b/vendor/github.com/digitalocean/godo/billing_history.go @@ -10,7 +10,7 @@ const billingHistoryBasePath = "v2/customers/my/billing_history" // BillingHistoryService is an interface for interfacing with the BillingHistory // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2/#billing_history +// See: https://docs.digitalocean.com/reference/api/api-reference/#operation/list_billing_history type BillingHistoryService interface { List(context.Context, *ListOptions) (*BillingHistory, *Response, error) } diff --git a/vendor/github.com/digitalocean/godo/certificates.go b/vendor/github.com/digitalocean/godo/certificates.go index 9a6bdb2da..faf26a3ee 100644 --- a/vendor/github.com/digitalocean/godo/certificates.go +++ b/vendor/github.com/digitalocean/godo/certificates.go @@ -9,7 +9,7 @@ import ( const certificatesBasePath = "/v2/certificates" // CertificatesService is an interface for managing certificates with the DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2/#certificates +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Certificates type CertificatesService interface { Get(context.Context, string) (*Certificate, *Response, error) List(context.Context, *ListOptions) ([]Certificate, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/databases.go b/vendor/github.com/digitalocean/godo/databases.go index 8384bad77..74763ce8b 100644 --- a/vendor/github.com/digitalocean/godo/databases.go +++ b/vendor/github.com/digitalocean/godo/databases.go @@ -88,7 +88,7 @@ const ( // help make these entities distinct from Databases in godo, we refer to them // here as DatabaseDBs. // -// See: https://developers.digitalocean.com/documentation/v2#databases +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Databases type DatabasesService interface { List(context.Context, *ListOptions) ([]Database, *Response, error) Get(context.Context, string) (*Database, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/domains.go b/vendor/github.com/digitalocean/godo/domains.go index 835509fc7..544a98c4a 100644 --- a/vendor/github.com/digitalocean/godo/domains.go +++ b/vendor/github.com/digitalocean/godo/domains.go @@ -9,8 +9,8 @@ import ( const domainsBasePath = "v2/domains" // DomainsService is an interface for managing DNS with the DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2#domains and -// https://developers.digitalocean.com/documentation/v2#domain-records +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Domains and +// https://docs.digitalocean.com/reference/api/api-reference/#tag/Domain-Records type DomainsService interface { List(context.Context, *ListOptions) ([]Domain, *Response, error) Get(context.Context, string) (*Domain, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/droplet_actions.go b/vendor/github.com/digitalocean/godo/droplet_actions.go index ddeacfc86..d9e65bbac 100644 --- a/vendor/github.com/digitalocean/godo/droplet_actions.go +++ b/vendor/github.com/digitalocean/godo/droplet_actions.go @@ -12,7 +12,7 @@ type ActionRequest map[string]interface{} // DropletActionsService is an interface for interfacing with the Droplet actions // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#droplet-actions +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Droplet-Actions type DropletActionsService interface { Shutdown(context.Context, int) (*Action, *Response, error) ShutdownByTag(context.Context, string) ([]Action, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/droplets.go b/vendor/github.com/digitalocean/godo/droplets.go index 1352acc2a..ac2a1a693 100644 --- a/vendor/github.com/digitalocean/godo/droplets.go +++ b/vendor/github.com/digitalocean/godo/droplets.go @@ -14,7 +14,7 @@ var errNoNetworks = errors.New("no networks have been defined") // DropletsService is an interface for interfacing with the Droplet // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#droplets +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Droplets type DropletsService interface { List(context.Context, *ListOptions) ([]Droplet, *Response, error) ListByTag(context.Context, string, *ListOptions) ([]Droplet, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/firewalls.go b/vendor/github.com/digitalocean/godo/firewalls.go index 2cda3e056..d2aadb497 100644 --- a/vendor/github.com/digitalocean/godo/firewalls.go +++ b/vendor/github.com/digitalocean/godo/firewalls.go @@ -10,7 +10,7 @@ import ( const firewallsBasePath = "/v2/firewalls" // FirewallsService is an interface for managing Firewalls with the DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2/#firewalls +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Firewalls type FirewallsService interface { Get(context.Context, string) (*Firewall, *Response, error) Create(context.Context, *FirewallRequest) (*Firewall, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/floating_ips.go b/vendor/github.com/digitalocean/godo/floating_ips.go index a4ced5c40..0458717a6 100644 --- a/vendor/github.com/digitalocean/godo/floating_ips.go +++ b/vendor/github.com/digitalocean/godo/floating_ips.go @@ -10,7 +10,7 @@ const floatingBasePath = "v2/floating_ips" // FloatingIPsService is an interface for interfacing with the floating IPs // endpoints of the Digital Ocean API. -// See: https://developers.digitalocean.com/documentation/v2#floating-ips +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Floating-IPs type FloatingIPsService interface { List(context.Context, *ListOptions) ([]FloatingIP, *Response, error) Get(context.Context, string) (*FloatingIP, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/floating_ips_actions.go b/vendor/github.com/digitalocean/godo/floating_ips_actions.go index 74ad279f9..9fd6e0a9e 100644 --- a/vendor/github.com/digitalocean/godo/floating_ips_actions.go +++ b/vendor/github.com/digitalocean/godo/floating_ips_actions.go @@ -8,7 +8,7 @@ import ( // FloatingIPActionsService is an interface for interfacing with the // floating IPs actions endpoints of the Digital Ocean API. -// See: https://developers.digitalocean.com/documentation/v2#floating-ips-action +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Floating-IP-Actions type FloatingIPActionsService interface { Assign(ctx context.Context, ip string, dropletID int) (*Action, *Response, error) Unassign(ctx context.Context, ip string) (*Action, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/godo.go b/vendor/github.com/digitalocean/godo/godo.go index 159ecf7df..5398290c5 100644 --- a/vendor/github.com/digitalocean/godo/godo.go +++ b/vendor/github.com/digitalocean/godo/godo.go @@ -20,7 +20,7 @@ import ( ) const ( - libraryVersion = "1.64.2" + libraryVersion = "1.65.0" defaultBaseURL = "https://api.digitalocean.com/" userAgent = "godo/" + libraryVersion mediaType = "application/json" @@ -111,6 +111,8 @@ type Response struct { Meta *Meta // Monitoring URI + // Deprecated: This field is not populated. To poll for the status of a + // newly created Droplet, use Links.Actions[0].HREF Monitor string Rate diff --git a/vendor/github.com/digitalocean/godo/image_actions.go b/vendor/github.com/digitalocean/godo/image_actions.go index 976f7c687..08953f0ba 100644 --- a/vendor/github.com/digitalocean/godo/image_actions.go +++ b/vendor/github.com/digitalocean/godo/image_actions.go @@ -8,7 +8,7 @@ import ( // ImageActionsService is an interface for interfacing with the image actions // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#image-actions +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Image-Actions type ImageActionsService interface { Get(context.Context, int, int) (*Action, *Response, error) Transfer(context.Context, int, *ActionRequest) (*Action, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/images.go b/vendor/github.com/digitalocean/godo/images.go index cf57a3d52..5db374718 100644 --- a/vendor/github.com/digitalocean/godo/images.go +++ b/vendor/github.com/digitalocean/godo/images.go @@ -10,7 +10,7 @@ const imageBasePath = "v2/images" // ImagesService is an interface for interfacing with the images // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#images +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Images type ImagesService interface { List(context.Context, *ListOptions) ([]Image, *Response, error) ListDistribution(ctx context.Context, opt *ListOptions) ([]Image, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/invoices.go b/vendor/github.com/digitalocean/godo/invoices.go index c8d7f4083..39bffbc5e 100644 --- a/vendor/github.com/digitalocean/godo/invoices.go +++ b/vendor/github.com/digitalocean/godo/invoices.go @@ -12,7 +12,7 @@ const invoicesBasePath = "v2/customers/my/invoices" // InvoicesService is an interface for interfacing with the Invoice // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2/#invoices +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Billing type InvoicesService interface { Get(context.Context, string, *ListOptions) (*Invoice, *Response, error) GetPDF(context.Context, string) ([]byte, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/keys.go b/vendor/github.com/digitalocean/godo/keys.go index b97554d14..dec62a7bd 100644 --- a/vendor/github.com/digitalocean/godo/keys.go +++ b/vendor/github.com/digitalocean/godo/keys.go @@ -10,7 +10,7 @@ const keysBasePath = "v2/account/keys" // KeysService is an interface for interfacing with the keys // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#keys +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/SSH-Keys type KeysService interface { List(context.Context, *ListOptions) ([]Key, *Response, error) GetByID(context.Context, int) (*Key, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/kubernetes.go b/vendor/github.com/digitalocean/godo/kubernetes.go index 5f37f9e31..0c0d85149 100644 --- a/vendor/github.com/digitalocean/godo/kubernetes.go +++ b/vendor/github.com/digitalocean/godo/kubernetes.go @@ -21,7 +21,7 @@ const ( // KubernetesService is an interface for interfacing with the Kubernetes endpoints // of the DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2#kubernetes +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Kubernetes type KubernetesService interface { Create(context.Context, *KubernetesClusterCreateRequest) (*KubernetesCluster, *Response, error) Get(context.Context, string) (*KubernetesCluster, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/load_balancers.go b/vendor/github.com/digitalocean/godo/load_balancers.go index b7debfe15..6dd438775 100644 --- a/vendor/github.com/digitalocean/godo/load_balancers.go +++ b/vendor/github.com/digitalocean/godo/load_balancers.go @@ -12,7 +12,7 @@ const forwardingRulesPath = "forwarding_rules" const dropletsPath = "droplets" // LoadBalancersService is an interface for managing load balancers with the DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2#load-balancers +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Load-Balancers type LoadBalancersService interface { Get(context.Context, string) (*LoadBalancer, *Response, error) List(context.Context, *ListOptions) ([]LoadBalancer, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/monitoring.go b/vendor/github.com/digitalocean/godo/monitoring.go index 53b1ccd26..2b87dc859 100644 --- a/vendor/github.com/digitalocean/godo/monitoring.go +++ b/vendor/github.com/digitalocean/godo/monitoring.go @@ -23,7 +23,7 @@ const ( // MonitoringService is an interface for interfacing with the // monitoring endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#monitoring +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Monitoring type MonitoringService interface { ListAlertPolicies(context.Context, *ListOptions) ([]AlertPolicy, *Response, error) GetAlertPolicy(context.Context, string) (*AlertPolicy, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/projects.go b/vendor/github.com/digitalocean/godo/projects.go index c31573b29..b59134ba1 100644 --- a/vendor/github.com/digitalocean/godo/projects.go +++ b/vendor/github.com/digitalocean/godo/projects.go @@ -17,7 +17,7 @@ const ( ) // ProjectsService is an interface for creating and managing Projects with the DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2/#projects +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Projects type ProjectsService interface { List(context.Context, *ListOptions) ([]Project, *Response, error) GetDefault(context.Context) (*Project, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/regions.go b/vendor/github.com/digitalocean/godo/regions.go index b07175e8a..ea82f2f1c 100644 --- a/vendor/github.com/digitalocean/godo/regions.go +++ b/vendor/github.com/digitalocean/godo/regions.go @@ -7,7 +7,7 @@ import ( // RegionsService is an interface for interfacing with the regions // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#regions +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Regions type RegionsService interface { List(context.Context, *ListOptions) ([]Region, *Response, error) } diff --git a/vendor/github.com/digitalocean/godo/registry.go b/vendor/github.com/digitalocean/godo/registry.go index c1e6b1bcc..dcd4fc755 100644 --- a/vendor/github.com/digitalocean/godo/registry.go +++ b/vendor/github.com/digitalocean/godo/registry.go @@ -18,7 +18,7 @@ const ( // RegistryService is an interface for interfacing with the Registry endpoints // of the DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2#registry +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Container-Registry type RegistryService interface { Create(context.Context, *RegistryCreateRequest) (*Registry, *Response, error) Get(context.Context) (*Registry, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/sizes.go b/vendor/github.com/digitalocean/godo/sizes.go index cff6970db..a3cb74523 100644 --- a/vendor/github.com/digitalocean/godo/sizes.go +++ b/vendor/github.com/digitalocean/godo/sizes.go @@ -7,7 +7,7 @@ import ( // SizesService is an interface for interfacing with the size // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#sizes +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Sizes type SizesService interface { List(context.Context, *ListOptions) ([]Size, *Response, error) } diff --git a/vendor/github.com/digitalocean/godo/snapshots.go b/vendor/github.com/digitalocean/godo/snapshots.go index cf95ccc00..bb1b99b0c 100644 --- a/vendor/github.com/digitalocean/godo/snapshots.go +++ b/vendor/github.com/digitalocean/godo/snapshots.go @@ -10,7 +10,7 @@ const snapshotBasePath = "v2/snapshots" // SnapshotsService is an interface for interfacing with the snapshots // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#snapshots +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Snapshots type SnapshotsService interface { List(context.Context, *ListOptions) ([]Snapshot, *Response, error) ListVolume(context.Context, *ListOptions) ([]Snapshot, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/storage.go b/vendor/github.com/digitalocean/godo/storage.go index 43856e38e..7700ffa08 100644 --- a/vendor/github.com/digitalocean/godo/storage.go +++ b/vendor/github.com/digitalocean/godo/storage.go @@ -15,7 +15,7 @@ const ( // StorageService is an interface for interfacing with the storage // endpoints of the Digital Ocean API. -// See: https://developers.digitalocean.com/documentation/v2/#block-storage +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Block-Storage type StorageService interface { ListVolumes(context.Context, *ListVolumeParams) ([]Volume, *Response, error) GetVolume(context.Context, string) (*Volume, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/storage_actions.go b/vendor/github.com/digitalocean/godo/storage_actions.go index 234aba906..b88b18fe1 100644 --- a/vendor/github.com/digitalocean/godo/storage_actions.go +++ b/vendor/github.com/digitalocean/godo/storage_actions.go @@ -8,7 +8,7 @@ import ( // StorageActionsService is an interface for interfacing with the // storage actions endpoints of the Digital Ocean API. -// See: https://developers.digitalocean.com/documentation/v2#storage-actions +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Block-Storage-Actions type StorageActionsService interface { Attach(ctx context.Context, volumeID string, dropletID int) (*Action, *Response, error) DetachByDropletID(ctx context.Context, volumeID string, dropletID int) (*Action, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/tags.go b/vendor/github.com/digitalocean/godo/tags.go index 6301e15f1..8715f1482 100644 --- a/vendor/github.com/digitalocean/godo/tags.go +++ b/vendor/github.com/digitalocean/godo/tags.go @@ -10,7 +10,7 @@ const tagsBasePath = "v2/tags" // TagsService is an interface for interfacing with the tags // endpoints of the DigitalOcean API -// See: https://developers.digitalocean.com/documentation/v2#tags +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/Tags type TagsService interface { List(context.Context, *ListOptions) ([]Tag, *Response, error) Get(context.Context, string) (*Tag, *Response, error) diff --git a/vendor/github.com/digitalocean/godo/vpcs.go b/vendor/github.com/digitalocean/godo/vpcs.go index 97c5c2d00..f4f22e18e 100644 --- a/vendor/github.com/digitalocean/godo/vpcs.go +++ b/vendor/github.com/digitalocean/godo/vpcs.go @@ -10,7 +10,7 @@ const vpcsBasePath = "/v2/vpcs" // VPCsService is an interface for managing Virtual Private Cloud configurations with the // DigitalOcean API. -// See: https://developers.digitalocean.com/documentation/v2#vpcs +// See: https://docs.digitalocean.com/reference/api/api-reference/#tag/VPCs type VPCsService interface { Create(context.Context, *VPCCreateRequest) (*VPC, *Response, error) Get(context.Context, string) (*VPC, *Response, error) diff --git a/vendor/modules.txt b/vendor/modules.txt index 52385d466..504cd77f5 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -4,22 +4,12 @@ github.com/Microsoft/go-winio/pkg/guid # github.com/Microsoft/hcsshim v0.8.10 ## explicit github.com/Microsoft/hcsshim/osversion -# github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6 -## explicit # github.com/blang/semver v3.5.1+incompatible ## explicit github.com/blang/semver # github.com/containerd/continuity v0.0.0-20200413184840-d3ef23f19fbb ## explicit github.com/containerd/continuity/pathdriver -# github.com/coreos/bbolt v1.3.2 -## explicit -# github.com/coreos/etcd v3.3.10+incompatible -## explicit -# github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e -## explicit -# github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f -## explicit # github.com/cpuguy83/go-md2man v1.0.10 ## explicit github.com/cpuguy83/go-md2man/md2man @@ -28,7 +18,7 @@ github.com/cpuguy83/go-md2man/md2man github.com/creack/pty # github.com/davecgh/go-spew v1.1.1 github.com/davecgh/go-spew/spew -# github.com/digitalocean/godo v1.64.2 +# github.com/digitalocean/godo v1.65.0 ## explicit github.com/digitalocean/godo github.com/digitalocean/godo/util @@ -77,7 +67,6 @@ github.com/gogo/protobuf/sortkeys ## explicit github.com/golang/mock/gomock # github.com/golang/protobuf v1.5.2 -## explicit github.com/golang/protobuf/proto # github.com/google/go-querystring v1.1.0 ## explicit @@ -90,10 +79,6 @@ github.com/google/uuid # github.com/gorilla/websocket v1.4.2 ## explicit github.com/gorilla/websocket -# github.com/grpc-ecosystem/go-grpc-middleware v1.0.0 -## explicit -# github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 -## explicit # github.com/hashicorp/hcl v1.0.0 github.com/hashicorp/hcl github.com/hashicorp/hcl/hcl/ast @@ -110,8 +95,6 @@ github.com/hashicorp/hcl/json/token github.com/imdario/mergo # github.com/inconshreveable/mousetrap v1.0.0 github.com/inconshreveable/mousetrap -# github.com/jonboulle/clockwork v0.1.0 -## explicit # github.com/json-iterator/go v1.1.11 github.com/json-iterator/go # github.com/magiconair/properties v1.8.5 @@ -150,8 +133,6 @@ github.com/pelletier/go-toml github.com/pkg/errors # github.com/pmezard/go-difflib v1.0.0 github.com/pmezard/go-difflib/difflib -# github.com/prometheus/client_golang v0.9.3 -## explicit # github.com/russross/blackfriday v1.5.2 github.com/russross/blackfriday # github.com/sclevine/spec v1.3.0 @@ -162,10 +143,7 @@ github.com/sclevine/spec/report ## explicit github.com/shiena/ansicolor # github.com/sirupsen/logrus v1.7.0 -## explicit github.com/sirupsen/logrus -# github.com/soheilhy/cmux v0.1.4 -## explicit # github.com/spf13/afero v1.6.0 github.com/spf13/afero github.com/spf13/afero/mem @@ -177,7 +155,6 @@ github.com/spf13/cast github.com/spf13/cobra github.com/spf13/cobra/doc # github.com/spf13/jwalterweatherman v1.1.0 -## explicit github.com/spf13/jwalterweatherman # github.com/spf13/pflag v1.0.5 github.com/spf13/pflag @@ -190,16 +167,6 @@ github.com/stretchr/testify/assert github.com/stretchr/testify/require # github.com/subosito/gotenv v1.2.0 github.com/subosito/gotenv -# github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 -## explicit -# github.com/ugorji/go v1.1.4 -## explicit -# github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 -## explicit -# github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77 -## explicit -# go.etcd.io/bbolt v1.3.2 -## explicit # golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f ## explicit golang.org/x/crypto/blowfish @@ -241,7 +208,6 @@ golang.org/x/text/unicode/norm # golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e golang.org/x/time/rate # google.golang.org/appengine v1.6.7 -## explicit google.golang.org/appengine/internal google.golang.org/appengine/internal/base google.golang.org/appengine/internal/datastore @@ -282,8 +248,6 @@ google.golang.org/protobuf/types/descriptorpb gopkg.in/inf.v0 # gopkg.in/ini.v1 v1.62.0 gopkg.in/ini.v1 -# gopkg.in/resty.v1 v1.12.0 -## explicit # gopkg.in/yaml.v2 v2.4.0 ## explicit gopkg.in/yaml.v2