space.highport.manage.getConsumption
Schema Diff
+20 -16
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "space.highport.manage.getConsumption:output.consumption.freePerDomainBytes" }
- AddedEdge AddedEdge { src: "space.highport.manage.getConsumption:output.consumption", tgt: "space.highport.manage.getConsumption:output.consumption.freePerDomainBytes", kind: "prop", name: Some("freePerDomainBytes") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "space.highport.manage.getConsumption:output.consumption.freePerDomainBytes" }
Additional Notes
- Non-breaking: AddedEdge { src: "space.highport.manage.getConsumption:output.consumption", tgt: "space.highport.manage.getConsumption:output.consumption.freePerDomainBytes", kind: "prop", name: Some("freePerDomainBytes") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "The calling identity's allowance for a period: what it was granted, what it has spent, what remains, which entitlements contributed, and which domains it has approved to draw on it. One wallet, spent by the identity's own sites and by its browsing of sender-pays sites alike.",
5
+
"description": "The caller's bandwidth allowance for a period: granted, used, remaining, which entitlements contributed, and which domains may draw on it. One allowance covers both the caller's own sites and its visits to sender-pays sites.",
6
6
"errors": [
7
7
{
8
-
"description": "The period is not a UTC calendar month formatted YYYY-MM.",
8
+
"description": "period is not a UTC month formatted as YYYY-MM.",
9
9
"name": "InvalidRequest"
10
10
}
11
11
],
12
12
"output": {
13
13
"encoding": "application/json",
14
14
"schema": {
15
15
"properties": {
16
16
"approvals": {
17
-
"description": "Domains this identity agreed to spend its allowance on, with the cap it chose.",
17
+
"description": "Domains the caller agreed to let spend its allowance, with the cap it chose for each.",
18
18
"items": {
19
-
"description": "One identity's standing consent to spend its allowance on one domain.",
19
+
"description": "Standing consent to spend the allowance on one domain.",
20
20
"properties": {
21
21
"approvedAt": {
22
22
"description": "When the identity agreed.",
23
23
"format": "datetime",
24
24
"type": "string"
25
25
},
26
26
"capBytes": {
27
-
"description": "The ceiling the identity chose for this domain. Absent means no ceiling of its own.",
27
+
"description": "The cap the caller chose for this domain. Absent means no cap.",
28
28
"type": "integer"
29
29
},
30
30
"domain": {
31
31
"description": "The domain approved.",
32
32
"type": "string"
33
33
}
34
34
},
35
35
"required": [
36
36
"domain",
37
37
"approvedAt"
38
38
],
39
39
"type": "object"
40
40
},
41
41
"type": "array"
42
42
},
43
43
"consumption": {
44
44
"description": "One identity's allowance for one period.",
45
45
"properties": {
46
46
"byDomain": {
47
47
"description": "Spend by domain.",
48
48
"items": {
49
-
"description": "Where an identity's allowance went.",
49
+
"description": "Where the allowance was spent.",
50
50
"properties": {
51
51
"asVisitor": {
52
-
"description": "Whether this was somebody else's sender-pays site rather than the caller's own.",
52
+
"description": "True when this was someone else's sender-pays site, not one of the caller's own.",
53
53
"type": "boolean"
54
54
},
55
55
"bytesBilled": {
56
56
"description": "Billed bytes.",
57
57
"type": "integer"
58
58
},
59
59
"domain": {
60
60
"description": "The domain.",
61
61
"type": "string"
62
62
}
63
63
},
64
64
"required": [
65
65
"domain",
66
66
"bytesBilled"
67
67
],
68
68
"type": "object"
69
69
},
70
70
"type": "array"
71
71
},
72
72
"entitledBytes": {
73
-
"description": "What entitlements contributed.",
73
+
"description": "Bytes from entitlements.",
74
74
"type": "integer"
75
75
},
76
76
"entitlements": {
77
77
"items": {
78
-
"description": "One grant contributing to the allowance. The payment processor's reference is deliberately not exposed.",
78
+
"description": "One grant that adds to the allowance. The payment processor's reference is not exposed.",
79
79
"properties": {
80
80
"bytesPerPeriod": {
81
81
"description": "Bytes this entitlement adds per period.",
82
82
"type": "integer"
83
83
},
84
84
"endsAt": {
85
-
"description": "When it ends. Absent for an open-ended grant.",
85
+
"description": "When it ends. Absent if it has no end date.",
86
86
"format": "datetime",
87
87
"type": "string"
88
88
},
89
89
"startsAt": {
90
90
"description": "When it started.",
91
91
"format": "datetime",
92
92
"type": "string"
93
93
}
94
94
},
95
95
"required": [
96
96
"bytesPerPeriod",
97
97
"startsAt"
98
98
],
99
99
"type": "object"
100
100
},
101
101
"type": "array"
102
102
},
103
103
"freeBytes": {
104
-
"description": "The free grant's contribution.",
104
+
"description": "Bytes from the free grant.",
105
105
"type": "integer"
106
106
},
107
+
"freePerDomainBytes": {
108
+
"description": "The most the free grant can spend at any one domain this period. Purchased quota has no such cap. Zero means the free grant cannot be spent on other people's sites. This is why a reader can be refused at one domain while their allowance still has room.",
109
+
"type": "integer"
110
+
},
107
111
"grantedBytes": {
108
112
"description": "The free grant plus every active entitlement.",
109
113
"type": "integer"
110
114
},
111
115
"headerEstimateBytes": {
112
-
"description": "The flat per-response constant included in usedBytes. Every byte figure here is an estimate by this much per response, because the edge's access log records the response body only.",
116
+
"description": "The fixed per-response header estimate included in usedBytes. The edge logs only response bodies, so every byte figure here is estimated by this much per response.",
113
117
"type": "integer"
114
118
},
115
119
"period": {
116
-
"description": "The UTC calendar month, YYYY-MM.",
120
+
"description": "The UTC month, as YYYY-MM.",
117
121
"type": "string"
118
122
},
119
123
"periodEndsAt": {
120
124
"description": "When the allowance resets.",
121
125
"format": "datetime",
122
126
"type": "string"
123
127
},
124
128
"reconciledAt": {
125
-
"description": "When the rollup last confirmed usedBytes against the recorded requests. Absent for a period still in progress.",
129
+
"description": "When usedBytes was last reconciled against recorded requests. Absent for a period still in progress.",
126
130
"format": "datetime",
127
131
"type": "string"
128
132
},
129
133
"remainingBytes": {
130
-
"description": "What is left, floored at zero.",
134
+
"description": "What is left, never below zero.",
131
135
"type": "integer"
132
136
},
133
137
"usedBytes": {
134
138
"description": "Billable bytes spent so far.",
135
139
"type": "integer"
136
140
}
137
141
},
138
142
"required": [
139
143
"period",
140
144
"periodEndsAt",
141
145
"grantedBytes",
142
146
"usedBytes",
143
147
"remainingBytes",
144
148
"freeBytes",
145
149
"entitledBytes",
146
150
"headerEstimateBytes"
147
151
],
148
152
"type": "object"
149
153
}
150
154
},
151
155
"required": [
152
156
"consumption"
153
157
],
154
158
"type": "object"
155
159
}
156
160
},
157
161
"parameters": {
158
162
"properties": {
159
163
"period": {
160
-
"description": "A UTC calendar month as YYYY-MM. Defaults to the current one.",
164
+
"description": "A UTC month as YYYY-MM. Defaults to the current month.",
161
165
"type": "string"
162
166
}
163
167
},
164
168
"type": "params"
165
169
},
166
170
"type": "query"
167
171
}
168
172
},
169
173
"id": "space.highport.manage.getConsumption",
170
174
"lexicon": 1
171
175
}