# Accesskeys

Per user access key.

This tag groups all operations for accesskeys.

## Retrieve all Accesskeys

> This endpoint enables retrieving all Accesskeys using\
> pagination and optional filters.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Object Storage Management API","version":"0.1.0"},"tags":[{"name":"Accesskeys","description":"Per user access key.\n\nThis tag groups all operations for accesskeys.\n"}],"servers":[{"url":"https://s3.ionos.com","description":"Production"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"parameters":{"paginationOffset":{"name":"offset","in":"query","description":"The first element (of the total list of elements) to include in the response. Use together with limit for pagination.","required":false,"schema":{"type":"integer","format":"int32","default":0,"minimum":0}},"paginationLimit":{"name":"limit","in":"query","description":"The maximum number of elements to return. Use together with offset for pagination.","required":false,"schema":{"type":"integer","format":"int32","default":100,"minimum":1,"maximum":1000}},"accesskeyId":{"name":"filter.accesskeyId","in":"query","description":"The accesskey ID to filter by.","required":false,"schema":{"type":"string"}}},"schemas":{"AccessKeyReadList":{"allOf":[{"type":"object","required":["id","type","href"],"properties":{"id":{"description":"ID of the list of AccessKey resources.","type":"string","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["collection"]},"href":{"description":"The URL of the list of AccessKey resources.","type":"string"},"items":{"description":"The list of AccessKey resources.","type":"array","items":{"$ref":"#/components/schemas/AccessKeyRead"}}}},{"$ref":"#/components/schemas/Pagination"}]},"AccessKeyRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the AccessKey.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["accesskey"]},"href":{"description":"The URL of the AccessKey.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithSupportedRegions"},"properties":{"$ref":"#/components/schemas/AccessKey"}}},"MetadataWithSupportedRegions":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["supportedRegions"],"properties":{"supportedRegions":{"type":"array","items":{"type":"string"},"description":"The list of supported regions.\n"}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED` - resource failed, details in `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"administrative":{"type":"boolean","description":"Indicates if the key is an administrative key. Administrative keys\ncan create buckets and set bucket policies.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"AccessKey":{"type":"object","description":"Per user access key.\n","required":["description","accessKey","secretKey"],"properties":{"description":{"type":"string","description":"Description of the Access key."},"accessKey":{"type":"string","description":"Access key metadata is a string of 92 characters.","readOnly":true},"secretKey":{"type":"string","description":"The secret key of the Access key.","readOnly":true},"canonicalUserId":{"type":"string","readOnly":true,"description":"The canonical user ID which is valid for user-owned buckets."},"contractUserId":{"type":"string","readOnly":true,"description":"The contract user ID which is valid for contract-owned buckets."}}},"Pagination":{"required":["offset","limit","_links"],"description":"Pagination information. The offset and limit parameters are used to\nnavigate the list of elements. The _links object contains URLs to\nnavigate the different pages.\n","type":"object","properties":{"offset":{"$ref":"#/components/schemas/Offset"},"limit":{"$ref":"#/components/schemas/Limit"},"_links":{"$ref":"#/components/schemas/Links"}}},"Offset":{"description":"The offset specified in the request (if none was specified, the default\noffset is 0).\n","type":"integer","minimum":0,"readOnly":true},"Limit":{"description":"The limit specified in the request (if none was specified, use the\nendpoint's default pagination limit).\n","type":"integer","minimum":0,"readOnly":true},"Links":{"description":"URLs to navigate the different pages. As of now we always only return a\nsingle page.\n","type":"object","properties":{"prev":{"description":"URL (with offset and limit parameters) of the previous page; only\npresent if offset is greater than 0.\n","type":"string","format":"uri","readOnly":true},"self":{"description":"URL (with offset and limit parameters) of the current page.\n","type":"string","format":"uri","readOnly":true},"next":{"description":"URL (with offset and limit parameters) of the next page; only\npresent if offset + limit is less than the total number of elements.\n","type":"string","format":"uri","readOnly":true}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/accesskeys":{"get":{"operationId":"accesskeysGet","summary":"Retrieve all Accesskeys","description":"This endpoint enables retrieving all Accesskeys using\npagination and optional filters.\n","parameters":[{"$ref":"#/components/parameters/paginationOffset"},{"$ref":"#/components/parameters/paginationLimit"},{"$ref":"#/components/parameters/accesskeyId"}],"tags":["Accesskeys"],"responses":{"200":{"description":"Returned all requested Accesskeys successfully.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyReadList"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Create AccessKey

