diff --git a/account.go b/account.go index 4ff0a478d..ed022f47b 100644 --- a/account.go +++ b/account.go @@ -60,11 +60,10 @@ type CreditCard struct { // GetAccount gets the contact and billing information related to the Account. func (c *Client) GetAccount(ctx context.Context) (*Account, error) { e := "account" - req := c.R(ctx).SetResult(&Account{}) - r, err := coupleAPIErrors(req.Get(e)) + response, err := doGETRequest[Account](ctx, c, e) if err != nil { return nil, err } - return r.Result().(*Account), nil + return response, nil } diff --git a/account_availability.go b/account_availability.go index d0341083b..3824f77bc 100644 --- a/account_availability.go +++ b/account_availability.go @@ -2,10 +2,6 @@ package linodego import ( "context" - "fmt" - "net/url" - - "github.com/go-resty/resty/v2" ) // AccountAvailability returns the resources availability in a region to an account. @@ -20,46 +16,23 @@ type AccountAvailability struct { Available []string `json:"available"` } -// AccountAvailabilityPagedResponse represents a paginated Account Availability API response -type AccountAvailabilityPagedResponse struct { - *PageOptions - Data []AccountAvailability `json:"data"` -} - -// endpoint gets the endpoint URL for AccountAvailability -func (AccountAvailabilityPagedResponse) endpoint(_ ...any) string { - return "/account/availability" -} - -func (resp *AccountAvailabilityPagedResponse) castResult(r *resty.Request, e string) (int, int, error) { - res, err := coupleAPIErrors(r.SetResult(AccountAvailabilityPagedResponse{}).Get(e)) - if err != nil { - return 0, 0, err - } - castedRes := res.Result().(*AccountAvailabilityPagedResponse) - resp.Data = append(resp.Data, castedRes.Data...) - return castedRes.Pages, castedRes.Results, nil -} - // ListAccountAvailabilities lists all regions and the resource availabilities to the account. func (c *Client) ListAccountAvailabilities(ctx context.Context, opts *ListOptions) ([]AccountAvailability, error) { - response := AccountAvailabilityPagedResponse{} - err := c.listHelper(ctx, &response, opts) + response, err := getPaginatedResults[AccountAvailability](ctx, c, "account/availability", opts) if err != nil { return nil, err } - return response.Data, nil + + return response, nil } // GetAccountAvailability gets the resources availability in a region to the customer. func (c *Client) GetAccountAvailability(ctx context.Context, regionID string) (*AccountAvailability, error) { - req := c.R(ctx).SetResult(&AccountAvailability{}) - regionID = url.PathEscape(regionID) - b := fmt.Sprintf("account/availability/%s", regionID) - r, err := coupleAPIErrors(req.Get(b)) + b := formatAPIPath("account/availability/%s", regionID) + response, err := doGETRequest[AccountAvailability](ctx, c, b) if err != nil { return nil, err } - return r.Result().(*AccountAvailability), nil + return response, nil } diff --git a/account_betas.go b/account_betas.go index 0897a4a73..830905a01 100644 --- a/account_betas.go +++ b/account_betas.go @@ -3,11 +3,8 @@ package linodego import ( "context" "encoding/json" - "fmt" - "net/url" "time" - "github.com/go-resty/resty/v2" "github.com/linode/linodego/internal/parseabletime" ) @@ -28,17 +25,6 @@ type AccountBetaProgramCreateOpts struct { ID string `json:"id"` } -// AccountBetasPagedResponse represents a paginated Account Beta Programs API response -type AccountBetasPagedResponse struct { - *PageOptions - Data []AccountBetaProgram `json:"data"` -} - -// endpoint gets the endpoint URL for AccountBetaProgram -func (AccountBetasPagedResponse) endpoint(_ ...any) string { - return "/account/betas" -} - // UnmarshalJSON implements the json.Unmarshaler interface func (cBeta *AccountBetaProgram) UnmarshalJSON(b []byte) error { type Mask AccountBetaProgram @@ -63,52 +49,35 @@ func (cBeta *AccountBetaProgram) UnmarshalJSON(b []byte) error { return nil } -func (resp *AccountBetasPagedResponse) castResult(r *resty.Request, e string) (int, int, error) { - res, err := coupleAPIErrors(r.SetResult(AccountBetasPagedResponse{}).Get(e)) - if err != nil { - return 0, 0, err - } - castedRes := res.Result().(*AccountBetasPagedResponse) - resp.Data = append(resp.Data, castedRes.Data...) - return castedRes.Pages, castedRes.Results, nil -} - // ListAccountBetaPrograms lists all beta programs an account is enrolled in. func (c *Client) ListAccountBetaPrograms(ctx context.Context, opts *ListOptions) ([]AccountBetaProgram, error) { - response := AccountBetasPagedResponse{} - err := c.listHelper(ctx, &response, opts) + response, err := getPaginatedResults[AccountBetaProgram](ctx, c, "/account/betas", opts) if err != nil { return nil, err } - return response.Data, nil + + return response, nil } // GetAccountBetaProgram gets the details of a beta program an account is enrolled in. func (c *Client) GetAccountBetaProgram(ctx context.Context, betaID string) (*AccountBetaProgram, error) { - req := c.R(ctx).SetResult(&AccountBetaProgram{}) - betaID = url.PathEscape(betaID) - b := fmt.Sprintf("/account/betas/%s", betaID) - r, err := coupleAPIErrors(req.Get(b)) + b := formatAPIPath("/account/betas/%s", betaID) + + response, err := doGETRequest[AccountBetaProgram](ctx, c, b) if err != nil { return nil, err } - return r.Result().(*AccountBetaProgram), nil + return response, nil } // JoinBetaProgram enrolls an account into a beta program. func (c *Client) JoinBetaProgram(ctx context.Context, opts AccountBetaProgramCreateOpts) (*AccountBetaProgram, error) { - body, err := json.Marshal(opts) - if err != nil { - return nil, err - } - e := "account/betas" - req := c.R(ctx).SetResult(&AccountBetaProgram{}).SetBody(string(body)) - r, err := coupleAPIErrors(req.Post(e)) + response, err := doPOSTRequest[AccountBetaProgram](ctx, c, e, opts) if err != nil { return nil, err } - return r.Result().(*AccountBetaProgram), nil + return response, nil } diff --git a/account_events.go b/account_events.go index 7ea8dd8ad..678fc57ab 100644 --- a/account_events.go +++ b/account_events.go @@ -3,10 +3,8 @@ package linodego import ( "context" "encoding/json" - "fmt" "time" - "github.com/go-resty/resty/v2" "github.com/linode/linodego/internal/duration" "github.com/linode/linodego/internal/parseabletime" ) @@ -270,17 +268,6 @@ type EventEntity struct { URL string `json:"url"` } -// EventsPagedResponse represents a paginated Events API response -type EventsPagedResponse struct { - *PageOptions - Data []Event `json:"data"` -} - -// endpoint gets the endpoint URL for Event -func (EventsPagedResponse) endpoint(_ ...any) string { - return "account/events" -} - // UnmarshalJSON implements the json.Unmarshaler interface func (i *Event) UnmarshalJSON(b []byte) error { type Mask Event @@ -303,51 +290,39 @@ func (i *Event) UnmarshalJSON(b []byte) error { return nil } -func (resp *EventsPagedResponse) castResult(r *resty.Request, e string) (int, int, error) { - res, err := coupleAPIErrors(r.SetResult(EventsPagedResponse{}).Get(e)) - if err != nil { - return 0, 0, err - } - castedRes := res.Result().(*EventsPagedResponse) - resp.Data = append(resp.Data, castedRes.Data...) - return castedRes.Pages, castedRes.Results, nil -} - // ListEvents gets a collection of Event objects representing actions taken // on the Account. The Events returned depend on the token grants and the grants // of the associated user. func (c *Client) ListEvents(ctx context.Context, opts *ListOptions) ([]Event, error) { - response := EventsPagedResponse{} - err := c.listHelper(ctx, &response, opts) + response, err := getPaginatedResults[Event](ctx, c, "account/events", opts) if err != nil { return nil, err } - return response.Data, nil + return response, nil } // GetEvent gets the Event with the Event ID func (c *Client) GetEvent(ctx context.Context, eventID int) (*Event, error) { - req := c.R(ctx).SetResult(&Event{}) - e := fmt.Sprintf("account/events/%d", eventID) - r, err := coupleAPIErrors(req.Get(e)) + e := formatAPIPath("account/events/%d", eventID) + response, err := doGETRequest[Event](ctx, c, e) if err != nil { return nil, err } - return r.Result().(*Event), nil + return response, nil } // MarkEventRead marks a single Event as read. func (c *Client) MarkEventRead(ctx context.Context, event *Event) error { - e := fmt.Sprintf("account/events/%d/read", event.ID) - _, err := coupleAPIErrors(c.R(ctx).Post(e)) + e := formatAPIPath("account/events/%d/read", event.ID) + _, err := doPOSTRequest[Event](ctx, c, e, []any{}) return err } // MarkEventsSeen marks all Events up to and including this Event by ID as seen. func (c *Client) MarkEventsSeen(ctx context.Context, event *Event) error { - e := fmt.Sprintf("account/events/%d/seen", event.ID) - _, err := coupleAPIErrors(c.R(ctx).Post(e)) + e := formatAPIPath("account/events/%d/seen", event.ID) + _, err := doPOSTRequest[Event](ctx, c, e, []any{}) return err } diff --git a/account_invoices.go b/account_invoices.go index d068662fa..afc88209f 100644 --- a/account_invoices.go +++ b/account_invoices.go @@ -3,10 +3,8 @@ package linodego import ( "context" "encoding/json" - "fmt" "time" - "github.com/go-resty/resty/v2" "github.com/linode/linodego/internal/parseabletime" ) @@ -31,36 +29,14 @@ type InvoiceItem struct { To *time.Time `json:"-"` } -// InvoicesPagedResponse represents a paginated Invoice API response -type InvoicesPagedResponse struct { - *PageOptions - Data []Invoice `json:"data"` -} - -// endpoint gets the endpoint URL for Invoice -func (InvoicesPagedResponse) endpoint(_ ...any) string { - return "account/invoices" -} - -func (resp *InvoicesPagedResponse) castResult(r *resty.Request, e string) (int, int, error) { - res, err := coupleAPIErrors(r.SetResult(InvoicesPagedResponse{}).Get(e)) - if err != nil { - return 0, 0, err - } - castedRes := res.Result().(*InvoicesPagedResponse) - resp.Data = append(resp.Data, castedRes.Data...) - return castedRes.Pages, castedRes.Results, nil -} - // ListInvoices gets a paginated list of Invoices against the Account func (c *Client) ListInvoices(ctx context.Context, opts *ListOptions) ([]Invoice, error) { - response := InvoicesPagedResponse{} - err := c.listHelper(ctx, &response, opts) + response, err := getPaginatedResults[Invoice](ctx, c, "account/invoices", opts) if err != nil { return nil, err } - return response.Data, nil + return response, nil } // UnmarshalJSON implements the json.Unmarshaler interface @@ -107,45 +83,21 @@ func (i *InvoiceItem) UnmarshalJSON(b []byte) error { // GetInvoice gets a single Invoice matching the provided ID func (c *Client) GetInvoice(ctx context.Context, invoiceID int) (*Invoice, error) { - req := c.R(ctx).SetResult(&Invoice{}) - e := fmt.Sprintf("account/invoices/%d", invoiceID) - r, err := coupleAPIErrors(req.Get(e)) + e := formatAPIPath("account/invoices/%d", invoiceID) + response, err := doGETRequest[Invoice](ctx, c, e) if err != nil { return nil, err } - return r.Result().(*Invoice), nil -} - -// InvoiceItemsPagedResponse represents a paginated Invoice Item API response -type InvoiceItemsPagedResponse struct { - *PageOptions - Data []InvoiceItem `json:"data"` -} - -// endpoint gets the endpoint URL for InvoiceItems associated with a specific Invoice -func (InvoiceItemsPagedResponse) endpoint(ids ...any) string { - id := ids[0].(int) - return fmt.Sprintf("account/invoices/%d/items", id) -} - -func (resp *InvoiceItemsPagedResponse) castResult(r *resty.Request, e string) (int, int, error) { - res, err := coupleAPIErrors(r.SetResult(InvoiceItemsPagedResponse{}).Get(e)) - if err != nil { - return 0, 0, err - } - castedRes := res.Result().(*InvoiceItemsPagedResponse) - resp.Data = append(resp.Data, castedRes.Data...) - return castedRes.Pages, castedRes.Results, nil + return response, nil } // ListInvoiceItems gets the invoice items associated with a specific Invoice func (c *Client) ListInvoiceItems(ctx context.Context, invoiceID int, opts *ListOptions) ([]InvoiceItem, error) { - response := InvoiceItemsPagedResponse{} - err := c.listHelper(ctx, &response, opts, invoiceID) + response, err := getPaginatedResults[InvoiceItem](ctx, c, formatAPIPath("account/invoices/%d/items", invoiceID), opts) if err != nil { return nil, err } - return response.Data, nil + return response, nil } diff --git a/account_logins.go b/account_logins.go index 9b5f69a99..45f2a5f24 100644 --- a/account_logins.go +++ b/account_logins.go @@ -3,10 +3,8 @@ package linodego import ( "context" "encoding/json" - "fmt" "time" - "github.com/go-resty/resty/v2" "github.com/linode/linodego/internal/parseabletime" ) @@ -19,33 +17,13 @@ type Login struct { Status string `json:"status"` } -type LoginsPagedResponse struct { - *PageOptions - Data []Login `json:"data"` -} - -func (LoginsPagedResponse) endpoint(_ ...any) string { - return "account/logins" -} - -func (resp *LoginsPagedResponse) castResult(r *resty.Request, e string) (int, int, error) { - res, err := coupleAPIErrors(r.SetResult(LoginsPagedResponse{}).Get(e)) - if err != nil { - return 0, 0, err - } - castedRes := res.Result().(*LoginsPagedResponse) - resp.Data = append(resp.Data, castedRes.Data...) - return castedRes.Pages, castedRes.Results, nil -} - func (c *Client) ListLogins(ctx context.Context, opts *ListOptions) ([]Login, error) { - response := LoginsPagedResponse{} - err := c.listHelper(ctx, &response, opts) + response, err := getPaginatedResults[Login](ctx, c, "account/logins", opts) if err != nil { return nil, err } - return response.Data, nil + return response, nil } // UnmarshalJSON implements the json.Unmarshaler interface @@ -69,12 +47,12 @@ func (i *Login) UnmarshalJSON(b []byte) error { } func (c *Client) GetLogin(ctx context.Context, loginID int) (*Login, error) { - req := c.R(ctx).SetResult(&Login{}) - e := fmt.Sprintf("account/logins/%d", loginID) - r, err := coupleAPIErrors(req.Get(e)) + e := formatAPIPath("account/logins/%d", loginID) + + response, err := doGETRequest[Login](ctx, c, e) if err != nil { return nil, err } - return r.Result().(*Login), nil + return response, nil } diff --git a/test/integration/fixtures/TestAccountAvailability_Get.yaml b/test/integration/fixtures/TestAccountAvailability_Get.yaml index 6118a828d..06ae98b96 100644 --- a/test/integration/fixtures/TestAccountAvailability_Get.yaml +++ b/test/integration/fixtures/TestAccountAvailability_Get.yaml @@ -38,7 +38,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 30 May 2024 23:12:05 GMT + - Mon, 17 Jun 2024 15:46:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -54,10 +54,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: diff --git a/test/integration/fixtures/TestAccountAvailability_List.yaml b/test/integration/fixtures/TestAccountAvailability_List.yaml index 97adb4f40..b5d9e7f9d 100644 --- a/test/integration/fixtures/TestAccountAvailability_List.yaml +++ b/test/integration/fixtures/TestAccountAvailability_List.yaml @@ -11,7 +11,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account/availability + url: https://api.linode.com/v4beta/account/availability?page=1 method: GET response: body: '{"data": [{"region": "us-central", "available": ["Linodes", "NodeBalancers", @@ -50,7 +50,10 @@ interactions: "Kubernetes"], "unavailable": []}, {"region": "id-cgk", "available": ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes"], "unavailable": []}, {"region": "us-lax", "available": ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes"], - "unavailable": []}], "page": 1, "pages": 1, "results": 25}' + "unavailable": []}, {"region": "gb-lon", "available": ["Linodes", "NodeBalancers", + "Block Storage", "Kubernetes"], "unavailable": []}, {"region": "au-mel", "available": + ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes"], "unavailable": + []}], "page": 1, "pages": 1, "results": 27}' headers: Access-Control-Allow-Credentials: - "true" @@ -71,7 +74,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 30 May 2024 23:12:05 GMT + - Mon, 17 Jun 2024 15:46:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -88,10 +91,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: diff --git a/test/integration/fixtures/TestAccountBetaPrograms.yaml b/test/integration/fixtures/TestAccountBetaPrograms.yaml index 82aa9ec33..5625f5244 100644 --- a/test/integration/fixtures/TestAccountBetaPrograms.yaml +++ b/test/integration/fixtures/TestAccountBetaPrograms.yaml @@ -15,13 +15,14 @@ interactions: method: GET response: body: '{"data": [{"id": "global_load_balancer_beta", "label": "Akamai Global Load - Balancer Pre-Registration", "description": "The Akamai Global Load Balancer - (AGLB) is a layer 4 and 7 load balancer that distributes traffic based on performance, - weight, and content (HTTP headers, query strings, etc.). The AGLB is a multi-region, - multicloud, independent of Akamai Delivery, and built for East-West and North-South - traffic. Key features include multi-region load balancing and method selection. - Beta for this product is coming soon\u2013 sign up to be contacted first when - AGLB is available.\r\n\r\nPlease note: Akamai Global Load Balancer is not currently + Balancer Pre-Registration", "description": "The Akamai Cloud Load Balancer (ACLB) + (formerly referred to as Akamai Global Load Balancer) is a layer 4 and 7 load + balancer that distributes traffic based on performance, weight, and content + (HTTP headers, query strings, etc.). The ACLB is a multi-region, multicloud, + independent of Akamai Delivery, and built for East-West and North-South traffic. + Key features include multi-region load balancing and method selection. Beta + for this product is coming soon\u2013 sign up to be contacted first when ACLB + is available.\r\n\r\nPlease note: Akamai Cloud Load Balancer is not currently available in beta testing. By signing up to participate in this beta when it becomes available, you consent to be subscribed to receive emails from Akamai cloud computing services marketing and be contacted via email when the beta @@ -48,7 +49,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:39 GMT + - Mon, 17 Jun 2024 15:46:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -65,10 +66,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: @@ -112,7 +110,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:39 GMT + - Mon, 17 Jun 2024 15:46:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -127,10 +125,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: @@ -148,26 +143,27 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account/betas + url: https://api.linode.com/v4beta/account/betas?page=1 method: GET response: body: '{"data": [{"id": "global_load_balancer_beta", "label": "Akamai Global Load Balancer Pre-Registration", "enrolled": "2018-01-02T03:04:05", "description": - "The Akamai Global Load Balancer (AGLB) is a layer 4 and 7 load balancer that - distributes traffic based on performance, weight, and content (HTTP headers, - query strings, etc.). The AGLB is a multi-region, multicloud, independent of - Akamai Delivery, and built for East-West and North-South traffic. Key features - include multi-region load balancing and method selection. Beta for this product - is coming soon\u2013 sign up to be contacted first when AGLB is available.\r\n\r\nPlease - note: Akamai Global Load Balancer is not currently available in beta testing. - By signing up to participate in this beta when it becomes available, you consent - to be subscribed to receive emails from Akamai cloud computing services marketing - and be contacted via email when the beta period begins.", "started": "2018-01-02T03:04:05", - "ended": null}, {"id": "vpc_beta", "label": "Virtual Private Cloud (VPC) Pre-Registration", - "enrolled": "2018-01-02T03:04:05", "description": "VPC is now available in open - beta for all customers. Select VPC in the side navigation to get started.", - "started": "2018-01-02T03:04:05", "ended": "2018-01-02T03:04:05"}], "page": - 1, "pages": 1, "results": 2}' + "The Akamai Cloud Load Balancer (ACLB) (formerly referred to as Akamai Global + Load Balancer) is a layer 4 and 7 load balancer that distributes traffic based + on performance, weight, and content (HTTP headers, query strings, etc.). The + ACLB is a multi-region, multicloud, independent of Akamai Delivery, and built + for East-West and North-South traffic. Key features include multi-region load + balancing and method selection. Beta for this product is coming soon\u2013 sign + up to be contacted first when ACLB is available.\r\n\r\nPlease note: Akamai + Cloud Load Balancer is not currently available in beta testing. By signing up + to participate in this beta when it becomes available, you consent to be subscribed + to receive emails from Akamai cloud computing services marketing and be contacted + via email when the beta period begins.", "started": "2018-01-02T03:04:05", "ended": + null}, {"id": "vpc_beta", "label": "Virtual Private Cloud (VPC) Pre-Registration", + "enrolled": "2018-01-02T03:04:05", "description": "VPC is now generally available + for all customers. Select VPC in the side navigation to get started.", "started": + "2018-01-02T03:04:05", "ended": "2018-01-02T03:04:05"}], "page": 1, "pages": + 1, "results": 2}' headers: Access-Control-Allow-Credentials: - "true" @@ -188,7 +184,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:39 GMT + - Mon, 17 Jun 2024 15:46:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -205,10 +201,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: @@ -262,7 +255,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:39 GMT + - Mon, 17 Jun 2024 15:46:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -279,10 +272,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: diff --git a/test/integration/fixtures/TestAccountEvents_List.yaml b/test/integration/fixtures/TestAccountEvents_List.yaml index 7bea1c11a..f2b895f8d 100644 --- a/test/integration/fixtures/TestAccountEvents_List.yaml +++ b/test/integration/fixtures/TestAccountEvents_List.yaml @@ -15,199 +15,262 @@ interactions: method: GET response: body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud - Firewall", "Vlans", "Block Storage Migrations", "Managed Databases"], "status": - "ok", "resolvers": {"ipv4": "172.105.34.5, 172.105.35.5, 172.105.36.5, 172.105.37.5, - 172.105.38.5, 172.105.39.5, 172.105.40.5, 172.105.41.5, 172.105.42.5, 172.105.43.5", - "ipv6": "1234::5678, 1234::5678, 1234::5678, + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", + "Metadata"], "status": "ok", "resolvers": {"ipv4": "172.105.34.5, 172.105.35.5, + 172.105.36.5, 172.105.37.5, 172.105.38.5, 172.105.39.5, 172.105.40.5, 172.105.41.5, + 172.105.42.5, 172.105.43.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "ca-central", "label": "Toronto, CA", - "country": "ca", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases"], "status": "ok", "resolvers": {"ipv4": "172.105.0.5, 172.105.3.5, - 172.105.4.5, 172.105.5.5, 172.105.6.5, 172.105.7.5, 172.105.8.5, 172.105.9.5, - 172.105.10.5, 172.105.11.5", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": "ca", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], + "status": "ok", "resolvers": {"ipv4": "172.105.0.5, 172.105.3.5, 172.105.4.5, + 172.105.5.5, 172.105.6.5, 172.105.7.5, 172.105.8.5, 172.105.9.5, 172.105.10.5, + 172.105.11.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "ap-southeast", - "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "172.105.166.5, - 172.105.169.5, 172.105.168.5, 172.105.172.5, 172.105.162.5, 172.105.170.5, 172.105.167.5, - 172.105.171.5, 172.105.181.5, 172.105.161.5", "ipv6": "1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": "au", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], + "status": "ok", "resolvers": {"ipv4": "172.105.166.5, 172.105.169.5, 172.105.168.5, + 172.105.172.5, 172.105.162.5, 172.105.170.5, 172.105.167.5, 172.105.171.5, 172.105.181.5, + 172.105.161.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "139.144.192.62, 139.144.192.60, 139.144.192.61, 139.144.192.53, 139.144.192.54, 139.144.192.67, 139.144.192.69, 139.144.192.66, 139.144.192.52, 139.144.192.68", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-ord", "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans"], "status": - "ok", "resolvers": {"ipv4": "172.232.0.17, 172.232.0.16, 172.232.0.21, 172.232.0.13, 172.232.0.22, 172.232.0.9, 172.232.0.19, 172.232.0.20, 172.232.0.15, 172.232.0.18", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "fr-par", "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": + "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans"], "status": "ok", "resolvers": + {"ipv4": "172.232.0.17, 172.232.0.16, 172.232.0.21, 172.232.0.13, 172.232.0.22, + 172.232.0.9, 172.232.0.19, 172.232.0.20, 172.232.0.15, 172.232.0.18", "ipv6": + "1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "fr-par", "label": + "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans"], "status": - "ok", "resolvers": {"ipv4": "172.232.32.21, 172.232.32.23, 172.232.32.17, 172.232.32.18, 172.232.32.16, 172.232.32.22, 172.232.32.20, 172.232.32.14, 172.232.32.11, 172.232.32.12", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + "ok", "resolvers": {"ipv4": "172.232.32.21, 172.232.32.23, 172.232.32.17, 172.232.32.18, + 172.232.32.16, 172.232.32.22, 172.232.32.20, 172.232.32.14, 172.232.32.11, 172.232.32.12", + "ipv6": "1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-sea", "label": + "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.160.19, 172.232.160.21, 172.232.160.17, 172.232.160.15, 172.232.160.18, 172.232.160.8, 172.232.160.12, 172.232.160.11, 172.232.160.14, 172.232.160.16", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "br-gru", "label": "Sao Paulo, BR", - "country": "br", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.233.0.4, 172.233.0.9, - 172.233.0.7, 172.233.0.12, 172.233.0.5, 172.233.0.13, 172.233.0.10, 172.233.0.6, - 172.233.0.8, 172.233.0.11", "ipv6": "1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "nl-ams", - "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "NodeBalancers", + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "br-gru", "label": + "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": - "172.233.33.36, 172.233.33.38, 172.233.33.35, 172.233.33.39, 172.233.33.34, - 172.233.33.33, 172.233.33.31, 172.233.33.30, 172.233.33.37, 172.233.33.32", - "ipv6": "1234::5678, 1234::5678, 1234::5678, + "172.233.0.4, 172.233.0.9, 172.233.0.7, 172.233.0.12, 172.233.0.5, 172.233.0.13, + 172.233.0.10, 172.233.0.6, 172.233.0.8, 172.233.0.11", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "se-sto", "label": "Stockholm, SE", - "country": "se", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", + 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": + "nl", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.128.24, 172.232.128.26, - 172.232.128.20, 172.232.128.22, 172.232.128.25, 172.232.128.19, 172.232.128.23, - 172.232.128.18, 172.232.128.21, 172.232.128.27", "ipv6": "1234::5678, + "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.233.33.36, 172.233.33.38, + 172.233.33.35, 172.233.33.39, 172.233.33.34, 172.233.33.33, 172.233.33.31, 172.233.33.30, + 172.233.33.37, 172.233.33.32", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": "se", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", + "resolvers": {"ipv4": "172.232.128.24, 172.232.128.26, 172.232.128.20, 172.232.128.22, + 172.232.128.25, 172.232.128.19, 172.232.128.23, 172.232.128.18, 172.232.128.21, + 172.232.128.27", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "es-mad", "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": "es", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", + "resolvers": {"ipv4": "172.233.111.6, 172.233.111.17, 172.233.111.21, 172.233.111.25, + 172.233.111.19, 172.233.111.12, 172.233.111.26, 172.233.111.16, 172.233.111.18, + 172.233.111.9", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": "in", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", + "resolvers": {"ipv4": "172.232.96.17, 172.232.96.26, 172.232.96.19, 172.232.96.20, + 172.232.96.25, 172.232.96.21, 172.232.96.18, 172.232.96.22, 172.232.96.23, 172.232.96.24", + "ipv6": "1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-osa", "label": + "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": - {"ipv4": "172.233.111.6, 172.233.111.17, 172.233.111.21, 172.233.111.25, 172.233.111.19, - 172.233.111.12, 172.233.111.26, 172.233.111.16, 172.233.111.18, 172.233.111.9", + {"ipv4": "172.233.64.44, 172.233.64.43, 172.233.64.37, 172.233.64.40, 172.233.64.46, + 172.233.64.41, 172.233.64.39, 172.233.64.42, 172.233.64.45, 172.233.64.38", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "in-maa", "label": "Chennai, IN", - "country": "in", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.96.17, 172.232.96.26, - 172.232.96.19, 172.232.96.20, 172.232.96.25, 172.232.96.21, 172.232.96.18, 172.232.96.22, - 172.232.96.23, 172.232.96.24", "ipv6": "1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "it-mil", "label": + "Milan, IT", "country": "it", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.232.192.19, 172.232.192.18, 172.232.192.16, 172.232.192.20, 172.232.192.24, + 172.232.192.21, 172.232.192.22, 172.232.192.17, 172.232.192.15, 172.232.192.23", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "jp-osa", - "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "NodeBalancers", + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-mia", "label": + "Miami, FL", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": - "172.233.64.44, 172.233.64.43, 172.233.64.37, 172.233.64.40, 172.233.64.46, - 172.233.64.41, 172.233.64.39, 172.233.64.42, 172.233.64.45, 172.233.64.38", + "172.233.160.34, 172.233.160.27, 172.233.160.30, 172.233.160.29, 172.233.160.32, + 172.233.160.28, 172.233.160.33, 172.233.160.26, 172.233.160.25, 172.233.160.31", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "it-mil", "label": "Milan, IT", "country": - "it", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object - Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium - Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.192.19, 172.232.192.18, - 172.232.192.16, 172.232.192.20, 172.232.192.24, 172.232.192.21, 172.232.192.22, - 172.232.192.17, 172.232.192.15, 172.232.192.23", "ipv6": "1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "id-cgk", "label": + "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.232.224.23, 172.232.224.32, 172.232.224.26, 172.232.224.27, 172.232.224.21, + 172.232.224.24, 172.232.224.22, 172.232.224.20, 172.232.224.31, 172.232.224.28", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": - {"ipv4": "172.233.160.34, 172.233.160.27, 172.233.160.30, 172.233.160.29, 172.233.160.32, - 172.233.160.28, 172.233.160.33, 172.233.160.26, 172.233.160.25, 172.233.160.31", + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-lax", "label": + "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.233.128.45, 172.233.128.38, 172.233.128.53, 172.233.128.37, 172.233.128.34, + 172.233.128.36, 172.233.128.33, 172.233.128.39, 172.233.128.43, 172.233.128.44", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "id-cgk", "label": "Jakarta, ID", - "country": "id", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.224.23, 172.232.224.32, - 172.232.224.26, 172.232.224.27, 172.232.224.21, 172.232.224.24, 172.232.224.22, - 172.232.224.20, 172.232.224.31, 172.232.224.28", "ipv6": "1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "gb-lon", "label": + "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], + "status": "ok", "resolvers": {"ipv4": "172.236.0.46, 172.236.0.50, 172.236.0.47, + 172.236.0.53, 172.236.0.52, 172.236.0.45, 172.236.0.49, 172.236.0.51, 172.236.0.54, + 172.236.0.48", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-lax", "label": "Los Angeles, CA", "country": "us", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", - "resolvers": {"ipv4": "172.233.128.45, 172.233.128.38, 172.233.128.53, 172.233.128.37, - 172.233.128.34, 172.233.128.36, 172.233.128.33, 172.233.128.39, 172.233.128.43, - 172.233.128.44", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.236.32.23, 172.236.32.35, 172.236.32.30, 172.236.32.28, 172.236.32.32, + 172.236.32.33, 172.236.32.27, 172.236.32.37, 172.236.32.29, 172.236.32.34", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "us-central", - "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "72.14.179.5, 72.14.188.5, - 173.255.199.5, 66.228.53.5, 96.126.122.5, 96.126.124.5, 96.126.127.5, 198.58.107.5, - 198.58.111.5, 23.239.24.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "us-west", "label": "Fremont, CA", "country": "us", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases"], + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Backups", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": + {"ipv4": "72.14.179.5, 72.14.188.5, 173.255.199.5, 66.228.53.5, 96.126.122.5, + 96.126.124.5, 96.126.127.5, 198.58.107.5, 198.58.111.5, 23.239.24.5", "ipv6": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases"], "status": "ok", "resolvers": {"ipv4": "74.207.231.5, 173.230.128.5, - 173.230.129.5, 173.230.136.5, 173.230.140.5, 66.228.59.5, 66.228.62.5, 50.116.35.5, - 50.116.41.5, 23.239.18.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "us-east", "label": "Newark, NJ", "country": "us", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5, 96.126.106.5, - 50.116.53.5, 50.116.58.5, 50.116.61.5, 50.116.62.5, 66.175.211.5, 97.107.133.4, - 207.192.69.4, 207.192.69.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-southeast", "label": "Atlanta, GA", "country": + "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": + {"ipv4": "74.207.231.5, 173.230.128.5, 173.230.129.5, 173.230.136.5, 173.230.140.5, + 66.228.59.5, 66.228.62.5, 50.116.35.5, 50.116.41.5, 23.239.18.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": - {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, 176.58.121.5, 151.236.220.5, - 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, 109.74.194.20", "ipv6": - "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, {"id": "ap-south", - "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "NodeBalancers", + 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-east", "label": + "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], "status": + "ok", "resolvers": {"ipv4": "66.228.42.5, 96.126.106.5, 50.116.53.5, 50.116.58.5, + 50.116.61.5, 50.116.62.5, 66.175.211.5, 97.107.133.4, 207.192.69.4, 207.192.69.5", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": + "sg", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": {"ipv4": "139.162.11.5, 139.162.13.5, 139.162.14.5, 139.162.15.5, 139.162.16.5, 139.162.21.5, 139.162.27.5, 103.3.60.18, 103.3.60.19, 103.3.60.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, {"id": "eu-central", - "label": "Frankfurt, DE", "country": "de", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": - {"ipv4": "139.162.130.5, 139.162.131.5, 139.162.132.5, 139.162.133.5, 139.162.134.5, - 139.162.135.5, 139.162.136.5, 139.162.137.5, 139.162.138.5, 139.162.139.5", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, {"id": - "ap-northeast", "label": "Tokyo, JP", "country": "jp", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block - Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": {"ipv4": - "139.162.66.5, 139.162.67.5, 139.162.68.5, 139.162.69.5, 139.162.70.5, 139.162.71.5, - 139.162.72.5, 139.162.73.5, 139.162.74.5, 139.162.75.5", "ipv6": "1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU + Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5, + 139.162.131.5, 139.162.132.5, 139.162.133.5, 139.162.134.5, 139.162.135.5, 139.162.136.5, + 139.162.137.5, 139.162.138.5, 139.162.139.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}], "page": 1, "pages": 1, "results": - 25}' + 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo, JP", "country": "jp", "capabilities": ["Linodes", "Backups", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": + {"ipv4": "139.162.66.5, 139.162.67.5, 139.162.68.5, 139.162.69.5, 139.162.70.5, + 139.162.71.5, 139.162.72.5, 139.162.73.5, 139.162.74.5, 139.162.75.5", "ipv6": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}], "page": 1, "pages": 1, "results": 27}' headers: Access-Control-Allow-Credentials: - "true" @@ -228,7 +291,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:39 GMT + - Mon, 17 Jun 2024 15:46:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -245,10 +308,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: @@ -257,7 +317,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"ap-west","type":"g6-nanode-1","label":"go-test-ins-m46za03ow68d","root_pass":"9yCC9:61nQy`,QPY0l3c3l\\,a6v~sX@\u003cS.V0M4|RQ$46?v(RqV90{iiL?]p9qQ4c","image":"linode/debian9","booted":false}' + body: '{"region":"ap-west","type":"g6-nanode-1","label":"go-test-ins-c26953m3akqo","root_pass":"}W9+7I4664C.t635^phH\u0026yzYnB946bQmp@Xx-?/Z@.f(4z}sC3UDpNBC(kw\\8?B9","image":"linode/debian9","firewall_id":567533,"booted":false}' form: {} headers: Accept: @@ -269,15 +329,16 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 54901429, "label": "go-test-ins-m46za03ow68d", "group": "", "status": + body: '{"id": 60302854, "label": "go-test-ins-c26953m3akqo", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.105.37.117"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.104.207.73"], "ipv6": "1234::5678/128", "image": "linode/debian9", "region": "ap-west", "specs": {"disk": 25600, "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000}, "alerts": {"cpu": 90, "network_in": 10, "network_out": 10, "transfer_quota": 80, "io": 10000}, "backups": {"enabled": true, "available": false, "schedule": {"day": null, "window": null}, "last_successful": null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": [], "host_uuid": - "fa64d019358bf632d06312534742340b36a8d0bc", "has_user_data": false}' + "6833df95c5afc7bde87b97a18f8204e6eb2187f8", "has_user_data": false, "placement_group": + null, "lke_cluster_id": null}' headers: Access-Control-Allow-Credentials: - "true" @@ -294,13 +355,13 @@ interactions: Connection: - keep-alive Content-Length: - - "742" + - "790" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:40 GMT + - Mon, 17 Jun 2024 15:46:54 GMT Pragma: - no-cache Strict-Transport-Security: @@ -315,10 +376,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "10" X-Xss-Protection: @@ -336,10 +394,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/54901429/configs + url: https://api.linode.com/v4beta/linode/instances/60302854/configs method: POST response: - body: '{"id": 58004569, "label": "test-config", "helpers": {"updatedb_disabled": + body: '{"id": 63502443, "label": "test-config", "helpers": {"updatedb_disabled": true, "distro": true, "modules_dep": true, "network": true, "devtmpfs_automount": true}, "kernel": "linode/latest-64bit", "comments": "", "memory_limit": 0, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "root_device": "/dev/sda", @@ -368,7 +426,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:40 GMT + - Mon, 17 Jun 2024 15:46:54 GMT Pragma: - no-cache Strict-Transport-Security: @@ -383,10 +441,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: @@ -405,16 +460,16 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"action":"linode_config_create","entity.id":54901429,"entity.type":"linode"}' - url: https://api.linode.com/v4beta/account/events + - '{"action":"linode_config_create","entity.id":60302854,"entity.type":"linode"}' + url: https://api.linode.com/v4beta/account/events?page=1 method: GET response: - body: '{"data": [{"id": 648679792, "created": "2018-01-02T03:04:05", "seen": false, + body: '{"data": [{"id": 746165972, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": null, "time_remaining": null, "rate": null, "duration": null, "action": "linode_config_create", "username": "lgarber-dev", - "entity": {"label": "go-test-ins-m46za03ow68d", "id": 54901429, "type": "linode", - "url": "/v4/linode/instances/54901429"}, "status": "notification", "secondary_entity": - {"id": 58004569, "type": "linode_config", "label": "test-config", "url": "/v4/linode/instances/54901429/configs/58004569"}, + "entity": {"label": "go-test-ins-c26953m3akqo", "id": 60302854, "type": "linode", + "url": "/v4/linode/instances/60302854"}, "status": "notification", "secondary_entity": + {"id": 63502443, "type": "linode_config", "label": "test-config", "url": "/v4/linode/instances/60302854/configs/63502443"}, "message": ""}], "page": 1, "pages": 1, "results": 1}' headers: Access-Control-Allow-Credentials: @@ -438,7 +493,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:40 GMT + - Mon, 17 Jun 2024 15:46:54 GMT Pragma: - no-cache Strict-Transport-Security: @@ -454,10 +509,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: @@ -475,7 +527,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/54901429 + url: https://api.linode.com/v4beta/linode/instances/60302854 method: DELETE response: body: '{}' @@ -501,7 +553,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:41 GMT + - Mon, 17 Jun 2024 15:46:54 GMT Pragma: - no-cache Strict-Transport-Security: @@ -516,10 +568,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: diff --git a/test/integration/fixtures/TestAccountLogins_List.yaml b/test/integration/fixtures/TestAccountLogins_List.yaml index 6e50e95a0..626aaa0f6 100644 --- a/test/integration/fixtures/TestAccountLogins_List.yaml +++ b/test/integration/fixtures/TestAccountLogins_List.yaml @@ -11,20 +11,34 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account/logins + url: https://api.linode.com/v4beta/account/logins?page=1 method: GET response: - body: '{"data": [{"id": 1568954245, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + body: '{"data": [{"id": 1570617688, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": - 1569235189, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + 1570661980, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": - 1569637840, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + 1570727356, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": - 1569835290, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + 1570740884, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": - 1569852953, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + 1570741777, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": + 1570925268, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": + 1571003920, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": + 1571045131, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": + 1571148324, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": + 1571641625, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": + 1571642229, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + "username": "lgarber-dev", "status": "successful", "restricted": false}, {"id": + 1571656292, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", "username": "lgarber-dev", "status": "successful", "restricted": false}], "page": - 1, "pages": 1, "results": 5}' + 1, "pages": 1, "results": 12}' headers: Access-Control-Allow-Credentials: - "true" @@ -45,7 +59,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:41 GMT + - Mon, 17 Jun 2024 15:46:55 GMT Pragma: - no-cache Strict-Transport-Security: @@ -62,10 +76,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: @@ -83,10 +94,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/account/logins/1568954245 + url: https://api.linode.com/v4beta/account/logins/1570617688 method: GET response: - body: '{"id": 1568954245, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", + body: '{"id": 1570617688, "datetime": "2018-01-02T03:04:05", "ip": "1234::5678", "username": "lgarber-dev", "status": "successful", "restricted": false}' headers: Access-Control-Allow-Credentials: @@ -110,7 +121,7 @@ interactions: Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:41 GMT + - Mon, 17 Jun 2024 15:46:55 GMT Pragma: - no-cache Strict-Transport-Security: @@ -126,10 +137,7 @@ interactions: - DENY - DENY X-Oauth-Scopes: - - account:read_write databases:read_write domains:read_write events:read_write - firewall:read_write images:read_write ips:read_write linodes:read_write lke:read_write - longview:read_write nodebalancers:read_write object_storage:read_write stackscripts:read_write - volumes:read_write vpc:read_write + - '*' X-Ratelimit-Limit: - "400" X-Xss-Protection: diff --git a/test/integration/fixtures/TestAccount_Get.yaml b/test/integration/fixtures/TestAccount_Get.yaml index 4f4beacac..50881d31e 100644 --- a/test/integration/fixtures/TestAccount_Get.yaml +++ b/test/integration/fixtures/TestAccount_Get.yaml @@ -38,13 +38,13 @@ interactions: Connection: - keep-alive Content-Length: - - "695" + - "776" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Tue, 13 Feb 2024 18:57:42 GMT + - Mon, 17 Jun 2024 15:46:56 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestWaitForResourceFree.yaml b/test/integration/fixtures/TestWaitForResourceFree.yaml index 35aa07ed1..0dddadef0 100644 --- a/test/integration/fixtures/TestWaitForResourceFree.yaml +++ b/test/integration/fixtures/TestWaitForResourceFree.yaml @@ -15,186 +15,262 @@ interactions: method: GET response: body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud - Firewall", "Vlans", "Block Storage Migrations", "Managed Databases"], "status": - "ok", "resolvers": {"ipv4": "172.105.34.5, 172.105.35.5, 172.105.36.5, 172.105.37.5, - 172.105.38.5, 172.105.39.5, 172.105.40.5, 172.105.41.5, 172.105.42.5, 172.105.43.5", - "ipv6": "1234::5678, 1234::5678, 1234::5678, + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", + "Metadata"], "status": "ok", "resolvers": {"ipv4": "172.105.34.5, 172.105.35.5, + 172.105.36.5, 172.105.37.5, 172.105.38.5, 172.105.39.5, 172.105.40.5, 172.105.41.5, + 172.105.42.5, 172.105.43.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "ca-central", "label": "Toronto, CA", - "country": "ca", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases"], "status": "ok", "resolvers": {"ipv4": "172.105.0.5, 172.105.3.5, - 172.105.4.5, 172.105.5.5, 172.105.6.5, 172.105.7.5, 172.105.8.5, 172.105.9.5, - 172.105.10.5, 172.105.11.5", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": "ca", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], + "status": "ok", "resolvers": {"ipv4": "172.105.0.5, 172.105.3.5, 172.105.4.5, + 172.105.5.5, 172.105.6.5, 172.105.7.5, 172.105.8.5, 172.105.9.5, 172.105.10.5, + 172.105.11.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "ap-southeast", - "label": "Sydney, AU", "country": "au", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "172.105.166.5, - 172.105.169.5, 172.105.168.5, 172.105.172.5, 172.105.162.5, 172.105.170.5, 172.105.167.5, - 172.105.171.5, 172.105.181.5, 172.105.161.5", "ipv6": "1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": "au", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], + "status": "ok", "resolvers": {"ipv4": "172.105.166.5, 172.105.169.5, 172.105.168.5, + 172.105.172.5, 172.105.162.5, 172.105.170.5, 172.105.167.5, 172.105.171.5, 172.105.181.5, + 172.105.161.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans"], "status": "ok", "resolvers": {"ipv4": "139.144.192.62, 139.144.192.60, 139.144.192.61, 139.144.192.53, 139.144.192.54, 139.144.192.67, 139.144.192.69, 139.144.192.66, 139.144.192.52, 139.144.192.68", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-ord", "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + Plans"], "status": "ok", "resolvers": {"ipv4": "139.144.192.62, 139.144.192.60, + 139.144.192.61, 139.144.192.53, 139.144.192.54, 139.144.192.67, 139.144.192.69, + 139.144.192.66, 139.144.192.52, 139.144.192.68", "ipv6": "1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": + "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", + "Managed Databases", "Metadata", "Premium Plans"], "status": "ok", "resolvers": + {"ipv4": "172.232.0.17, 172.232.0.16, 172.232.0.21, 172.232.0.13, 172.232.0.22, + 172.232.0.9, 172.232.0.19, 172.232.0.20, 172.232.0.15, 172.232.0.18", "ipv6": + "1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "fr-par", "label": + "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans"], "status": - "ok", "resolvers": {"ipv4": "172.232.0.17, 172.232.0.16, 172.232.0.21, 172.232.0.13, 172.232.0.22, 172.232.0.9, 172.232.0.19, 172.232.0.20, 172.232.0.15, 172.232.0.18", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "fr-par", "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "Managed Databases", "Metadata", "Premium Plans"], "status": "ok", - "resolvers": {"ipv4": "172.232.32.21, 172.232.32.23, 172.232.32.17, 172.232.32.18, 172.232.32.16, 172.232.32.22, 172.232.32.20, 172.232.32.14, 172.232.32.11, 172.232.32.12", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + "ok", "resolvers": {"ipv4": "172.232.32.21, 172.232.32.23, 172.232.32.17, 172.232.32.18, + 172.232.32.16, 172.232.32.22, 172.232.32.20, 172.232.32.14, 172.232.32.11, 172.232.32.12", + "ipv6": "1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-sea", "label": + "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.160.19, 172.232.160.21, 172.232.160.17, 172.232.160.15, 172.232.160.18, 172.232.160.8, 172.232.160.12, 172.232.160.11, 172.232.160.14, 172.232.160.16", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "br-gru", "label": "Sao Paulo, BR", - "country": "br", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.233.0.4, 172.233.0.9, - 172.233.0.7, 172.233.0.12, 172.233.0.5, 172.233.0.13, 172.233.0.10, 172.233.0.6, - 172.233.0.8, 172.233.0.11", "ipv6": "1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "nl-ams", - "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "NodeBalancers", + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "br-gru", "label": + "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": - "172.233.33.36, 172.233.33.38, 172.233.33.35, 172.233.33.39, 172.233.33.34, - 172.233.33.33, 172.233.33.31, 172.233.33.30, 172.233.33.37, 172.233.33.32", - "ipv6": "1234::5678, 1234::5678, 1234::5678, + "172.233.0.4, 172.233.0.9, 172.233.0.7, 172.233.0.12, 172.233.0.5, 172.233.0.13, + 172.233.0.10, 172.233.0.6, 172.233.0.8, 172.233.0.11", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "se-sto", "label": "Stockholm, SE", - "country": "se", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", + 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": + "nl", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.128.24, 172.232.128.26, - 172.232.128.20, 172.232.128.22, 172.232.128.25, 172.232.128.19, 172.232.128.23, - 172.232.128.18, 172.232.128.21, 172.232.128.27", "ipv6": "1234::5678, + "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.233.33.36, 172.233.33.38, + 172.233.33.35, 172.233.33.39, 172.233.33.34, 172.233.33.33, 172.233.33.31, 172.233.33.30, + 172.233.33.37, 172.233.33.32", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": "se", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", + "resolvers": {"ipv4": "172.232.128.24, 172.232.128.26, 172.232.128.20, 172.232.128.22, + 172.232.128.25, 172.232.128.19, 172.232.128.23, 172.232.128.18, 172.232.128.21, + 172.232.128.27", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": "es", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", + "resolvers": {"ipv4": "172.233.111.6, 172.233.111.17, 172.233.111.21, 172.233.111.25, + 172.233.111.19, 172.233.111.12, 172.233.111.26, 172.233.111.16, 172.233.111.18, + 172.233.111.9", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "es-mad", "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": "in", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", + "resolvers": {"ipv4": "172.232.96.17, 172.232.96.26, 172.232.96.19, 172.232.96.20, + 172.232.96.25, 172.232.96.21, 172.232.96.18, 172.232.96.22, 172.232.96.23, 172.232.96.24", + "ipv6": "1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-osa", "label": + "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": - {"ipv4": "172.233.111.6, 172.233.111.17, 172.233.111.21, 172.233.111.25, 172.233.111.19, - 172.233.111.12, 172.233.111.26, 172.233.111.16, 172.233.111.18, 172.233.111.9", + {"ipv4": "172.233.64.44, 172.233.64.43, 172.233.64.37, 172.233.64.40, 172.233.64.46, + 172.233.64.41, 172.233.64.39, 172.233.64.42, 172.233.64.45, 172.233.64.38", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "in-maa", "label": "Chennai, IN", - "country": "in", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.96.17, 172.232.96.26, - 172.232.96.19, 172.232.96.20, 172.232.96.25, 172.232.96.21, 172.232.96.18, 172.232.96.22, - 172.232.96.23, 172.232.96.24", "ipv6": "1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "it-mil", "label": + "Milan, IT", "country": "it", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.232.192.19, 172.232.192.18, 172.232.192.16, 172.232.192.20, 172.232.192.24, + 172.232.192.21, 172.232.192.22, 172.232.192.17, 172.232.192.15, 172.232.192.23", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "jp-osa", - "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "NodeBalancers", + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-mia", "label": + "Miami, FL", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": - "172.233.64.44, 172.233.64.43, 172.233.64.37, 172.233.64.40, 172.233.64.46, - 172.233.64.41, 172.233.64.39, 172.233.64.42, 172.233.64.45, 172.233.64.38", + "172.233.160.34, 172.233.160.27, 172.233.160.30, 172.233.160.29, 172.233.160.32, + 172.233.160.28, 172.233.160.33, 172.233.160.26, 172.233.160.25, 172.233.160.31", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "it-mil", "label": "Milan, IT", "country": - "it", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object - Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium - Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.192.19, 172.232.192.18, - 172.232.192.16, 172.232.192.20, 172.232.192.24, 172.232.192.21, 172.232.192.22, - 172.232.192.17, 172.232.192.15, 172.232.192.23", "ipv6": "1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "id-cgk", "label": + "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.232.224.23, 172.232.224.32, 172.232.224.26, 172.232.224.27, 172.232.224.21, + 172.232.224.24, 172.232.224.22, 172.232.224.20, 172.232.224.31, 172.232.224.28", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": - {"ipv4": "172.233.160.34, 172.233.160.27, 172.233.160.30, 172.233.160.29, 172.233.160.32, - 172.233.160.28, 172.233.160.33, 172.233.160.26, 172.233.160.25, 172.233.160.31", + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-lax", "label": + "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.233.128.45, 172.233.128.38, 172.233.128.53, 172.233.128.37, 172.233.128.34, + 172.233.128.36, 172.233.128.33, 172.233.128.39, 172.233.128.43, 172.233.128.44", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "id-cgk", "label": "Jakarta, ID", - "country": "id", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans"], "status": "ok", "resolvers": {"ipv4": "172.232.224.23, 172.232.224.32, - 172.232.224.26, 172.232.224.27, 172.232.224.21, 172.232.224.24, 172.232.224.22, - 172.232.224.20, 172.232.224.31, 172.232.224.28", "ipv6": "1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "gb-lon", "label": + "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], + "status": "ok", "resolvers": {"ipv4": "172.236.0.46, 172.236.0.50, 172.236.0.47, + 172.236.0.53, 172.236.0.52, 172.236.0.45, 172.236.0.49, 172.236.0.51, 172.236.0.54, + 172.236.0.48", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-lax", "label": "Los Angeles, CA", "country": "us", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans"], "status": "ok", - "resolvers": {"ipv4": "172.233.128.45, 172.233.128.38, 172.233.128.53, 172.233.128.37, - 172.233.128.34, 172.233.128.36, 172.233.128.33, 172.233.128.39, 172.233.128.43, - 172.233.128.44", "ipv6": "1234::5678, 1234::5678, + 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Cloud Firewall", "Vlans", + "VPCs", "Metadata", "Premium Plans"], "status": "ok", "resolvers": {"ipv4": + "172.236.32.23, 172.236.32.35, 172.236.32.30, 172.236.32.28, 172.236.32.32, + 172.236.32.33, 172.236.32.27, 172.236.32.37, 172.236.32.29, 172.236.32.34", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}, {"id": "us-central", - "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "72.14.179.5, 72.14.188.5, - 173.255.199.5, 66.228.53.5, 96.126.122.5, 96.126.124.5, 96.126.127.5, 198.58.107.5, - 198.58.111.5, 23.239.24.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, + 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-central", + "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Backups", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": + {"ipv4": "72.14.179.5, 72.14.188.5, 173.255.199.5, 66.228.53.5, 96.126.122.5, + 96.126.124.5, 96.126.127.5, 198.58.107.5, 198.58.111.5, 23.239.24.5", "ipv6": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], + "status": "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, + 173.255.212.5, 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, + 74.207.242.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-southeast", "label": "Atlanta, GA", "country": + "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": + {"ipv4": "74.207.231.5, 173.230.128.5, 173.230.129.5, 173.230.136.5, 173.230.140.5, + 66.228.59.5, 66.228.62.5, 50.116.35.5, 50.116.41.5, 23.239.18.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "us-west", "label": "Fremont, CA", "country": "us", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", - "Cloud Firewall", "Block Storage Migrations", "Managed Databases"], "status": - "ok", "resolvers": {"ipv4": "173.230.145.5, 173.230.147.5, 173.230.155.5, 173.255.212.5, - 173.255.219.5, 173.255.241.5, 173.255.243.5, 173.255.244.5, 74.207.241.5, 74.207.242.5", + 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-east", "label": + "Newark, NJ", "country": "us", "capabilities": ["Linodes", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], "status": + "ok", "resolvers": {"ipv4": "66.228.42.5, 96.126.106.5, 50.116.53.5, 50.116.58.5, + 50.116.61.5, 50.116.62.5, 66.175.211.5, 97.107.133.4, 207.192.69.4, 207.192.69.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, {"id": - "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", - "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases"], - "status": "ok", "resolvers": {"ipv4": "74.207.231.5, 173.230.128.5, 173.230.129.5, - 173.230.136.5, 173.230.140.5, 66.228.59.5, 66.228.62.5, 50.116.35.5, 50.116.41.5, - 23.239.18.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "us-east", "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", - "Cloud Firewall", "Bare Metal", "Vlans", "Block Storage Migrations", "Managed - Databases"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5, 96.126.106.5, - 50.116.53.5, 50.116.58.5, 50.116.61.5, 50.116.62.5, 66.175.211.5, 97.107.133.4, - 207.192.69.4, 207.192.69.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": - {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, 109.74.194.20", - "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, - {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": - ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases"], "status": "ok", "resolvers": {"ipv4": "139.162.11.5, 139.162.13.5, - 139.162.14.5, 139.162.15.5, 139.162.16.5, 139.162.21.5, 139.162.27.5, 103.3.60.18, - 103.3.60.19, 103.3.60.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678"}}, {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", - "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", - "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "eu-west", "label": "London, UK", "country": "gb", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata"], + "status": "ok", "resolvers": {"ipv4": "178.79.182.5, 176.58.107.5, 176.58.116.5, + 176.58.121.5, 151.236.220.5, 212.71.252.5, 212.71.253.5, 109.74.192.20, 109.74.193.20, + 109.74.194.20", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": + "sg", "capabilities": ["Linodes", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": + {"ipv4": "139.162.11.5, 139.162.13.5, 139.162.14.5, 139.162.15.5, 139.162.16.5, + 139.162.21.5, 139.162.27.5, 103.3.60.18, 103.3.60.19, 103.3.60.20", "ipv6": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", "capabilities": + ["Linodes", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU + Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5, 139.162.131.5, 139.162.132.5, 139.162.133.5, 139.162.134.5, 139.162.135.5, 139.162.136.5, 139.162.137.5, 139.162.138.5, 139.162.139.5", "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678"}}], "page": 1, "pages": 1, "results": 24}' + 1234::5678, 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": + 100, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", + "label": "Tokyo, JP", "country": "jp", "capabilities": ["Linodes", "Backups", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases", "Metadata"], "status": "ok", "resolvers": + {"ipv4": "139.162.66.5, 139.162.67.5, 139.162.68.5, 139.162.69.5, 139.162.70.5, + 139.162.71.5, 139.162.72.5, 139.162.73.5, 139.162.74.5, 139.162.75.5", "ipv6": + "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, + 1234::5678, 1234::5678, 1234::5678, 1234::5678"}, "placement_group_limits": + {"maximum_pgs_per_customer": 100, "maximum_linodes_per_pg": 5}, "site_type": + "core"}], "page": 1, "pages": 1, "results": 27}' headers: Access-Control-Allow-Credentials: - "true" @@ -207,21 +283,23 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=900 - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:54:50 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - '*' X-Content-Type-Options: @@ -239,7 +317,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"ap-west","type":"g6-nanode-1","label":"linodego-waitforfree","root_pass":"9H4z05/H]\u003cn\u003e\u003e3~$O/75)4cBVo6z[7UxMXewQJ!J\u003cbxv1krs+9Q32c$\u003cwJNNE8|2","image":"linode/ubuntu22.04"}' + body: '{"region":"ap-west","type":"g6-nanode-1","label":"linodego-waitforfree","root_pass":"g{d3QP}c9`a]OV222[PI.onJ0m5r.]Z~5W\\@nGg1999y8u2VdDXqA61G''n|Hl''\u0026)","image":"linode/ubuntu22.04"}' form: {} headers: Accept: @@ -251,16 +329,16 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 52557993, "label": "linodego-waitforfree", "group": "", "status": + body: '{"id": 60303116, "label": "linodego-waitforfree", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["45.79.125.110"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.104.207.226"], "ipv6": "1234::5678/128", "image": "linode/ubuntu22.04", "region": "ap-west", "specs": {"disk": 25600, "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000}, "alerts": {"cpu": 90, "network_in": 10, "network_out": 10, "transfer_quota": 80, "io": 10000}, - "backups": {"enabled": false, "available": false, "schedule": {"day": null, - "window": null}, "last_successful": null}, "hypervisor": "kvm", "watchdog_enabled": - true, "tags": [], "host_uuid": "4351606c086016d7568003f3b436685b02d00a73", "has_user_data": - false}' + "backups": {"enabled": true, "available": false, "schedule": {"day": null, "window": + null}, "last_successful": null}, "hypervisor": "kvm", "watchdog_enabled": true, + "tags": [], "host_uuid": "6833df95c5afc7bde87b97a18f8204e6eb2187f8", "has_user_data": + false, "placement_group": null, "lke_cluster_id": null}' headers: Access-Control-Allow-Credentials: - "true" @@ -273,17 +351,19 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "741" + - "791" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:54:51 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -315,93 +395,23 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"+order":"desc","+order_by":"created","entity.id":52557993,"entity.type":"linode"}' - url: https://api.linode.com/v4beta/account/events - method: GET - response: - body: '{"data": [{"id": 603818786, "created": "2018-01-02T03:04:05", "seen": false, - "read": false, "percent_complete": 0, "time_remaining": null, "rate": null, - "duration": null, "action": "linode_create", "username": "youjungk01", "entity": - {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, - "status": "scheduled", "secondary_entity": {"id": "linode/ubuntu22.04", "type": - "image", "label": "Ubuntu 22.04 LTS", "url": "/v4/images/linode/ubuntu22.04"}, - "message": ""}, {"id": 603818787, "created": "2018-01-02T03:04:05", "seen": - false, "read": false, "percent_complete": 0, "time_remaining": null, "rate": - null, "duration": null, "action": "linode_boot", "username": "youjungk01", "entity": - {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, - "status": "scheduled", "secondary_entity": {"id": 55574819, "type": "linode_config", - "label": "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/52557993/configs/55574819"}, - "message": ""}], "page": 1, "pages": 1, "results": 2}' - headers: - Access-Control-Allow-Credentials: - - "true" - Access-Control-Allow-Headers: - - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter - Access-Control-Allow-Methods: - - HEAD, GET, OPTIONS, POST, PUT, DELETE - Access-Control-Allow-Origin: - - '*' - Access-Control-Expose-Headers: - - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status - Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 - Connection: - - keep-alive - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Server: - - nginx - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - events:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "400" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - X-Filter: - - '{"+order":"desc","+order_by":"created","entity.id":52557993,"entity.type":"linode"}' - url: https://api.linode.com/v4beta/account/events + - '{"+order":"desc","+order_by":"created","entity.id":60303116,"entity.type":"linode"}' + url: https://api.linode.com/v4beta/account/events?page=1 method: GET response: - body: '{"data": [{"id": 603818786, "created": "2018-01-02T03:04:05", "seen": false, - "read": false, "percent_complete": 48, "time_remaining": null, "rate": null, - "duration": 30.49527, "action": "linode_create", "username": "youjungk01", "entity": - {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, - "status": "started", "secondary_entity": {"id": "linode/ubuntu22.04", "type": - "image", "label": "Ubuntu 22.04 LTS", "url": "/v4/images/linode/ubuntu22.04"}, - "message": ""}, {"id": 603818787, "created": "2018-01-02T03:04:05", "seen": - false, "read": false, "percent_complete": 0, "time_remaining": null, "rate": - null, "duration": null, "action": "linode_boot", "username": "youjungk01", "entity": - {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, - "status": "scheduled", "secondary_entity": {"id": 55574819, "type": "linode_config", - "label": "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/52557993/configs/55574819"}, + body: '{"data": [{"id": 746174533, "created": "2018-01-02T03:04:05", "seen": false, + "read": false, "percent_complete": 5, "time_remaining": null, "rate": null, + "duration": 15.884423, "action": "linode_create", "username": "lgarber-dev", + "entity": {"label": "linodego-waitforfree", "id": 60303116, "type": "linode", + "url": "/v4/linode/instances/60303116"}, "status": "started", "secondary_entity": + {"id": "linode/ubuntu22.04", "type": "image", "label": "Ubuntu 22.04 LTS", "url": + "/v4/images/linode/ubuntu22.04"}, "message": ""}, {"id": 746174537, "created": + "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": 0, + "time_remaining": null, "rate": null, "duration": null, "action": "linode_boot", + "username": "lgarber-dev", "entity": {"label": "linodego-waitforfree", "id": + 60303116, "type": "linode", "url": "/v4/linode/instances/60303116"}, "status": + "scheduled", "secondary_entity": {"id": 63502734, "type": "linode_config", "label": + "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/60303116/configs/63502734"}, "message": ""}], "page": 1, "pages": 1, "results": 2}' headers: Access-Control-Allow-Credentials: @@ -415,21 +425,23 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:55:06 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - events:read_only X-Content-Type-Options: @@ -457,23 +469,23 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"+order":"desc","+order_by":"created","entity.id":52557993,"entity.type":"linode"}' - url: https://api.linode.com/v4beta/account/events + - '{"+order":"desc","+order_by":"created","entity.id":60303116,"entity.type":"linode"}' + url: https://api.linode.com/v4beta/account/events?page=1 method: GET response: - body: '{"data": [{"id": 603818786, "created": "2018-01-02T03:04:05", "seen": false, - "read": false, "percent_complete": 58, "time_remaining": null, "rate": null, - "duration": 45.508306, "action": "linode_create", "username": "youjungk01", - "entity": {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", - "url": "/v4/linode/instances/52557993"}, "status": "started", "secondary_entity": + body: '{"data": [{"id": 746174533, "created": "2018-01-02T03:04:05", "seen": false, + "read": false, "percent_complete": 53, "time_remaining": null, "rate": null, + "duration": 30.167508, "action": "linode_create", "username": "lgarber-dev", + "entity": {"label": "linodego-waitforfree", "id": 60303116, "type": "linode", + "url": "/v4/linode/instances/60303116"}, "status": "started", "secondary_entity": {"id": "linode/ubuntu22.04", "type": "image", "label": "Ubuntu 22.04 LTS", "url": - "/v4/images/linode/ubuntu22.04"}, "message": ""}, {"id": 603818787, "created": + "/v4/images/linode/ubuntu22.04"}, "message": ""}, {"id": 746174537, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": 0, "time_remaining": null, "rate": null, "duration": null, "action": "linode_boot", - "username": "youjungk01", "entity": {"label": "linodego-waitforfree", "id": - 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, "status": - "scheduled", "secondary_entity": {"id": 55574819, "type": "linode_config", "label": - "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/52557993/configs/55574819"}, + "username": "lgarber-dev", "entity": {"label": "linodego-waitforfree", "id": + 60303116, "type": "linode", "url": "/v4/linode/instances/60303116"}, "status": + "scheduled", "secondary_entity": {"id": 63502734, "type": "linode_config", "label": + "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/60303116/configs/63502734"}, "message": ""}], "page": 1, "pages": 1, "results": 2}' headers: Access-Control-Allow-Credentials: @@ -487,21 +499,23 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:55:21 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - events:read_only X-Content-Type-Options: @@ -529,23 +543,23 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"+order":"desc","+order_by":"created","entity.id":52557993,"entity.type":"linode"}' - url: https://api.linode.com/v4beta/account/events + - '{"+order":"desc","+order_by":"created","entity.id":60303116,"entity.type":"linode"}' + url: https://api.linode.com/v4beta/account/events?page=1 method: GET response: - body: '{"data": [{"id": 603818786, "created": "2018-01-02T03:04:05", "seen": false, - "read": false, "percent_complete": 61, "time_remaining": null, "rate": null, - "duration": 60.566466, "action": "linode_create", "username": "youjungk01", - "entity": {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", - "url": "/v4/linode/instances/52557993"}, "status": "started", "secondary_entity": + body: '{"data": [{"id": 746174533, "created": "2018-01-02T03:04:05", "seen": false, + "read": false, "percent_complete": 59, "time_remaining": null, "rate": null, + "duration": 45.16766, "action": "linode_create", "username": "lgarber-dev", + "entity": {"label": "linodego-waitforfree", "id": 60303116, "type": "linode", + "url": "/v4/linode/instances/60303116"}, "status": "started", "secondary_entity": {"id": "linode/ubuntu22.04", "type": "image", "label": "Ubuntu 22.04 LTS", "url": - "/v4/images/linode/ubuntu22.04"}, "message": ""}, {"id": 603818787, "created": + "/v4/images/linode/ubuntu22.04"}, "message": ""}, {"id": 746174537, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": 0, "time_remaining": null, "rate": null, "duration": null, "action": "linode_boot", - "username": "youjungk01", "entity": {"label": "linodego-waitforfree", "id": - 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, "status": - "scheduled", "secondary_entity": {"id": 55574819, "type": "linode_config", "label": - "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/52557993/configs/55574819"}, + "username": "lgarber-dev", "entity": {"label": "linodego-waitforfree", "id": + 60303116, "type": "linode", "url": "/v4/linode/instances/60303116"}, "status": + "scheduled", "secondary_entity": {"id": 63502734, "type": "linode_config", "label": + "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/60303116/configs/63502734"}, "message": ""}], "page": 1, "pages": 1, "results": 2}' headers: Access-Control-Allow-Credentials: @@ -559,21 +573,23 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:55:36 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - events:read_only X-Content-Type-Options: @@ -601,23 +617,23 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"+order":"desc","+order_by":"created","entity.id":52557993,"entity.type":"linode"}' - url: https://api.linode.com/v4beta/account/events + - '{"+order":"desc","+order_by":"created","entity.id":60303116,"entity.type":"linode"}' + url: https://api.linode.com/v4beta/account/events?page=1 method: GET response: - body: '{"data": [{"id": 603818786, "created": "2018-01-02T03:04:05", "seen": false, + body: '{"data": [{"id": 746174533, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": 100, "time_remaining": 0, "rate": null, "duration": - 67.0, "action": "linode_create", "username": "youjungk01", "entity": {"label": - "linodego-waitforfree", "id": 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, + 51.0, "action": "linode_create", "username": "lgarber-dev", "entity": {"label": + "linodego-waitforfree", "id": 60303116, "type": "linode", "url": "/v4/linode/instances/60303116"}, "status": "finished", "secondary_entity": {"id": "linode/ubuntu22.04", "type": "image", "label": "Ubuntu 22.04 LTS", "url": "/v4/images/linode/ubuntu22.04"}, - "message": ""}, {"id": 603818787, "created": "2018-01-02T03:04:05", "seen": - false, "read": false, "percent_complete": 45, "time_remaining": null, "rate": - null, "duration": 75.479427, "action": "linode_boot", "username": "youjungk01", - "entity": {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", - "url": "/v4/linode/instances/52557993"}, "status": "started", "secondary_entity": - {"id": 55574819, "type": "linode_config", "label": "My Ubuntu 22.04 LTS Disk - Profile", "url": "/v4/linode/instances/52557993/configs/55574819"}, "message": + "message": ""}, {"id": 746174537, "created": "2018-01-02T03:04:05", "seen": + false, "read": false, "percent_complete": 49, "time_remaining": null, "rate": + null, "duration": 60.183488, "action": "linode_boot", "username": "lgarber-dev", + "entity": {"label": "linodego-waitforfree", "id": 60303116, "type": "linode", + "url": "/v4/linode/instances/60303116"}, "status": "started", "secondary_entity": + {"id": 63502734, "type": "linode_config", "label": "My Ubuntu 22.04 LTS Disk + Profile", "url": "/v4/linode/instances/60303116/configs/63502734"}, "message": ""}], "page": 1, "pages": 1, "results": 2}' headers: Access-Control-Allow-Credentials: @@ -631,21 +647,23 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:55:51 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - events:read_only X-Content-Type-Options: @@ -673,23 +691,24 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"+order":"desc","+order_by":"created","entity.id":52557993,"entity.type":"linode"}' - url: https://api.linode.com/v4beta/account/events + - '{"+order":"desc","+order_by":"created","entity.id":60303116,"entity.type":"linode"}' + url: https://api.linode.com/v4beta/account/events?page=1 method: GET response: - body: '{"data": [{"id": 603818786, "created": "2018-01-02T03:04:05", "seen": false, + body: '{"data": [{"id": 746174533, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": 100, "time_remaining": 0, "rate": null, "duration": - 67.0, "action": "linode_create", "username": "youjungk01", "entity": {"label": - "linodego-waitforfree", "id": 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, + 51.0, "action": "linode_create", "username": "lgarber-dev", "entity": {"label": + "linodego-waitforfree", "id": 60303116, "type": "linode", "url": "/v4/linode/instances/60303116"}, "status": "finished", "secondary_entity": {"id": "linode/ubuntu22.04", "type": "image", "label": "Ubuntu 22.04 LTS", "url": "/v4/images/linode/ubuntu22.04"}, - "message": ""}, {"id": 603818787, "created": "2018-01-02T03:04:05", "seen": + "message": ""}, {"id": 746174537, "created": "2018-01-02T03:04:05", "seen": false, "read": false, "percent_complete": 100, "time_remaining": 0, "rate": - null, "duration": 83.0, "action": "linode_boot", "username": "youjungk01", "entity": - {"label": "linodego-waitforfree", "id": 52557993, "type": "linode", "url": "/v4/linode/instances/52557993"}, - "status": "finished", "secondary_entity": {"id": 55574819, "type": "linode_config", - "label": "My Ubuntu 22.04 LTS Disk Profile", "url": "/v4/linode/instances/52557993/configs/55574819"}, - "message": ""}], "page": 1, "pages": 1, "results": 2}' + null, "duration": 67.0, "action": "linode_boot", "username": "lgarber-dev", + "entity": {"label": "linodego-waitforfree", "id": 60303116, "type": "linode", + "url": "/v4/linode/instances/60303116"}, "status": "finished", "secondary_entity": + {"id": 63502734, "type": "linode_config", "label": "My Ubuntu 22.04 LTS Disk + Profile", "url": "/v4/linode/instances/60303116/configs/63502734"}, "message": + ""}], "page": 1, "pages": 1, "results": 2}' headers: Access-Control-Allow-Credentials: - "true" @@ -702,21 +721,23 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:56:06 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: - Authorization, X-Filter - Authorization, X-Filter + - Accept-Encoding X-Accepted-Oauth-Scopes: - events:read_only X-Content-Type-Options: @@ -743,19 +764,19 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/52557993 + url: https://api.linode.com/v4beta/linode/instances/60303116 method: GET response: - body: '{"id": 52557993, "label": "linodego-waitforfree", "group": "", "status": + body: '{"id": 60303116, "label": "linodego-waitforfree", "group": "", "status": "running", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["45.79.125.110"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["172.104.207.226"], "ipv6": "1234::5678/128", "image": "linode/ubuntu22.04", "region": "ap-west", "specs": {"disk": 25600, "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000}, "alerts": {"cpu": 90, "network_in": 10, "network_out": 10, "transfer_quota": 80, "io": 10000}, - "backups": {"enabled": false, "available": false, "schedule": {"day": null, - "window": null}, "last_successful": null}, "hypervisor": "kvm", "watchdog_enabled": - true, "tags": [], "host_uuid": "4351606c086016d7568003f3b436685b02d00a73", "has_user_data": - false}' + "backups": {"enabled": true, "available": true, "schedule": {"day": "Scheduling", + "window": "Scheduling"}, "last_successful": null}, "hypervisor": "kvm", "watchdog_enabled": + true, "tags": [], "host_uuid": "6833df95c5afc7bde87b97a18f8204e6eb2187f8", "has_user_data": + false, "placement_group": null, "lke_cluster_id": null}' headers: Access-Control-Allow-Credentials: - "true" @@ -768,18 +789,19 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=0, s-maxage=0, no-cache, no-store - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: - - "736" + - "801" Content-Security-Policy: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:56:06 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: @@ -811,7 +833,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/52557993 + url: https://api.linode.com/v4beta/linode/instances/60303116 method: DELETE response: body: '{}' @@ -827,7 +849,7 @@ interactions: Access-Control-Expose-Headers: - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status Cache-Control: - - private, max-age=60, s-maxage=60 + - max-age=0, no-cache, no-store Connection: - keep-alive Content-Length: @@ -836,8 +858,10 @@ interactions: - default-src 'none' Content-Type: - application/json - Server: - - nginx + Expires: + - Mon, 17 Jun 2024 15:56:06 GMT + Pragma: + - no-cache Strict-Transport-Security: - max-age=31536000 Vary: