{
  "schema": "ratelimitly.api-key-v1-test-vectors/1",
  "format_version": 1,
  "valid_credentials": [
    {
      "name": "default_none",
      "auth_method": "none",
      "key_id": "72623859790382856",
      "quota_word_hex_le": "50b1f2f8",
      "quotas": {
        "rate_buckets_max": 65536,
        "latency_services_max": 1024,
        "metrics_labels_max": 4096,
        "latency_buffer_size_max": 32,
        "dedup_ttl_ms_max": 300,
        "rate_window_size_ms_max": 4294967295
      },
      "payload_hex": "01080706050403020150b1f2f8",
      "bech32": "rl-none1qyyqwps9qspsyq2sk8e0sfdp3ys"
    },
    {
      "name": "minimum_cookie",
      "auth_method": "cookie",
      "key_id": "1",
      "secret_hex": "0101010101010101010101010101010101010101010101010101010101010101",
      "quota_word_hex_le": "00000800",
      "quotas": {
        "rate_buckets_max": 1,
        "latency_services_max": 1,
        "metrics_labels_max": 1,
        "latency_buffer_size_max": 1,
        "dedup_ttl_ms_max": 10,
        "rate_window_size_ms_max": 1
      },
      "payload_hex": "010100000000000000010101010101010101010101010101010101010101010101010101010101010100000800",
      "bech32": "rl-cookie1qyqsqqqqqqqqqqqpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqqqzqqfs0x84"
    },
    {
      "name": "free_plan_aes",
      "auth_method": "aes",
      "key_id": "2",
      "secret_hex": "0202020202020202020202020202020202020202020202020202020202020202",
      "quota_word_hex_le": "2f2df2f8",
      "quotas": {
        "rate_buckets_max": 32768,
        "latency_services_max": 512,
        "metrics_labels_max": 2048,
        "latency_buffer_size_max": 16,
        "dedup_ttl_ms_max": 300,
        "rate_window_size_ms_max": 4294967295
      },
      "payload_hex": "01020000000000000002020202020202020202020202020202020202020202020202020202020202022f2df2f8",
      "bech32": "rl-aes1qypqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqghjmuhcc2h27q"
    },
    {
      "name": "pro_plan_cookie",
      "auth_method": "cookie",
      "key_id": "3",
      "secret_hex": "0303030303030303030303030303030303030303030303030303030303030303",
      "quota_word_hex_le": "50b1f2f8",
      "quotas": {
        "rate_buckets_max": 65536,
        "latency_services_max": 1024,
        "metrics_labels_max": 4096,
        "latency_buffer_size_max": 32,
        "dedup_ttl_ms_max": 300,
        "rate_window_size_ms_max": 4294967295
      },
      "payload_hex": "010300000000000000030303030303030303030303030303030303030303030303030303030303030350b1f2f8",
      "bech32": "rl-cookie1qypsqqqqqqqqqqqrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqdgtruhckw7wfl"
    },
    {
      "name": "business_plan_aes",
      "auth_method": "aes",
      "key_id": "4",
      "secret_hex": "0404040404040404040404040404040404040404040404040404040404040404",
      "quota_word_hex_le": "9239f3f8",
      "quotas": {
        "rate_buckets_max": 262144,
        "latency_services_max": 4096,
        "metrics_labels_max": 16384,
        "latency_buffer_size_max": 64,
        "dedup_ttl_ms_max": 300,
        "rate_window_size_ms_max": 4294967295
      },
      "payload_hex": "01040000000000000004040404040404040404040404040404040404040404040404040404040404049239f3f8",
      "bech32": "rl-aes1qyzqqqqqqqqqqqqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqjfrnulcjhvhm3"
    },
    {
      "name": "enterprise_plan_cookie",
      "auth_method": "cookie",
      "key_id": "5",
      "secret_hex": "0505050505050505050505050505050505050505050505050505050505050505",
      "quota_word_hex_le": "d4c1f3f8",
      "quotas": {
        "rate_buckets_max": 1048576,
        "latency_services_max": 16384,
        "metrics_labels_max": 65536,
        "latency_buffer_size_max": 128,
        "dedup_ttl_ms_max": 300,
        "rate_window_size_ms_max": 4294967295
      },
      "payload_hex": "0105000000000000000505050505050505050505050505050505050505050505050505050505050505d4c1f3f8",
      "bech32": "rl-cookie1qyzsqqqqqqqqqqq9q5zs2pg9q5zs2pg9q5zs2pg9q5zs2pg9q5zs2pg9q5zs2pg9qh2vrulclr47kf"
    },
    {
      "name": "maximum_aes",
      "auth_method": "aes",
      "key_id": "18446744073709551615",
      "secret_hex": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
      "quota_word_hex_le": "18ff47fe",
      "quotas": {
        "rate_buckets_max": 16777216,
        "latency_services_max": 16777216,
        "metrics_labels_max": 2147483648,
        "latency_buffer_size_max": 32768,
        "dedup_ttl_ms_max": 2000,
        "rate_window_size_ms_max": 4294967295
      },
      "payload_hex": "01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff18ff47fe",
      "bech32": "rl-aes1q8llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllllluv073l7r88xf4"
    },
    {
      "name": "maximum_finite_window_cookie",
      "auth_method": "cookie",
      "key_id": "6",
      "secret_hex": "0606060606060606060606060606060606060606060606060606060606060606",
      "quota_word_hex_le": "50b1f2f0",
      "quotas": {
        "rate_buckets_max": 65536,
        "latency_services_max": 1024,
        "metrics_labels_max": 4096,
        "latency_buffer_size_max": 32,
        "dedup_ttl_ms_max": 300,
        "rate_window_size_ms_max": 1073741824
      },
      "payload_hex": "010600000000000000060606060606060606060606060606060606060606060606060606060606060650b1f2f0",
      "bech32": "rl-cookie1qyrqqqqqqqqqqqqxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqegtruhselxhvj"
    }
  ],
  "invalid_credentials": [
    {
      "name": "reserved_rate_exponent_25",
      "auth_method": "aes",
      "payload_hex": "010900000000000000090909090909090909090909090909090909090909090909090909090909090919000800",
      "bech32": "rl-aes1qyysqqqqqqqqqqqfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyvsqzqqs45cew",
      "error_category": "invalid_rate_buckets_max"
    },
    {
      "name": "reserved_rate_exponent_31",
      "auth_method": "aes",
      "payload_hex": "01090000000000000009090909090909090909090909090909090909090909090909090909090909091f000800",
      "bech32": "rl-aes1qyysqqqqqqqqqqqfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpy0sqzqqzpcatf",
      "error_category": "invalid_rate_buckets_max"
    },
    {
      "name": "reserved_latency_exponent_25",
      "auth_method": "aes",
      "payload_hex": "010900000000000000090909090909090909090909090909090909090909090909090909090909090920030800",
      "bech32": "rl-aes1qyysqqqqqqqqqqqfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpysqxzqqnetqym",
      "error_category": "invalid_latency_services_max"
    },
    {
      "name": "reserved_latency_exponent_31",
      "auth_method": "aes",
      "payload_hex": "0109000000000000000909090909090909090909090909090909090909090909090909090909090909e0030800",
      "bech32": "rl-aes1qyysqqqqqqqqqqqfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfp8sqxzqqp38f99",
      "error_category": "invalid_latency_services_max"
    },
    {
      "name": "invalid_dedup_code_0",
      "auth_method": "aes",
      "payload_hex": "010900000000000000090909090909090909090909090909090909090909090909090909090909090900000000",
      "bech32": "rl-aes1qyysqqqqqqqqqqqfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyqqqqqqurys6m",
      "error_category": "invalid_dedup_ttl_ms_max"
    },
    {
      "name": "invalid_dedup_code_201",
      "auth_method": "aes",
      "payload_hex": "010900000000000000090909090909090909090909090909090909090909090909090909090909090900004806",
      "bech32": "rl-aes1qyysqqqqqqqqqqqfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyqqqjqxdpgr6z",
      "error_category": "invalid_dedup_ttl_ms_max"
    },
    {
      "name": "invalid_dedup_code_255",
      "auth_method": "aes",
      "payload_hex": "01090000000000000009090909090909090909090909090909090909090909090909090909090909090000f807",
      "bech32": "rl-aes1qyysqqqqqqqqqqqfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyysjzgfpyqqp7q8era7ye",
      "error_category": "invalid_dedup_ttl_ms_max"
    },
    {
      "name": "format_version_0",
      "auth_method": "aes",
      "payload_hex": "00020000000000000002020202020202020202020202020202020202020202020202020202020202022f2df2f8",
      "bech32": "rl-aes1qqpqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqghjmuhccp9vn9",
      "error_category": "unsupported_format_version"
    },
    {
      "name": "format_version_2",
      "auth_method": "aes",
      "payload_hex": "02020000000000000002020202020202020202020202020202020202020202020202020202020202022f2df2f8",
      "bech32": "rl-aes1qgpqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqghjmuhcchgqf0",
      "error_category": "unsupported_format_version"
    },
    {
      "name": "secret_payload_too_short",
      "auth_method": "aes",
      "payload_hex": "01020000000000000002020202020202020202020202020202020202020202020202020202020202022f2df2",
      "bech32": "rl-aes1qypqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqghjmusgf2mxj",
      "error_category": "invalid_payload_length"
    },
    {
      "name": "secret_payload_too_long",
      "auth_method": "aes",
      "payload_hex": "01020000000000000002020202020202020202020202020202020202020202020202020202020202022f2df2f800",
      "bech32": "rl-aes1qypqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqghjmuhcqqls7lnn",
      "error_category": "invalid_payload_length"
    },
    {
      "name": "none_payload_too_short",
      "auth_method": "none",
      "payload_hex": "01080706050403020150b1f2",
      "bech32": "rl-none1qyyqwps9qspsyq2sk8eq5pcyvc",
      "error_category": "invalid_payload_length"
    },
    {
      "name": "none_payload_too_long",
      "auth_method": "none",
      "payload_hex": "01080706050403020150b1f2f800",
      "bech32": "rl-none1qyyqwps9qspsyq2sk8e0sqqp66mdt",
      "error_category": "invalid_payload_length"
    },
    {
      "name": "legacy_unversioned_aes",
      "auth_method": "aes",
      "payload_hex": "030000000000000003030303030303030303030303030303030303030303030303030303030303030000000000000000000000000000000000000000",
      "bech32": "rl-aes1qvqqqqqqqqqqqqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqemrljn",
      "error_category": "invalid_payload_length"
    }
  ]
}
