Laravel Object Storage Buckets API

The Object Storage Buckets API from Laravel — 2 operation(s) for object storage buckets.

OpenAPI Specification

laravel-object-storage-buckets-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Laravel Cloud Applications Object Storage Buckets API
  version: 0.0.1
servers:
- url: https://cloud.laravel.com/api
security:
- http: []
tags:
- name: Object Storage Buckets
paths:
  /buckets:
    get:
      operationId: public.buckets.index
      description: Get a list of all object storage buckets for the authenticated organization.
      summary: List object storage buckets
      tags:
      - Object Storage Buckets
      parameters:
      - name: filter[type]
        in: query
        schema:
          type: string
      - name: filter[status]
        in: query
        schema:
          type: string
      - name: filter[visibility]
        in: query
        schema:
          type: string
      - name: include
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - keys
        explode: false
      responses:
        '200':
          description: Paginated set of `FilesystemResource`
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FilesystemResource'
                  links:
                    type: object
                    properties:
                      first:
                        type: string
                      last:
                        type: string
                      prev:
                        type: string
                      next:
                        type: string
                  meta:
                    type: object
                    properties:
                      current_page:
                        type: integer
                        minimum: 1
                      from:
                        type:
                        - integer
                        - 'null'
                        minimum: 1
                      last_page:
                        type: integer
                        minimum: 1
                      links:
                        type: array
                        description: Generated paginator links.
                        items:
                          type: object
                          properties:
                            url:
                              type:
                              - string
                              - 'null'
                            label:
                              type: string
                            active:
                              type: boolean
                          required:
                          - url
                          - label
                          - active
                      path:
                        type:
                        - string
                        - 'null'
                        description: Base path for paginator generated URLs.
                      per_page:
                        type: integer
                        description: Number of items shown per page.
                        minimum: 0
                      to:
                        type:
                        - integer
                        - 'null'
                        description: Number of the last item in the slice.
                        minimum: 1
                      total:
                        type: integer
                        description: Total number of items being paginated.
                        minimum: 0
                    required:
                    - current_page
                    - from
                    - last_page
                    - links
                    - path
                    - per_page
                    - to
                    - total
                  included:
                    type: array
                    items:
                      $ref: '#/components/schemas/FilesystemKeyResource'
                required:
                - data
                - links
                - meta
        '401':
          description: An error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error overview.
                    examples:
                    - ''
                required:
                - message
        '403':
          $ref: '#/components/responses/AuthorizationException'
    post:
      operationId: public.buckets.store
      description: Create a new object storage bucket with an initial key.
      summary: Create object storage bucket
      tags:
      - Object Storage Buckets
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StoreFilesystemRequest'
      responses:
        '201':
          description: '`FilesystemResource`'
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/FilesystemResource'
                  included:
                    type: array
                    items:
                      $ref: '#/components/schemas/FilesystemKeyResource'
                required:
                - data
        '401':
          description: An error
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    description: Error overview.
                    examples:
                    - ''
                required:
                - message
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '422':
          $ref: '#/components/responses/ValidationException'
  /buckets/{filesystem}:
    get:
      operationId: public.buckets.show
      description: Get a specific object storage bucket.
      summary: Get object storage bucket
      tags:
      - Object Storage Buckets
      parameters:
      - name: filesystem
        in: path
        required: true
        description: The filesystem identifier
        schema:
          type: string
      - name: include
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - keys
        explode: false
      responses:
        '200':
          description: '`FilesystemResource`'
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/FilesystemResource'
                  included:
                    type: array
                    items:
                      $ref: '#/components/schemas/FilesystemKeyResource'
                required:
                - data
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '403':
          $ref: '#/components/responses/AuthorizationException'
    patch:
      operationId: public.buckets.update
      description: Update an object storage bucket.
      summary: Update object storage bucket
      tags:
      - Object Storage Buckets
      parameters:
      - name: filesystem
        in: path
        required: true
        description: The filesystem identifier
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFilesystemRequest'
      responses:
        '200':
          description: '`FilesystemResource`'
          content:
            application/vnd.api+json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/FilesystemResource'
                  included:
                    type: array
                    items:
                      $ref: '#/components/schemas/FilesystemKeyResource'
                required:
                - data
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '422':
          $ref: '#/components/responses/ValidationException'
    delete:
      operationId: public.buckets.destroy
      description: Delete an object storage bucket.
      summary: Delete object storage bucket
      tags:
      - Object Storage Buckets
      parameters:
      - name: filesystem
        in: path
        required: true
        description: The filesystem identifier
        schema:
          type: string
      responses:
        '204':
          description: No content
        '404':
          $ref: '#/components/responses/ModelNotFoundException'
        '403':
          $ref: '#/components/responses/AuthorizationException'
        '422':
          $ref: '#/components/responses/ValidationException'
