diff --git a/account_events.go b/account_events.go index 2fe5a70ba..5a5c015f4 100644 --- a/account_events.go +++ b/account_events.go @@ -207,14 +207,6 @@ const ( ActionVPCSubnetCreate EventAction = "subnet_create" ActionVPCSubnetDelete EventAction = "subnet_delete" ActionVPCSubnetUpdate EventAction = "subnet_update" - - // Deprecated: incorrect spelling, - // to be removed in the next major version release. - ActionVolumeDelte EventAction = "volume_delete" - - // Deprecated: incorrect spelling, - // to be removed in the next major version - ActionCreateCardUpdated = ActionCreditCardUpdated ) // EntityType constants start with Entity and include Linode API Event Entity Types diff --git a/account_settings.go b/account_settings.go index 7e87c9691..b129d8826 100644 --- a/account_settings.go +++ b/account_settings.go @@ -27,10 +27,6 @@ type AccountSettingsUpdateOptions struct { // The default backups enrollment status for all new Linodes for all users on the account. When enabled, backups are mandatory per instance. BackupsEnabled *bool `json:"backups_enabled,omitempty"` - // A plan name like "longview-3"..."longview-100", or a nil value for to cancel any existing subscription plan. - // Deprecated: Use PUT /longview/plan instead to update the LongviewSubscription - LongviewSubscription *string `json:"longview_subscription,omitempty"` - // The default network helper setting for all new Linodes and Linode Configs for all users on the account. NetworkHelper *bool `json:"network_helper,omitempty"` } diff --git a/databases.go b/databases.go index 8d59305c0..0e4db93d9 100644 --- a/databases.go +++ b/databases.go @@ -83,13 +83,6 @@ type Database struct { // Members has dynamic keys so it is a map Members map[string]DatabaseMemberType `json:"members"` - // Deprecated: ReplicationType is a deprecated property, as it is no longer supported in DBaaS V2. - ReplicationType string `json:"replication_type"` - // Deprecated: SSLConnection is a deprecated property, as it is no longer supported in DBaaS V2. - SSLConnection bool `json:"ssl_connection"` - // Deprecated: Encrypted is a deprecated property, as it is no longer supported in DBaaS V2. - Encrypted bool `json:"encrypted"` - AllowList []string `json:"allow_list"` InstanceURI string `json:"instance_uri"` Created *time.Time `json:"-"` @@ -118,9 +111,6 @@ type DatabaseMaintenanceWindow struct { HourOfDay int `json:"hour_of_day"` Pending []DatabaseMaintenanceWindowPending `json:"pending,omitempty"` - - // Deprecated: WeekOfMonth is a deprecated property, as it is no longer supported in DBaaS V2. - WeekOfMonth *int `json:"week_of_month,omitempty"` } type DatabaseMaintenanceWindowPending struct { diff --git a/domains.go b/domains.go index 8f69665a9..c343cca7e 100644 --- a/domains.go +++ b/domains.go @@ -15,9 +15,6 @@ type Domain struct { // If this Domain represents the authoritative source of information for the domain it describes, or if it is a read-only copy of a master (also called a slave). Type DomainType `json:"type"` // Enum:"master" "slave" - // Deprecated: The group this Domain belongs to. This is for display purposes only. - Group string `json:"group"` - // Used to control whether this Domain is currently being rendered. Status DomainStatus `json:"status"` // Enum:"disabled" "active" "edit_mode" "has_errors" @@ -64,9 +61,6 @@ type DomainCreateOptions struct { // Enum:"master" "slave" Type DomainType `json:"type"` - // Deprecated: The group this Domain belongs to. This is for display purposes only. - Group *string `json:"group,omitempty"` - // Used to control whether this Domain is currently being rendered. // Enum:"disabled" "active" "edit_mode" "has_errors" Status *DomainStatus `json:"status,omitempty"` @@ -109,9 +103,6 @@ type DomainUpdateOptions struct { // Enum:"master" "slave" Type *DomainType `json:"type,omitempty"` - // Deprecated: The group this Domain belongs to. This is for display purposes only. - Group *string `json:"group,omitempty"` - // Used to control whether this Domain is currently being rendered. // Enum:"disabled" "active" "edit_mode" "has_errors" Status *DomainStatus `json:"status,omitempty"` @@ -178,7 +169,6 @@ type DomainImportOptions struct { func (d Domain) GetUpdateOptions() (du DomainUpdateOptions) { du.Domain = &d.Domain du.Type = &d.Type - du.Group = &d.Group du.Status = &d.Status du.Description = &d.Description du.SOAEmail = &d.SOAEmail diff --git a/instance_ips.go b/instance_ips.go index ae80c3ff3..a37373521 100644 --- a/instance_ips.go +++ b/instance_ips.go @@ -120,7 +120,7 @@ func (c *Client) AddInstanceIPAddress(ctx context.Context, linodeID int, public } // UpdateInstanceIPAddress updates the IPAddress with the specified instance id and IP address -func (c *Client) UpdateInstanceIPAddress(ctx context.Context, linodeID int, ipAddress string, opts IPAddressUpdateOptions) (*InstanceIP, error) { +func (c *Client) UpdateInstanceIPAddress(ctx context.Context, linodeID int, ipAddress string, opts IPAddressUpdateOptionsV2) (*InstanceIP, error) { e := formatAPIPath("linode/instances/%d/ips/%s", linodeID, ipAddress) return doPUTRequest[InstanceIP](ctx, c, e, opts) } diff --git a/instances.go b/instances.go index 081c4b939..6f9896659 100644 --- a/instances.go +++ b/instances.go @@ -178,13 +178,9 @@ type InstanceCreateOptions struct { PlacementGroup *InstanceCreatePlacementGroupOptions `json:"placement_group,omitempty"` // Creation fields that need to be set explicitly false, "", or 0 use pointers - SwapSize *int `json:"swap_size,omitempty"` - Booted *bool `json:"booted,omitempty"` - - // Deprecated: group is a deprecated property denoting a group label for the Linode. - Group *string `json:"group,omitempty"` - - IPv4 []string `json:"ipv4,omitempty"` + SwapSize *int `json:"swap_size,omitempty"` + Booted *bool `json:"booted,omitempty"` + IPv4 []string `json:"ipv4,omitempty"` } // InstanceCreatePlacementGroupOptions represents the placement group @@ -201,9 +197,6 @@ type InstanceUpdateOptions struct { Alerts *InstanceAlert `json:"alerts,omitempty"` WatchdogEnabled *bool `json:"watchdog_enabled,omitempty"` Tags []string `json:"tags,omitempty"` - - // Deprecated: group is a deprecated property denoting a group label for the Linode. - Group *string `json:"group,omitempty"` } // UnmarshalJSON implements the json.Unmarshaler interface @@ -252,7 +245,6 @@ func (backup *InstanceBackup) UnmarshalJSON(b []byte) error { func (i *Instance) GetUpdateOptions() InstanceUpdateOptions { return InstanceUpdateOptions{ Label: &i.Label, - Group: &i.Group, Backups: i.Backups, Alerts: i.Alerts, WatchdogEnabled: &i.WatchdogEnabled, @@ -274,9 +266,6 @@ type InstanceCloneOptions struct { PrivateIP *bool `json:"private_ip,omitempty"` Metadata *InstanceMetadataOptions `json:"metadata,omitempty"` PlacementGroup *InstanceCreatePlacementGroupOptions `json:"placement_group,omitempty"` - - // Deprecated: group is a deprecated property denoting a group label for the Linode. - Group *string `json:"group,omitempty"` } // InstanceResizeOptions is an options struct used when resizing an instance @@ -428,12 +417,6 @@ func (c *Client) ShutdownInstance(ctx context.Context, id int) error { return c.simpleInstanceAction(ctx, "shutdown", id) } -// Deprecated: Please use UpgradeInstance instead. -// MutateInstance Upgrades a Linode to its next generation. -func (c *Client) MutateInstance(ctx context.Context, id int) error { - return c.simpleInstanceAction(ctx, "mutate", id) -} - // InstanceUpgradeOptions is a struct representing the options for upgrading a Linode type InstanceUpgradeOptions struct { // Automatically resize disks when resizing a Linode. diff --git a/lke_cluster_pools.go b/lke_cluster_pools.go deleted file mode 100644 index 5f5207655..000000000 --- a/lke_cluster_pools.go +++ /dev/null @@ -1,53 +0,0 @@ -package linodego - -import ( - "context" -) - -// Deprecated: LKEClusterPoolDisk represents a Node disk in an LKEClusterPool object -type LKEClusterPoolDisk = LKENodePoolDisk - -// Deprecated: LKEClusterPoolAutoscaler represents an AutoScaler configuration -type LKEClusterPoolAutoscaler = LKENodePoolAutoscaler - -// Deprecated: LKEClusterPoolLinode represents a LKEClusterPoolLinode object -type LKEClusterPoolLinode = LKENodePoolLinode - -// Deprecated: LKEClusterPool represents a LKEClusterPool object -type LKEClusterPool = LKENodePool - -// Deprecated: LKEClusterPoolCreateOptions fields are those accepted by CreateLKEClusterPool -type LKEClusterPoolCreateOptions = LKENodePoolCreateOptions - -// Deprecated: LKEClusterPoolUpdateOptions fields are those accepted by UpdateLKEClusterPool -type LKEClusterPoolUpdateOptions = LKENodePoolUpdateOptions - -// Deprecated: ListLKEClusterPools lists LKEClusterPools -func (c *Client) ListLKEClusterPools(ctx context.Context, clusterID int, opts *ListOptions) ([]LKEClusterPool, error) { - return c.ListLKENodePools(ctx, clusterID, opts) -} - -// Deprecated: GetLKEClusterPool gets the lkeClusterPool with the provided ID -func (c *Client) GetLKEClusterPool(ctx context.Context, clusterID, id int) (*LKEClusterPool, error) { - return c.GetLKENodePool(ctx, clusterID, id) -} - -// Deprecated: CreateLKEClusterPool creates a LKEClusterPool -func (c *Client) CreateLKEClusterPool(ctx context.Context, clusterID int, createOpts LKEClusterPoolCreateOptions) (*LKEClusterPool, error) { - return c.CreateLKENodePool(ctx, clusterID, createOpts) -} - -// Deprecated: UpdateLKEClusterPool updates the LKEClusterPool with the specified id -func (c *Client) UpdateLKEClusterPool(ctx context.Context, clusterID, id int, updateOpts LKEClusterPoolUpdateOptions) (*LKEClusterPool, error) { - return c.UpdateLKENodePool(ctx, clusterID, id, updateOpts) -} - -// Deprecated: DeleteLKEClusterPool deletes the LKEClusterPool with the specified id -func (c *Client) DeleteLKEClusterPool(ctx context.Context, clusterID, id int) error { - return c.DeleteLKENodePool(ctx, clusterID, id) -} - -// Deprecated: DeleteLKEClusterPoolNode deletes a given node from a cluster pool -func (c *Client) DeleteLKEClusterPoolNode(ctx context.Context, clusterID int, id string) error { - return c.DeleteLKENodePoolNode(ctx, clusterID, id) -} diff --git a/mysql.go b/mysql.go index 1ec7e8341..4cdada978 100644 --- a/mysql.go +++ b/mysql.go @@ -33,13 +33,6 @@ type MySQLDatabase struct { // Members has dynamic keys so it is a map Members map[string]DatabaseMemberType `json:"members"` - // Deprecated: ReplicationType is a deprecated property, as it is no longer supported in DBaaS V2. - ReplicationType string `json:"replication_type"` - // Deprecated: SSLConnection is a deprecated property, as it is no longer supported in DBaaS V2. - SSLConnection bool `json:"ssl_connection"` - // Deprecated: Encrypted is a deprecated property, as it is no longer supported in DBaaS V2. - Encrypted bool `json:"encrypted"` - AllowList []string `json:"allow_list"` InstanceURI string `json:"instance_uri"` Created *time.Time `json:"-"` @@ -83,13 +76,6 @@ type MySQLCreateOptions struct { AllowList []string `json:"allow_list,omitempty"` ClusterSize *int `json:"cluster_size,omitempty"` - // Deprecated: ReplicationType is a deprecated property, as it is no longer supported in DBaaS V2. - ReplicationType *string `json:"replication_type,omitempty"` - // Deprecated: Encrypted is a deprecated property, as it is no longer supported in DBaaS V2. - Encrypted *bool `json:"encrypted,omitempty"` - // Deprecated: SSLConnection is a deprecated property, as it is no longer supported in DBaaS V2. - SSLConnection *bool `json:"ssl_connection,omitempty"` - Fork *DatabaseFork `json:"fork,omitempty"` } @@ -103,42 +89,6 @@ type MySQLUpdateOptions struct { Version *string `json:"version,omitempty"` } -// MySQLDatabaseBackup is information for interacting with a backup for the existing MySQL Database -// Deprecated: MySQLDatabaseBackup is a deprecated struct, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -type MySQLDatabaseBackup struct { - ID int `json:"id"` - Label string `json:"label"` - Type string `json:"type"` - Created *time.Time `json:"-"` -} - -// MySQLBackupCreateOptions are options used for CreateMySQLDatabaseBackup(...) -// Deprecated: MySQLBackupCreateOptions is a deprecated struct, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -type MySQLBackupCreateOptions struct { - Label string `json:"label"` - Target MySQLDatabaseTarget `json:"target"` -} - -func (d *MySQLDatabaseBackup) UnmarshalJSON(b []byte) error { - type Mask MySQLDatabaseBackup - - p := struct { - *Mask - Created *parseabletime.ParseableTime `json:"created"` - }{ - Mask: (*Mask)(d), - } - - if err := json.Unmarshal(b, &p); err != nil { - return err - } - - d.Created = (*time.Time)(p.Created) - return nil -} - // MySQLDatabaseCredential is the Root Credentials to access the Linode Managed Database type MySQLDatabaseCredential struct { Username string `json:"username"` @@ -155,13 +105,6 @@ func (c *Client) ListMySQLDatabases(ctx context.Context, opts *ListOptions) ([]M return getPaginatedResults[MySQLDatabase](ctx, c, "databases/mysql/instances", opts) } -// ListMySQLDatabaseBackups lists all MySQL Database Backups associated with the given MySQL Database -// Deprecated: ListMySQLDatabaseBackups is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) ListMySQLDatabaseBackups(ctx context.Context, databaseID int, opts *ListOptions) ([]MySQLDatabaseBackup, error) { - return getPaginatedResults[MySQLDatabaseBackup](ctx, c, formatAPIPath("databases/mysql/instances/%d/backups", databaseID), opts) -} - // GetMySQLDatabase returns a single MySQL Database matching the id func (c *Client) GetMySQLDatabase(ctx context.Context, databaseID int) (*MySQLDatabase, error) { e := formatAPIPath("databases/mysql/instances/%d", databaseID) @@ -203,30 +146,6 @@ func (c *Client) ResetMySQLDatabaseCredentials(ctx context.Context, databaseID i return doPOSTRequestNoRequestResponseBody(ctx, c, e) } -// GetMySQLDatabaseBackup returns a specific MySQL Database Backup with the given ids -// Deprecated: GetMySQLDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) GetMySQLDatabaseBackup(ctx context.Context, databaseID int, backupID int) (*MySQLDatabaseBackup, error) { - e := formatAPIPath("databases/mysql/instances/%d/backups/%d", databaseID, backupID) - return doGETRequest[MySQLDatabaseBackup](ctx, c, e) -} - -// RestoreMySQLDatabaseBackup returns the given MySQL Database with the given Backup -// Deprecated: RestoreMySQLDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) RestoreMySQLDatabaseBackup(ctx context.Context, databaseID int, backupID int) error { - e := formatAPIPath("databases/mysql/instances/%d/backups/%d/restore", databaseID, backupID) - return doPOSTRequestNoRequestResponseBody(ctx, c, e) -} - -// CreateMySQLDatabaseBackup creates a snapshot for the given MySQL database -// Deprecated: CreateMySQLDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) CreateMySQLDatabaseBackup(ctx context.Context, databaseID int, opts MySQLBackupCreateOptions) error { - e := formatAPIPath("databases/mysql/instances/%d/backups", databaseID) - return doPOSTRequestNoResponseBody(ctx, c, e, opts) -} - // PatchMySQLDatabase applies security patches and updates to the underlying operating system of the Managed MySQL Database func (c *Client) PatchMySQLDatabase(ctx context.Context, databaseID int) error { e := formatAPIPath("databases/mysql/instances/%d/patch", databaseID) diff --git a/network_ips.go b/network_ips.go index 8a425a3b1..e2feb8e26 100644 --- a/network_ips.go +++ b/network_ips.go @@ -16,12 +16,6 @@ type IPAddressUpdateOptionsV2 struct { RDNS **string `json:"rdns,omitempty"` } -// IPAddressUpdateOptions fields are those accepted by UpdateIPAddress. -// Deprecated: Please use IPAddressUpdateOptionsV2 for all new implementations. -type IPAddressUpdateOptions struct { - RDNS *string `json:"rdns"` -} - // LinodeIPAssignment stores an assignment between an IP address and a Linode instance. type LinodeIPAssignment struct { Address string `json:"address"` @@ -65,13 +59,6 @@ func (i InstanceIP) GetUpdateOptionsV2() IPAddressUpdateOptionsV2 { } } -// GetUpdateOptions converts a IPAddress to IPAddressUpdateOptions for use in UpdateIPAddress. -// Deprecated: Please use GetUpdateOptionsV2 for all new implementations. -func (i InstanceIP) GetUpdateOptions() (o IPAddressUpdateOptions) { - o.RDNS = copyString(&i.RDNS) - return -} - // ListIPAddresses lists IPAddresses. func (c *Client) ListIPAddresses(ctx context.Context, opts *ListOptions) ([]InstanceIP, error) { return getPaginatedResults[InstanceIP](ctx, c, "networking/ips", opts) @@ -89,13 +76,6 @@ func (c *Client) UpdateIPAddressV2(ctx context.Context, address string, opts IPA return doPUTRequest[InstanceIP](ctx, c, e, opts) } -// UpdateIPAddress updates the IP address with the specified id. -// Deprecated: Please use UpdateIPAddressV2 for all new implementation. -func (c *Client) UpdateIPAddress(ctx context.Context, id string, opts IPAddressUpdateOptions) (*InstanceIP, error) { - e := formatAPIPath("networking/ips/%s", id) - return doPUTRequest[InstanceIP](ctx, c, e, opts) -} - // InstancesAssignIPs assigns multiple IPv4 addresses and/or IPv6 ranges to multiple Linodes in one Region. // This allows swapping, shuffling, or otherwise reorganizing IPs to your Linodes. func (c *Client) InstancesAssignIPs(ctx context.Context, opts LinodesAssignIPsOptions) error { diff --git a/object_storage_bucket_certs.go b/object_storage_bucket_certs.go index 244aa1544..3e8366a02 100644 --- a/object_storage_bucket_certs.go +++ b/object_storage_bucket_certs.go @@ -4,11 +4,6 @@ import ( "context" ) -// Deprecated: Please use ObjectStorageBucketCertV2 for all new implementations. -type ObjectStorageBucketCert struct { - SSL bool `json:"ssl"` -} - type ObjectStorageBucketCertV2 struct { SSL *bool `json:"ssl"` } @@ -18,20 +13,6 @@ type ObjectStorageBucketCertUploadOptions struct { PrivateKey string `json:"private_key"` } -// UploadObjectStorageBucketCert uploads a TLS/SSL Cert to be used with an Object Storage Bucket. -// Deprecated: Please use UploadObjectStorageBucketCertV2 for all new implementations. -func (c *Client) UploadObjectStorageBucketCert(ctx context.Context, clusterOrRegionID, bucket string, opts ObjectStorageBucketCertUploadOptions) (*ObjectStorageBucketCert, error) { - e := formatAPIPath("object-storage/buckets/%s/%s/ssl", clusterOrRegionID, bucket) - return doPOSTRequest[ObjectStorageBucketCert](ctx, c, e, opts) -} - -// GetObjectStorageBucketCert gets an ObjectStorageBucketCert -// Deprecated: Please use GetObjectStorageBucketCertV2 for all new implementations. -func (c *Client) GetObjectStorageBucketCert(ctx context.Context, clusterOrRegionID, bucket string) (*ObjectStorageBucketCert, error) { - e := formatAPIPath("object-storage/buckets/%s/%s/ssl", clusterOrRegionID, bucket) - return doGETRequest[ObjectStorageBucketCert](ctx, c, e) -} - // UploadObjectStorageBucketCert uploads a TLS/SSL Cert to be used with an Object Storage Bucket. func (c *Client) UploadObjectStorageBucketCertV2(ctx context.Context, clusterOrRegionID, bucket string, opts ObjectStorageBucketCertUploadOptions) (*ObjectStorageBucketCertV2, error) { e := formatAPIPath("object-storage/buckets/%s/%s/ssl", clusterOrRegionID, bucket) diff --git a/object_storage_buckets.go b/object_storage_buckets.go index b61967434..c65af7318 100644 --- a/object_storage_buckets.go +++ b/object_storage_buckets.go @@ -12,17 +12,8 @@ import ( // ObjectStorageBucket represents a ObjectStorage object type ObjectStorageBucket struct { - Label string `json:"label"` - - // Deprecated: The 'Cluster' field has been deprecated in favor of the 'Region' field. - // For example, a Cluster value of `us-mia-1` will translate to a Region value of `us-mia`. - // - // This is necessary because there are now multiple Object Storage clusters to a region. - // - // NOTE: The 'Cluster' field will always return a value similar to `-1` (e.g., `us-mia-1`) - // for backward compatibility purposes. - Cluster string `json:"cluster"` - Region string `json:"region"` + Label string `json:"label"` + Region string `json:"region"` S3Endpoint string `json:"s3_endpoint"` EndpointType ObjectStorageEndpointType `json:"endpoint_type"` @@ -83,13 +74,7 @@ func (i *ObjectStorageBucket) UnmarshalJSON(b []byte) error { // ObjectStorageBucketCreateOptions fields are those accepted by CreateObjectStorageBucket type ObjectStorageBucketCreateOptions struct { - // Deprecated: The 'Cluster' field has been deprecated. - // - // Going forward, the 'Region' field will be the supported way to designate where an - // Object Storage Bucket should be created. For example, a 'Cluster' value of `us-mia-1` - // will translate to a Region value of `us-mia`. - Cluster *string `json:"cluster,omitempty"` - Region *string `json:"region,omitempty"` + Region *string `json:"region,omitempty"` Label string `json:"label"` S3Endpoint *string `json:"s3_endpoint,omitempty"` @@ -129,14 +114,14 @@ func (c *Client) ListObjectStorageBuckets(ctx context.Context, opts *ListOptions return getPaginatedResults[ObjectStorageBucket](ctx, c, "object-storage/buckets", opts) } -// ListObjectStorageBucketsInCluster lists all ObjectStorageBuckets of a cluster -func (c *Client) ListObjectStorageBucketsInCluster(ctx context.Context, opts *ListOptions, clusterOrRegionID string) ([]ObjectStorageBucket, error) { - return getPaginatedResults[ObjectStorageBucket](ctx, c, formatAPIPath("object-storage/buckets/%s", clusterOrRegionID), opts) +// ListObjectStorageBucketsInRegion lists all ObjectStorageBuckets of a region +func (c *Client) ListObjectStorageBucketsInRegion(ctx context.Context, opts *ListOptions, regionID string) ([]ObjectStorageBucket, error) { + return getPaginatedResults[ObjectStorageBucket](ctx, c, formatAPIPath("object-storage/buckets/%s", regionID), opts) } // GetObjectStorageBucket gets the ObjectStorageBucket with the provided label -func (c *Client) GetObjectStorageBucket(ctx context.Context, clusterOrRegionID, label string) (*ObjectStorageBucket, error) { - e := formatAPIPath("object-storage/buckets/%s/%s", clusterOrRegionID, label) +func (c *Client) GetObjectStorageBucket(ctx context.Context, regionID, label string) (*ObjectStorageBucket, error) { + e := formatAPIPath("object-storage/buckets/%s/%s", regionID, label) return doGETRequest[ObjectStorageBucket](ctx, c, e) } @@ -145,34 +130,27 @@ func (c *Client) CreateObjectStorageBucket(ctx context.Context, opts ObjectStora return doPOSTRequest[ObjectStorageBucket](ctx, c, "object-storage/buckets", opts) } -// GetObjectStorageBucketAccess gets the current access config for a bucket -// Deprecated: use GetObjectStorageBucketAccessV2 for new implementations -func (c *Client) GetObjectStorageBucketAccess(ctx context.Context, clusterOrRegionID, label string) (*ObjectStorageBucketAccess, error) { - e := formatAPIPath("object-storage/buckets/%s/%s/access", clusterOrRegionID, label) - return doGETRequest[ObjectStorageBucketAccess](ctx, c, e) -} - // UpdateObjectStorageBucketAccess updates the access configuration for an ObjectStorageBucket -func (c *Client) UpdateObjectStorageBucketAccess(ctx context.Context, clusterOrRegionID, label string, opts ObjectStorageBucketUpdateAccessOptions) error { - e := formatAPIPath("object-storage/buckets/%s/%s/access", clusterOrRegionID, label) +func (c *Client) UpdateObjectStorageBucketAccess(ctx context.Context, regionID, label string, opts ObjectStorageBucketUpdateAccessOptions) error { + e := formatAPIPath("object-storage/buckets/%s/%s/access", regionID, label) return doPOSTRequestNoResponseBody(ctx, c, e, opts) } // GetObjectStorageBucketAccess gets the current access config for a bucket -func (c *Client) GetObjectStorageBucketAccessV2(ctx context.Context, clusterOrRegionID, label string) (*ObjectStorageBucketAccessV2, error) { - e := formatAPIPath("object-storage/buckets/%s/%s/access", clusterOrRegionID, label) +func (c *Client) GetObjectStorageBucketAccessV2(ctx context.Context, regionID, label string) (*ObjectStorageBucketAccessV2, error) { + e := formatAPIPath("object-storage/buckets/%s/%s/access", regionID, label) return doGETRequest[ObjectStorageBucketAccessV2](ctx, c, e) } // DeleteObjectStorageBucket deletes the ObjectStorageBucket with the specified label -func (c *Client) DeleteObjectStorageBucket(ctx context.Context, clusterOrRegionID, label string) error { - e := formatAPIPath("object-storage/buckets/%s/%s", clusterOrRegionID, label) +func (c *Client) DeleteObjectStorageBucket(ctx context.Context, regionID, label string) error { + e := formatAPIPath("object-storage/buckets/%s/%s", regionID, label) return doDELETERequest(ctx, c, e) } // Lists the contents of the specified ObjectStorageBucket -func (c *Client) ListObjectStorageBucketContents(ctx context.Context, clusterOrRegionID, label string, params *ObjectStorageBucketListContentsParams) (*ObjectStorageBucketContent, error) { - basePath := formatAPIPath("object-storage/buckets/%s/%s/object-list", clusterOrRegionID, label) +func (c *Client) ListObjectStorageBucketContents(ctx context.Context, regionID, label string, params *ObjectStorageBucketListContentsParams) (*ObjectStorageBucketContent, error) { + basePath := formatAPIPath("object-storage/buckets/%s/%s/object-list", regionID, label) queryString := "" if params != nil { diff --git a/object_storage_clusters.go b/object_storage_clusters.go deleted file mode 100644 index e4793241c..000000000 --- a/object_storage_clusters.go +++ /dev/null @@ -1,26 +0,0 @@ -package linodego - -import ( - "context" -) - -// ObjectStorageCluster represents a linode object storage cluster object -type ObjectStorageCluster struct { - ID string `json:"id"` - Domain string `json:"domain"` - Status string `json:"status"` - Region string `json:"region"` - StaticSiteDomain string `json:"static_site_domain"` -} - -// ListObjectStorageClusters lists ObjectStorageClusters -func (c *Client) ListObjectStorageClusters(ctx context.Context, opts *ListOptions) ([]ObjectStorageCluster, error) { - return getPaginatedResults[ObjectStorageCluster](ctx, c, "object-storage/clusters", opts) -} - -// Deprecated: GetObjectStorageCluster uses a deprecated API endpoint. -// GetObjectStorageCluster gets the template with the provided ID -func (c *Client) GetObjectStorageCluster(ctx context.Context, clusterID string) (*ObjectStorageCluster, error) { - e := formatAPIPath("object-storage/clusters/%s", clusterID) - return doGETRequest[ObjectStorageCluster](ctx, c, e) -} diff --git a/object_storage_keys.go b/object_storage_keys.go index 6bf3cdd2c..489aca03f 100644 --- a/object_storage_keys.go +++ b/object_storage_keys.go @@ -23,11 +23,7 @@ type ObjectStorageKey struct { // ObjectStorageKeyBucketAccess represents a linode limited object storage key's bucket access type ObjectStorageKeyBucketAccess struct { - // Deprecated: Cluster field has been deprecated. - // Please consider switching to use the 'Region' field. - // If your Cluster is `us-mia-1`, then the region would be `us-mia`. - Cluster *string `json:"cluster,omitempty"` - Region *string `json:"region,omitempty"` + Region *string `json:"region,omitempty"` BucketName string `json:"bucket_name"` Permissions string `json:"permissions"` diff --git a/object_storage_object.go b/object_storage_object.go index 0a64c6d37..1e858ea1f 100644 --- a/object_storage_object.go +++ b/object_storage_object.go @@ -17,12 +17,6 @@ type ObjectStorageObjectURL struct { Exists bool `json:"exists"` } -// Deprecated: Please use ObjectStorageObjectACLConfigV2 for all new implementations. -type ObjectStorageObjectACLConfig struct { - ACL string `json:"acl"` - ACLXML string `json:"acl_xml"` -} - type ObjectStorageObjectACLConfigV2 struct { ACL *string `json:"acl"` ACLXML *string `json:"acl_xml"` @@ -38,18 +32,6 @@ func (c *Client) CreateObjectStorageObjectURL(ctx context.Context, objectID, lab return doPOSTRequest[ObjectStorageObjectURL](ctx, c, e, opts) } -// Deprecated: use GetObjectStorageObjectACLConfigV2 for new implementations -func (c *Client) GetObjectStorageObjectACLConfig(ctx context.Context, objectID, label, object string) (*ObjectStorageObjectACLConfig, error) { - e := formatAPIPath("object-storage/buckets/%s/%s/object-acl?name=%s", objectID, label, object) - return doGETRequest[ObjectStorageObjectACLConfig](ctx, c, e) -} - -// Deprecated: use UpdateObjectStorageObjectACLConfigV2 for new implementations -func (c *Client) UpdateObjectStorageObjectACLConfig(ctx context.Context, objectID, label string, opts ObjectStorageObjectACLConfigUpdateOptions) (*ObjectStorageObjectACLConfig, error) { - e := formatAPIPath("object-storage/buckets/%s/%s/object-acl", objectID, label) - return doPUTRequest[ObjectStorageObjectACLConfig](ctx, c, e, opts) -} - func (c *Client) GetObjectStorageObjectACLConfigV2(ctx context.Context, objectID, label, object string) (*ObjectStorageObjectACLConfigV2, error) { e := formatAPIPath("object-storage/buckets/%s/%s/object-acl?name=%s", objectID, label, object) return doGETRequest[ObjectStorageObjectACLConfigV2](ctx, c, e) diff --git a/paged_response_structs.go b/paged_response_structs.go deleted file mode 100644 index 5c20ed26b..000000000 --- a/paged_response_structs.go +++ /dev/null @@ -1,180 +0,0 @@ -package linodego - -// Deprecated: AccountAvailabilityPagedResponse exists for historical compatibility and should not be used. -type AccountAvailabilityPagedResponse legacyPagedResponse[AccountAvailability] - -// Deprecated: AccountBetasPagedResponse exists for historical compatibility and should not be used. -type AccountBetasPagedResponse legacyPagedResponse[AccountBetaProgram] - -// Deprecated: BetaProgramPagedResponse exists for historical compatibility and should not be used. -type BetaProgramPagedResponse legacyPagedResponse[BetaProgram] - -// Deprecated: DatabaseEnginesPagedResponse exists for historical compatibility and should not be used. -type DatabaseEnginesPagedResponse legacyPagedResponse[DatabaseEngine] - -// Deprecated: DatabaseTypesPagedResponse exists for historical compatibility and should not be used. -type DatabaseTypesPagedResponse legacyPagedResponse[DatabaseType] - -// Deprecated: DatabasesPagedResponse exists for historical compatibility and should not be used. -type DatabasesPagedResponse legacyPagedResponse[Database] - -// Deprecated: DomainRecordsPagedResponse exists for historical compatibility and should not be used. -type DomainRecordsPagedResponse legacyPagedResponse[DomainRecord] - -// Deprecated: DomainsPagedResponse exists for historical compatibility and should not be used. -type DomainsPagedResponse legacyPagedResponse[Domain] - -// Deprecated: EventsPagedResponse exists for historical compatibility and should not be used. -type EventsPagedResponse legacyPagedResponse[Event] - -// Deprecated: FirewallDevicesPagedResponse exists for historical compatibility and should not be used. -type FirewallDevicesPagedResponse legacyPagedResponse[FirewallDevice] - -// Deprecated: FirewallsPagedResponse exists for historical compatibility and should not be used. -type FirewallsPagedResponse legacyPagedResponse[Firewall] - -// Deprecated: ImagesPagedResponse exists for historical compatibility and should not be used. -type ImagesPagedResponse legacyPagedResponse[Image] - -// Deprecated: InstanceConfigsPagedResponse exists for historical compatibility and should not be used. -type InstanceConfigsPagedResponse legacyPagedResponse[InstanceConfig] - -// Deprecated: InstanceDisksPagedResponse exists for historical compatibility and should not be used. -type InstanceDisksPagedResponse legacyPagedResponse[InstanceDisk] - -// Deprecated: InstanceFirewallsPagedResponse exists for historical compatibility and should not be used. -type InstanceFirewallsPagedResponse legacyPagedResponse[Firewall] - -// Deprecated: InstanceVolumesPagedResponse exists for historical compatibility and should not be used. -type InstanceVolumesPagedResponse legacyPagedResponse[Volume] - -// Deprecated: InstancesPagedResponse exists for historical compatibility and should not be used. -type InstancesPagedResponse legacyPagedResponse[Instance] - -// Deprecated: InvoiceItemsPagedResponse exists for historical compatibility and should not be used. -type InvoiceItemsPagedResponse legacyPagedResponse[InvoiceItem] - -// Deprecated: InvoicesPagedResponse exists for historical compatibility and should not be used. -type InvoicesPagedResponse legacyPagedResponse[Invoice] - -// Deprecated: LKEClusterPoolsPagedResponse exists for historical compatibility and should not be used. -// LKEClusterPoolsPagedResponse represents a paginated LKEClusterPool API response. -type LKEClusterPoolsPagedResponse LKENodePoolsPagedResponse - -// Deprecated: LKEVersionsPagedResponse exists for historical compatibility and should not be used. -type LKEVersionsPagedResponse legacyPagedResponse[LKEVersion] - -// Deprecated: LKEClusterAPIEndpointsPagedResponse exists for historical compatibility and should not be used. -type LKEClusterAPIEndpointsPagedResponse legacyPagedResponse[LKEClusterAPIEndpoint] - -// Deprecated: LKEClustersPagedResponse exists for historical compatibility and should not be used. -type LKEClustersPagedResponse legacyPagedResponse[LKECluster] - -// Deprecated: LKENodePoolsPagedResponse exists for historical compatibility and should not be used. -type LKENodePoolsPagedResponse legacyPagedResponse[LKENodePool] - -// Deprecated: IPAddressesPagedResponse exists for historical compatibility and should not be used. -type IPAddressesPagedResponse legacyPagedResponse[InstanceIP] - -// Deprecated: IPv6PoolsPagedResponse exists for historical compatibility and should not be used. -type IPv6PoolsPagedResponse legacyPagedResponse[IPv6Range] - -// Deprecated: IPv6RangesPagedResponse exists for historical compatibility and should not be used. -type IPv6RangesPagedResponse legacyPagedResponse[IPv6Range] - -// Deprecated: LinodeKernelsPagedResponse exists for historical compatibility and should not be used. -type LinodeKernelsPagedResponse legacyPagedResponse[LinodeKernel] - -// Deprecated: LinodeTypesPagedResponse exists for historical compatibility and should not be used. -type LinodeTypesPagedResponse legacyPagedResponse[LinodeType] - -// Deprecated: LoginsPagedResponse exists for historical compatibility and should not be used. -type LoginsPagedResponse legacyPagedResponse[Login] - -// Deprecated: LongviewClientsPagedResponse exists for historical compatibility and should not be used. -type LongviewClientsPagedResponse legacyPagedResponse[LongviewClient] - -// Deprecated: LongviewSubscriptionsPagedResponse exists for historical compatibility and should not be used. -type LongviewSubscriptionsPagedResponse legacyPagedResponse[LongviewSubscription] - -// Deprecated: MySQLDatabasesPagedResponse exists for historical compatibility and should not be used. -type MySQLDatabasesPagedResponse legacyPagedResponse[MySQLDatabase] - -// Deprecated: MySQLDatabaseBackupsPagedResponse exists for historical compatibility and should not be used. -type MySQLDatabaseBackupsPagedResponse legacyPagedResponse[MySQLDatabaseBackup] - -// Deprecated: NodeBalancersPagedResponse exists for historical compatibility and should not be used. -type NodeBalancersPagedResponse legacyPagedResponse[NodeBalancer] - -// Deprecated: NodeBalancerConfigsPagedResponse exists for historical compatibility and should not be used. -type NodeBalancerConfigsPagedResponse legacyPagedResponse[NodeBalancerConfig] - -// Deprecated: NodeBalancerNodesPagedResponse exists for historical compatibility and should not be used. -type NodeBalancerNodesPagedResponse legacyPagedResponse[NodeBalancerNode] - -// Deprecated: NodeBalancerFirewallsPagedResponse exists for historical compatibility and should not be used. -type NodeBalancerFirewallsPagedResponse legacyPagedResponse[Firewall] - -// Deprecated: NotificationsPagedResponse exists for historical compatibility and should not be used. -type NotificationsPagedResponse legacyPagedResponse[Notification] - -// Deprecated: OAuthClientsPagedResponse exists for historical compatibility and should not be used. -type OAuthClientsPagedResponse legacyPagedResponse[OAuthClient] - -// Deprecated: ObjectStorageKeysPagedResponse exists for historical compatibility and should not be used. -type ObjectStorageKeysPagedResponse legacyPagedResponse[ObjectStorageKey] - -// Deprecated: ObjectStorageBucketsPagedResponse exists for historical compatibility and should not be used. -type ObjectStorageBucketsPagedResponse legacyPagedResponse[ObjectStorageBucket] - -// Deprecated: ObjectStorageClustersPagedResponse exists for historical compatibility and should not be used. -type ObjectStorageClustersPagedResponse legacyPagedResponse[ObjectStorageCluster] - -// Deprecated: PaymentsPagedResponse exists for historical compatibility and should not be used. -type PaymentsPagedResponse legacyPagedResponse[Payment] - -// Deprecated: RegionsPagedResponse exists for historical compatibility and should not be used. -type RegionsPagedResponse legacyPagedResponse[Region] - -// Deprecated: SSHKeysPagedResponse exists for historical compatibility and should not be used. -type SSHKeysPagedResponse legacyPagedResponse[SSHKey] - -// Deprecated: TokensPagedResponse exists for historical compatibility and should not be used. -type ( - TokensPagedResponse legacyPagedResponse[Token] - // Deprecated: RegionsAvailabilityPagedResponse exists for historical compatibility and should not be used. - RegionsAvailabilityPagedResponse legacyPagedResponse[RegionAvailability] -) - -// Deprecated: StackscriptsPagedResponse exists for historical compatibility and should not be used. -type StackscriptsPagedResponse legacyPagedResponse[Stackscript] - -// Deprecated: TagsPagedResponse exists for historical compatibility and should not be used. -type TagsPagedResponse legacyPagedResponse[Tag] - -// Deprecated: TaggedObjectsPagedResponse exists for historical compatibility and should not be used. -type TaggedObjectsPagedResponse legacyPagedResponse[TaggedObject] - -// Deprecated: TicketsPagedResponse exists for historical compatibility and should not be used. -type TicketsPagedResponse legacyPagedResponse[Ticket] - -// Deprecated: PostgresDatabasesPagedResponse exists for historical compatibility and should not be used. -type PostgresDatabasesPagedResponse legacyPagedResponse[PostgresDatabase] - -// Deprecated: PostgresDatabaseBackupsPagedResponse exists for historical compatibility and should not be used. -type PostgresDatabaseBackupsPagedResponse legacyPagedResponse[PostgresDatabaseBackup] - -// Deprecated: ProfileLoginsPagedResponse exists for historical compatibility and should not be used. -type ProfileLoginsPagedResponse legacyPagedResponse[ProfileLogin] - -// Deprecated: UsersPagedResponse exists for historical compatibility and should not be used. -type UsersPagedResponse legacyPagedResponse[User] - -// Deprecated: VolumesPagedResponse exists for historical compatibility and should not be used. -type VolumesPagedResponse legacyPagedResponse[Volume] - -// Deprecated: VPCsPagedResponse exists for historical compatibility and should not be used. -type VPCsPagedResponse legacyPagedResponse[VPC] - -// Deprecated: VPCSubnetsPagedResponse exists for historical compatibility and should not be used. -type VPCSubnetsPagedResponse legacyPagedResponse[VPCSubnet] diff --git a/pagination.go b/pagination.go index e8127a58d..e9a8ae49f 100644 --- a/pagination.go +++ b/pagination.go @@ -170,8 +170,3 @@ func queryFieldToString(value reflect.Value) (string, error) { return "", fmt.Errorf("unsupported query param type: %s", value.Type().Name()) } } - -type legacyPagedResponse[T any] struct { - *PageOptions - Data []T `json:"data"` -} diff --git a/postgres.go b/postgres.go index d265be6d5..1489cd146 100644 --- a/postgres.go +++ b/postgres.go @@ -51,15 +51,6 @@ type PostgresDatabase struct { // Members has dynamic keys so it is a map Members map[string]DatabaseMemberType `json:"members"` - // Deprecated: ReplicationCommitType is a deprecated property, as it is no longer supported in DBaaS V2. - ReplicationCommitType PostgresCommitType `json:"replication_commit_type"` - // Deprecated: ReplicationType is a deprecated property, as it is no longer supported in DBaaS V2. - ReplicationType PostgresReplicationType `json:"replication_type"` - // Deprecated: SSLConnection is a deprecated property, as it is no longer supported in DBaaS V2. - SSLConnection bool `json:"ssl_connection"` - // Deprecated: Encrypted is a deprecated property, as it is no longer supported in DBaaS V2. - Encrypted bool `json:"encrypted"` - Hosts DatabaseHost `json:"hosts"` Updates DatabaseMaintenanceWindow `json:"updates"` Created *time.Time `json:"-"` @@ -101,15 +92,6 @@ type PostgresCreateOptions struct { AllowList []string `json:"allow_list,omitempty"` ClusterSize *int `json:"cluster_size,omitempty"` - // Deprecated: Encrypted is a deprecated property, as it is no longer supported in DBaaS V2. - Encrypted *bool `json:"encrypted,omitempty"` - // Deprecated: SSLConnection is a deprecated property, as it is no longer supported in DBaaS V2. - SSLConnection *bool `json:"ssl_connection,omitempty"` - // Deprecated: ReplicationType is a deprecated property, as it is no longer supported in DBaaS V2. - ReplicationType *PostgresReplicationType `json:"replication_type,omitempty"` - // Deprecated: ReplicationCommitType is a deprecated property, as it is no longer supported in DBaaS V2. - ReplicationCommitType *PostgresCommitType `json:"replication_commit_type,omitempty"` - Fork *DatabaseFork `json:"fork,omitempty"` } @@ -139,49 +121,6 @@ func (c *Client) ListPostgresDatabases(ctx context.Context, opts *ListOptions) ( return getPaginatedResults[PostgresDatabase](ctx, c, "databases/postgresql/instances", opts) } -// PostgresDatabaseBackup is information for interacting with a backup for the existing Postgres Database -// Deprecated: PostgresDatabaseBackup is a deprecated struct, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -type PostgresDatabaseBackup struct { - ID int `json:"id"` - Label string `json:"label"` - Type string `json:"type"` - Created *time.Time `json:"-"` -} - -func (d *PostgresDatabaseBackup) UnmarshalJSON(b []byte) error { - type Mask PostgresDatabaseBackup - - p := struct { - *Mask - Created *parseabletime.ParseableTime `json:"created"` - }{ - Mask: (*Mask)(d), - } - - if err := json.Unmarshal(b, &p); err != nil { - return err - } - - d.Created = (*time.Time)(p.Created) - return nil -} - -// PostgresBackupCreateOptions are options used for CreatePostgresDatabaseBackup(...) -// Deprecated: PostgresBackupCreateOptions is a deprecated struct, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -type PostgresBackupCreateOptions struct { - Label string `json:"label"` - Target PostgresDatabaseTarget `json:"target"` -} - -// ListPostgresDatabaseBackups lists all Postgres Database Backups associated with the given Postgres Database -// Deprecated: ListPostgresDatabaseBackups is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) ListPostgresDatabaseBackups(ctx context.Context, databaseID int, opts *ListOptions) ([]PostgresDatabaseBackup, error) { - return getPaginatedResults[PostgresDatabaseBackup](ctx, c, formatAPIPath("databases/postgresql/instances/%d/backups", databaseID), opts) -} - // GetPostgresDatabase returns a single Postgres Database matching the id func (c *Client) GetPostgresDatabase(ctx context.Context, databaseID int) (*PostgresDatabase, error) { e := formatAPIPath("databases/postgresql/instances/%d", databaseID) @@ -228,27 +167,3 @@ func (c *Client) GetPostgresDatabaseSSL(ctx context.Context, databaseID int) (*P e := formatAPIPath("databases/postgresql/instances/%d/ssl", databaseID) return doGETRequest[PostgresDatabaseSSL](ctx, c, e) } - -// GetPostgresDatabaseBackup returns a specific Postgres Database Backup with the given ids -// Deprecated: GetPostgresDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) GetPostgresDatabaseBackup(ctx context.Context, databaseID int, backupID int) (*PostgresDatabaseBackup, error) { - e := formatAPIPath("databases/postgresql/instances/%d/backups/%d", databaseID, backupID) - return doGETRequest[PostgresDatabaseBackup](ctx, c, e) -} - -// RestorePostgresDatabaseBackup returns the given Postgres Database with the given Backup -// Deprecated: RestorePostgresDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) RestorePostgresDatabaseBackup(ctx context.Context, databaseID int, backupID int) error { - e := formatAPIPath("databases/postgresql/instances/%d/backups/%d/restore", databaseID, backupID) - return doPOSTRequestNoRequestResponseBody(ctx, c, e) -} - -// CreatePostgresDatabaseBackup creates a snapshot for the given Postgres database -// Deprecated: CreatePostgresDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (c *Client) CreatePostgresDatabaseBackup(ctx context.Context, databaseID int, opts PostgresBackupCreateOptions) error { - e := formatAPIPath("databases/postgresql/instances/%d/backups", databaseID) - return doPOSTRequestNoResponseBody(ctx, c, e, opts) -} diff --git a/regions.go b/regions.go index 9669ae8a2..d9bc54d34 100644 --- a/regions.go +++ b/regions.go @@ -39,10 +39,6 @@ const ( CapabilityVPCs string = "VPCs" CapabilityVPCsExtra string = "VPCs Extra" CapabilityVlans string = "Vlans" - - // Deprecated: CapabilityObjectStorageRegions constant has been - // renamed to `CapabilityObjectStorageAccessKeyRegions`. - CapabilityObjectStorageRegions string = CapabilityObjectStorageAccessKeyRegions ) // Region-related endpoints have a custom expiry time as the diff --git a/test/integration/account_settings_test.go b/test/integration/account_settings_test.go index 92a604c8e..05fc6bcfb 100644 --- a/test/integration/account_settings_test.go +++ b/test/integration/account_settings_test.go @@ -51,9 +51,8 @@ func TestAccountSettings_Update(t *testing.T) { defer httpmock.DeactivateAndReset() opts := linodego.AccountSettingsUpdateOptions{ - BackupsEnabled: linodego.Pointer(false), - LongviewSubscription: linodego.Pointer("longview-10"), - NetworkHelper: linodego.Pointer(false), + BackupsEnabled: linodego.Pointer(false), + NetworkHelper: linodego.Pointer(false), } mockSettings := linodego.AccountSettings{ diff --git a/test/integration/fixtures/TestAccountEvents_List.yaml b/test/integration/fixtures/TestAccountEvents_List.yaml index 32a0be91f..b26cf3c8e 100644 --- a/test/integration/fixtures/TestAccountEvents_List.yaml +++ b/test/integration/fixtures/TestAccountEvents_List.yaml @@ -17,282 +17,241 @@ interactions: body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group"], "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, - 1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ca-central", - "label": "Toronto, CA", "country": "ca", "capabilities": ["Linodes", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group"], "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"}, "placement_group_limits": - {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": "au", "capabilities": - ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases", "Metadata", "Placement Group"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": - null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-iad", "label": - "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block Storage - Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed - Databases", "Metadata", "Premium Plans", "Placement Group"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": "us", "capabilities": - ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "fr-par", "label": "Paris, FR", "country": "fr", "capabilities": - ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group"], "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"}, "placement_group_limits": - {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": - ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group"], "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"}, "placement_group_limits": - {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": "br", "capabilities": - ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans", "Placement Group"], "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"}, + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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,1234::5678"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": + "ca", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": + "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": + "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": + "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group"], "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"}, + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group"], "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"}, + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": - "es", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", - "VPCs", "Metadata", "Premium Plans", "Placement Group"], "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", + "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group"], "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"}, + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": - "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group"], "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", "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": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "it-mil", "label": "Milan, IT", "country": "it", "capabilities": - ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans", "Placement Group"], "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"}, + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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", + "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": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": + "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group"], "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", "ipv6": "1234::5678, - 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678, - 1234::5678, 1234::5678, 1234::5678"}, + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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", + "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group"], - "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"}, "placement_group_limits": - {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": "us", "capabilities": - ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", - "VPCs", "Metadata", "Premium Plans", "Placement Group"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": - null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "gb-lon", "label": - "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "gb-lon", "label": "London 2, UK", "country": + "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": - "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans", "Placement Group"], "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", + "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": - "in", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Cloud Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", - "Placement Group"], "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", + "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": - "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", - "Metadata", "Premium Plans", "Placement Group"], "status": "ok", "resolvers": - {"ipv4": "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.12", + "de", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud + Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", + "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": + "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud - Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group"], + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": - "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Metadata", - "Premium Plans", "Placement Group"], "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", + "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": - ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": + "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "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": + null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-southeast", + "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Disk Encryption", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases", "Metadata", "Placement Group"], "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": + Databases", "Metadata", "Placement Group", "StackScripts"], "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"}, + "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": + "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement + Group", "StackScripts"], "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,173.255.225.5,66.228.35.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": null, "maximum_linodes_per_pg": + 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": + "gb", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": - "core"}, {"id": "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": + "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block - Storage Migrations", "Managed Databases", "Metadata", "Placement Group"], "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", + Storage Migrations", "Metadata", "Placement Group", "StackScripts"], "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": null, "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", "Placement Group"], "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": null, "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", - "Placement Group"], "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": null, - "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-south", "label": - "Singapore, SG", "country": "sg", "capabilities": ["Linodes", "Backups", "NodeBalancers", + 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": + "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group"], "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": null, "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", "Placement Group"], "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", + Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group"], "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", + "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 31}' @@ -318,7 +277,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 Nov 2024 14:56:10 GMT + - Mon, 10 Mar 2025 19:13:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -337,14 +296,14 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "800" + - "1600" X-Xss-Protection: - 1; mode=block status: 200 OK code: 200 duration: "" - request: - body: '{"region":"ap-west","type":"g6-nanode-1","label":"go-test-ins-bm057s6gwc45","root_pass":"^07IK!9Q/8dXDbadb391O0Ar@f9\u0026xM7NwH@,dWeA''Hx@W203r}h\u003cQr{-50.f#L1#","image":"linode/debian9","firewall_id":1160422,"booted":false}' + body: '{"region":"ap-west","type":"g6-nanode-1","label":"go-test-ins-9h75z35n2rkh","root_pass":"5U\u003c=yL3P;1v;5v9Lu@qn6i.#er8pg((OS]C!ZD{O''93FN1\u003e618@8dg3uFVpLk*2U","image":"linode/debian12","firewall_id":2011541,"booted":false}' form: {} headers: Accept: @@ -356,17 +315,17 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 66787226, "label": "go-test-ins-bm057s6gwc45", "group": "", "status": + body: '{"id": 73345573, "label": "go-test-ins-9h75z35n2rkh", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["172.105.60.170"], "ipv6": "1234::5678/128", - "image": "linode/debian9", "region": "ap-west", "site_type": "core", "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": "c37a9389a8780ce12d745d3f703cbee667a6278e", "has_user_data": - false, "placement_group": null, "disk_encryption": "enabled", "lke_cluster_id": - null, "capabilities": ["SMTP Enabled"]}' + "type": "g6-nanode-1", "ipv4": ["192.46.213.16"], "ipv6": "1234::5678/128", + "image": "linode/debian12", "region": "ap-west", "site_type": "core", "specs": + {"disk": 25600, "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000, "accelerated_devices": + 0}, "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": "21a05967f87315ca592fe56061ec4c6231022fca", + "has_user_data": false, "placement_group": null, "disk_encryption": "enabled", + "lke_cluster_id": null, "capabilities": ["SMTP Enabled"]}' headers: Access-Control-Allow-Credentials: - "true" @@ -389,7 +348,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 Nov 2024 14:56:11 GMT + - Mon, 10 Mar 2025 19:13:47 GMT Pragma: - no-cache Strict-Transport-Security: @@ -407,7 +366,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "5" + - "8" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -423,10 +382,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/66787226/configs + url: https://api.linode.com/v4beta/linode/instances/73345573/configs method: POST response: - body: '{"id": 70105769, "label": "test-config", "helpers": {"updatedb_disabled": + body: '{"id": 76743669, "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", @@ -457,7 +416,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 Nov 2024 14:56:11 GMT + - Mon, 10 Mar 2025 19:13:47 GMT Pragma: - no-cache Strict-Transport-Security: @@ -474,7 +433,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "800" + - "1600" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -491,16 +450,16 @@ interactions: User-Agent: - linodego/dev https://github.com/linode/linodego X-Filter: - - '{"action":"linode_config_create","entity.id":66787226,"entity.type":"linode"}' + - '{"action":"linode_config_create","entity.id":73345573,"entity.type":"linode"}' url: https://api.linode.com/v4beta/account/events?page=1 method: GET response: - body: '{"data": [{"id": 874986920, "created": "2018-01-02T03:04:05", "seen": false, + body: '{"data": [{"id": 976832219, "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": "ErikZilber", - "entity": {"label": "go-test-ins-bm057s6gwc45", "id": 66787226, "type": "linode", - "url": "/v4/linode/instances/66787226"}, "status": "notification", "secondary_entity": - {"id": 70105769, "type": "linode_config", "label": "test-config", "url": "/v4/linode/instances/66787226/configs/70105769"}, + "entity": {"label": "go-test-ins-9h75z35n2rkh", "id": 73345573, "type": "linode", + "url": "/v4/linode/instances/73345573"}, "status": "notification", "secondary_entity": + {"id": 76743669, "type": "linode_config", "label": "test-config", "url": "/v4/linode/instances/73345573/configs/76743669"}, "message": ""}], "page": 1, "pages": 1, "results": 1}' headers: Access-Control-Allow-Credentials: @@ -526,7 +485,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 Nov 2024 14:56:11 GMT + - Mon, 10 Mar 2025 19:13:47 GMT Pragma: - no-cache Strict-Transport-Security: @@ -544,7 +503,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "800" + - "1600" X-Xss-Protection: - 1; mode=block status: 200 OK @@ -560,7 +519,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/66787226 + url: https://api.linode.com/v4beta/linode/instances/73345573 method: DELETE response: body: '{}' @@ -588,7 +547,7 @@ interactions: Content-Type: - application/json Expires: - - Fri, 08 Nov 2024 14:56:13 GMT + - Mon, 10 Mar 2025 19:13:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -605,7 +564,7 @@ interactions: X-Oauth-Scopes: - '*' X-Ratelimit-Limit: - - "800" + - "1600" X-Xss-Protection: - 1; mode=block status: 200 OK diff --git a/test/integration/fixtures/TestObjectStorageBucketCert.yaml b/test/integration/fixtures/TestObjectStorageBucketCert.yaml index 4f2026682..8c8b4ebb8 100644 --- a/test/integration/fixtures/TestObjectStorageBucketCert.yaml +++ b/test/integration/fixtures/TestObjectStorageBucketCert.yaml @@ -14,25 +14,28 @@ interactions: url: https://api.linode.com/v4beta/object-storage/endpoints?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 18, "data": [{"region": "fr-par", "endpoint_type": - "E1", "s3_endpoint": "fr-par-1.linodeobjects.com"}, {"region": "ap-south", "endpoint_type": - "E0", "s3_endpoint": "ap-south-1.linodeobjects.com"}, {"region": "us-sea", "endpoint_type": - "E1", "s3_endpoint": "us-sea-1.linodeobjects.com"}, {"region": "us-east", "endpoint_type": - "E0", "s3_endpoint": "us-east-1.linodeobjects.com"}, {"region": "us-southeast", - "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}, {"region": + body: '{"pages": 1, "page": 1, "results": 21, "data": [{"region": "fr-par", "endpoint_type": + "E1", "s3_endpoint": "fr-par-1.linodeobjects.com"}, {"region": "br-gru", "endpoint_type": + "E1", "s3_endpoint": "br-gru-1.linodeobjects.com"}, {"region": "us-east", "endpoint_type": + "E0", "s3_endpoint": "us-east-1.linodeobjects.com"}, {"region": "nl-ams", "endpoint_type": + "E1", "s3_endpoint": "nl-ams-1.linodeobjects.com"}, {"region": "au-mel", "endpoint_type": + "E2", "s3_endpoint": "au-mel-1.linodeobjects.com"}, {"region": "it-mil", "endpoint_type": + "E1", "s3_endpoint": "it-mil-1.linodeobjects.com"}, {"region": "ap-south", "endpoint_type": + "E0", "s3_endpoint": "ap-south-1.linodeobjects.com"}, {"region": "us-ord", "endpoint_type": + "E1", "s3_endpoint": "us-ord-1.linodeobjects.com"}, {"region": "se-sto", "endpoint_type": + "E1", "s3_endpoint": "se-sto-1.linodeobjects.com"}, {"region": "in-maa", "endpoint_type": + "E1", "s3_endpoint": "in-maa-1.linodeobjects.com"}, {"region": "us-mia", "endpoint_type": + "E1", "s3_endpoint": "us-mia-1.linodeobjects.com"}, {"region": "id-cgk", "endpoint_type": + "E1", "s3_endpoint": "id-cgk-1.linodeobjects.com"}, {"region": "eu-central", + "endpoint_type": "E0", "s3_endpoint": "eu-central-1.linodeobjects.com"}, {"region": "jp-osa", "endpoint_type": "E1", "s3_endpoint": "jp-osa-1.linodeobjects.com"}, - {"region": "br-gru", "endpoint_type": "E1", "s3_endpoint": "br-gru-1.linodeobjects.com"}, - {"region": "us-ord", "endpoint_type": "E1", "s3_endpoint": "us-ord-1.linodeobjects.com"}, + {"region": "gb-lon", "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}, + {"region": "sg-sin-2", "endpoint_type": "E2", "s3_endpoint": "sg-sin-1.linodeobjects.com"}, + {"region": "us-southeast", "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}, + {"region": "es-mad", "endpoint_type": "E1", "s3_endpoint": "es-mad-1.linodeobjects.com"}, {"region": "us-iad", "endpoint_type": "E1", "s3_endpoint": "us-iad-1.linodeobjects.com"}, - {"region": "se-sto", "endpoint_type": "E1", "s3_endpoint": "se-sto-1.linodeobjects.com"}, - {"region": "it-mil", "endpoint_type": "E1", "s3_endpoint": "it-mil-1.linodeobjects.com"}, {"region": "us-lax", "endpoint_type": "E1", "s3_endpoint": "us-lax-1.linodeobjects.com"}, - {"region": "nl-ams", "endpoint_type": "E1", "s3_endpoint": "nl-ams-1.linodeobjects.com"}, - {"region": "us-mia", "endpoint_type": "E1", "s3_endpoint": "us-mia-1.linodeobjects.com"}, - {"region": "eu-central", "endpoint_type": "E0", "s3_endpoint": "eu-central-1.linodeobjects.com"}, - {"region": "in-maa", "endpoint_type": "E1", "s3_endpoint": "in-maa-1.linodeobjects.com"}, - {"region": "es-mad", "endpoint_type": "E1", "s3_endpoint": "es-mad-1.linodeobjects.com"}, - {"region": "id-cgk", "endpoint_type": "E1", "s3_endpoint": "id-cgk-1.linodeobjects.com"}]}' + {"region": "us-sea", "endpoint_type": "E1", "s3_endpoint": "us-sea-1.linodeobjects.com"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -55,7 +58,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:13:19 GMT + - Mon, 10 Mar 2025 19:38:00 GMT Pragma: - no-cache Strict-Transport-Security: @@ -121,7 +124,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:13:22 GMT + - Mon, 10 Mar 2025 19:38:09 GMT Pragma: - no-cache Strict-Transport-Security: @@ -184,7 +187,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:13:24 GMT + - Mon, 10 Mar 2025 19:38:11 GMT Pragma: - no-cache Strict-Transport-Security: @@ -207,192 +210,6 @@ interactions: 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 - url: https://api.linode.com/v4beta/object-storage/buckets/fr-par/linode-obj-bucket-cert-test.xyz/ssl - method: DELETE - response: - body: '{}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "2" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 07:13:26 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"certificate":"-----BEGIN CERTIFICATE-----\nMIIF3DCCA8QCCQC0dUFu1HvjazANBgkqhkiG9w0BAQsFADCBrzELMAkGA1UEBhMC\nVVMxCzAJBgNVBAgMAlBBMRUwEwYDVQQHDAxQaGlsYWRlbHBoaWExDzANBgNVBAoM\nBkxpbm9kZTELMAkGA1UECwwCRFgxKDAmBgNVBAMMH2xpbm9kZS1vYmotYnVja2V0\nLWNlcnQtdGVzdC54eXoxNDAyBgkqhkiG9w0BCQEWJWFkbWluQGxpbm9kZS1vYmot\nYnVja2V0LWNlcnQtdGVzdC54eXowHhcNMjAxMDA1MTg0MDUyWhcNMjExMDA1MTg0\nMDUyWjCBrzELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAlBBMRUwEwYDVQQHDAxQaGls\nYWRlbHBoaWExDzANBgNVBAoMBkxpbm9kZTELMAkGA1UECwwCRFgxKDAmBgNVBAMM\nH2xpbm9kZS1vYmotYnVja2V0LWNlcnQtdGVzdC54eXoxNDAyBgkqhkiG9w0BCQEW\nJWFkbWluQGxpbm9kZS1vYmotYnVja2V0LWNlcnQtdGVzdC54eXowggIiMA0GCSqG\nSIb3DQEBAQUAA4ICDwAwggIKAoICAQCy4LqfRYXE314e6YkpR1BbKPH8ohO4lcMt\n+YzMUNlOC1KUktGjX8pWk4wAXYar7Mxccmbbh68pgE8iSio8V97CdQb8O64OQmre\n/y33z7Yts37/6mH5mBnfeiilVHOenQmh+4400tvF1jljU8MZSg6sLM4ZEBhfcT0V\n3yqxAwwzV8vk0t7uLRCMuDI5B4h4ZCsheCkA2roF4RGUG6KwGzf+dLSKzBcjy5ho\nh4huzp5jDYer7S86dV6/9Gwzh8CPhVaixbymHGoMbJM8lUtc/hFI+J8WVh/qLTKQ\nCcqvoZ96QU0LX2ib+ElvCMGl/UrznpHZUrGkLPfnnoxK/vKBNycJsENtWno9KgtN\nfsdmYy/blxNRW/qpi+l92f3zbjjpRqJ/oyA+hsSMn19O/v3O4wz+YS55xnVeEPIf\nfOq6VJ9BfVdXPPRp33sllM8EVWuS4ry3oJKI1CFTlhV7eU1RpJmbc5X8GhytiD2M\ngIrVlYzJTftSHw7J3v0orRD6SxI9enXI4o4pS1MMxRNb+ZQDvwx3ZujxjFXe3+qI\nkme3ih+Vl9W9rDeKAd95ciII9CxBqOvsso8zqDAEV25fn3tutk/7hQNMqv0APAah\nLo/eY1NK9i9YVJknVSzWBkE2MUyvpfFhiw6TPYh88qH+wN3CznWaCtXiAjH3kbOk\n6y2OmI8+4QIDAQABMA0GCSqGSIb3DQEBCwUAA4ICAQCP2UawP8GDWxyMOsHDPqKp\nPtedCxPpEPsQm8KMnt5KJ55NFqTcpARz1miHXT1aBedu9IoqxvTP4g8BQ4QFjP2s\nddNu2WKqnwyzkCtnB2zOrOKlvUtRAZ4x2iyhKNqls6D7I4tw22HMbTzW2TVeuGVa\noiRtawFcUsjSAcarRw6swLTln+BK54dWa9E5hiulBoHLosMWCEyUDrUnaiB+2+7C\nbsExYZTXRlii7YPSr46zPmte2iKa1+b0g5DXkzSazWp+R/dlGYp84uLWk71e4b/9\nSo1pIitPasCJHgO/ii9nIcmDXarkaGT5CEUP8WPp6mLY5W9NxgF2czdz6AMJa3P9\n2jNd4J1VFl8k+LDZ4GnwHGhyL3h3lFUmmoQV/0YVoXmA59SxE2JPvc2d1V6xh2gz\nyg2M+xcKliSXxshhAopsSSoEp5g3II2mCvzeSxwsXa4Ob5c5TJNdXslm1pugRCbB\ntjFNh70wZmCq+jY8C+vGsDwkf/5UeAd+c+14s3bwsBfWqZBGokVxyf/UWHtsWlVn\np3USWBwLxEWyQIioMmj4O6wROZeyePDlFDVky4hzTCrTS6EFIqkGBs5RneCHhTN0\ngNHFG8Ixql6mybJAwopvWGEL+7E4pbNdbhmgVvf2YEQuMZBCM7fGdBsRNkTs6jIA\n/8soO6buQgQoCq3GFbodZA==\n-----END - CERTIFICATE-----\n","private_key":"-----BEGIN PRIVATE KEY-----\nMIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQCy4LqfRYXE314e\n6YkpR1BbKPH8ohO4lcMt+YzMUNlOC1KUktGjX8pWk4wAXYar7Mxccmbbh68pgE8i\nSio8V97CdQb8O64OQmre/y33z7Yts37/6mH5mBnfeiilVHOenQmh+4400tvF1jlj\nU8MZSg6sLM4ZEBhfcT0V3yqxAwwzV8vk0t7uLRCMuDI5B4h4ZCsheCkA2roF4RGU\nG6KwGzf+dLSKzBcjy5hoh4huzp5jDYer7S86dV6/9Gwzh8CPhVaixbymHGoMbJM8\nlUtc/hFI+J8WVh/qLTKQCcqvoZ96QU0LX2ib+ElvCMGl/UrznpHZUrGkLPfnnoxK\n/vKBNycJsENtWno9KgtNfsdmYy/blxNRW/qpi+l92f3zbjjpRqJ/oyA+hsSMn19O\n/v3O4wz+YS55xnVeEPIffOq6VJ9BfVdXPPRp33sllM8EVWuS4ry3oJKI1CFTlhV7\neU1RpJmbc5X8GhytiD2MgIrVlYzJTftSHw7J3v0orRD6SxI9enXI4o4pS1MMxRNb\n+ZQDvwx3ZujxjFXe3+qIkme3ih+Vl9W9rDeKAd95ciII9CxBqOvsso8zqDAEV25f\nn3tutk/7hQNMqv0APAahLo/eY1NK9i9YVJknVSzWBkE2MUyvpfFhiw6TPYh88qH+\nwN3CznWaCtXiAjH3kbOk6y2OmI8+4QIDAQABAoICAElFboxhMPtEt8wXwzxqXssI\niZ7/UO6yQeHqL7ddgrXKQ4hiX4b5bOtrwtQ/ezOfatKPdfyEpsZsLX4RPR28rJ2g\nzDyzwYdLw3UWt+Cjb69msCXp/zn7CNYWtuGKJ1YYY2K7pTOUD7wJFTbPj8IjKMF0\nFPQFOMaXnvr/kAA0DGJXm0he7DxJr1bE+KWNpWQTO+uYycr0zXAtEkNF0q0qaRRM\n/8s+8FeURRjEM6mX7x8J4sIVBNyASVB9sXimKcVgS+2e67hrOTFfpCwTx2wPEkt+\ns8O1gZst6mE/8Ythu+6bIxD+gt4opQPbZV810ubZ1Epd6jAiz2VL95Gcvv8Y9V7+\nEGfqeeiHqQkIkhSNO6Aqui/QBHEIuXlDvh6/Q23ln/AeniHFktYASK2WtbtzXON5\n3yL0d8S5ndCLYMch1uv1V+JQ67Y5JJYTAh+fev7uyZy7qLGnAjUoRnwRofwgig6a\nlKOf9aMlLJnIJSHlyzqni5wnVdO1y/RGMsE/BdJ15+F9LGYm/sy56VPsjU9rELIa\n9UGLAWNiEZQDQLgApZl8rawXVlANwW/iesxgAh4eZlaFXvaGtK72KcETBfn+jt8m\n2/LUbh4BL2O4F2OJ2F8+DET6JGDrNDBkcsSxYmtgtRpJjrV76MvjSli8uRAlaEd7\nR3n3ztdOEX25VeFExsdFAoIBAQDhFInwMNTY+phF57o/R6FNyLHQGkNz2w4pYXkR\nA6C4wgBDfwk/S/Sub16w4H6sr0C7MDw7t2cpmMhe+BG4V4a5sX+AjSSdMFBS/pgI\nuFgeJGBG1evyvp+8SycH7oojf106UH6gERpHmW0WMDf1r8Nueriw9DOKKqL1sJtx\nw/Diq2/8z2m5ESxL6SrEzagHmjliaNwBpwUlh5P2EMQzNTljE1fnEKl2E6LW35o0\nx4zoi3y57HtKcLNtD/GsvRYU8zjHDkDq2tUXwzxCVWmiTs3+NQVTEscJAgAahvbu\nJZ7hEXzmCR6sjoQIWCHc9Wusf/zt2XNiXYIKUJAQxv9sOgabAoIBAQDLc2Cxlz36\n3KcOGkfpWl9cGmS0t8FCOvOVV++7eNiWv0kKVdbwqqJYExmX4jmv2E1LfQ4G1vAh\nGtG7YN0rEzwLWiqd/frNLgMya7lYuCpWzxCNDoHIAtBvjPhyHRFFhLayxSsxRZLT\nPnKo2u9NjhPpm7RD+4b9uy++61jkDXK//ezI47oJWxCOxfyzaeejV8Iu9jHwKJ1o\nNpebAdPnlXU3itxaXvJIZiguHtNioTs1E6Ik433AC3Tb57Xy57lGXnOORm5Ximel\naJsB9dsh9rKsNScp+9VSD0ef7Cr8oZH0gOI+pmNnnXt+cOxH9Du4lvBql59QR9FY\nMbbigpvtJ6ozAoIBAG588ZV5sxJsOVGfhhrII9OWIEtCiTgXISWJFrAWctAfU5fO\nhZCPzaXPP9Fd8nD8eq8o53h8+GQ//qQ37CLsvFLtYeSN5JpQ/C0xkxo8u+zX+Hbt\nTizUDH+W+Kr5GtCAFhipKO+UVa0uEJGiy+WMCUhzb7RVu/MoKOSodDXtdJMgixG0\nE3boijEdXYRMXB6XQ3IefVlGTs10d1qEMnvctbX/6degoz82Nmp6Sy17g50n0+tE\nveT12+4+tGkSTQOtvYJhadaf45kNmsgJO5iUTKRsDJgSEKhIVhqvhAm1Z/+d4Qzf\nDzKvpvqdoMnho6CDF3r+kpiHxG0hzQafWQUcmt8CggEARD1461hNY71rEyHhiPXV\nEnGP4cXYvrxDQ45xTLJmA3o5p4vPQn4ZYe1WIkmxC7hDhNR3RfgGJzR1sKH2zSHw\ne+ZMcR3lZ7jNPbZAPu/W07M0W/vHsCyxeRkRpET3rBetqBzWNfqeGtjRYK2+oobL\nSwn81uihCK4mf6U09ZlFKfyj1WX82nJ/BUSHVC5rkbA348SUT3dwBKp7A3UDfKP2\n4yBidLVwErShOYcBZA2sbEsfkbv0S9wL4E7CCq2KyX2YyNn63MYBqcuCYo/yZlv2\n5igV8NEVZibV4WA3svEGoboxKM5qfTCnYWvC9QeImIuYLEibGTRdlXVnYGZqoosx\nXQKCAQEAmEbm8o37QaSMWYu/hixusHWprPRpEcz8qMmpenCTUeE7xgKeJupSx/2u\ns5WSGJy7U6jlmocMOsZ3/nPWNG219uWMUWz2REKi99KOHU7dT8N0OPigNzDBJFKe\nuJpHU2wWkg9CJtkDlQt+4/JP3gzskwpooRvUaEbsQkM0G/A1SMVSyYPuzBui3+E7\nHMuBpZsWkNKLh0hjC5i7YBZYtXGYPG2JCEE4mpiV8ClxTvmijsr8sYUOtnmIBXfG\n0fcsLA4W7xYCUqr74LA1dMQd6f8T00mZycR5eh0wXJ68i5QEotBTGS8ibTilUJbx\n7aJXvW2Q3oCt1sF576QNr9rLxhHl8A==\n-----END - PRIVATE KEY-----\n"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/fr-par/linode-obj-bucket-cert-test.xyz/ssl - method: POST - response: - body: '{"ssl": true}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "13" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 07:13:29 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/fr-par/linode-obj-bucket-cert-test.xyz/ssl - method: GET - response: - body: '{"ssl": true}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "13" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 07:13:31 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" - request: body: "" form: {} @@ -431,7 +248,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:13:33 GMT + - Mon, 10 Mar 2025 19:38:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -493,7 +310,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:13:34 GMT + - Mon, 10 Mar 2025 19:38:17 GMT Pragma: - no-cache Strict-Transport-Security: @@ -554,7 +371,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:13:38 GMT + - Mon, 10 Mar 2025 19:38:20 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageBucket_Access_Get.yaml b/test/integration/fixtures/TestObjectStorageBucket_Access_Get.yaml index 074365933..e859287ab 100644 --- a/test/integration/fixtures/TestObjectStorageBucket_Access_Get.yaml +++ b/test/integration/fixtures/TestObjectStorageBucket_Access_Get.yaml @@ -14,25 +14,28 @@ interactions: url: https://api.linode.com/v4beta/object-storage/endpoints?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 18, "data": [{"region": "us-iad", "endpoint_type": - "E1", "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"region": "in-maa", "endpoint_type": - "E1", "s3_endpoint": "in-maa-1.linodeobjects.com"}, {"region": "us-east", "endpoint_type": - "E0", "s3_endpoint": "us-east-1.linodeobjects.com"}, {"region": "eu-central", - "endpoint_type": "E0", "s3_endpoint": "eu-central-1.linodeobjects.com"}, {"region": - "us-mia", "endpoint_type": "E1", "s3_endpoint": "us-mia-1.linodeobjects.com"}, - {"region": "br-gru", "endpoint_type": "E1", "s3_endpoint": "br-gru-1.linodeobjects.com"}, - {"region": "fr-par", "endpoint_type": "E1", "s3_endpoint": "fr-par-1.linodeobjects.com"}, - {"region": "nl-ams", "endpoint_type": "E1", "s3_endpoint": "nl-ams-1.linodeobjects.com"}, - {"region": "se-sto", "endpoint_type": "E1", "s3_endpoint": "se-sto-1.linodeobjects.com"}, - {"region": "us-sea", "endpoint_type": "E1", "s3_endpoint": "us-sea-1.linodeobjects.com"}, + body: '{"pages": 1, "page": 1, "results": 21, "data": [{"region": "es-mad", "endpoint_type": + "E1", "s3_endpoint": "es-mad-1.linodeobjects.com"}, {"region": "gb-lon", "endpoint_type": + "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}, {"region": "us-sea", "endpoint_type": + "E1", "s3_endpoint": "us-sea-1.linodeobjects.com"}, {"region": "nl-ams", "endpoint_type": + "E1", "s3_endpoint": "nl-ams-1.linodeobjects.com"}, {"region": "id-cgk", "endpoint_type": + "E1", "s3_endpoint": "id-cgk-1.linodeobjects.com"}, {"region": "ap-south", "endpoint_type": + "E0", "s3_endpoint": "ap-south-1.linodeobjects.com"}, {"region": "us-iad", "endpoint_type": + "E1", "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"region": "se-sto", "endpoint_type": + "E1", "s3_endpoint": "se-sto-1.linodeobjects.com"}, {"region": "sg-sin-2", "endpoint_type": + "E2", "s3_endpoint": "sg-sin-1.linodeobjects.com"}, {"region": "it-mil", "endpoint_type": + "E1", "s3_endpoint": "it-mil-1.linodeobjects.com"}, {"region": "us-southeast", + "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}, {"region": + "in-maa", "endpoint_type": "E1", "s3_endpoint": "in-maa-1.linodeobjects.com"}, {"region": "jp-osa", "endpoint_type": "E1", "s3_endpoint": "jp-osa-1.linodeobjects.com"}, - {"region": "ap-south", "endpoint_type": "E0", "s3_endpoint": "ap-south-1.linodeobjects.com"}, + {"region": "us-east", "endpoint_type": "E0", "s3_endpoint": "us-east-1.linodeobjects.com"}, {"region": "us-ord", "endpoint_type": "E1", "s3_endpoint": "us-ord-1.linodeobjects.com"}, - {"region": "id-cgk", "endpoint_type": "E1", "s3_endpoint": "id-cgk-1.linodeobjects.com"}, + {"region": "au-mel", "endpoint_type": "E2", "s3_endpoint": "au-mel-1.linodeobjects.com"}, + {"region": "fr-par", "endpoint_type": "E1", "s3_endpoint": "fr-par-1.linodeobjects.com"}, + {"region": "br-gru", "endpoint_type": "E1", "s3_endpoint": "br-gru-1.linodeobjects.com"}, {"region": "us-lax", "endpoint_type": "E1", "s3_endpoint": "us-lax-1.linodeobjects.com"}, - {"region": "es-mad", "endpoint_type": "E1", "s3_endpoint": "es-mad-1.linodeobjects.com"}, - {"region": "it-mil", "endpoint_type": "E1", "s3_endpoint": "it-mil-1.linodeobjects.com"}, - {"region": "us-southeast", "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}]}' + {"region": "us-mia", "endpoint_type": "E1", "s3_endpoint": "us-mia-1.linodeobjects.com"}, + {"region": "eu-central", "endpoint_type": "E0", "s3_endpoint": "eu-central-1.linodeobjects.com"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -55,7 +58,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:40:53 GMT + - Mon, 10 Mar 2025 19:39:18 GMT Pragma: - no-cache Strict-Transport-Security: @@ -81,7 +84,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"us-iad","label":"go-bucket-test-def","endpoint_type":"E1","acl":"authenticated-read","cors_enabled":false}' + body: '{"region":"es-mad","label":"go-bucket-test-def","endpoint_type":"E1","acl":"authenticated-read","cors_enabled":false}' form: {} headers: Accept: @@ -93,10 +96,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-bucket-test-def.us-iad-1.linodeobjects.com", "label": - "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-iad", - "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", "s3_endpoint": - "us-iad-1.linodeobjects.com"}' + body: '{"hostname": "go-bucket-test-def.es-mad-1.linodeobjects.com", "label": + "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "es-mad", + "cluster": "es-mad-1", "size": 0, "objects": 0, "endpoint_type": "E1", "s3_endpoint": + "es-mad-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -121,7 +124,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:40:55 GMT + - Mon, 10 Mar 2025 19:39:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -154,77 +157,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-iad/go-bucket-test-def/access - method: GET - response: - body: '{"acl": "authenticated-read", "acl_xml": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936http://acs.amazonaws.com/groups/global/AuthenticatedUsersREADc9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936FULL_CONTROL", - "cors_enabled": false, "cors_xml": null}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "808" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 07:40:57 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/us-iad/go-bucket-test-def/access + url: https://api.linode.com/v4beta/object-storage/buckets/es-mad/go-bucket-test-def/access method: GET response: - body: '{"acl": "authenticated-read", "acl_xml": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89ehttp://acs.amazonaws.com/groups/global/AuthenticatedUsersREADc9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936FULL_CONTROL", + xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\">640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89eFULL_CONTROL", "cors_enabled": false, "cors_xml": null}' headers: Access-Control-Allow-Credentials: @@ -250,7 +188,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:40:58 GMT + - Mon, 10 Mar 2025 19:39:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -284,7 +222,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-iad-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/es-mad/go-bucket-test-def method: DELETE response: body: '{}' @@ -312,7 +250,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:41:08 GMT + - Mon, 10 Mar 2025 19:39:33 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageBucket_Access_Update.yaml b/test/integration/fixtures/TestObjectStorageBucket_Access_Update.yaml index f16513000..b18680b5c 100644 --- a/test/integration/fixtures/TestObjectStorageBucket_Access_Update.yaml +++ b/test/integration/fixtures/TestObjectStorageBucket_Access_Update.yaml @@ -14,25 +14,28 @@ interactions: url: https://api.linode.com/v4beta/object-storage/endpoints?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 18, "data": [{"region": "us-lax", "endpoint_type": - "E1", "s3_endpoint": "us-lax-1.linodeobjects.com"}, {"region": "us-southeast", - "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}, {"region": - "in-maa", "endpoint_type": "E1", "s3_endpoint": "in-maa-1.linodeobjects.com"}, - {"region": "jp-osa", "endpoint_type": "E1", "s3_endpoint": "jp-osa-1.linodeobjects.com"}, - {"region": "nl-ams", "endpoint_type": "E1", "s3_endpoint": "nl-ams-1.linodeobjects.com"}, + body: '{"pages": 1, "page": 1, "results": 21, "data": [{"region": "nl-ams", "endpoint_type": + "E1", "s3_endpoint": "nl-ams-1.linodeobjects.com"}, {"region": "eu-central", + "endpoint_type": "E0", "s3_endpoint": "eu-central-1.linodeobjects.com"}, {"region": + "us-east", "endpoint_type": "E0", "s3_endpoint": "us-east-1.linodeobjects.com"}, + {"region": "us-iad", "endpoint_type": "E1", "s3_endpoint": "us-iad-1.linodeobjects.com"}, + {"region": "us-sea", "endpoint_type": "E1", "s3_endpoint": "us-sea-1.linodeobjects.com"}, + {"region": "us-lax", "endpoint_type": "E1", "s3_endpoint": "us-lax-1.linodeobjects.com"}, + {"region": "us-southeast", "endpoint_type": "E0", "s3_endpoint": "us-southeast-1.linodeobjects.com"}, {"region": "it-mil", "endpoint_type": "E1", "s3_endpoint": "it-mil-1.linodeobjects.com"}, - {"region": "fr-par", "endpoint_type": "E1", "s3_endpoint": "fr-par-1.linodeobjects.com"}, + {"region": "jp-osa", "endpoint_type": "E1", "s3_endpoint": "jp-osa-1.linodeobjects.com"}, + {"region": "se-sto", "endpoint_type": "E1", "s3_endpoint": "se-sto-1.linodeobjects.com"}, + {"region": "in-maa", "endpoint_type": "E1", "s3_endpoint": "in-maa-1.linodeobjects.com"}, + {"region": "es-mad", "endpoint_type": "E1", "s3_endpoint": "es-mad-1.linodeobjects.com"}, + {"region": "au-mel", "endpoint_type": "E2", "s3_endpoint": "au-mel-1.linodeobjects.com"}, + {"region": "gb-lon", "endpoint_type": "E3", "s3_endpoint": "gb-lon-1.linodeobjects.com"}, {"region": "us-ord", "endpoint_type": "E1", "s3_endpoint": "us-ord-1.linodeobjects.com"}, - {"region": "us-iad", "endpoint_type": "E1", "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"region": "br-gru", "endpoint_type": "E1", "s3_endpoint": "br-gru-1.linodeobjects.com"}, {"region": "ap-south", "endpoint_type": "E0", "s3_endpoint": "ap-south-1.linodeobjects.com"}, - {"region": "es-mad", "endpoint_type": "E1", "s3_endpoint": "es-mad-1.linodeobjects.com"}, - {"region": "eu-central", "endpoint_type": "E0", "s3_endpoint": "eu-central-1.linodeobjects.com"}, - {"region": "se-sto", "endpoint_type": "E1", "s3_endpoint": "se-sto-1.linodeobjects.com"}, - {"region": "us-east", "endpoint_type": "E0", "s3_endpoint": "us-east-1.linodeobjects.com"}, {"region": "us-mia", "endpoint_type": "E1", "s3_endpoint": "us-mia-1.linodeobjects.com"}, - {"region": "id-cgk", "endpoint_type": "E1", "s3_endpoint": "id-cgk-1.linodeobjects.com"}, - {"region": "us-sea", "endpoint_type": "E1", "s3_endpoint": "us-sea-1.linodeobjects.com"}]}' + {"region": "fr-par", "endpoint_type": "E1", "s3_endpoint": "fr-par-1.linodeobjects.com"}, + {"region": "sg-sin-2", "endpoint_type": "E2", "s3_endpoint": "sg-sin-1.linodeobjects.com"}, + {"region": "id-cgk", "endpoint_type": "E1", "s3_endpoint": "id-cgk-1.linodeobjects.com"}]}' headers: Access-Control-Allow-Credentials: - "true" @@ -55,7 +58,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:41 GMT + - Mon, 10 Mar 2025 19:39:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -81,7 +84,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"us-lax","label":"go-bucket-test-def","endpoint_type":"E1"}' + body: '{"region":"nl-ams","label":"go-bucket-test-def","endpoint_type":"E1"}' form: {} headers: Accept: @@ -93,10 +96,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-bucket-test-def.us-lax-1.linodeobjects.com", "label": - "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-lax", - "cluster": "us-lax-1", "size": 0, "objects": 0, "endpoint_type": "E1", "s3_endpoint": - "us-lax-1.linodeobjects.com"}' + body: '{"hostname": "go-bucket-test-def.nl-ams-1.linodeobjects.com", "label": + "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "nl-ams", + "cluster": "nl-ams-1", "size": 0, "objects": 0, "endpoint_type": "E1", "s3_endpoint": + "nl-ams-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -121,7 +124,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:42 GMT + - Mon, 10 Mar 2025 19:39:44 GMT Pragma: - no-cache Strict-Transport-Security: @@ -154,7 +157,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-lax/go-bucket-test-def/access + url: https://api.linode.com/v4beta/object-storage/buckets/nl-ams/go-bucket-test-def/access method: POST response: body: '{}' @@ -182,7 +185,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:43 GMT + - Mon, 10 Mar 2025 19:39:49 GMT Pragma: - no-cache Strict-Transport-Security: @@ -215,11 +218,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-lax/go-bucket-test-def/access + url: https://api.linode.com/v4beta/object-storage/buckets/nl-ams/go-bucket-test-def/access method: GET response: - body: '{"acl": "private", "acl_xml": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936FULL_CONTROL", + body: '{"acl": "private", "acl_xml": "640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89eFULL_CONTROL", "cors_enabled": false, "cors_xml": null}' headers: Access-Control-Allow-Credentials: @@ -245,7 +248,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:45 GMT + - Mon, 10 Mar 2025 19:39:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -279,7 +282,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-lax-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/nl-ams/go-bucket-test-def method: DELETE response: body: '{}' @@ -307,7 +310,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:48 GMT + - Mon, 10 Mar 2025 19:39:56 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageBucket_Create.yaml b/test/integration/fixtures/TestObjectStorageBucket_Create.yaml index 2a4753831..eec1aea4a 100644 --- a/test/integration/fixtures/TestObjectStorageBucket_Create.yaml +++ b/test/integration/fixtures/TestObjectStorageBucket_Create.yaml @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:02:49 GMT + - Mon, 10 Mar 2025 19:38:27 GMT Pragma: - no-cache Strict-Transport-Security: @@ -75,7 +75,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def method: DELETE response: body: '{}' @@ -103,7 +103,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:02:53 GMT + - Mon, 10 Mar 2025 19:38:36 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageBucket_GetFound.yaml b/test/integration/fixtures/TestObjectStorageBucket_GetFound.yaml index eb8fb4b5c..df51e8a08 100644 --- a/test/integration/fixtures/TestObjectStorageBucket_GetFound.yaml +++ b/test/integration/fixtures/TestObjectStorageBucket_GetFound.yaml @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:13 GMT + - Mon, 10 Mar 2025 19:38:50 GMT Pragma: - no-cache Strict-Transport-Security: @@ -75,7 +75,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def method: GET response: body: '{"hostname": "go-bucket-test-def.us-east-1.linodeobjects.com", "label": @@ -106,7 +106,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:14 GMT + - Mon, 10 Mar 2025 19:38:52 GMT Pragma: - no-cache Strict-Transport-Security: @@ -140,7 +140,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def method: DELETE response: body: '{}' @@ -168,7 +168,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:17 GMT + - Mon, 10 Mar 2025 19:38:59 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageBucket_GetMissing.yaml b/test/integration/fixtures/TestObjectStorageBucket_GetMissing.yaml index b5864d11b..37c6f719f 100644 --- a/test/integration/fixtures/TestObjectStorageBucket_GetMissing.yaml +++ b/test/integration/fixtures/TestObjectStorageBucket_GetMissing.yaml @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:07 GMT + - Mon, 10 Mar 2025 19:38:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -97,7 +97,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:07 GMT + - Mon, 10 Mar 2025 19:38:39 GMT Pragma: - no-cache Vary: @@ -123,7 +123,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def method: DELETE response: body: '{}' @@ -151,7 +151,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:11 GMT + - Mon, 10 Mar 2025 19:38:48 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageBucket_Regional.yaml b/test/integration/fixtures/TestObjectStorageBucket_Regional.yaml deleted file mode 100644 index 55aaf10c0..000000000 --- a/test/integration/fixtures/TestObjectStorageBucket_Regional.yaml +++ /dev/null @@ -1,539 +0,0 @@ ---- -version: 1 -interactions: -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/regions?page=1 - method: GET - response: - body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": - ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", - "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "ca-central", "label": "Toronto, CA", "country": - "ca", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "ap-southeast", "label": "Sydney, AU", "country": - "au", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": - "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": - "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": - "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": - "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": - "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": - "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": - "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": - "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": - "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": - "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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", - "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": - "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": - "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "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", - "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": - "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": - "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "nz-akl-1", "label": "Auckland, NZ", "country": - "nz", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", "Distributed - Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "us-den-1", - "label": "Denver, CO", "country": "us", "capabilities": ["Linodes", "Cloud Firewall", - "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": - "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "de-ham-1", "label": "Hamburg, DE", - "country": "de", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", - "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "fr-mrs-1", - "label": "Marseille, FR", "country": "fr", "capabilities": ["Linodes", "Cloud - Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": - {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "za-jnb-1", "label": "Johannesburg, - ZA", "country": "za", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", - "Metadata", "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "my-kul-1", - "label": "Kuala Lumpur, MY", "country": "my", "capabilities": ["Linodes", "Cloud - Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": - {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "co-bog-1", "label": "Bogot\u00e1, CO", - "country": "co", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", - "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "mx-qro-1", - "label": "Quer\u00e9taro, MX", "country": "mx", "capabilities": ["Linodes", - "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "us-hou-1", "label": "Houston, TX", - "country": "us", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", - "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "cl-scl-1", - "label": "Santiago, CL", "country": "cl", "capabilities": ["Linodes", "Cloud - Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": - {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "gb-lon", "label": "London 2, UK", "country": - "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": - "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": - "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Cloud Firewall", - "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], - "status": "ok", "resolvers": {"ipv4": "172.236.171.41,172.236.171.42,172.236.171.25,172.236.171.44,172.236.171.26,172.236.171.45,172.236.171.24,172.236.171.43,172.236.171.27,172.236.171.28", - "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "de-fra-2", "label": "Frankfurt 2, DE", "country": - "de", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud - Firewall", "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", - "StackScripts", "NETINT Quadra T1U"], "status": "ok", "resolvers": {"ipv4": - "172.236.203.9,172.236.203.16,172.236.203.19,172.236.203.15,172.236.203.17,172.236.203.11,172.236.203.18,172.236.203.14,172.236.203.13,172.236.203.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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": - "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud - Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", - "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", - "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": - "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], - "status": "ok", "resolvers": {"ipv4": "172.237.4.15,172.237.4.19,172.237.4.17,172.237.4.21,172.237.4.16,172.237.4.18,172.237.4.23,172.237.4.24,172.237.4.20,172.237.4.14", - "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-central", "label": "Dallas, TX", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-west", "label": "Fremont, CA", "country": - "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts"], "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": - null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-southeast", - "label": "Atlanta, GA", "country": "us", "capabilities": ["Linodes", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed - Databases", "Metadata", "Placement Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "us-east", "label": "Newark, NJ", "country": - "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts"], "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": - null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "eu-west", - "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts"], - "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": - "sg", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts"], - "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": - "de", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts"], "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"}, - "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "ap-northeast", "label": "Tokyo 2, JP", "country": - "jp", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases", "Metadata", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 41}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:02:53 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: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"region":"us-iad","label":"go-bucket-test-def"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST - response: - body: '{"hostname": "go-bucket-test-def.us-iad-1.linodeobjects.com", "label": - "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-iad", - "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", "s3_endpoint": - "us-iad-1.linodeobjects.com"}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "262" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:02:55 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/us-iad/go-bucket-test-def - method: GET - response: - body: '{"hostname": "go-bucket-test-def.us-iad-1.linodeobjects.com", "label": - "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-iad", - "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", "s3_endpoint": - "us-iad-1.linodeobjects.com"}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "262" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:02:56 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/us-iad-1/go-bucket-test-def - method: DELETE - response: - body: '{}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "2" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:03:05 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" diff --git a/test/integration/fixtures/TestObjectStorageBucketsInCluster_List.yaml b/test/integration/fixtures/TestObjectStorageBucketsInCluster_List.yaml deleted file mode 100644 index 9e0cc3b02..000000000 --- a/test/integration/fixtures/TestObjectStorageBucketsInCluster_List.yaml +++ /dev/null @@ -1,193 +0,0 @@ ---- -version: 1 -interactions: -- request: - body: '{"region":"us-east","label":"go-bucket-test-def"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets - method: POST - response: - body: '{"hostname": "go-bucket-test-def.us-east-1.linodeobjects.com", "label": - "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-east", - "cluster": "us-east-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": - "us-east-1.linodeobjects.com"}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "266" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:03:28 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1?page=1 - method: GET - response: - body: '{"data": [{"hostname": "go-bucket-test-def.us-east-1.linodeobjects.com", - "label": "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-east", - "cluster": "us-east-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": - "us-east-1.linodeobjects.com"}], "page": 1, "pages": 1, "results": 1}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "315" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:03:29 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def - method: DELETE - response: - body: '{}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "2" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:03:33 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" diff --git a/test/integration/fixtures/TestObjectStorageBuckets_List.yaml b/test/integration/fixtures/TestObjectStorageBuckets_List.yaml index 139f14f75..ad5b1ca96 100644 --- a/test/integration/fixtures/TestObjectStorageBuckets_List.yaml +++ b/test/integration/fixtures/TestObjectStorageBuckets_List.yaml @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 30 Jan 2025 19:34:04 GMT + - Mon, 10 Mar 2025 19:39:02 GMT Pragma: - no-cache Strict-Transport-Security: @@ -78,50 +78,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets?page=1 method: GET response: - body: '{"data": [{"hostname": "bucket-1736798274052633022.gb-lon-1.linodeobjects.com", - "label": "bucket-1736798274052633022", "created": "2018-01-02T03:04:05", "region": - "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": - "gb-lon-1.linodeobjects.com"}, {"hostname": "bucket-1738000793614673680.gb-lon-1.linodeobjects.com", - "label": "bucket-1738000793614673680", "created": "2018-01-02T03:04:05", "region": - "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": - "gb-lon-1.linodeobjects.com"}, {"hostname": "go-bucket-test-def.us-east-1.linodeobjects.com", + body: '{"data": [{"hostname": "go-bucket-test-def.us-east-1.linodeobjects.com", "label": "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-east", "cluster": "us-east-1", "size": 0, "objects": 0, "endpoint_type": "E0", "s3_endpoint": - "us-east-1.linodeobjects.com"}, {"hostname": "tf-test-1543819153442410267.sg-sin-1.linodeobjects.com", - "label": "tf-test-1543819153442410267", "created": "2018-01-02T03:04:05", "region": - "sg-sin-2", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E2", "s3_endpoint": - "sg-sin-1.linodeobjects.com"}, {"hostname": "tf-test-2484676038142344857.it-mil-1.linodeobjects.com", - "label": "tf-test-2484676038142344857", "created": "2018-01-02T03:04:05", "region": - "it-mil", "cluster": "it-mil-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "it-mil-1.linodeobjects.com"}, {"hostname": "tf-test-3502349996573909406.us-iad-1.linodeobjects.com", - "label": "tf-test-3502349996573909406", "created": "2018-01-02T03:04:05", "region": - "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"hostname": "tf-test-3632911602253826896.gb-lon-1.linodeobjects.com", - "label": "tf-test-3632911602253826896", "created": "2018-01-02T03:04:05", "region": - "gb-lon", "cluster": "", "size": 0, "objects": 0, "endpoint_type": "E3", "s3_endpoint": - "gb-lon-1.linodeobjects.com"}, {"hostname": "tf-test-3691810287020261631.us-iad-1.linodeobjects.com", - "label": "tf-test-3691810287020261631", "created": "2018-01-02T03:04:05", "region": - "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"hostname": "tf-test-3847259615974034792.us-iad-1.linodeobjects.com", - "label": "tf-test-3847259615974034792", "created": "2018-01-02T03:04:05", "region": - "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"hostname": "tf-test-5629732048996817677.us-iad-1.linodeobjects.com", - "label": "tf-test-5629732048996817677", "created": "2018-01-02T03:04:05", "region": - "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"hostname": "tf-test-6566002079784759866.us-iad-1.linodeobjects.com", - "label": "tf-test-6566002079784759866", "created": "2018-01-02T03:04:05", "region": - "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"hostname": "tf-test-6680232593917341773.us-iad-1.linodeobjects.com", - "label": "tf-test-6680232593917341773", "created": "2018-01-02T03:04:05", "region": - "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "us-iad-1.linodeobjects.com"}, {"hostname": "tf-test-6921913936824551527.id-cgk-1.linodeobjects.com", - "label": "tf-test-6921913936824551527", "created": "2018-01-02T03:04:05", "region": - "id-cgk", "cluster": "id-cgk-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "id-cgk-1.linodeobjects.com"}, {"hostname": "tf-test-8637208670123446138.us-iad-1.linodeobjects.com", - "label": "tf-test-8637208670123446138", "created": "2018-01-02T03:04:05", "region": - "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", - "s3_endpoint": "us-iad-1.linodeobjects.com"}], "page": 1, "pages": 1, "results": - 14}' + "us-east-1.linodeobjects.com"}], "page": 1, "pages": 1, "results": 1}' headers: Access-Control-Allow-Credentials: - "true" @@ -139,12 +99,14 @@ interactions: - max-age=0, no-cache, no-store Connection: - keep-alive + Content-Length: + - "315" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Thu, 30 Jan 2025 19:34:09 GMT + - Mon, 10 Mar 2025 19:39:07 GMT Pragma: - no-cache Strict-Transport-Security: @@ -152,7 +114,6 @@ interactions: Vary: - Authorization, X-Filter - Authorization, X-Filter - - Accept-Encoding X-Accepted-Oauth-Scopes: - object_storage:read_only X-Content-Type-Options: @@ -179,7 +140,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def method: DELETE response: body: '{}' @@ -207,7 +168,7 @@ interactions: Content-Type: - application/json Expires: - - Thu, 30 Jan 2025 19:34:13 GMT + - Mon, 10 Mar 2025 19:39:10 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageClusters_List.yaml b/test/integration/fixtures/TestObjectStorageClusters_List.yaml deleted file mode 100644 index c6df53d93..000000000 --- a/test/integration/fixtures/TestObjectStorageClusters_List.yaml +++ /dev/null @@ -1,114 +0,0 @@ ---- -version: 1 -interactions: -- request: - body: "" - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/clusters?page=1 - method: GET - response: - body: '{"data": [{"id": "us-east-1", "region": "us-east", "status": "available", - "domain": "us-east-1.linodeobjects.com", "static_site_domain": "website-us-east-1.linodeobjects.com"}, - {"id": "eu-central-1", "region": "eu-central", "status": "available", "domain": - "eu-central-1.linodeobjects.com", "static_site_domain": "website-eu-central-1.linodeobjects.com"}, - {"id": "ap-south-1", "region": "ap-south", "status": "available", "domain": - "ap-south-1.linodeobjects.com", "static_site_domain": "website-ap-south-1.linodeobjects.com"}, - {"id": "us-southeast-1", "region": "us-southeast", "status": "available", "domain": - "us-southeast-1.linodeobjects.com", "static_site_domain": "website-us-southeast-1.linodeobjects.com"}, - {"id": "us-iad-1", "region": "us-iad", "status": "available", "domain": "us-iad-1.linodeobjects.com", - "static_site_domain": "website-us-iad-1.linodeobjects.com"}, {"id": "fr-par-1", - "region": "fr-par", "status": "available", "domain": "fr-par-1.linodeobjects.com", - "static_site_domain": "website-fr-par-1.linodeobjects.com"}, {"id": "us-ord-1", - "region": "us-ord", "status": "available", "domain": "us-ord-1.linodeobjects.com", - "static_site_domain": "website-us-ord-1.linodeobjects.com"}, {"id": "in-maa-1", - "region": "in-maa", "status": "available", "domain": "in-maa-1.linodeobjects.com", - "static_site_domain": "website-in-maa-1.linodeobjects.com"}, {"id": "se-sto-1", - "region": "se-sto", "status": "available", "domain": "se-sto-1.linodeobjects.com", - "static_site_domain": "website-se-sto-1.linodeobjects.com"}, {"id": "it-mil-1", - "region": "it-mil", "status": "available", "domain": "it-mil-1.linodeobjects.com", - "static_site_domain": "website-it-mil-1.linodeobjects.com"}, {"id": "us-sea-1", - "region": "us-sea", "status": "available", "domain": "us-sea-1.linodeobjects.com", - "static_site_domain": "website-us-sea-1.linodeobjects.com"}, {"id": "id-cgk-1", - "region": "id-cgk", "status": "available", "domain": "id-cgk-1.linodeobjects.com", - "static_site_domain": "website-id-cgk-1.linodeobjects.com"}, {"id": "jp-osa-1", - "region": "jp-osa", "status": "available", "domain": "jp-osa-1.linodeobjects.com", - "static_site_domain": "website-jp-osa-1.linodeobjects.com"}, {"id": "br-gru-1", - "region": "br-gru", "status": "available", "domain": "br-gru-1.linodeobjects.com", - "static_site_domain": "website-br-gru-1.linodeobjects.com"}, {"id": "us-lax-1", - "region": "us-lax", "status": "available", "domain": "us-lax-1.linodeobjects.com", - "static_site_domain": "website-us-lax-1.linodeobjects.com"}, {"id": "nl-ams-1", - "region": "nl-ams", "status": "available", "domain": "nl-ams-1.linodeobjects.com", - "static_site_domain": "website-nl-ams-1.linodeobjects.com"}, {"id": "us-mia-1", - "region": "us-mia", "status": "available", "domain": "us-mia-1.linodeobjects.com", - "static_site_domain": "website-us-mia-1.linodeobjects.com"}, {"id": "es-mad-1", - "region": "es-mad", "status": "available", "domain": "es-mad-1.linodeobjects.com", - "static_site_domain": "website-es-mad-1.linodeobjects.com"}, {"id": "us-iad-10", - "region": "us-iad", "status": "available", "domain": "us-iad-10.linodeobjects.com", - "static_site_domain": "website-us-iad-10.linodeobjects.com"}, {"id": "us-sea-9", - "region": "us-sea", "status": "hidden", "domain": "us-sea-9.linodeobjects.com", - "static_site_domain": "website-us-sea-9.linodeobjects.com"}, {"id": "au-mel-1", - "region": "au-mel", "status": "hidden", "domain": "au-mel-1.linodeobjects.com", - "static_site_domain": "website-au-mel-1.linodeobjects.com"}, {"id": "gb-lon-1", - "region": "gb-lon", "status": "hidden", "domain": "gb-lon-1.linodeobjects.com", - "static_site_domain": "website-gb-lon-1.linodeobjects.com"}, {"id": "in-bom-1", - "region": "in-bom-2", "status": "hidden", "domain": "in-bom-1.linodeobjects.com", - "static_site_domain": "website-in-bom-1.linodeobjects.com"}, {"id": "de-fra-1", - "region": "de-fra-2", "status": "hidden", "domain": "de-fra-1.linodeobjects.com", - "static_site_domain": "website-de-fra-1.linodeobjects.com"}, {"id": "sg-sin-1", - "region": "sg-sin-2", "status": "hidden", "domain": "sg-sin-1.linodeobjects.com", - "static_site_domain": "website-sg-sin-1.linodeobjects.com"}], "page": 1, "pages": - 1, "results": 25}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 06:03:49 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - - Accept-Encoding - X-Accepted-Oauth-Scopes: - - object_storage:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" diff --git a/test/integration/fixtures/TestObjectStorageKey_GetFound.yaml b/test/integration/fixtures/TestObjectStorageKey_GetFound.yaml index eded32ffc..092b831ef 100644 --- a/test/integration/fixtures/TestObjectStorageKey_GetFound.yaml +++ b/test/integration/fixtures/TestObjectStorageKey_GetFound.yaml @@ -14,7 +14,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 1654583, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": + body: '{"id": 1831081, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "ap-south", "s3_endpoint": "ap-south-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "br-gru", "s3_endpoint": "br-gru-1.linodeobjects.com", "endpoint_type": "E1"}, @@ -57,7 +57,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:51 GMT + - Mon, 10 Mar 2025 19:51:29 GMT Pragma: - no-cache Strict-Transport-Security: @@ -91,10 +91,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1654583 + url: https://api.linode.com/v4beta/object-storage/keys/1831081 method: GET response: - body: '{"id": 1654583, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": + body: '{"id": 1831081, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[REDACTED]", "limited": false, "bucket_access": null, "regions": [{"id": "ap-south", "s3_endpoint": "ap-south-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "br-gru", "s3_endpoint": "br-gru-1.linodeobjects.com", "endpoint_type": "E1"}, @@ -137,7 +137,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:52 GMT + - Mon, 10 Mar 2025 19:51:30 GMT Pragma: - no-cache Strict-Transport-Security: @@ -172,7 +172,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1654583 + url: https://api.linode.com/v4beta/object-storage/keys/1831081 method: DELETE response: body: '{}' @@ -200,7 +200,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:53 GMT + - Mon, 10 Mar 2025 19:51:31 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageKey_GetMissing.yaml b/test/integration/fixtures/TestObjectStorageKey_GetMissing.yaml index 3ed97bae6..ce8cc8f2a 100644 --- a/test/integration/fixtures/TestObjectStorageKey_GetMissing.yaml +++ b/test/integration/fixtures/TestObjectStorageKey_GetMissing.yaml @@ -33,7 +33,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:49 GMT + - Mon, 10 Mar 2025 19:51:26 GMT Pragma: - no-cache Vary: diff --git a/test/integration/fixtures/TestObjectStorageKey_List.yaml b/test/integration/fixtures/TestObjectStorageKey_List.yaml index 8d76c9713..67f4164c5 100644 --- a/test/integration/fixtures/TestObjectStorageKey_List.yaml +++ b/test/integration/fixtures/TestObjectStorageKey_List.yaml @@ -14,7 +14,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 1654585, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": + body: '{"id": 1831083, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "ap-south", "s3_endpoint": "ap-south-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "br-gru", "s3_endpoint": "br-gru-1.linodeobjects.com", "endpoint_type": "E1"}, @@ -57,7 +57,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:59 GMT + - Mon, 10 Mar 2025 19:51:42 GMT Pragma: - no-cache Strict-Transport-Security: @@ -94,7 +94,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys?page=1 method: GET response: - body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 1654585, "label": + body: '{"pages": 1, "page": 1, "results": 1, "data": [{"id": 1831083, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[REDACTED]", "limited": false, "bucket_access": null, "regions": [{"id": "ap-south", "s3_endpoint": "ap-south-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "br-gru", "s3_endpoint": @@ -137,7 +137,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:00 GMT + - Mon, 10 Mar 2025 19:51:45 GMT Pragma: - no-cache Strict-Transport-Security: @@ -172,7 +172,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1654585 + url: https://api.linode.com/v4beta/object-storage/keys/1831083 method: DELETE response: body: '{}' @@ -200,7 +200,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:01 GMT + - Mon, 10 Mar 2025 19:51:49 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageKey_Update.yaml b/test/integration/fixtures/TestObjectStorageKey_Update.yaml index f9804cc6b..17f7aa59a 100644 --- a/test/integration/fixtures/TestObjectStorageKey_Update.yaml +++ b/test/integration/fixtures/TestObjectStorageKey_Update.yaml @@ -14,7 +14,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 1654584, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": + body: '{"id": 1831082, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": false, "bucket_access": null, "regions": [{"id": "ap-south", "s3_endpoint": "ap-south-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "br-gru", "s3_endpoint": "br-gru-1.linodeobjects.com", "endpoint_type": "E1"}, @@ -57,7 +57,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:55 GMT + - Mon, 10 Mar 2025 19:51:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -91,10 +91,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1654584 + url: https://api.linode.com/v4beta/object-storage/keys/1831082 method: PUT response: - body: '{"id": 1654584, "label": "go-test-def_r", "access_key": "[SANITIZED]", + body: '{"id": 1831082, "label": "go-test-def_r", "access_key": "[SANITIZED]", "secret_key": "[REDACTED]", "limited": false, "bucket_access": null, "regions": [{"id": "ap-south", "s3_endpoint": "ap-south-1.linodeobjects.com", "endpoint_type": "E0"}, {"id": "br-gru", "s3_endpoint": "br-gru-1.linodeobjects.com", "endpoint_type": @@ -137,7 +137,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:56 GMT + - Mon, 10 Mar 2025 19:51:38 GMT Pragma: - no-cache Strict-Transport-Security: @@ -171,7 +171,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1654584 + url: https://api.linode.com/v4beta/object-storage/keys/1831082 method: DELETE response: body: '{}' @@ -199,7 +199,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:03:57 GMT + - Mon, 10 Mar 2025 19:51:39 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageKeys_Limited.yaml b/test/integration/fixtures/TestObjectStorageKeys_Limited.yaml index 72a290754..7248ae62b 100644 --- a/test/integration/fixtures/TestObjectStorageKeys_Limited.yaml +++ b/test/integration/fixtures/TestObjectStorageKeys_Limited.yaml @@ -2,7 +2,7 @@ version: 1 interactions: - request: - body: '{"label":"go-test-def","bucket_access":[{"cluster":"us-east-1","region":"us-east","bucket_name":"go-bucket-test-def","permissions":"read_only"},{"cluster":"us-east-1","region":"us-east","bucket_name":"go-bucket-test-def","permissions":"read_write"}]}' + body: '{"label":"go-test-def","bucket_access":[{"region":"us-east","bucket_name":"go-bucket-test-def","permissions":"read_only"},{"region":"us-east","bucket_name":"go-bucket-test-def","permissions":"read_write"}]}' form: {} headers: Accept: @@ -14,7 +14,7 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 1776813, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": + body: '{"id": 1831084, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": true, "bucket_access": [{"cluster": "us-east-1", "bucket_name": "go-bucket-test-def", "permissions": "read_only", "region": "us-east"}, {"cluster": "us-east-1", "bucket_name": "go-bucket-test-def", "permissions": "read_write", @@ -44,7 +44,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 19 Feb 2025 18:29:41 GMT + - Mon, 10 Mar 2025 19:51:53 GMT Pragma: - no-cache Strict-Transport-Security: @@ -77,7 +77,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1776813 + url: https://api.linode.com/v4beta/object-storage/keys/1831084 method: DELETE response: body: '{}' @@ -105,7 +105,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 19 Feb 2025 18:29:44 GMT + - Mon, 10 Mar 2025 19:51:56 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageKeys_Limited_Bucket.yaml b/test/integration/fixtures/TestObjectStorageKeys_Limited_Bucket.yaml index 84692ae37..38168e28e 100644 --- a/test/integration/fixtures/TestObjectStorageKeys_Limited_Bucket.yaml +++ b/test/integration/fixtures/TestObjectStorageKeys_Limited_Bucket.yaml @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 19 Feb 2025 18:29:38 GMT + - Mon, 10 Mar 2025 19:51:51 GMT Pragma: - no-cache Strict-Transport-Security: @@ -75,7 +75,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def method: DELETE response: body: '{}' @@ -103,7 +103,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 19 Feb 2025 18:29:48 GMT + - Mon, 10 Mar 2025 19:52:01 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageKeys_Regional_Limited.yaml b/test/integration/fixtures/TestObjectStorageKeys_Regional_Limited.yaml index b43393d9d..95aa740e4 100644 --- a/test/integration/fixtures/TestObjectStorageKeys_Regional_Limited.yaml +++ b/test/integration/fixtures/TestObjectStorageKeys_Regional_Limited.yaml @@ -38,173 +38,129 @@ interactions: 5}, "site_type": "core"}, {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-ord", "label": "Chicago, IL", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "fr-par", "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-sea", "label": "Seattle, WA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "br-gru", "label": "Sao Paulo, BR", "country": "br", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "nl-ams", "label": "Amsterdam, NL", "country": "nl", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "se-sto", "label": "Stockholm, SE", "country": "se", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "es-mad", "label": "Madrid, ES", "country": "es", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-maa", "label": "Chennai, IN", "country": "in", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-osa", "label": "Osaka, JP", "country": "jp", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", - "Kubernetes", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", - "Premium Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "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", "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "it-mil", "label": "Milan, IT", "country": "it", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-mia", "label": "Miami, FL", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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", "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "id-cgk", "label": "Jakarta, ID", "country": "id", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "us-lax", "label": "Los Angeles, CA", "country": "us", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", - "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium - Plans", "Placement Group", "StackScripts", "NETINT Quadra T1U"], "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", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "nz-akl-1", "label": "Auckland, NZ", "country": - "nz", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", "Distributed - Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "us-den-1", - "label": "Denver, CO", "country": "us", "capabilities": ["Linodes", "Cloud Firewall", - "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": - "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "de-ham-1", "label": "Hamburg, DE", - "country": "de", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", - "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "fr-mrs-1", - "label": "Marseille, FR", "country": "fr", "capabilities": ["Linodes", "Cloud - Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": - {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "za-jnb-1", "label": "Johannesburg, - ZA", "country": "za", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", - "Metadata", "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "my-kul-1", - "label": "Kuala Lumpur, MY", "country": "my", "capabilities": ["Linodes", "Cloud - Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": - {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "co-bog-1", "label": "Bogot\u00e1, CO", - "country": "co", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", - "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "mx-qro-1", - "label": "Quer\u00e9taro, MX", "country": "mx", "capabilities": ["Linodes", - "Cloud Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", - "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "us-hou-1", "label": "Houston, TX", - "country": "us", "capabilities": ["Linodes", "Cloud Firewall", "Vlans", "Metadata", - "Distributed Plans"], "status": "ok", "resolvers": {"ipv4": "173.223.100.53,173.223.101.53", - "ipv6": "1234::5678,1234::5678"}, "placement_group_limits": {"maximum_pgs_per_customer": - 0, "maximum_linodes_per_pg": 0}, "site_type": "distributed"}, {"id": "cl-scl-1", - "label": "Santiago, CL", "country": "cl", "capabilities": ["Linodes", "Cloud - Firewall", "Vlans", "Metadata", "Distributed Plans"], "status": "ok", "resolvers": - {"ipv4": "173.223.100.53,173.223.101.53", "ipv6": "1234::5678,1234::5678"}, - "placement_group_limits": {"maximum_pgs_per_customer": 0, "maximum_linodes_per_pg": - 0}, "site_type": "distributed"}, {"id": "gb-lon", "label": "London 2, UK", "country": + 5}, "site_type": "core"}, {"id": "gb-lon", "label": "London 2, UK", "country": "gb", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts"], "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", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "au-mel", "label": "Melbourne, AU", "country": "au", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", "Placement - Group", "StackScripts", "NETINT Quadra T1U"], "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", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed Databases", + "Metadata", "Premium Plans", "Placement Group", "StackScripts", "NETINT Quadra + T1U"], "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"}, "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "in-bom-2", "label": "Mumbai 2, IN", "country": @@ -224,9 +180,10 @@ interactions: "placement_group_limits": {"maximum_pgs_per_customer": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "sg-sin-2", "label": "Singapore 2, SG", "country": "sg", "capabilities": ["Linodes", "Block Storage Encryption", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud - Firewall", "Vlans", "VPCs", "Managed Databases", "Metadata", "Premium Plans", - "Placement Group", "StackScripts"], "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", + "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Kubernetes Enterprise", "Cloud Firewall", "Vlans", "VPCs", "Managed + Databases", "Metadata", "Premium Plans", "Placement Group", "StackScripts"], + "status": "ok", "resolvers": {"ipv4": "172.236.129.8,172.236.129.42,172.236.129.41,172.236.129.19,172.236.129.46,172.236.129.23,172.236.129.48,172.236.129.20,172.236.129.21,172.236.129.47", "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "jp-tyo-3", "label": "Tokyo 3, JP", "country": @@ -264,25 +221,23 @@ interactions: "us", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases", "Metadata", "Placement - Group", "StackScripts"], "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": - null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "eu-west", - "label": "London, UK", "country": "gb", "capabilities": ["Linodes", "Disk Encryption", - "Backups", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts"], - "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"}, + Group", "StackScripts"], "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,173.255.225.5,66.228.35.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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": - "sg", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Metadata", "Placement Group", "StackScripts"], - "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", + 5}, "site_type": "core"}, {"id": "eu-west", "label": "London, UK", "country": + "gb", "capabilities": ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", + "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", + "Metadata", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": + "core"}, {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": + ["Linodes", "Disk Encryption", "Backups", "NodeBalancers", "Block Storage", + "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Metadata", "Placement Group", "StackScripts"], "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": null, "maximum_linodes_per_pg": 5}, "site_type": "core"}, {"id": "eu-central", "label": "Frankfurt, DE", "country": @@ -299,7 +254,7 @@ interactions: "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": null, "maximum_linodes_per_pg": - 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 41}' + 5}, "site_type": "core"}], "page": 1, "pages": 1, "results": 31}' headers: Access-Control-Allow-Credentials: - "true" @@ -322,7 +277,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:11 GMT + - Mon, 10 Mar 2025 19:52:01 GMT Pragma: - no-cache Strict-Transport-Security: @@ -348,7 +303,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"us-iad","label":"go-bucket-test-def"}' + body: '{"region":"us-iad","label":"go-bucket-test-def-regional"}' form: {} headers: Accept: @@ -360,10 +315,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/buckets method: POST response: - body: '{"hostname": "go-bucket-test-def.us-iad-1.linodeobjects.com", "label": - "go-bucket-test-def", "created": "2018-01-02T03:04:05", "region": "us-iad", - "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", "s3_endpoint": - "us-iad-1.linodeobjects.com"}' + body: '{"hostname": "go-bucket-test-def-regional.us-iad-1.linodeobjects.com", + "label": "go-bucket-test-def-regional", "created": "2018-01-02T03:04:05", "region": + "us-iad", "cluster": "us-iad-1", "size": 0, "objects": 0, "endpoint_type": "E1", + "s3_endpoint": "us-iad-1.linodeobjects.com"}' headers: Access-Control-Allow-Credentials: - "true" @@ -382,13 +337,13 @@ interactions: Connection: - keep-alive Content-Length: - - "262" + - "280" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:13 GMT + - Mon, 10 Mar 2025 19:52:03 GMT Pragma: - no-cache Strict-Transport-Security: @@ -412,7 +367,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"go-test-def","bucket_access":[{"region":"us-iad","bucket_name":"go-bucket-test-def","permissions":"read_only"}],"regions":["us-iad"]}' + body: '{"label":"go-test-def","bucket_access":[{"region":"us-iad","bucket_name":"go-bucket-test-def-regional","permissions":"read_only"}],"regions":["us-iad"]}' form: {} headers: Accept: @@ -424,10 +379,10 @@ interactions: url: https://api.linode.com/v4beta/object-storage/keys method: POST response: - body: '{"id": 1654587, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": + body: '{"id": 1831087, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[SANITIZED]", "limited": true, "bucket_access": [{"cluster": "us-iad-1", "bucket_name": - "go-bucket-test-def", "permissions": "read_only", "region": "us-iad"}], "regions": - [{"id": "us-iad", "s3_endpoint": "us-iad-1.linodeobjects.com", "endpoint_type": + "go-bucket-test-def-regional", "permissions": "read_only", "region": "us-iad"}], + "regions": [{"id": "us-iad", "s3_endpoint": "us-iad-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: Access-Control-Allow-Credentials: @@ -447,13 +402,13 @@ interactions: Connection: - keep-alive Content-Length: - - "380" + - "389" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:14 GMT + - Mon, 10 Mar 2025 19:52:10 GMT Pragma: - no-cache Strict-Transport-Security: @@ -486,13 +441,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1654587 + url: https://api.linode.com/v4beta/object-storage/keys/1831087 method: PUT response: - body: '{"id": 1654587, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": + body: '{"id": 1831087, "label": "go-test-def", "access_key": "[SANITIZED]", "secret_key": "[REDACTED]", "limited": true, "bucket_access": [{"cluster": "us-iad-1", "bucket_name": - "go-bucket-test-def", "permissions": "read_only", "region": "us-iad"}], "regions": - [{"id": "us-iad", "s3_endpoint": "us-iad-1.linodeobjects.com", "endpoint_type": + "go-bucket-test-def-regional", "permissions": "read_only", "region": "us-iad"}], + "regions": [{"id": "us-iad", "s3_endpoint": "us-iad-1.linodeobjects.com", "endpoint_type": "E1"}, {"id": "us-mia", "s3_endpoint": "us-mia-1.linodeobjects.com", "endpoint_type": "E1"}]}' headers: @@ -513,13 +468,13 @@ interactions: Connection: - keep-alive Content-Length: - - "436" + - "445" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:15 GMT + - Mon, 10 Mar 2025 19:52:12 GMT Pragma: - no-cache Strict-Transport-Security: @@ -552,7 +507,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/keys/1654587 + url: https://api.linode.com/v4beta/object-storage/keys/1831087 method: DELETE response: body: '{}' @@ -580,7 +535,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:16 GMT + - Mon, 10 Mar 2025 19:52:13 GMT Pragma: - no-cache Strict-Transport-Security: @@ -613,7 +568,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-iad-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-iad/go-bucket-test-def-regional method: DELETE response: body: '{}' @@ -641,7 +596,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 06:04:29 GMT + - Mon, 10 Mar 2025 19:52:25 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Delete.yaml b/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Delete.yaml index 868fe0b01..9551ee107 100644 --- a/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Delete.yaml +++ b/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Delete.yaml @@ -5,7 +5,7 @@ interactions: body: "" form: {} headers: {} - url: https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=q40b1QCD%2FE5YyfsAW%2Fl5vZNfiRs%3D&Expires=1736322799&AWSAccessKeyID=SANITIZED + url: https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=ylYZWpr5dHriAVlyd3BNgPbc1u8%3D&Expires=1741636419&AWSAccessKeyID=SANITIZED method: DELETE response: body: "" @@ -13,7 +13,7 @@ interactions: Connection: - keep-alive X-Amz-Request-Id: - - tx000003f312b97ed86260d-00677e2d87-f1a4821b-default + - tx00000de19cca1672f3f7d-0067cf41db-11ae6c740-default status: 204 No Content code: 204 duration: "" diff --git a/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Put.yaml b/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Put.yaml index 5d7ccf6ad..910ae8560 100644 --- a/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Put.yaml +++ b/test/integration/fixtures/TestObjectStorageObject_ACLConfig_Bucket_Put.yaml @@ -7,7 +7,7 @@ interactions: headers: Content-Type: - text/plain - url: https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=UZqhNnak%2FwLVHy0HB2TW87rl%2Baw%3D&Expires=1736322791&AWSAccessKeyID=SANITIZED + url: https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=DUCRqw3GC%2Fi%2BXH%2FW7PBrAo2fAp4%3D&Expires=1741636412&AWSAccessKeyID=SANITIZED method: PUT response: body: "" @@ -21,7 +21,7 @@ interactions: Etag: - '"7f2ababa423061c509f4923dd04b6cf1"' X-Amz-Request-Id: - - tx000003d8b04716d761fbb-00677e2d7f-ef83577d-default + - tx00000528a57ac26dbb6fa-0067cf41d4-1213be613-default status: 200 OK code: 200 duration: "" diff --git a/test/integration/fixtures/TestObjectStorageObject_Smoke.yaml b/test/integration/fixtures/TestObjectStorageObject_Smoke.yaml index 5898e1fd9..df0e30e73 100644 --- a/test/integration/fixtures/TestObjectStorageObject_Smoke.yaml +++ b/test/integration/fixtures/TestObjectStorageObject_Smoke.yaml @@ -42,7 +42,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:09 GMT + - Mon, 10 Mar 2025 19:47:29 GMT Pragma: - no-cache Strict-Transport-Security: @@ -75,10 +75,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def/object-url method: POST response: - body: '{"url": "https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=UZqhNnak%2FwLVHy0HB2TW87rl%2Baw%3D&Expires=1736322791&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=DUCRqw3GC%2Fi%2BXH%2FW7PBrAo2fAp4%3D&Expires=1741636412&AWSAccessKeyID=SANITIZED", "exists": false}' headers: Access-Control-Allow-Credentials: @@ -98,13 +98,13 @@ interactions: Connection: - keep-alive Content-Length: - - "191" + - "193" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:11 GMT + - Mon, 10 Mar 2025 19:47:32 GMT Pragma: - no-cache Strict-Transport-Security: @@ -137,11 +137,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-acl?name=test + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def/object-acl?name=test method: GET response: - body: '{"acl": "private", "acl_xml": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936FULL_CONTROL"}' + body: '{"acl": "private", "acl_xml": "640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89eFULL_CONTROL"}' headers: Access-Control-Allow-Credentials: - "true" @@ -166,7 +166,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:12 GMT + - Mon, 10 Mar 2025 19:47:33 GMT Pragma: - no-cache Strict-Transport-Security: @@ -200,74 +200,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-acl?name=test + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def/object-list method: GET response: - body: '{"acl": "private", "acl_xml": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936FULL_CONTROL"}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "550" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 07:47:13 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-list - method: GET - response: - body: '{"data": [{"name": "test", "size": 10, "last_modified": "2018-01-02T03:04:05.723Z", - "etag": "7f2ababa423061c509f4923dd04b6cf1", "owner": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936"}], + body: '{"data": [{"name": "test", "size": 10, "last_modified": "2018-01-02T03:04:05.746Z", + "etag": "7f2ababa423061c509f4923dd04b6cf1", "owner": "640757b5-ebe9-45b1-abd5-581f215ef89e"}], "next_marker": null, "is_truncated": false}' headers: Access-Control-Allow-Credentials: @@ -293,7 +230,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:14 GMT + - Mon, 10 Mar 2025 19:47:36 GMT Pragma: - no-cache Strict-Transport-Security: @@ -327,68 +264,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-acl - method: PUT - response: - body: '{}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "2" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 07:47:15 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_write - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - X-Xss-Protection: - - 1; mode=block - status: 200 OK - code: 200 - duration: "" -- request: - body: '{"name":"test","acl":"public-read"}' - form: {} - headers: - Accept: - - application/json - Content-Type: - - application/json - User-Agent: - - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-acl + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def/object-acl method: PUT response: body: '{}' @@ -416,7 +292,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:16 GMT + - Mon, 10 Mar 2025 19:47:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -449,76 +325,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-acl?name=test - method: GET - response: - body: '{"acl": "public-read", "acl_xml": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936http://acs.amazonaws.com/groups/global/AllUsersREADc9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936FULL_CONTROL"}' - 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 - Akamai-Internal-Account: - - '*' - Cache-Control: - - max-age=0, no-cache, no-store - Connection: - - keep-alive - Content-Length: - - "750" - Content-Security-Policy: - - default-src 'none' - Content-Type: - - application/json - Expires: - - Wed, 08 Jan 2025 07:47:17 GMT - Pragma: - - no-cache - Strict-Transport-Security: - - max-age=31536000 - Vary: - - Authorization, X-Filter - - Authorization, X-Filter - X-Accepted-Oauth-Scopes: - - object_storage:read_only - X-Content-Type-Options: - - nosniff - X-Frame-Options: - - DENY - - DENY - X-Oauth-Scopes: - - '*' - X-Ratelimit-Limit: - - "1600" - 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 - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-acl?name=test + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def/object-acl?name=test method: GET response: - body: '{"acl": "public-read", "acl_xml": "c9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89ehttp://acs.amazonaws.com/groups/global/AllUsersREADc9539a32-3ece-47dd-a9a4-40bbfa5a2936c9539a32-3ece-47dd-a9a4-40bbfa5a2936FULL_CONTROL"}' + xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\">640757b5-ebe9-45b1-abd5-581f215ef89e640757b5-ebe9-45b1-abd5-581f215ef89eFULL_CONTROL"}' headers: Access-Control-Allow-Credentials: - "true" @@ -543,7 +355,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:17 GMT + - Mon, 10 Mar 2025 19:47:37 GMT Pragma: - no-cache Strict-Transport-Security: @@ -577,10 +389,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def/object-url + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def/object-url method: POST response: - body: '{"url": "https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=q40b1QCD%2FE5YyfsAW%2Fl5vZNfiRs%3D&Expires=1736322799&AWSAccessKeyID=SANITIZED", + body: '{"url": "https://us-east-1.linodeobjects.com:443/go-bucket-test-def/test?Signature=ylYZWpr5dHriAVlyd3BNgPbc1u8%3D&Expires=1741636419&AWSAccessKeyID=SANITIZED", "exists": true}' headers: Access-Control-Allow-Credentials: @@ -600,13 +412,13 @@ interactions: Connection: - keep-alive Content-Length: - - "190" + - "186" Content-Security-Policy: - default-src 'none' Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:19 GMT + - Mon, 10 Mar 2025 19:47:39 GMT Pragma: - no-cache Strict-Transport-Security: @@ -639,7 +451,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/object-storage/buckets/us-east-1/go-bucket-test-def + url: https://api.linode.com/v4beta/object-storage/buckets/us-east/go-bucket-test-def method: DELETE response: body: '{}' @@ -667,7 +479,7 @@ interactions: Content-Type: - application/json Expires: - - Wed, 08 Jan 2025 07:47:22 GMT + - Mon, 10 Mar 2025 19:47:42 GMT Pragma: - no-cache Strict-Transport-Security: diff --git a/test/integration/object_storage_bucket_certs_test.go b/test/integration/object_storage_bucket_certs_test.go index abfc221bd..6263ef23a 100644 --- a/test/integration/object_storage_bucket_certs_test.go +++ b/test/integration/object_storage_bucket_certs_test.go @@ -125,19 +125,6 @@ func TestObjectStorageBucketCert_smoke(t *testing.T) { fixtureTeardown() }() - _, err = client.UploadObjectStorageBucketCert(context.TODO(), bucket.Region, bucket.Label, linodego.ObjectStorageBucketCertUploadOptions{ - Certificate: testCertifcate, - PrivateKey: testPrivateKey, - }) - if err != nil { - t.Fatalf("failed to upload bucket cert: %s", err) - } - - err = client.DeleteObjectStorageBucketCert(context.TODO(), bucket.Region, bucket.Label) - if err != nil { - t.Fatalf("failed to upload bucket cert: %s", err) - } - _, err = client.UploadObjectStorageBucketCertV2(context.TODO(), bucket.Region, bucket.Label, linodego.ObjectStorageBucketCertUploadOptions{ Certificate: testCertifcate, PrivateKey: testPrivateKey, @@ -152,15 +139,6 @@ func TestObjectStorageBucketCert_smoke(t *testing.T) { } }() - cert, err := client.GetObjectStorageBucketCert(context.TODO(), bucket.Region, bucket.Label) - if err != nil { - t.Fatalf("failed to get bucket cert: %s", err) - } - - if !cert.SSL { - t.Fatalf("expected cert.SSL to be true; got false") - } - certv2, err := client.GetObjectStorageBucketCertV2(context.TODO(), bucket.Region, bucket.Label) if err != nil { t.Fatalf("failed to get bucket cert: %s", err) diff --git a/test/integration/object_storage_buckets_test.go b/test/integration/object_storage_buckets_test.go index 6df9afcd4..14a908b5f 100644 --- a/test/integration/object_storage_buckets_test.go +++ b/test/integration/object_storage_buckets_test.go @@ -12,11 +12,6 @@ import ( var objectStorageBucketTestLabel = "go-bucket-test-def" var testObjectStorageBucketCreateOpts = ObjectStorageBucketCreateOptions{ - Cluster: linodego.Pointer("us-east-1"), - Label: objectStorageBucketTestLabel, -} - -var testRegionalObjectStorageBucketCreateOpts = ObjectStorageBucketCreateOptions{ Region: linodego.Pointer("us-east"), Label: objectStorageBucketTestLabel, } @@ -35,54 +30,13 @@ func TestObjectStorageBucket_Create_smoke(t *testing.T) { // when comparing fixtures to random value Label will differ, compare the known prefix if bucket.Label != expected.Label || - bucket.Cluster != *expected.Cluster { + bucket.Region != *expected.Region { t.Errorf("Object Storage Bucket did not match CreateOptions") } assertDateSet(t, bucket.Created) } -func TestObjectStorageBucket_Regional(t *testing.T) { - // t.Skip("skipping region test before GA") - client, teardown := createTestClient(t, "fixtures/TestObjectStorageBucket_Regional") - regions := getRegionsWithCaps(t, client, []string{"Object Storage"}) - if len(regions) < 1 { - t.Fatal("Can't get region with Object Storage capability") - } - region := regions[0] - - client, bucket, teardown, err := setupObjectStorageBucket(t, - []objectStorageBucketModifier{ - func(opts *ObjectStorageBucketCreateOptions) { - opts.Cluster = linodego.Pointer("") - opts.Region = ®ion - }, - }, - "fixtures/TestObjectStorageBucket_Regional", - client, teardown, nil, - ) - defer teardown() - - if err != nil { - t.Errorf("Error creating Object Storage Bucket, got error %v", err) - } - - expected := testObjectStorageBucketCreateOpts - - // when comparing fixtures to random value Label will differ, compare the known prefix - if bucket.Label != expected.Label || - bucket.Region != region { - t.Errorf("Object Storage Bucket did not match CreateOptions") - } - - assertDateSet(t, bucket.Created) - - bucket, err = client.GetObjectStorageBucket(context.Background(), region, expected.Label) - if err != nil { - t.Errorf("Error getting Object Storage Bucket, %v", err) - } -} - func TestObjectStorageBucket_GetMissing(t *testing.T) { client, bucket, teardown, err := setupObjectStorageBucket(t, nil, @@ -115,7 +69,7 @@ func TestObjectStorageBucket_GetFound(t *testing.T) { t.Error(err) } - i, err := client.GetObjectStorageBucket(context.Background(), bucket.Cluster, bucket.Label) + i, err := client.GetObjectStorageBucket(context.Background(), bucket.Region, bucket.Label) if err != nil { t.Errorf("Error getting ObjectStorageBucket, expected struct, got %v and error %v", i, err) } @@ -126,7 +80,7 @@ func TestObjectStorageBucket_GetFound(t *testing.T) { // when comparing fixtures to random value Label will differ, compare the known prefix if bucket.Label != expected.Label || - bucket.Cluster != *expected.Cluster { + bucket.Region != *expected.Region { t.Errorf("Object Storage Bucket did not match CreateOptions") } } @@ -158,24 +112,6 @@ func TestObjectStorageBuckets_List_smoke(t *testing.T) { } } -func TestObjectStorageBucketsInCluster_List(t *testing.T) { - client, bucket, teardown, err := setupObjectStorageBucket(t, - nil, - "fixtures/TestObjectStorageBucketsInCluster_List", nil, nil, nil) - defer teardown() - - i, err := client.ListObjectStorageBucketsInCluster(context.Background(), nil, bucket.Cluster) - if err != nil { - t.Errorf("Error listing ObjectStorageBucketsInCluster, expected struct, got error %v", err) - } - if len(i) == 0 { - t.Errorf("Expected a list of ObjectStorageBucketsInCluster, but got none %v", i) - } else if i[0].Label == "" || - i[0].Cluster == "" { - t.Errorf("Listed Object Storage Bucket in Cluster did not have attributes %v", i) - } -} - func TestObjectStorageBucket_Access_Get(t *testing.T) { corsEnabled := false @@ -196,20 +132,11 @@ func TestObjectStorageBucket_Access_Get(t *testing.T) { ) defer teardown() - newBucket, err := client.GetObjectStorageBucketAccess(context.Background(), bucket.Region, bucket.Label) - if err != nil { - t.Errorf("Error getting ObjectStorageBucket access, got error %s", err) - } - newBucketv2, err := client.GetObjectStorageBucketAccessV2(context.Background(), bucket.Region, bucket.Label) if err != nil { t.Errorf("Error getting ObjectStorageBucket access, got error %s", err) } - if newBucket.CorsEnabled != corsEnabled { - t.Errorf("ObjectStorageBucket access CORS does not match update, expected %t, got %t", corsEnabled, newBucket.CorsEnabled) - } - if newBucketv2.CorsEnabled == nil { t.Errorf("ObjectStorageBucket access CORS does not match update, expected %t, got nil", corsEnabled) } @@ -218,11 +145,6 @@ func TestObjectStorageBucket_Access_Get(t *testing.T) { t.Errorf("ObjectStorageBucket access CORS does not match update, expected %t, got %t", corsEnabled, *newBucketv2.CorsEnabled) } - if createOpts.ACL == nil || newBucket.ACL != *createOpts.ACL { - t.Errorf("ObjectStorageBucket access ACL does not match update, expected %s, got %s", - *createOpts.ACL, - newBucket.ACL) - } if createOpts.ACL == nil || newBucketv2.ACL != *createOpts.ACL { t.Errorf("ObjectStorageBucket access ACL does not match update, expected %s, got %s", *createOpts.ACL, @@ -251,13 +173,13 @@ func TestObjectStorageBucket_Access_Update(t *testing.T) { t.Errorf("Error updating ObjectStorageBucket access, got error %s", err) } - newBucket, err := client.GetObjectStorageBucketAccess(context.Background(), bucket.Region, bucket.Label) + newBucket, err := client.GetObjectStorageBucketAccessV2(context.Background(), bucket.Region, bucket.Label) if err != nil { t.Errorf("Error getting ObjectStorageBucket access, got error %s", err) } - if newBucket.CorsEnabled != corsEnabled { - t.Errorf("ObjectStorageBucket access CORS does not match update, expected %t, got %t", corsEnabled, newBucket.CorsEnabled) + if *newBucket.CorsEnabled != corsEnabled { + t.Errorf("ObjectStorageBucket access CORS does not match update, expected %t, got %t", corsEnabled, *newBucket.CorsEnabled) } if opts.ACL == nil || newBucket.ACL != *opts.ACL { @@ -288,7 +210,7 @@ func setupObjectStorageBucket( client, teardown = createTestClient(t, fixturesYaml) } - createOpts := testRegionalObjectStorageBucketCreateOpts + createOpts := testObjectStorageBucketCreateOpts if endpointType != nil { endpoints, err := client.ListObjectStorageEndpoints(context.Background(), nil) @@ -314,7 +236,7 @@ func setupObjectStorageBucket( } newTeardown := func() { - if err := client.DeleteObjectStorageBucket(context.Background(), bucket.Cluster, bucket.Label); err != nil { + if err := client.DeleteObjectStorageBucket(context.Background(), bucket.Region, bucket.Label); err != nil { if t != nil { t.Errorf("Error deleting test Bucket: %s", err) } diff --git a/test/integration/object_storage_clusters_test.go b/test/integration/object_storage_clusters_test.go deleted file mode 100644 index 20e8f92a7..000000000 --- a/test/integration/object_storage_clusters_test.go +++ /dev/null @@ -1,19 +0,0 @@ -package integration - -import ( - "context" - "testing" -) - -func TestObjectStorageClusters_List(t *testing.T) { - client, teardown := createTestClient(t, "fixtures/TestObjectStorageClusters_List") - defer teardown() - - objectStorageClusters, err := client.ListObjectStorageClusters(context.Background(), nil) - if err != nil { - t.Errorf("Error listing objectStorageClusters, expected struct - error %v", err) - } - if len(objectStorageClusters) == 0 { - t.Errorf("Expected a list of objectStorageClusters - %v", objectStorageClusters) - } -} diff --git a/test/integration/object_storage_keys_test.go b/test/integration/object_storage_keys_test.go index 01667b130..0e7c13f12 100644 --- a/test/integration/object_storage_keys_test.go +++ b/test/integration/object_storage_keys_test.go @@ -117,13 +117,11 @@ func TestObjectStorageKeys_Limited(t *testing.T) { createOpts := testBasicObjectStorageKeyCreateOpts createOpts.BucketAccess = &[]ObjectStorageKeyBucketAccess{ { - Cluster: linodego.Pointer("us-east-1"), Region: linodego.Pointer("us-east"), BucketName: bucket.Label, Permissions: "read_only", }, { - Cluster: linodego.Pointer("us-east-1"), Region: linodego.Pointer("us-east"), BucketName: bucket.Label, Permissions: "read_write", @@ -168,8 +166,8 @@ func TestObjectStorageKeys_Regional_Limited(t *testing.T) { client, bucket, teardown, err := setupObjectStorageBucket(t, []objectStorageBucketModifier{ func(createOpts *ObjectStorageBucketCreateOptions) { - createOpts.Cluster = linodego.Pointer("") createOpts.Region = ®ion + createOpts.Label += "go-test-def-regional" }, }, "fixtures/TestObjectStorageKeys_Regional_Limited", client, teardown, nil) diff --git a/test/integration/object_storage_object_test.go b/test/integration/object_storage_object_test.go index 06f29087c..abc950140 100644 --- a/test/integration/object_storage_object_test.go +++ b/test/integration/object_storage_object_test.go @@ -14,7 +14,7 @@ var objectStorageObjectURLExpirySeconds = 360 func putObjectStorageObject(t *testing.T, client *linodego.Client, bucket *linodego.ObjectStorageBucket, name, content string) { t.Helper() - url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Cluster, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ + url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Region, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ Name: name, Method: http.MethodPut, ContentType: linodego.Pointer("text/plain"), @@ -48,7 +48,7 @@ func putObjectStorageObject(t *testing.T, client *linodego.Client, bucket *linod func deleteObjectStorageObject(t *testing.T, client *linodego.Client, bucket *linodego.ObjectStorageBucket, name string) { t.Helper() - url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Cluster, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ + url, err := client.CreateObjectStorageObjectURL(context.TODO(), bucket.Region, bucket.Label, linodego.ObjectStorageObjectURLCreateOptions{ Name: name, Method: http.MethodDelete, ExpiresIn: &objectStorageObjectURLExpirySeconds, @@ -87,20 +87,7 @@ func TestObjectStorageObject_Smoke(t *testing.T) { putObjectStorageObject(t, client, bucket, object, "testing123") defer deleteObjectStorageObject(t, client, bucket, object) - config, err := client.GetObjectStorageObjectACLConfig(context.TODO(), bucket.Cluster, bucket.Label, object) - if err != nil { - t.Errorf("failed to get ACL config: %s", err) - } - - if config.ACL != "private" { - t.Errorf("expected ACL to be private; got %s", config.ACL) - } - - if config.ACLXML == "" { - t.Error("expected ACL XML to be included") - } - - configv2, err := client.GetObjectStorageObjectACLConfigV2(context.TODO(), bucket.Cluster, bucket.Label, object) + configv2, err := client.GetObjectStorageObjectACLConfigV2(context.TODO(), bucket.Region, bucket.Label, object) if err != nil { t.Errorf("failed to get ACL config: %s", err) } @@ -113,7 +100,7 @@ func TestObjectStorageObject_Smoke(t *testing.T) { t.Errorf("expected ACL to be private; got %s", *configv2.ACL) } - content, err := client.ListObjectStorageBucketContents(context.TODO(), bucket.Cluster, bucket.Label, nil) + content, err := client.ListObjectStorageBucketContents(context.TODO(), bucket.Region, bucket.Label, nil) if err != nil { t.Errorf("failed to get bucket contents: %s", err) } @@ -123,27 +110,12 @@ func TestObjectStorageObject_Smoke(t *testing.T) { } updateOpts := linodego.ObjectStorageObjectACLConfigUpdateOptions{ACL: "public-read", Name: object} - if _, err = client.UpdateObjectStorageObjectACLConfig(context.TODO(), bucket.Cluster, bucket.Label, updateOpts); err != nil { - t.Errorf("failed to update ACL config: %s", err) - } - if _, err = client.UpdateObjectStorageObjectACLConfigV2(context.TODO(), bucket.Cluster, bucket.Label, updateOpts); err != nil { + if _, err = client.UpdateObjectStorageObjectACLConfigV2(context.TODO(), bucket.Region, bucket.Label, updateOpts); err != nil { t.Errorf("failed to update ACL config: %s", err) } - config, err = client.GetObjectStorageObjectACLConfig(context.TODO(), bucket.Cluster, bucket.Label, object) - if err != nil { - t.Errorf("failed to get updated ACL config: %s", err) - } - - if config.ACL != updateOpts.ACL { - t.Errorf("expected ACL config to be %s; got %s", updateOpts.ACL, config.ACL) - } - if config.ACLXML == "" { - t.Error("expected ACL XML to be included") - } - - configv2, err = client.GetObjectStorageObjectACLConfigV2(context.TODO(), bucket.Cluster, bucket.Label, object) + configv2, err = client.GetObjectStorageObjectACLConfigV2(context.TODO(), bucket.Region, bucket.Label, object) if err != nil { t.Errorf("failed to get ACL config: %s", err) } diff --git a/waitfor.go b/waitfor.go index c31f83d8b..9f6c72ade 100644 --- a/waitfor.go +++ b/waitfor.go @@ -476,64 +476,6 @@ func (client Client) WaitForImageRegionStatus(ctx context.Context, imageID, regi } } -// WaitForMySQLDatabaseBackup waits for the backup with the given label to be available. -// Deprecated: WaitForMySQLDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (client Client) WaitForMySQLDatabaseBackup(ctx context.Context, dbID int, label string, timeoutSeconds int) (*MySQLDatabaseBackup, error) { - ctx, cancel := context.WithTimeout(ctx, time.Duration(timeoutSeconds)*time.Second) - defer cancel() - - ticker := time.NewTicker(client.pollInterval) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - backups, err := client.ListMySQLDatabaseBackups(ctx, dbID, nil) - if err != nil { - return nil, err - } - - for _, backup := range backups { - if backup.Label == label { - return &backup, nil - } - } - case <-ctx.Done(): - return nil, fmt.Errorf("failed to wait for backup %s: %w", label, ctx.Err()) - } - } -} - -// WaitForPostgresDatabaseBackup waits for the backup with the given label to be available. -// Deprecated: WaitForPostgresDatabaseBackup is a deprecated method, as the backup endpoints are no longer supported in DBaaS V2. -// In DBaaS V2, databases can be backed up via database forking. -func (client Client) WaitForPostgresDatabaseBackup(ctx context.Context, dbID int, label string, timeoutSeconds int) (*PostgresDatabaseBackup, error) { - ctx, cancel := context.WithTimeout(ctx, time.Duration(timeoutSeconds)*time.Second) - defer cancel() - - ticker := time.NewTicker(client.pollInterval) - defer ticker.Stop() - - for { - select { - case <-ticker.C: - backups, err := client.ListPostgresDatabaseBackups(ctx, dbID, nil) - if err != nil { - return nil, err - } - - for _, backup := range backups { - if backup.Label == label { - return &backup, nil - } - } - case <-ctx.Done(): - return nil, fmt.Errorf("failed to wait for backup %s: %w", label, ctx.Err()) - } - } -} - type databaseStatusFunc func(ctx context.Context, client Client, dbID int) (DatabaseStatus, error) var databaseStatusHandlers = map[DatabaseEngineType]databaseStatusFunc{