> Creates a new AccessKey.\
> \
> The full AccessKey needs to be provided to create the object.\
> Optional data will be filled with defaults or left empty.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Object Storage Management API","version":"0.1.0"},"tags":[{"name":"Accesskeys","description":"Per user access key.\n\nThis tag groups all operations for accesskeys.\n"}],"servers":[{"url":"https://s3.ionos.com","description":"Production"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"schemas":{"AccessKeyCreate":{"type":"object","required":["properties"],"properties":{"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/AccessKey"}}},"AccessKey":{"type":"object","description":"Per user access key.\n","required":["description","accessKey","secretKey"],"properties":{"description":{"type":"string","description":"Description of the Access key."},"accessKey":{"type":"string","description":"Access key metadata is a string of 92 characters.","readOnly":true},"secretKey":{"type":"string","description":"The secret key of the Access key.","readOnly":true},"canonicalUserId":{"type":"string","readOnly":true,"description":"The canonical user ID which is valid for user-owned buckets."},"contractUserId":{"type":"string","readOnly":true,"description":"The contract user ID which is valid for contract-owned buckets."}}},"AccessKeyRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the AccessKey.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["accesskey"]},"href":{"description":"The URL of the AccessKey.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithSupportedRegions"},"properties":{"$ref":"#/components/schemas/AccessKey"}}},"MetadataWithSupportedRegions":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["supportedRegions"],"properties":{"supportedRegions":{"type":"array","items":{"type":"string"},"description":"The list of supported regions.\n"}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED` - resource failed, details in `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"administrative":{"type":"boolean","description":"Indicates if the key is an administrative key. Administrative keys\ncan create buckets and set bucket policies.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnsupportedMediaType":{"description":"### Unsupported Media Type\nThe request has an unsupported media type.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"### Unprocessable Entity\nThe request was well-formed but was unable to be followed due to semantic errors.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/accesskeys":{"post":{"operationId":"accesskeysPost","summary":"Create AccessKey","tags":["Accesskeys"],"description":"Creates a new AccessKey.\n\nThe full AccessKey needs to be provided to create the object.\nOptional data will be filled with defaults or left empty.\n","requestBody":{"description":"AccessKey to create.","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyCreate"}}}},"responses":{"201":{"description":"AccessKey successfully created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Retrieve AccessKey

> Returns the AccessKey by ID.

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Object Storage Management API","version":"0.1.0"},"tags":[{"name":"Accesskeys","description":"Per user access key.\n\nThis tag groups all operations for accesskeys.\n"}],"servers":[{"url":"https://s3.ionos.com","description":"Production"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"schemas":{"AccessKeyRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the AccessKey.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["accesskey"]},"href":{"description":"The URL of the AccessKey.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithSupportedRegions"},"properties":{"$ref":"#/components/schemas/AccessKey"}}},"MetadataWithSupportedRegions":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["supportedRegions"],"properties":{"supportedRegions":{"type":"array","items":{"type":"string"},"description":"The list of supported regions.\n"}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED` - resource failed, details in `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"administrative":{"type":"boolean","description":"Indicates if the key is an administrative key. Administrative keys\ncan create buckets and set bucket policies.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"AccessKey":{"type":"object","description":"Per user access key.\n","required":["description","accessKey","secretKey"],"properties":{"description":{"type":"string","description":"Description of the Access key."},"accessKey":{"type":"string","description":"Access key metadata is a string of 92 characters.","readOnly":true},"secretKey":{"type":"string","description":"The secret key of the Access key.","readOnly":true},"canonicalUserId":{"type":"string","readOnly":true,"description":"The canonical user ID which is valid for user-owned buckets."},"contractUserId":{"type":"string","readOnly":true,"description":"The contract user ID which is valid for contract-owned buckets."}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/accesskeys/{accesskeyId}":{"get":{"operationId":"accesskeysFindById","summary":"Retrieve AccessKey","tags":["Accesskeys"],"description":"Returns the AccessKey by ID.","parameters":[{"name":"accesskeyId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the AccessKey."}],"responses":{"200":{"description":"Getting AccessKey was successful.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Ensure AccessKey