components:
  schemas:
    FilesystemKeyPermission:
      type: string
      enum:
      - read_write
      - read_only
      title: FilesystemKeyPermission
    FilesystemStatus:
      type: string
      enum:
      - creating
      - updating
      - available
      - deleting
      - deleted
      - unknown
      title: FilesystemStatus
    FilesystemVisibility:
      type: string
      enum:
      - private
      - public
      title: FilesystemVisibility
    FilesystemResource:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - filesystems
        attributes:
          type: object
          properties:
            name:
              type: string
            type:
              $ref: '#/components/schemas/FilesystemType'
            status:
              $ref: '#/components/schemas/FilesystemStatus'
            visibility:
              $ref: '#/components/schemas/FilesystemVisibility'
            jurisdiction:
              $ref: '#/components/schemas/FilesystemJurisdiction'
            endpoint:
              type:
              - string
              - 'null'
            url:
              type:
              - string
              - 'null'
            allowed_origins:
              type: 'null'
            cors_settings:
              type: 'null'
            created_at:
              type:
              - string
              - 'null'
              format: date-time
          required:
          - name
          - type
          - status
          - visibility
          - jurisdiction
          - endpoint
          - url
          - allowed_origins
          - cors_settings
          - created_at
        relationships:
          type: object
          properties:
            keys:
              type: object
              properties:
                data:
                  type: array
                  items:
                    $ref: '#/components/schemas/FilesystemKeyResourceIdentifier'
              required:
              - data
      required:
      - id
      - type
      title: FilesystemResource
    FilesystemType:
      type: string
      enum:
      - cloudflare_r2
      title: FilesystemType
    StoreFilesystemRequest:
      type: object
      properties:
        name:
          type: string
          pattern: ^[a-z0-9_-]+$
          minLength: 3
          maxLength: 40
        visibility:
          $ref: '#/components/schemas/FilesystemVisibility'
        jurisdiction:
          $ref: '#/components/schemas/FilesystemJurisdiction'
        allowed_origins:
          type:
          - array
          - 'null'
          description: This field is deprecated and will be removed May 17th, 2026. Please use `cors_settings.allowed_origins` instead.
          items:
            type: string
            format: uri
        cors_settings:
          type: object
          properties:
            allowed_origins:
              type:
              - array
              - 'null'
              items:
                type: string
                format: uri
            allowed_methods:
              type:
              - array
              - 'null'
              items:
                $ref: '#/components/schemas/CorsHttpMethod'
              minItems: 1
            allowed_headers:
              type:
              - array
              - 'null'
              items:
                type: string
            expose_headers:
              type:
              - array
              - 'null'
              items:
                type: string
            max_age_seconds:
              type:
              - integer
              - 'null'
              minimum: 1
        key_name:
          type: string
          minLength: 3
          maxLength: 40
        key_permission:
          $ref: '#/components/schemas/FilesystemKeyPermission'
      required:
      - name
      - visibility
      - jurisdiction
      - key_name
      - key_permission
      title: StoreFilesystemRequest
    FilesystemKeyResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
          - filesystemKeys
        id:
          type: string
      required:
      - type
      - id
      title: FilesystemKeyResourceIdentifier
    CorsHttpMethod:
      type: string
      enum:
      - GET
      - POST
      - PUT
      - DELETE
      - HEAD
      title: CorsHttpMethod
    UpdateFilesystemRequest:
      type: object
      properties:
        name:
          type: string
          pattern: ^[a-z0-9_-]+$
          minLength: 3
          maxLength: 40
        visibility:
          $ref: '#/components/schemas/FilesystemVisibility'
        allowed_origins:
          type:
          - array
          - 'null'
          description: This field is deprecated and will be removed May 17th, 2026. Please use `cors_settings.allowed_origins` instead.
          items:
            type: string
            format: uri
        cors_settings:
          type: object
          properties:
            allowed_origins:
              type:
              - array
              - 'null'
              items:
                type: string
                format: uri
            allowed_methods:
              type:
              - array
              - 'null'
              items:
                $ref: '#/components/schemas/CorsHttpMethod'
              minItems: 1
            allowed_headers:
              type:
              - array
              - 'null'
              items:
                type: string
            expose_headers:
              type:
              - array
              - 'null'
              items:
                type: string
            max_age_seconds:
              type:
              - integer
              - 'null'
              minimum: 1
      title: UpdateFilesystemRequest
    FilesystemKeyResource:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
          - filesystemKeys
        attributes:
          type: object
          properties:
            name:
              type: string
            permission:
              $ref: '#/components/schemas/FilesystemKeyPermission'
            access_key_id:
              type:
              - string
              - 'null'
            access_key_secret:
              type:
              - string
              - 'null'
            created_at:
              type:
              - string
              - 'null'
              format: date-time
          required:
          - name
          - permission
          - access_key_id
          - access_key_secret
          - created_at
        relationships:
          type: object
          properties:
            filesystem:
              type: object
              properties:
                data:
                  anyOf:
                  - $ref: '#/components/schemas/FilesystemResourceIdentifier'
                  - type: 'null'
              required:
              - data
      required:
      - id
      - type
      title: FilesystemKeyResource
    FilesystemResourceIdentifier:
      type: object
      properties:
        type:
          type: string
          enum:
          - filesystems
        id:
          type: string
      required:
      - type
      - id
      title: FilesystemResourceIdentifier
    FilesystemJurisdiction:
      type: string
      enum:
      - default
      - eu
      title: FilesystemJurisdiction
  responses:
    ModelNotFoundException:
      description: Not found
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
            - message
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Errors overview.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
            - message
            - errors
    AuthorizationException:
      description: Authorization error
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                description: Error overview.
            required:
            - message
  securitySchemes:
    http:
      type: http
      description: The Bearer Token generated on the Cloud UI.
      scheme: bearer
      bearerFormat: bearer