> ## Documentation Index
> Fetch the complete documentation index at: https://bunnynet-cb9733c2-support-migration.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Update your Shield Zone configuration



## OpenAPI

````yaml https://api.bunny.net/shield/docs/v1/swagger.json patch /shield/shield-zone
openapi: 3.0.4
info:
  title: Bunny Shield API
  description: >-
    Bunny.net API for Bunny Shield (WAF, DDoS, Rate Limiting, Bot Detection,
    Access Lists & API Guardian).
  version: v1
servers:
  - url: https://api.bunny.net
security: []
paths:
  /shield/shield-zone:
    patch:
      tags:
        - Shield Zone
      summary: Update your Shield Zone configuration
      operationId: Update Shield Zone
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateShieldZoneRequest'
          text/json:
            schema:
              $ref: '#/components/schemas/UpdateShieldZoneRequest'
          application/*+json:
            schema:
              $ref: '#/components/schemas/UpdateShieldZoneRequest'
        required: true
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/UpdateShieldZoneResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateShieldZoneResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/UpdateShieldZoneResponse'
        '202':
          description: Accepted
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/CreateShieldZoneResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/CreateShieldZoneResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/CreateShieldZoneResponse'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/UnauthorizedResult'
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResult'
            text/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResult'
        '500':
          description: Internal Server Error
components:
  schemas:
    UpdateShieldZoneRequest:
      required:
        - shieldZoneId
      type: object
      properties:
        shieldZone:
          $ref: '#/components/schemas/ShieldZoneRequest'
        shieldZoneId:
          type: integer
          format: int64
      additionalProperties: false
    UpdateShieldZoneResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/UpdateShieldZoneRequest'
        error:
          $ref: '#/components/schemas/GenericRequestResponse'
      additionalProperties: false
    CreateShieldZoneResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/CreateShieldZoneRequest'
        error:
          $ref: '#/components/schemas/GenericRequestResponse'
      additionalProperties: false
      description: Response object for creating a new Shield Zone.
    UnauthorizedResult:
      type: object
      properties:
        statusCode:
          type: integer
          format: int32
      additionalProperties: false
    ShieldZoneRequest:
      type: object
      properties:
        shieldZoneId:
          type: integer
          format: int64
        premiumPlan:
          type: boolean
          nullable: true
          deprecated: true
        planType:
          $ref: '#/components/schemas/ShieldPlanType'
        learningMode:
          type: boolean
          nullable: true
        learningModeUntil:
          type: string
          format: date-time
          nullable: true
        wafEnabled:
          type: boolean
          nullable: true
        wafExecutionMode:
          $ref: '#/components/schemas/WAFExecutionMode'
        wafDisabledRules:
          uniqueItems: true
          type: array
          items:
            type: string
          nullable: true
        wafLogOnlyRules:
          uniqueItems: true
          type: array
          items:
            type: string
          nullable: true
        wafCustomRuleOrder:
          type: array
          items:
            type: integer
            format: int64
          nullable: true
        wafRequestHeaderLoggingEnabled:
          type: boolean
          nullable: true
        requestBodyLoggingEnabled:
          type: boolean
          nullable: true
        wafRequestIgnoredHeaders:
          uniqueItems: true
          type: array
          items:
            type: string
          nullable: true
        wafRealtimeThreatIntelligenceEnabled:
          type: boolean
          nullable: true
        wafProfileId:
          type: integer
          format: int32
          nullable: true
        wafEngineConfig:
          type: array
          items:
            $ref: '#/components/schemas/PullZoneWafConfigVariableModel'
          nullable: true
        wafRequestBodyLimitAction:
          $ref: '#/components/schemas/WAFPayloadLimitAction'
        wafResponseBodyLimitAction:
          $ref: '#/components/schemas/WAFPayloadLimitAction'
        dDoSShieldSensitivity:
          $ref: '#/components/schemas/DDoSShieldSensitivity'
        dDoSExecutionMode:
          $ref: '#/components/schemas/DDoSExecutionMode'
        dDoSChallengeWindow:
          type: integer
          format: int32
          nullable: true
        whitelabelResponsePages:
          type: boolean
          nullable: true
      additionalProperties: false
    GenericRequestResponse:
      type: object
      properties:
        statusCode:
          $ref: '#/components/schemas/HttpStatusCode'
        success:
          type: boolean
          description: Indicates whether the operation was successful.
        message:
          type: string
          description: Human-readable message describing the result of the operation.
          nullable: true
        errorKey:
          type: string
          description: Unique error key for programmatic error handling, if applicable.
          nullable: true
      additionalProperties: false
      description: >-
        Generic response object containing status information for API
        operations.
    CreateShieldZoneRequest:
      required:
        - pullZoneId
      type: object
      properties:
        shieldZone:
          $ref: '#/components/schemas/ShieldZoneRequest'
        pullZoneId:
          type: integer
          format: int64
      additionalProperties: false
      description: Represents a request to create a new Shield Zone.
    ShieldPlanType:
      enum:
        - 0
        - 1
        - 2
        - 3
      type: integer
      description: |-
        0 = Basic
        1 = Advanced
        2 = Business
        3 = Enterprise
      format: int32
      x-enum-varnames:
        - Basic
        - Advanced
        - Business
        - Enterprise
    WAFExecutionMode:
      enum:
        - 0
        - 1
      type: integer
      description: |-
        0 = Log
        1 = Block
      format: int32
      x-enum-varnames:
        - Log
        - Block
    PullZoneWafConfigVariableModel:
      required:
        - name
        - valueEncoded
      type: object
      properties:
        name:
          type: string
          nullable: true
        valueEncoded:
          type: string
          nullable: true
      additionalProperties: false
    WAFPayloadLimitAction:
      enum:
        - 0
        - 1
        - 2
      type: integer
      description: |-
        0 = Block
        1 = Log
        2 = Ignore
      format: int32
      x-enum-varnames:
        - Block
        - Log
        - Ignore
    DDoSShieldSensitivity:
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      type: integer
      description: |-
        0 = Off
        1 = Low
        2 = Medium
        3 = High
        4 = Challenge
      format: int32
      x-enum-varnames:
        - 'Off'
        - Low
        - Medium
        - High
        - Challenge
    DDoSExecutionMode:
      enum:
        - 0
        - 1
      type: integer
      description: |-
        0 = Log
        1 = Block
      format: int32
      x-enum-varnames:
        - Log
        - Block
    HttpStatusCode:
      enum:
        - 100
        - 101
        - 102
        - 103
        - 200
        - 201
        - 202
        - 203
        - 204
        - 205
        - 206
        - 207
        - 208
        - 226
        - 300
        - 301
        - 302
        - 303
        - 304
        - 305
        - 306
        - 307
        - 308
        - 400
        - 401
        - 402
        - 403
        - 404
        - 405
        - 406
        - 407
        - 408
        - 409
        - 410
        - 411
        - 412
        - 413
        - 414
        - 415
        - 416
        - 417
        - 421
        - 422
        - 423
        - 424
        - 426
        - 428
        - 429
        - 431
        - 451
        - 500
        - 501
        - 502
        - 503
        - 504
        - 505
        - 506
        - 507
        - 508
        - 510
        - 511
      type: integer
      description: |-
        100 = Continue
        101 = SwitchingProtocols
        102 = Processing
        103 = EarlyHints
        200 = OK
        201 = Created
        202 = Accepted
        203 = NonAuthoritativeInformation
        204 = NoContent
        205 = ResetContent
        206 = PartialContent
        207 = MultiStatus
        208 = AlreadyReported
        226 = IMUsed
        300 = MultipleChoices
        300 = Ambiguous
        301 = MovedPermanently
        301 = Moved
        302 = Found
        302 = Redirect
        303 = SeeOther
        303 = RedirectMethod
        304 = NotModified
        305 = UseProxy
        306 = Unused
        307 = TemporaryRedirect
        307 = RedirectKeepVerb
        308 = PermanentRedirect
        400 = BadRequest
        401 = Unauthorized
        402 = PaymentRequired
        403 = Forbidden
        404 = NotFound
        405 = MethodNotAllowed
        406 = NotAcceptable
        407 = ProxyAuthenticationRequired
        408 = RequestTimeout
        409 = Conflict
        410 = Gone
        411 = LengthRequired
        412 = PreconditionFailed
        413 = RequestEntityTooLarge
        414 = RequestUriTooLong
        415 = UnsupportedMediaType
        416 = RequestedRangeNotSatisfiable
        417 = ExpectationFailed
        421 = MisdirectedRequest
        422 = UnprocessableEntity
        422 = UnprocessableContent
        423 = Locked
        424 = FailedDependency
        426 = UpgradeRequired
        428 = PreconditionRequired
        429 = TooManyRequests
        431 = RequestHeaderFieldsTooLarge
        451 = UnavailableForLegalReasons
        500 = InternalServerError
        501 = NotImplemented
        502 = BadGateway
        503 = ServiceUnavailable
        504 = GatewayTimeout
        505 = HttpVersionNotSupported
        506 = VariantAlsoNegotiates
        507 = InsufficientStorage
        508 = LoopDetected
        510 = NotExtended
        511 = NetworkAuthenticationRequired
      format: int32
      x-enum-varnames:
        - Continue
        - SwitchingProtocols
        - Processing
        - EarlyHints
        - OK
        - Created
        - Accepted
        - NonAuthoritativeInformation
        - NoContent
        - ResetContent
        - PartialContent
        - MultiStatus
        - AlreadyReported
        - IMUsed
        - MultipleChoices
        - Ambiguous
        - MovedPermanently
        - Moved
        - Found
        - Redirect
        - SeeOther
        - RedirectMethod
        - NotModified
        - UseProxy
        - Unused
        - TemporaryRedirect
        - RedirectKeepVerb
        - PermanentRedirect
        - BadRequest
        - Unauthorized
        - PaymentRequired
        - Forbidden
        - NotFound
        - MethodNotAllowed
        - NotAcceptable
        - ProxyAuthenticationRequired
        - RequestTimeout
        - Conflict
        - Gone
        - LengthRequired
        - PreconditionFailed
        - RequestEntityTooLarge
        - RequestUriTooLong
        - UnsupportedMediaType
        - RequestedRangeNotSatisfiable
        - ExpectationFailed
        - MisdirectedRequest
        - UnprocessableEntity
        - UnprocessableContent
        - Locked
        - FailedDependency
        - UpgradeRequired
        - PreconditionRequired
        - TooManyRequests
        - RequestHeaderFieldsTooLarge
        - UnavailableForLegalReasons
        - InternalServerError
        - NotImplemented
        - BadGateway
        - ServiceUnavailable
        - GatewayTimeout
        - HttpVersionNotSupported
        - VariantAlsoNegotiates
        - InsufficientStorage
        - LoopDetected
        - NotExtended
        - NetworkAuthenticationRequired

````