> Ensures that the AccessKey with the provided ID is created or modified.\
> The full AccessKey needs to be provided to ensure\
> (either update or create) the AccessKey. Non present data will\
> only be filled with defaults or left empty, but not take\
> previous values into consideration.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Object Storage Management API","version":"0.1.0"},"tags":[{"name":"Accesskeys","description":"Per user access key.\n\nThis tag groups all operations for accesskeys.\n"}],"servers":[{"url":"https://s3.ionos.com","description":"Production"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"schemas":{"AccessKeyEnsure":{"type":"object","required":["id","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the AccessKey.","format":"uuid"},"metadata":{"description":"Metadata","additionalProperties":true},"properties":{"$ref":"#/components/schemas/AccessKey"}}},"AccessKey":{"type":"object","description":"Per user access key.\n","required":["description","accessKey","secretKey"],"properties":{"description":{"type":"string","description":"Description of the Access key."},"accessKey":{"type":"string","description":"Access key metadata is a string of 92 characters.","readOnly":true},"secretKey":{"type":"string","description":"The secret key of the Access key.","readOnly":true},"canonicalUserId":{"type":"string","readOnly":true,"description":"The canonical user ID which is valid for user-owned buckets."},"contractUserId":{"type":"string","readOnly":true,"description":"The contract user ID which is valid for contract-owned buckets."}}},"AccessKeyRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the AccessKey.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["accesskey"]},"href":{"description":"The URL of the AccessKey.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithSupportedRegions"},"properties":{"$ref":"#/components/schemas/AccessKey"}}},"MetadataWithSupportedRegions":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["supportedRegions"],"properties":{"supportedRegions":{"type":"array","items":{"type":"string"},"description":"The list of supported regions.\n"}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED` - resource failed, details in `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"administrative":{"type":"boolean","description":"Indicates if the key is an administrative key. Administrative keys\ncan create buckets and set bucket policies.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Conflict":{"description":"### Conflict\nThe UUID is already taken by another party, follow the guides to generate UUIDs uniquely.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnsupportedMediaType":{"description":"### Unsupported Media Type\nThe request has an unsupported media type.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnprocessableEntity":{"description":"### Unprocessable Entity\nThe request was well-formed but was unable to be followed due to semantic errors.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/accesskeys/{accesskeyId}":{"put":{"operationId":"accesskeysPut","summary":"Ensure AccessKey","tags":["Accesskeys"],"description":"Ensures that the AccessKey with the provided ID is created or modified.\nThe full AccessKey needs to be provided to ensure\n(either update or create) the AccessKey. Non present data will\nonly be filled with defaults or left empty, but not take\nprevious values into consideration.\n","parameters":[{"name":"accesskeyId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the AccessKey."}],"requestBody":{"description":"update AccessKey","required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyEnsure"}}}},"responses":{"200":{"description":"AccessKey successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyRead"}}}},"201":{"description":"AccessKey successfully ensured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"415":{"$ref":"#/components/responses/UnsupportedMediaType"},"422":{"$ref":"#/components/responses/UnprocessableEntity"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Delete AccessKey

