-
Notifications
You must be signed in to change notification settings - Fork 0
/
schema.yaml
99 lines (92 loc) · 2.52 KB
/
schema.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
# Generated by core/scripts/generate_schema.py
# using Bottica model from core/tests/schema.py
definitions:
BotEntry:
description: 'A bot verification entry.
Should have at least one of fcrdns_hosts, ip_list, ip_ranges, or
cidr_list specified. If more than one of these is specified, the bot
must meet ALL the requirements to be considered verified.
All IPs may be either IPv4 or IPv6.'
properties:
cidr_list:
description: A list of CIDR IP blocks that the bot may use. Items must be
unique.
example:
- 8.8.8.0/24
items:
minLength: 1
type: string
minLength: 1
title: Cidr List
type: array
fcrdns_hosts:
description: A list of hosts that the bot's IP may match in a Forward confirmed
reverse DNS (FCrDNS) query. If this keyis present but the list is empty,
any host will be allowed, but FCrDNS verification will still be performed.
Items must be unique.
example:
- google.com
- googlebot.com
items:
minLength: 0
type: string
minLength: 0
title: Fcrdns Hosts
type: array
ip_list:
description: A whitelist of IPs that the bot may use. Items must be unique.
example:
- 8.8.8.8
- 8.8.4.4
items:
minLength: 1
type: string
minLength: 1
title: Ip List
type: array
ip_ranges:
description: A list of IP ranges that the bot may use. Items must be unique.
items:
$ref: '#/definitions/IPRange'
title: Ip Ranges
type: array
name:
description: A unique name for the bot in question. Should matchuser_agent.family
from the ua-parser project.
example: Googlebot
minLength: 1
title: Name
type: string
required:
- name
title: BotEntry
type: object
IPRange:
description: A range of allowed IPs
properties:
max:
description: The maximum IP in the range
example: 8.8.8.8
title: Max
type: string
min:
description: The minimum IP in the range
example: 8.8.8.4
title: Min
type: string
required:
- min
- max
title: IPRange
type: object
description: The list of all bot verification requirements.
properties:
bots:
items:
$ref: '#/definitions/BotEntry'
title: Bots
type: array
required:
- bots
title: Bottica
type: object