interactions:
- request:
    body: ip=8.8.8.0%2F24&severity=no_access&comment=Google+DNS+is+ULTRA+BANNED
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN_2
      Connection:
      - keep-alive
      Content-Length:
      - '69'
      Content-Type:
      - application/x-www-form-urlencoded
      User-Agent:
      - tests/v311
    method: POST
    uri: http://localhost:3000/api/v1/admin/ip_blocks
  response:
    body:
      string: '{"id":"1","ip":"8.8.8.0/24","severity":"no_access","comment":"Google
        DNS is ULTRA BANNED","created_at":"2025-08-17T18:42:00.127Z","expires_at":null}'
    headers:
      Content-Length:
      - '148'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"9da0174c1ab7421d6a7d874ea81d1705"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=12.87, cache_generate.active_support;dur=1.08,
        cache_write.active_support;dur=0.09, instantiation.active_record;dur=0.33,
        start_processing.action_controller;dur=0.01, start_transaction.active_record;dur=0.01,
        transaction.active_record;dur=13.15, cache_delete.active_support;dur=0.01,
        render.active_model_serializers;dur=0.21, process_action.action_controller;dur=62.62
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.107464Z'
      x-request-id:
      - 4f59896b-231e-4cf9-85a9-d7350eae764a
      x-runtime:
      - '0.094642'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN_2
      Connection:
      - keep-alive
      User-Agent:
      - tests/v311
    method: GET
    uri: http://localhost:3000/api/v1/admin/ip_blocks/1
  response:
    body:
      string: '{"id":"1","ip":"8.8.8.0/24","severity":"no_access","comment":"Google
        DNS is ULTRA BANNED","created_at":"2025-08-17T18:42:00.127Z","expires_at":null}'
    headers:
      Content-Length:
      - '148'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"9da0174c1ab7421d6a7d874ea81d1705"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=2.39, cache_generate.active_support;dur=1.06,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=1.68,
        start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.23,
        process_action.action_controller;dur=31.56
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.193321Z'
      x-request-id:
      - 9ba3f5e0-6da0-4a49-bb9c-0a4598d4450f
      x-runtime:
      - '0.051499'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN_2
      Connection:
      - keep-alive
      User-Agent:
      - tests/v311
    method: GET
    uri: http://localhost:3000/api/v1/admin/ip_blocks
  response:
    body:
      string: '[{"id":"1","ip":"8.8.8.0/24","severity":"no_access","comment":"Google
        DNS is ULTRA BANNED","created_at":"2025-08-17T18:42:00.127Z","expires_at":null}]'
    headers:
      Content-Length:
      - '150'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"2c5459475b931f895cc5821844b14f0d"
      link:
      - <http://localhost:3000/api/v1/admin/ip_blocks?min_id=1>; rel="prev"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=1.07, cache_generate.active_support;dur=0.99,
        cache_write.active_support;dur=0.09, instantiation.active_record;dur=0.22,
        start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.24,
        process_action.action_controller;dur=27.68
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.250898Z'
      x-request-id:
      - 15b169b2-b01b-496f-b1fb-a55e7462c1d0
      x-runtime:
      - '0.044415'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: id=1&comment=Updated+test+block
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN_2
      Connection:
      - keep-alive
      Content-Length:
      - '31'
      Content-Type:
      - application/x-www-form-urlencoded
      User-Agent:
      - tests/v311
    method: PUT
    uri: http://localhost:3000/api/v1/admin/ip_blocks/1
  response:
    body:
      string: '{"id":"1","ip":"8.8.8.0/24","severity":"no_access","comment":"Updated
        test block","created_at":"2025-08-17T18:42:00.127Z","expires_at":null}'
    headers:
      Content-Length:
      - '140'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"24d529c0384f38a654a0b93e3d438051"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.02, sql.active_record;dur=10.70, cache_generate.active_support;dur=0.77,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.25,
        start_processing.action_controller;dur=0.00, unpermitted_parameters.action_controller;dur=0.00,
        start_transaction.active_record;dur=0.01, transaction.active_record;dur=10.03,
        cache_delete.active_support;dur=0.01, render.active_model_serializers;dur=0.19,
        process_action.action_controller;dur=40.23
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.304801Z'
      x-request-id:
      - 17eee5a1-cfdc-48f7-aca6-00bd29f6802f
      x-runtime:
      - '0.056481'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN_2
      Connection:
      - keep-alive
      Content-Length:
      - '0'
      User-Agent:
      - tests/v311
    method: DELETE
    uri: http://localhost:3000/api/v1/admin/ip_blocks/1
  response:
    body:
      string: '{}'
    headers:
      Content-Length:
      - '2'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"44136fa355b3678a1146ad16f7e8649e"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=9.22, cache_generate.active_support;dur=0.84,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.30,
        start_processing.action_controller;dur=0.00, start_transaction.active_record;dur=0.01,
        transaction.active_record;dur=8.29, cache_delete.active_support;dur=0.01,
        render.active_model_serializers;dur=0.02, process_action.action_controller;dur=39.12
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.372192Z'
      x-request-id:
      - 525e7421-a9cf-48ed-b7ca-cf7783a818c4
      x-runtime:
      - '0.055645'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN_2
      Connection:
      - keep-alive
      User-Agent:
      - tests/v311
    method: GET
    uri: http://localhost:3000/api/v1/admin/ip_blocks
  response:
    body:
      string: '[]'
    headers:
      Content-Length:
      - '2'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"4f53cda18c2baa0c0354bb5f9a3ecbe5"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.02, sql.active_record;dur=1.11, cache_generate.active_support;dur=1.32,
        cache_write.active_support;dur=0.06, instantiation.active_record;dur=0.17,
        start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.04,
        process_action.action_controller;dur=32.56
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.445043Z'
      x-request-id:
      - d6f0eea4-ffb5-47d2-a846-e655f7d7461c
      x-runtime:
      - '0.061239'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
- request:
    body: null
    headers:
      Accept:
      - '*/*'
      Accept-Encoding:
      - gzip, deflate, br
      Authorization:
      - Bearer __MASTODON_PY_TEST_ACCESS_TOKEN_2
      Connection:
      - keep-alive
      User-Agent:
      - tests/v311
    method: GET
    uri: http://localhost:3000/api/v1/admin/ip_blocks
  response:
    body:
      string: '[]'
    headers:
      Content-Length:
      - '2'
      cache-control:
      - private, no-store
      content-security-policy:
      - default-src 'none'; frame-ancestors 'none'; form-action 'none'
      content-type:
      - application/json; charset=utf-8
      etag:
      - W/"4f53cda18c2baa0c0354bb5f9a3ecbe5"
      referrer-policy:
      - strict-origin-when-cross-origin
      server-timing:
      - cache_read.active_support;dur=0.03, sql.active_record;dur=0.94, cache_generate.active_support;dur=0.93,
        cache_write.active_support;dur=0.08, instantiation.active_record;dur=0.19,
        start_processing.action_controller;dur=0.00, render.active_model_serializers;dur=0.04,
        process_action.action_controller;dur=26.70
      vary:
      - Authorization, Origin
      x-content-type-options:
      - nosniff
      x-frame-options:
      - SAMEORIGIN
      x-permitted-cross-domain-policies:
      - none
      x-ratelimit-limit:
      - '300'
      x-ratelimit-remaining:
      - '299'
      x-ratelimit-reset:
      - '2025-08-17T18:45:00.496895Z'
      x-request-id:
      - ced3623f-0677-4edb-a824-12a17ac13f31
      x-runtime:
      - '0.043606'
      x-xss-protection:
      - '0'
    status:
      code: 200
      message: OK
version: 1