> Deletes the specified AccessKey.

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Object Storage Management API","version":"0.1.0"},"tags":[{"name":"Accesskeys","description":"Per user access key.\n\nThis tag groups all operations for accesskeys.\n"}],"servers":[{"url":"https://s3.ionos.com","description":"Production"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"TooManyRequests":{"description":"### Too Many Requests\nThe user has sent too many requests in a given amount of time.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServiceUnavailable":{"description":"### Service Unavailable\nThe server is currently unable to handle the request due to a temporary overloading or maintenance of the server.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"UnexpectedError":{"description":"### Unexpected Internal Server Error\nAn unexpected internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"schemas":{"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}}},"paths":{"/accesskeys/{accesskeyId}":{"delete":{"operationId":"accesskeysDelete","summary":"Delete AccessKey","tags":["Accesskeys"],"description":"Deletes the specified AccessKey.","parameters":[{"name":"accesskeyId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the AccessKey."}],"responses":{"202":{"description":"Deleting AccessKey was successful."},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/TooManyRequests"},"500":{"$ref":"#/components/responses/InternalError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"},"default":{"$ref":"#/components/responses/UnexpectedError"}}}}}}
```

## Ensure AccessKey

> Renew will replace the existing secret access key with a new one.<br>

```json
{"openapi":"3.0.3","info":{"title":"IONOS Cloud - Object Storage Management API","version":"0.1.0"},"tags":[{"name":"Accesskeys","description":"Per user access key.\n\nThis tag groups all operations for accesskeys.\n"}],"servers":[{"url":"https://s3.ionos.com","description":"Production"}],"security":[{"tokenAuth":[]}],"components":{"securitySchemes":{"tokenAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"The token can be generated using the \n[Authentication API](https://api.ionos.com/docs/authentication/v1/#tag/tokens/operation/tokensGenerate).\n"}},"schemas":{"AccessKeyRead":{"type":"object","required":["id","type","href","metadata","properties"],"properties":{"id":{"type":"string","description":"The ID (UUID) of the AccessKey.","format":"uuid"},"type":{"description":"The type of the resource.","type":"string","enum":["accesskey"]},"href":{"description":"The URL of the AccessKey.","type":"string"},"metadata":{"$ref":"#/components/schemas/MetadataWithSupportedRegions"},"properties":{"$ref":"#/components/schemas/AccessKey"}}},"MetadataWithSupportedRegions":{"allOf":[{"$ref":"#/components/schemas/MetadataWithStatus"},{"type":"object","required":["supportedRegions"],"properties":{"supportedRegions":{"type":"array","items":{"type":"string"},"description":"The list of supported regions.\n"}}}]},"MetadataWithStatus":{"allOf":[{"$ref":"#/components/schemas/Metadata"},{"type":"object","required":["status"],"properties":{"status":{"type":"string","description":"The status of the object. The status can be:\n* `AVAILABLE` - resource exists and is healthy.\n* `PROVISIONING` - resource is being created or updated.\n* `DESTROYING` - delete command was issued, the resource is being deleted.\n* `FAILED` - resource failed, details in `failureMessage`.\n","enum":["PROVISIONING","DESTROYING","AVAILABLE","FAILED"],"readOnly":true},"statusMessage":{"type":"string","description":"The message of the failure if the status is `FAILED`.\n","readOnly":true},"administrative":{"type":"boolean","description":"Indicates if the key is an administrative key. Administrative keys\ncan create buckets and set bucket policies.\n","readOnly":true}}}]},"Metadata":{"type":"object","description":"Metadata of the resource.","properties":{"createdDate":{"type":"string","format":"date-time","description":"The ISO 8601 creation timestamp.","readOnly":true},"createdBy":{"type":"string","description":"Unique name of the identity that created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"Unique id of the identity that created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","format":"date-time","description":"The ISO 8601 modified timestamp.","readOnly":true},"lastModifiedBy":{"type":"string","description":"Unique name of the identity that last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"Unique id of the identity that last modified the resource.","readOnly":true},"resourceURN":{"type":"string","description":"Unique name of the resource.","readOnly":true}}},"AccessKey":{"type":"object","description":"Per user access key.\n","required":["description","accessKey","secretKey"],"properties":{"description":{"type":"string","description":"Description of the Access key."},"accessKey":{"type":"string","description":"Access key metadata is a string of 92 characters.","readOnly":true},"secretKey":{"type":"string","description":"The secret key of the Access key.","readOnly":true},"canonicalUserId":{"type":"string","readOnly":true,"description":"The canonical user ID which is valid for user-owned buckets."},"contractUserId":{"type":"string","readOnly":true,"description":"The contract user ID which is valid for contract-owned buckets."}}},"Error":{"description":"The Error object is used to represent an error response from the API.\n","type":"object","properties":{"httpStatus":{"type":"integer","description":"The HTTP status code of the operation."},"messages":{"type":"array","description":"A list of error messages.\n","items":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code\n"},"message":{"type":"string","description":"A human readable explanation specific to this occurrence of the\nproblem.\n"}}}}}}},"responses":{"BadRequest":{"description":"### Bad Request\nThe request send to the API was malformed.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"### Unauthorized\nThe request is missing authorization information or the authorization information provided are expired.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotAllowed":{"description":"### Not Allowed\nThe user issuing the request does not have the needed permissions.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"### Not Found\nThe resource that was requested could not be found.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Conflict":{"description":"### Conflict\nThe UUID is already taken by another party, follow the guides to generate UUIDs uniquely.\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"InternalError":{"description":"### Internal Server Error\nAn internal error occurred. We apologize for the inconvenience!\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"paths":{"/accesskeys/{accesskeyId}/renew":{"put":{"operationId":"accesskeysRenew","summary":"Ensure AccessKey","tags":["Accesskeys"],"description":"Renew will replace the existing secret access key with a new one.\n","parameters":[{"name":"accesskeyId","in":"path","schema":{"type":"string","format":"uuid"},"required":true,"description":"The ID (UUID) of the AccessKey that should be ensured."}],"responses":{"200":{"description":"AccessKey successfully updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyRead"}}}},"201":{"description":"AccessKey successfully ensured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccessKeyRead"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/NotAllowed"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"$ref":"#/components/responses/Conflict"},"500":{"$ref":"#/components/responses/InternalError"}}}}}}
```
