Skip to main content
REST API reference

Update an S3 bucket configuration for an SVM

PATCH /protocols/s3/services/{svm.uuid}/buckets/{uuid}

Introduced In: 9.7

Updates the S3 bucket configuration of an SVM.

Important notes

  • The following fields can be modified for a bucket:

    • comment - Any information related to the bucket.

    • size - Bucket size.

    • policy - An access policy for resources (buckets and objects) that defines their permissions. New policies are created after existing policies are deleted. To retain any of the existing policy statements, you need to specify those statements again. Policy conditions can also be modified using this API.

    • qos_policy - A QoS policy for buckets.

    • audit_event_selector - Audit policy for buckets. None can be specified for both access and permission to remove audit event selector.

    • versioning_state - Versioning state for buckets.

    • nas_path - NAS path to which the NAS bucket corresponds to.

    • retention.default_period - Specifies the duration of default-retention applicable for objects on the object store bucket.

    • `cors' - Specifying CORS rules enables the bucket to service the cross-origin requests. New CORS rules are created after existing rules are deleted. To retain any of the existing rules, you need to specify those CORS rules again. To remove all the existing CORS rules, specify an empty CORS rules list.

    • snapshot_policy - Snapshot policy for the bucket.

  • vserver object-store-server bucket modify

  • vserver object-store-server bucket policy statement modify

  • vserver object-store-server bucket policy-statement-condition modify

  • vserver object-store-server bucket cors-rule create

  • vserver object-store-server bucket cors-rule delete

Parameters

Name Type In Required Description

uuid

string

path

True

The unique identifier of the bucket.

return_timeout

integer

query

False

The number of seconds to allow the call to execute before returning. When doing a POST, PATCH, or DELETE operation on a single record, the default is 0 seconds. This means that if an asynchronous operation is started, the server immediately returns HTTP code 202 (Accepted) along with a link to the job. If a non-zero value is specified for POST, PATCH, or DELETE operations, ONTAP waits that length of time to see if the job completes so it can return something other than 202.

  • Default value: 1

  • Max value: 120

  • Min value: 0

svm.uuid

string

path

True

UUID of the SVM to which this object belongs.

Request Body

Name Type Description

audit_event_selector

audit_event_selector

Event selector allows you to specify access and permission types to audit.

comment

string

Can contain any additional information about the bucket being created or modified.

cors

cors

Cross-origin resource sharing (CORS) specifies an object associated with a bucket. The CORS configuration enables the bucket to service the cross-origin requests. A request might typically come from an origin with a domain that is different to that of the bucket. By configuring a CORS rule, you can define a combination of allowed origins, HTTP headers and methods that a bucket can use to filter out the cross-origin requests that it can service successfully.

encryption

encryption

lifecycle_management

lifecycle_management

Lifecycle management is implemented as an object associated with a bucket. It defines rules to be applied against objects within a bucket. These rules are applied in the background and can delete objects.

logical_used_size

integer

Specifies the bucket logical used size up to this point. This field cannot be set using the PATCH method.

nas_path

string

Specifies the NAS path to which the nas bucket corresponds to.

policy

policy

A policy is an object associated with a bucket. It defines resource (bucket, folder, or object) permissions. These policies get evaluated when an S3 user makes a request by executing a specific command. The user must be part of the principal (user or group) specified in the policy. Permissions in the policies determine whether the request is allowed or denied.

protection_status

protection_status

Specifies attributes of bucket protection.

qos_policy

qos_policy

Specifies "qos_policy.max_throughput_iops" and/or "qos_policy.max_throughput_mbps" or "qos_policy.min_throughput_iops" and/or "qos_policy.min_throughput_mbps". Specifying "min_throughput_iops" or "min_throughput_mbps" is only supported on volumes hosted on a node that is flash optimized. A pre-created QoS policy can also be used by specifying "qos_policy.name" or "qos_policy.uuid" properties. Setting or assigning a QoS policy to a bucket is not supported if its containing volume or SVM already has a QoS policy attached.

retention

retention

Specifies the retention mode and default retention period configured on the bucket.

role

string

Specifies the role of the bucket. This field cannot be set in a POST method.

size

integer

Specifies the bucket size in bytes; ranges from 190MB to 62PB.

snapshot_policy

snapshot_policy

Specifies the bucket snapshot policy.

svm

svm

SVM, applies only to SVM-scoped objects.

type

string

Specifies the bucket type. Valid values are "s3"and "nas". This field cannot be set using the PATCH method.

uuid

string

Specifies the unique identifier of the bucket. This field cannot be specified in a POST or PATCH method.

versioning_state

string

Specifies the versioning state of the bucket. Valid values are "disabled", "enabled" or "suspended". Note that the versioning state cannot be modified to 'disabled' from any other state.

volume

volume

Specifies the FlexGroup volume name and UUID where the bucket is hosted. This field cannot be set in a POST method.

Example request
{
  "audit_event_selector": {
    "access": "string",
    "permission": "string"
  },
  "comment": "S3 bucket.",
  "cors": {
    "rules": [
      {
        "allowed_headers": [
          "x-amz-request-id"
        ],
        "allowed_methods": [
          "PUT",
          "DELETE"
        ],
        "allowed_origins": [
          "http://www.example.com"
        ],
        "expose_headers": [
          "x-amz-date"
        ],
        "id": "string",
        "max_age_seconds": 1024
      }
    ]
  },
  "lifecycle_management": {
    "rules": [
      {
        "expiration": {
          "object_age_days": 100,
          "object_expiry_date": "2039-09-22 20:00:00 -0400"
        },
        "svm": {
          "name": "svm1",
          "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
        },
        "uuid": "414b29a1-3b26-11e9-bd58-0050568ea055"
      }
    ]
  },
  "logical_used_size": 0,
  "nas_path": "/",
  "policy": {
    "statements": [
      {
        "actions": [
          "GetObject",
          "PutObject",
          "DeleteObject",
          "ListBucket"
        ],
        "conditions": [
          {
            "delimiters": [
              "/"
            ],
            "max_keys": [
              1000
            ],
            "operator": "ip_address",
            "prefixes": [
              "pref"
            ],
            "source_ips": [
              "1.1.1.1",
              "1.2.2.0/24"
            ],
            "usernames": [
              "user1"
            ]
          }
        ],
        "effect": "allow",
        "principals": [
          "user1",
          "group/grp1",
          "nasgroup/group1"
        ],
        "resources": [
          "bucket1",
          "bucket1/*"
        ],
        "sid": "FullAccessToUser1"
      }
    ]
  },
  "qos_policy": {
    "max_throughput_iops": 10000,
    "max_throughput_mbps": 500,
    "min_throughput_iops": 2000,
    "min_throughput_mbps": 500,
    "name": "performance",
    "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
  },
  "retention": {
    "default_period": "P10Y"
  },
  "role": "string",
  "size": 819200000,
  "snapshot_policy": {
    "name": "default-1weekly",
    "uuid": "3675af31-431c-12fa-114a-20675afebc12"
  },
  "svm": {
    "name": "svm1",
    "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
  },
  "type": "s3",
  "uuid": "string",
  "versioning_state": "enabled",
  "volume": {
    "name": "volume1",
    "uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
  }
}

Response

Status: 200, Ok
Name Type Description

job

job_link

Example response
{
  "job": {
    "uuid": "string"
  }
}

Response

Status: 202, Accepted

Error

Status: Default

ONTAP Error Response Codes

Error code Message

92405778

"Failed to modify bucket "{bucket name}" for SVM "{svm.name}". Reason: {Reason for failure}. ";

92405846

"Failed to modify the object store volume. Reason: {Reason for failure}.";

92405811

"Failed to modify bucket "{bucket name}" for SVM "{svm.name}". Wait a few minutes and try the operation again.";

92405858

"Failed to "modify" the "bucket" because the operation is only supported on data SVMs.";

92405861

"The specified "{parameter field}", "{parameter value}", does not exist.";

92405863

"Failed to create access policies for bucket "{bucket name}". Reason: "Principal list can have a maximum of 10 entries.". Resolve all the issues and retry the operation.";

92405864

"An error occurs when deleting an access policy. The reason for failure is detailed in the error message.";

92405891

The resources specified in the access policy are not valid. Valid ways to specify a resource are *, <bucket-name>, <bucket-name>/…​/…​. Valid characters for a resource are 0-9, A-Z, a-z, _, +, comma, ;, :, =, ., &, @,?, (, ), single quote, *, !, - and $.

92405894

"Statements, principals and resources list can have a maximum of 10 entries.";

92405897

The principals specified in the access policy are not in the correct format. User name must be in between 1 and 64 characters. Valid characters for a user name are 0-9, A-Z, a-z, _, +, =, comma, ., @, and - .

92405898

"The SID specified in the access policy is not valid. Valid characters for a SID are 0-9, A-Z and a-z.";

92405940

"The specified condition key is not valid for operator "ip-address". Valid choices of keys for this operator: source-ips.";

92406014

"Failed to modify event selector for bucket "{bucket name}". If value of either access or permission is set to none, then the other must be set to none as well.";

92406032

"Modifying the NAS path for a NAS bucket is not supported.";

92406230

"The value for "retention.default_period" parameter for object store bucket "<bucket>" cannot be greater than the maximum lock retention period set in the object store server for SVM "<SVM>". Check the maximum allowed lock retention period present in the object store server for SVM "<SVM>" and try the operation again.";

92406236

"The value for "retention.default_period" parameter for object store bucket "<bucket>" cannot be less than the minimum lock retention period set in the object store server for SVM "<SVM>". Check the minimum allowed lock retention period present in the object store server for SVM "<SVM>" and try the operation again.";

92406217

"The specified "allowed_headers" is not valid because it contains more than one wild card ("*") character.";

92406224

"A Cross-Origin Resource Sharing (CORS) rule must have an origin and HTTP method specified.";

92406222

"Cannot specify Cross-Origin Resource Sharing (CORS) configuration for object store bucket "<bucket>" on SVM "<SVM>". Specifying such configuration is supported on object store volumes created in ONTAP 9.8 or later releases only.";

92406211

"The specified method "DONE" is not valid. Valid methods are GET, PUT, DELETE, HEAD, and POST.";

92405863

"Failed to create CORS rules for bucket "bb1". Reason: "Field "index" cannot be specified for this operation.". Resolve all the issues and retry the operation.";

92406228

"Cannot exceed the maximum limit of 100 Cross-Origin Resource Sharing (CORS) rules per S3 bucket "<bucket>" in SVM "<SVM>".";;

Definitions

See Definitions

href

Name Type Description

href

string

aggregates

Aggregate

Name Type Description

name

string

uuid

string

audit_event_selector

Event selector allows you to specify access and permission types to audit.

Name Type Description

access

string

Specifies read and write access types.

permission

string

Specifies allow and deny permission types.

rules

Information about the CORS rule of an S3 bucket.

Name Type Description

allowed_headers

array[string]

An array of HTTP headers allowed in the cross-origin requests.

allowed_methods

array[string]

An array of HTTP methods allowed in the cross-origin requests.

allowed_origins

array[string]

List of origins from where a cross-origin request is allowed to originate from for the S3 bucket.

expose_headers

array[string]

List of extra headers sent in the response that customers can access from their applications.

id

string

Bucket CORS rule identifier. The length of the name can range from 0 to 256 characters.

max_age_seconds

integer

The time in seconds for your browser to cache the preflight response for the specified resource.

cors

Cross-origin resource sharing (CORS) specifies an object associated with a bucket. The CORS configuration enables the bucket to service the cross-origin requests. A request might typically come from an origin with a domain that is different to that of the bucket. By configuring a CORS rule, you can define a combination of allowed origins, HTTP headers and methods that a bucket can use to filter out the cross-origin requests that it can service successfully.

Name Type Description

rules

array[rules]

Specifies an object store bucket CORS rule.

encryption

Name Type Description

enabled

boolean

Specifies whether encryption is enabled on the bucket. By default, encryption is disabled on a bucket. This field cannot be set in a POST or PATCH method.

abort_incomplete_multipart_upload

Specifies a way to perform abort_incomplete_multipart_upload action on filtered objects within a bucket. It cannot be specified with tags.

Name Type Description

after_initiation_days

integer

Number of days of initiation after which uploads can be aborted.

expiration

Specifies a way to perform expiration action on filtered objects within a bucket.

Name Type Description

expired_object_delete_marker

boolean

Cleanup object delete markers.

object_age_days

integer

Number of days since creation after which objects can be deleted. This cannot be used along with object_expiry_date.

object_expiry_date

string

Specific date from when objects can expire. This cannot be used with object_age_days.

non_current_version_expiration

Specifies a way to perform non_current_version_expiration action on filtered objects within a bucket.

Name Type Description

new_non_current_versions

integer

Number of latest non-current versions to be retained.

non_current_days

integer

Number of days after which non-current versions can be deleted.

object_filter

Specifies a way to filter objects within a bucket.

Name Type Description

prefix

string

A prefix that is matched against object-names within a bucket.

size_greater_than

integer

Size of the object greater than specified for which the corresponding lifecycle rule is to be applied.

size_less_than

integer

Size of the object smaller than specified for which the corresponding lifecycle rule is to be applied.

tags

array[string]

An array of key-value paired tags of the form or <tag=value>.

svm

Specifies the name of the SVM where this bucket exists.

Name Type Description

name

string

The name of the SVM. This field cannot be specified in a PATCH method.

uuid

string

The unique identifier of the SVM. This field cannot be specified in a PATCH method.

rules

Information about the lifecycle management rule of a bucket.

Name Type Description

abort_incomplete_multipart_upload

abort_incomplete_multipart_upload

Specifies a way to perform abort_incomplete_multipart_upload action on filtered objects within a bucket. It cannot be specified with tags.

enabled

boolean

Specifies whether or not the associated rule is enabled.

expiration

expiration

Specifies a way to perform expiration action on filtered objects within a bucket.

non_current_version_expiration

non_current_version_expiration

Specifies a way to perform non_current_version_expiration action on filtered objects within a bucket.

svm

svm

Specifies the name of the SVM where this bucket exists.

uuid

string

Specifies the unique identifier of the bucket.

lifecycle_management

Lifecycle management is implemented as an object associated with a bucket. It defines rules to be applied against objects within a bucket. These rules are applied in the background and can delete objects.

Name Type Description

rules

array[rules]

Specifies an object store lifecycle management policy. This field cannot be set using the PATCH method.

s3_bucket_policy_condition

Information about policy conditions based on various condition operators and condition keys.

Name Type Description

delimiters

array[string]

An array of delimiters that are compared with the delimiter value specified at the time of execution of an S3-based command, using the condition operator specified.

max_keys

array[integer]

An array of maximum keys that are allowed or denied to be retrieved using an S3 list operation, based on the condition operator specified.

operator

string

Condition operator that is applied to the specified condition key.

prefixes

array[string]

An array of prefixes that are compared with the input prefix value specified at the time of execution of an S3-based command, using the condition operator specified.

source_ips

array[string]

An array of IP address ranges that are compared with the IP address of a source command at the time of execution of an S3-based command, using the condition operator specified.

usernames

array[string]

An array of usernames that a current user in the context is evaluated against using the condition operators.

s3_bucket_policy_statement

Specifies information about a single access permission.

Name Type Description

actions

array[string]

conditions

array[s3_bucket_policy_condition]

Specifies bucket policy conditions.

effect

string

Specifies whether access is allowed or denied when a user requests the specific action. If access (to allow) is not granted explicitly to a resource, access is implicitly denied. Access can also be denied explicitly to a resource, in order to make sure that a user cannot access it, even if a different policy grants access.

principals

array[string]

resources

array[string]

sid

string

Specifies the statement identifier used to differentiate between statements. The sid length can range from 1 to 256 characters and can only contain the following combination of characters 0-9, A-Z, and a-z. Special characters are not valid.

policy

A policy is an object associated with a bucket. It defines resource (bucket, folder, or object) permissions. These policies get evaluated when an S3 user makes a request by executing a specific command. The user must be part of the principal (user or group) specified in the policy. Permissions in the policies determine whether the request is allowed or denied.

Name Type Description

statements

array[s3_bucket_policy_statement]

Specifies bucket access policy statement.

destination

Name Type Description

is_cloud

boolean

Specifies whether a bucket is protected within the Cloud.

is_external_cloud

boolean

Specifies whether a bucket is protected on external Cloud providers.

is_ontap

boolean

Specifies whether a bucket is protected within ONTAP.

  • Default value: 1

  • readOnly: 1

  • Introduced in: 9.10

  • x-nullable: true

protection_status

Specifies attributes of bucket protection.

Name Type Description

destination

destination

is_protected

boolean

Specifies whether a bucket is a source and if it is protected within ONTAP and/or an external cloud. This field cannot be set in a POST method.

  • Default value: 1

  • readOnly: 1

  • Introduced in: 9.10

  • x-nullable: true

qos_policy

Specifies "qos_policy.max_throughput_iops" and/or "qos_policy.max_throughput_mbps" or "qos_policy.min_throughput_iops" and/or "qos_policy.min_throughput_mbps". Specifying "min_throughput_iops" or "min_throughput_mbps" is only supported on volumes hosted on a node that is flash optimized. A pre-created QoS policy can also be used by specifying "qos_policy.name" or "qos_policy.uuid" properties. Setting or assigning a QoS policy to a bucket is not supported if its containing volume or SVM already has a QoS policy attached.

Name Type Description

max_throughput_iops

integer

Specifies the maximum throughput in IOPS, 0 means none. This is mutually exclusive with name and UUID during POST and PATCH.

max_throughput_mbps

integer

Specifies the maximum throughput in Megabytes per sec, 0 means none. This is mutually exclusive with name and UUID during POST and PATCH.

min_throughput_iops

integer

Specifies the minimum throughput in IOPS, 0 means none. Setting "min_throughput" is supported on AFF platforms only, unless FabricPool tiering policies are set. This is mutually exclusive with name and UUID during POST and PATCH.

min_throughput_mbps

integer

Specifies the minimum throughput in Megabytes per sec, 0 means none. This is mutually exclusive with name and UUID during POST and PATCH.

name

string

The QoS policy group name. This is mutually exclusive with UUID and other QoS attributes during POST and PATCH.

uuid

string

The QoS policy group UUID. This is mutually exclusive with name and other QoS attributes during POST and PATCH.

retention

Specifies the retention mode and default retention period configured on the bucket.

Name Type Description

default_period

string

Specifies the default retention period that is applied to objects while committing them to the WORM state without an associated retention period. The retention period can be in years, or days. The retention period value represents a duration and must be specified in the ISO-8601 duration format. A period specified for years and days is represented in the ISO-8601 format as "PY" and "PD" respectively, for example "P10Y" represents a duration of 10 years. The period string must contain only a single time element that is, either years, or days. A duration which combines different periods is not supported, for example "P1Y10D" is not supported.

snapshot_policy

Specifies the bucket snapshot policy.

Name Type Description

name

string

Specifies the name of the snapshot policy.

uuid

string

Specifies the unique identifier of the snapshot policy.

svm

SVM, applies only to SVM-scoped objects.

Name Type Description

name

string

The name of the SVM. This field cannot be specified in a PATCH method.

uuid

string

The unique identifier of the SVM. This field cannot be specified in a PATCH method.

volume

Specifies the FlexGroup volume name and UUID where the bucket is hosted. This field cannot be set in a POST method.

Name Type Description

name

string

The name of the volume. This field cannot be specified in a PATCH method.

uuid

string

Unique identifier for the volume. This corresponds to the instance-uuid that is exposed in the CLI and ONTAPI. It does not change due to a volume move.

  • example: 028baa66-41bd-11e9-81d5-00a0986138f7

  • Introduced in: 9.6

  • x-nullable: true

s3_bucket_svm

A bucket is a container of objects. Each bucket defines an object namespace. S3 requests specify objects using a bucket-name and object-name pair. An object resides within a bucket.

Name Type Description

audit_event_selector

audit_event_selector

Event selector allows you to specify access and permission types to audit.

comment

string

Can contain any additional information about the bucket being created or modified.

cors

cors

Cross-origin resource sharing (CORS) specifies an object associated with a bucket. The CORS configuration enables the bucket to service the cross-origin requests. A request might typically come from an origin with a domain that is different to that of the bucket. By configuring a CORS rule, you can define a combination of allowed origins, HTTP headers and methods that a bucket can use to filter out the cross-origin requests that it can service successfully.

encryption

encryption

lifecycle_management

lifecycle_management

Lifecycle management is implemented as an object associated with a bucket. It defines rules to be applied against objects within a bucket. These rules are applied in the background and can delete objects.

logical_used_size

integer

Specifies the bucket logical used size up to this point. This field cannot be set using the PATCH method.

nas_path

string

Specifies the NAS path to which the nas bucket corresponds to.

policy

policy

A policy is an object associated with a bucket. It defines resource (bucket, folder, or object) permissions. These policies get evaluated when an S3 user makes a request by executing a specific command. The user must be part of the principal (user or group) specified in the policy. Permissions in the policies determine whether the request is allowed or denied.

protection_status

protection_status

Specifies attributes of bucket protection.

qos_policy

qos_policy

Specifies "qos_policy.max_throughput_iops" and/or "qos_policy.max_throughput_mbps" or "qos_policy.min_throughput_iops" and/or "qos_policy.min_throughput_mbps". Specifying "min_throughput_iops" or "min_throughput_mbps" is only supported on volumes hosted on a node that is flash optimized. A pre-created QoS policy can also be used by specifying "qos_policy.name" or "qos_policy.uuid" properties. Setting or assigning a QoS policy to a bucket is not supported if its containing volume or SVM already has a QoS policy attached.

retention

retention

Specifies the retention mode and default retention period configured on the bucket.

role

string

Specifies the role of the bucket. This field cannot be set in a POST method.

size

integer

Specifies the bucket size in bytes; ranges from 190MB to 62PB.

snapshot_policy

snapshot_policy

Specifies the bucket snapshot policy.

svm

svm

SVM, applies only to SVM-scoped objects.

type

string

Specifies the bucket type. Valid values are "s3"and "nas". This field cannot be set using the PATCH method.

uuid

string

Specifies the unique identifier of the bucket. This field cannot be specified in a POST or PATCH method.

versioning_state

string

Specifies the versioning state of the bucket. Valid values are "disabled", "enabled" or "suspended". Note that the versioning state cannot be modified to 'disabled' from any other state.

volume

volume

Specifies the FlexGroup volume name and UUID where the bucket is hosted. This field cannot be set in a POST method.

Name Type Description

uuid

string

The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation.

error_arguments

Name Type Description

code

string

Argument code

message

string

Message argument

returned_error

Name Type Description

arguments

array[error_arguments]

Message arguments

code

string

Error code

message

string

Error message

target

string

The target parameter that caused the error.