@kirimdev/sdk 3.8.0 → 3.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/openapi.json CHANGED
@@ -30,7 +30,7 @@
30
30
  },
31
31
  {
32
32
  "name": "Templates",
33
- "description": "List and inspect Meta-approved templates synced to your Kirimdev org."
33
+ "description": "List, create, and inspect WhatsApp message templates for a connected phone number."
34
34
  },
35
35
  {
36
36
  "name": "Conversations",
@@ -75,6 +75,15 @@
75
75
  "properties": {
76
76
  "type": {
77
77
  "type": "string",
78
+ "enum": [
79
+ "invalid_request_error",
80
+ "authentication_error",
81
+ "permission_error",
82
+ "not_found",
83
+ "conflict",
84
+ "rate_limit_error",
85
+ "api_error"
86
+ ],
78
87
  "example": "invalid_request_error"
79
88
  },
80
89
  "code": {
@@ -162,7 +171,36 @@
162
171
  ]
163
172
  },
164
173
  "to": {
165
- "type": "string"
174
+ "type": [
175
+ "string",
176
+ "null"
177
+ ],
178
+ "example": "+628123456789",
179
+ "description": "Recipient's phone number in E.164 (with leading `+`). NULL when the message targeted a Business-Scoped User ID (BSUID) recipient and the contact has no known phone number. See docs/meta-docs/bsuid.md."
180
+ },
181
+ "bsuid": {
182
+ "type": [
183
+ "string",
184
+ "null"
185
+ ],
186
+ "example": "US.13491208655302741918",
187
+ "description": "Recipient contact's Business-Scoped User ID. Present when the contact has been enriched with a BSUID from a Meta webhook (or from a BSUID-first send). NULL for phone-only contacts."
188
+ },
189
+ "parent_bsuid": {
190
+ "type": [
191
+ "string",
192
+ "null"
193
+ ],
194
+ "example": "US.ENT.11815799212886844830",
195
+ "description": "Parent BSUID for managed businesses with linked business portfolios. NULL for regular accounts."
196
+ },
197
+ "username": {
198
+ "type": [
199
+ "string",
200
+ "null"
201
+ ],
202
+ "example": "pablomorales",
203
+ "description": "Recipient contact's WhatsApp username (case-insensitive comparison; case-preserving in storage). NULL when the contact has not adopted the WhatsApp username feature."
166
204
  },
167
205
  "type": {
168
206
  "type": "string"
@@ -182,6 +220,11 @@
182
220
  "type": "string",
183
221
  "format": "date-time"
184
222
  },
223
+ "played_at": {
224
+ "type": "string",
225
+ "format": "date-time",
226
+ "description": "ISO-8601 timestamp when the recipient first played an outbound voice note. Populated from Meta's `played` status webhook; omitted on non-voice messages and until playback occurs."
227
+ },
185
228
  "conversation_id": {
186
229
  "type": "string"
187
230
  },
@@ -673,7 +716,33 @@
673
716
  "type": [
674
717
  "string",
675
718
  "null"
676
- ]
719
+ ],
720
+ "example": "+628123456789",
721
+ "description": "Phone number in E.164. NULL when the contact was created via BSUID (username-adopted user with no shared phone number). See docs/meta-docs/bsuid.md."
722
+ },
723
+ "bsuid": {
724
+ "type": [
725
+ "string",
726
+ "null"
727
+ ],
728
+ "example": "US.13491208655302741918",
729
+ "description": "Business-Scoped User ID. Populated by inbound webhooks or when the contact was created via BSUID. Format: `{ISO alpha-2 country}.{alphanumeric ≤128}`."
730
+ },
731
+ "parent_bsuid": {
732
+ "type": [
733
+ "string",
734
+ "null"
735
+ ],
736
+ "example": "US.ENT.11815799212886844830",
737
+ "description": "Parent BSUID (managed businesses only). Format: `{ISO alpha-2 country}.ENT.{alphanumeric ≤128}`."
738
+ },
739
+ "username": {
740
+ "type": [
741
+ "string",
742
+ "null"
743
+ ],
744
+ "example": "pablomorales",
745
+ "description": "WhatsApp username of the contact, if the user has adopted the username feature. Case-insensitive when comparing per Meta rules; `.` and `_` are significant."
677
746
  },
678
747
  "name": {
679
748
  "type": [
@@ -710,6 +779,9 @@
710
779
  "id",
711
780
  "object",
712
781
  "phone_number",
782
+ "bsuid",
783
+ "parent_bsuid",
784
+ "username",
713
785
  "name",
714
786
  "email",
715
787
  "metadata",
@@ -2610,7 +2682,15 @@
2610
2682
  ]
2611
2683
  },
2612
2684
  "to": {
2613
- "type": "string"
2685
+ "type": "string",
2686
+ "description": "Recipient's WhatsApp phone number in E.164 (e.g. `628123456789`). Either `to` or `recipient` is required; if both are supplied, Meta uses `to` (documented precedence).",
2687
+ "example": "628123456789"
2688
+ },
2689
+ "recipient": {
2690
+ "type": "string",
2691
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$",
2692
+ "description": "Recipient's Business-Scoped User ID (e.g. `US.13491208655302741918`) or parent BSUID. Alternative to `to`. Auth OTP templates (one-tap / zero-tap / copy-code) do NOT support BSUID recipients — Meta rejects with error 131062.",
2693
+ "example": "US.13491208655302741918"
2614
2694
  },
2615
2695
  "context": {
2616
2696
  "type": "object",
@@ -2652,7 +2732,6 @@
2652
2732
  },
2653
2733
  "required": [
2654
2734
  "messaging_product",
2655
- "to",
2656
2735
  "type",
2657
2736
  "text"
2658
2737
  ],
@@ -2674,7 +2753,15 @@
2674
2753
  ]
2675
2754
  },
2676
2755
  "to": {
2677
- "type": "string"
2756
+ "type": "string",
2757
+ "description": "Recipient's WhatsApp phone number in E.164 (e.g. `628123456789`). Either `to` or `recipient` is required; if both are supplied, Meta uses `to` (documented precedence).",
2758
+ "example": "628123456789"
2759
+ },
2760
+ "recipient": {
2761
+ "type": "string",
2762
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$",
2763
+ "description": "Recipient's Business-Scoped User ID (e.g. `US.13491208655302741918`) or parent BSUID. Alternative to `to`. Auth OTP templates (one-tap / zero-tap / copy-code) do NOT support BSUID recipients — Meta rejects with error 131062.",
2764
+ "example": "US.13491208655302741918"
2678
2765
  },
2679
2766
  "context": {
2680
2767
  "type": "object",
@@ -2722,7 +2809,6 @@
2722
2809
  },
2723
2810
  "required": [
2724
2811
  "messaging_product",
2725
- "to",
2726
2812
  "type",
2727
2813
  "image"
2728
2814
  ],
@@ -2744,7 +2830,15 @@
2744
2830
  ]
2745
2831
  },
2746
2832
  "to": {
2747
- "type": "string"
2833
+ "type": "string",
2834
+ "description": "Recipient's WhatsApp phone number in E.164 (e.g. `628123456789`). Either `to` or `recipient` is required; if both are supplied, Meta uses `to` (documented precedence).",
2835
+ "example": "628123456789"
2836
+ },
2837
+ "recipient": {
2838
+ "type": "string",
2839
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$",
2840
+ "description": "Recipient's Business-Scoped User ID (e.g. `US.13491208655302741918`) or parent BSUID. Alternative to `to`. Auth OTP templates (one-tap / zero-tap / copy-code) do NOT support BSUID recipients — Meta rejects with error 131062.",
2841
+ "example": "US.13491208655302741918"
2748
2842
  },
2749
2843
  "context": {
2750
2844
  "type": "object",
@@ -2792,7 +2886,6 @@
2792
2886
  },
2793
2887
  "required": [
2794
2888
  "messaging_product",
2795
- "to",
2796
2889
  "type",
2797
2890
  "document"
2798
2891
  ],
@@ -2814,7 +2907,15 @@
2814
2907
  ]
2815
2908
  },
2816
2909
  "to": {
2817
- "type": "string"
2910
+ "type": "string",
2911
+ "description": "Recipient's WhatsApp phone number in E.164 (e.g. `628123456789`). Either `to` or `recipient` is required; if both are supplied, Meta uses `to` (documented precedence).",
2912
+ "example": "628123456789"
2913
+ },
2914
+ "recipient": {
2915
+ "type": "string",
2916
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$",
2917
+ "description": "Recipient's Business-Scoped User ID (e.g. `US.13491208655302741918`) or parent BSUID. Alternative to `to`. Auth OTP templates (one-tap / zero-tap / copy-code) do NOT support BSUID recipients — Meta rejects with error 131062.",
2918
+ "example": "US.13491208655302741918"
2818
2919
  },
2819
2920
  "context": {
2820
2921
  "type": "object",
@@ -2862,7 +2963,6 @@
2862
2963
  },
2863
2964
  "required": [
2864
2965
  "messaging_product",
2865
- "to",
2866
2966
  "type",
2867
2967
  "video"
2868
2968
  ],
@@ -2884,7 +2984,15 @@
2884
2984
  ]
2885
2985
  },
2886
2986
  "to": {
2887
- "type": "string"
2987
+ "type": "string",
2988
+ "description": "Recipient's WhatsApp phone number in E.164 (e.g. `628123456789`). Either `to` or `recipient` is required; if both are supplied, Meta uses `to` (documented precedence).",
2989
+ "example": "628123456789"
2990
+ },
2991
+ "recipient": {
2992
+ "type": "string",
2993
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$",
2994
+ "description": "Recipient's Business-Scoped User ID (e.g. `US.13491208655302741918`) or parent BSUID. Alternative to `to`. Auth OTP templates (one-tap / zero-tap / copy-code) do NOT support BSUID recipients — Meta rejects with error 131062.",
2995
+ "example": "US.13491208655302741918"
2888
2996
  },
2889
2997
  "context": {
2890
2998
  "type": "object",
@@ -2935,7 +3043,6 @@
2935
3043
  },
2936
3044
  "required": [
2937
3045
  "messaging_product",
2938
- "to",
2939
3046
  "type",
2940
3047
  "audio"
2941
3048
  ],
@@ -2957,7 +3064,15 @@
2957
3064
  ]
2958
3065
  },
2959
3066
  "to": {
2960
- "type": "string"
3067
+ "type": "string",
3068
+ "description": "Recipient's WhatsApp phone number in E.164 (e.g. `628123456789`). Either `to` or `recipient` is required; if both are supplied, Meta uses `to` (documented precedence).",
3069
+ "example": "628123456789"
3070
+ },
3071
+ "recipient": {
3072
+ "type": "string",
3073
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$",
3074
+ "description": "Recipient's Business-Scoped User ID (e.g. `US.13491208655302741918`) or parent BSUID. Alternative to `to`. Auth OTP templates (one-tap / zero-tap / copy-code) do NOT support BSUID recipients — Meta rejects with error 131062.",
3075
+ "example": "US.13491208655302741918"
2961
3076
  },
2962
3077
  "context": {
2963
3078
  "type": "object",
@@ -3063,7 +3178,6 @@
3063
3178
  },
3064
3179
  "required": [
3065
3180
  "messaging_product",
3066
- "to",
3067
3181
  "type",
3068
3182
  "template"
3069
3183
  ],
@@ -3085,7 +3199,15 @@
3085
3199
  ]
3086
3200
  },
3087
3201
  "to": {
3088
- "type": "string"
3202
+ "type": "string",
3203
+ "description": "Recipient's WhatsApp phone number in E.164 (e.g. `628123456789`). Either `to` or `recipient` is required; if both are supplied, Meta uses `to` (documented precedence).",
3204
+ "example": "628123456789"
3205
+ },
3206
+ "recipient": {
3207
+ "type": "string",
3208
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$",
3209
+ "description": "Recipient's Business-Scoped User ID (e.g. `US.13491208655302741918`) or parent BSUID. Alternative to `to`. Auth OTP templates (one-tap / zero-tap / copy-code) do NOT support BSUID recipients — Meta rejects with error 131062.",
3210
+ "example": "US.13491208655302741918"
3089
3211
  },
3090
3212
  "context": {
3091
3213
  "type": "object",
@@ -3716,7 +3838,6 @@
3716
3838
  },
3717
3839
  "required": [
3718
3840
  "messaging_product",
3719
- "to",
3720
3841
  "type",
3721
3842
  "interactive"
3722
3843
  ],
@@ -3813,7 +3934,7 @@
3813
3934
  }
3814
3935
  },
3815
3936
  "422": {
3816
- "description": "Semantic failure (e.g. idempotency key reuse)",
3937
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
3817
3938
  "content": {
3818
3939
  "application/json": {
3819
3940
  "schema": {
@@ -3992,7 +4113,7 @@
3992
4113
  }
3993
4114
  },
3994
4115
  "422": {
3995
- "description": "Semantic failure (e.g. idempotency key reuse)",
4116
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
3996
4117
  "content": {
3997
4118
  "application/json": {
3998
4119
  "schema": {
@@ -4030,6 +4151,7 @@
4030
4151
  "Messages"
4031
4152
  ],
4032
4153
  "summary": "Fetch a sent message by id",
4154
+ "description": "Retrieve a single message by `msg_*` id. Supports short-lived server-side caching for high-frequency status polling, and `ETag`/`If-None-Match` for unchanged responses.",
4033
4155
  "security": [
4034
4156
  {
4035
4157
  "bearerAuth": []
@@ -4061,6 +4183,14 @@
4061
4183
  "responses": {
4062
4184
  "200": {
4063
4185
  "description": "Message resource",
4186
+ "headers": {
4187
+ "ETag": {
4188
+ "description": "Weak entity tag derived from `status` and error fields. Send as `If-None-Match` on the next poll — unchanged messages return `304`.",
4189
+ "schema": {
4190
+ "type": "string"
4191
+ }
4192
+ }
4193
+ },
4064
4194
  "content": {
4065
4195
  "application/json": {
4066
4196
  "schema": {
@@ -4069,6 +4199,17 @@
4069
4199
  }
4070
4200
  }
4071
4201
  },
4202
+ "304": {
4203
+ "description": "Not modified — request carried a matching `If-None-Match` ETag.",
4204
+ "headers": {
4205
+ "ETag": {
4206
+ "description": "Same weak entity tag as the cached representation.",
4207
+ "schema": {
4208
+ "type": "string"
4209
+ }
4210
+ }
4211
+ }
4212
+ },
4072
4213
  "400": {
4073
4214
  "description": "Validation failure",
4074
4215
  "content": {
@@ -4100,7 +4241,7 @@
4100
4241
  }
4101
4242
  },
4102
4243
  "422": {
4103
- "description": "Semantic failure (e.g. idempotency key reuse)",
4244
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
4104
4245
  "content": {
4105
4246
  "application/json": {
4106
4247
  "schema": {
@@ -4242,7 +4383,7 @@
4242
4383
  }
4243
4384
  },
4244
4385
  "422": {
4245
- "description": "Semantic failure (e.g. idempotency key reuse)",
4386
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
4246
4387
  "content": {
4247
4388
  "application/json": {
4248
4389
  "schema": {
@@ -4278,7 +4419,7 @@
4278
4419
  "Templates"
4279
4420
  ],
4280
4421
  "summary": "Create a template",
4281
- "description": "Create a new message template and submit it to Meta for review. The request body is components-only (mirrors Meta's `message_templates` create shape). On success the template is persisted with `status: \"pending\"`; Meta reviews asynchronously, so poll `GET /{phone_number_id}/templates/{name}` (or re-run `POST .../templates/sync`) for the eventual `approved` / `rejected` transition. A `name`+`language` pair that already exists for the account returns `400 invalid_field_value`.",
4422
+ "description": "Create a new message template and submit it to Meta for review. The request body is components-only (mirrors Meta's `message_templates` create shape). For IMAGE/VIDEO/DOCUMENT headers, supply `example.header_url` with a public https:// URL — Kirimdev uploads the sample to Meta on your behalf — or a Meta asset handle in `example.header_handle`. On success the template is persisted with `status: \"pending\"`; Meta reviews asynchronously, so poll `GET /{phone_number_id}/templates/{name}` (or re-run `POST .../templates/sync`) for the eventual `approved` / `rejected` transition. A duplicate `name`+`language` pair returns `409 template_already_exists`.",
4282
4423
  "security": [
4283
4424
  {
4284
4425
  "bearerAuth": []
@@ -4547,7 +4688,7 @@
4547
4688
  }
4548
4689
  },
4549
4690
  "422": {
4550
- "description": "Semantic failure (e.g. idempotency key reuse)",
4691
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
4551
4692
  "content": {
4552
4693
  "application/json": {
4553
4694
  "schema": {
@@ -4676,7 +4817,7 @@
4676
4817
  }
4677
4818
  },
4678
4819
  "422": {
4679
- "description": "Semantic failure (e.g. idempotency key reuse)",
4820
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
4680
4821
  "content": {
4681
4822
  "application/json": {
4682
4823
  "schema": {
@@ -4776,7 +4917,7 @@
4776
4917
  }
4777
4918
  },
4778
4919
  "422": {
4779
- "description": "Semantic failure (e.g. idempotency key reuse)",
4920
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
4780
4921
  "content": {
4781
4922
  "application/json": {
4782
4923
  "schema": {
@@ -5537,7 +5678,7 @@
5537
5678
  }
5538
5679
  },
5539
5680
  "422": {
5540
- "description": "Semantic failure (e.g. idempotency key reuse)",
5681
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
5541
5682
  "content": {
5542
5683
  "application/json": {
5543
5684
  "schema": {
@@ -6018,7 +6159,7 @@
6018
6159
  "Conversations"
6019
6160
  ],
6020
6161
  "summary": "List conversations",
6021
- "description": "List conversations for the WhatsApp account identified by `phone_number_id`. Ordered newest-active first by `last_message_at` (NULLS LAST).",
6162
+ "description": "List conversations for the WhatsApp account identified by `phone_number_id`. Default order: newest-active first by `last_message_at` (NULLS LAST). With `updated_since`, order switches to `updated_at DESC` so assignment/status changes are not buried. Supports short-lived server-side caching, and `ETag`/`If-None-Match` for unchanged responses.",
6022
6163
  "security": [
6023
6164
  {
6024
6165
  "bearerAuth": []
@@ -6059,6 +6200,15 @@
6059
6200
  "name": "contact_id",
6060
6201
  "in": "query"
6061
6202
  },
6203
+ {
6204
+ "schema": {
6205
+ "type": "string",
6206
+ "format": "date-time"
6207
+ },
6208
+ "required": false,
6209
+ "name": "updated_since",
6210
+ "in": "query"
6211
+ },
6062
6212
  {
6063
6213
  "schema": {
6064
6214
  "type": "string",
@@ -6080,6 +6230,14 @@
6080
6230
  "responses": {
6081
6231
  "200": {
6082
6232
  "description": "Conversation list",
6233
+ "headers": {
6234
+ "ETag": {
6235
+ "description": "Weak entity tag derived from the newest `updated_at` in the page. Send as `If-None-Match` on the next poll — unchanged lists return `304`.",
6236
+ "schema": {
6237
+ "type": "string"
6238
+ }
6239
+ }
6240
+ },
6083
6241
  "content": {
6084
6242
  "application/json": {
6085
6243
  "schema": {
@@ -6088,6 +6246,17 @@
6088
6246
  }
6089
6247
  }
6090
6248
  },
6249
+ "304": {
6250
+ "description": "Not modified — request carried a matching `If-None-Match` ETag.",
6251
+ "headers": {
6252
+ "ETag": {
6253
+ "description": "Same weak entity tag as the prior response.",
6254
+ "schema": {
6255
+ "type": "string"
6256
+ }
6257
+ }
6258
+ }
6259
+ },
6091
6260
  "400": {
6092
6261
  "description": "Validation failure",
6093
6262
  "content": {
@@ -6119,7 +6288,7 @@
6119
6288
  }
6120
6289
  },
6121
6290
  "422": {
6122
- "description": "Semantic failure (e.g. idempotency key reuse)",
6291
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6123
6292
  "content": {
6124
6293
  "application/json": {
6125
6294
  "schema": {
@@ -6227,7 +6396,7 @@
6227
6396
  }
6228
6397
  },
6229
6398
  "422": {
6230
- "description": "Semantic failure (e.g. idempotency key reuse)",
6399
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6231
6400
  "content": {
6232
6401
  "application/json": {
6233
6402
  "schema": {
@@ -6361,7 +6530,7 @@
6361
6530
  }
6362
6531
  },
6363
6532
  "422": {
6364
- "description": "Semantic failure (e.g. idempotency key reuse)",
6533
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6365
6534
  "content": {
6366
6535
  "application/json": {
6367
6536
  "schema": {
@@ -6426,6 +6595,25 @@
6426
6595
  "name": "phone",
6427
6596
  "in": "query"
6428
6597
  },
6598
+ {
6599
+ "schema": {
6600
+ "type": "string",
6601
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
6602
+ },
6603
+ "required": false,
6604
+ "name": "bsuid",
6605
+ "in": "query"
6606
+ },
6607
+ {
6608
+ "schema": {
6609
+ "type": "string",
6610
+ "minLength": 1,
6611
+ "maxLength": 100
6612
+ },
6613
+ "required": false,
6614
+ "name": "username",
6615
+ "in": "query"
6616
+ },
6429
6617
  {
6430
6618
  "schema": {
6431
6619
  "type": "string",
@@ -6496,7 +6684,7 @@
6496
6684
  }
6497
6685
  },
6498
6686
  "422": {
6499
- "description": "Semantic failure (e.g. idempotency key reuse)",
6687
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6500
6688
  "content": {
6501
6689
  "application/json": {
6502
6690
  "schema": {
@@ -6561,6 +6749,15 @@
6561
6749
  "phone_number": {
6562
6750
  "type": "string"
6563
6751
  },
6752
+ "bsuid": {
6753
+ "type": "string",
6754
+ "pattern": "^[A-Z]{2}\\.(ENT\\.)?[A-Za-z0-9]{1,128}$"
6755
+ },
6756
+ "username": {
6757
+ "type": "string",
6758
+ "minLength": 1,
6759
+ "maxLength": 100
6760
+ },
6564
6761
  "name": {
6565
6762
  "type": "string",
6566
6763
  "minLength": 1,
@@ -6578,10 +6775,7 @@
6578
6775
  "type": "object",
6579
6776
  "additionalProperties": {}
6580
6777
  }
6581
- },
6582
- "required": [
6583
- "phone_number"
6584
- ]
6778
+ }
6585
6779
  }
6586
6780
  }
6587
6781
  }
@@ -6628,7 +6822,7 @@
6628
6822
  }
6629
6823
  },
6630
6824
  "422": {
6631
- "description": "Semantic failure (e.g. idempotency key reuse)",
6825
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6632
6826
  "content": {
6633
6827
  "application/json": {
6634
6828
  "schema": {
@@ -6736,7 +6930,7 @@
6736
6930
  }
6737
6931
  },
6738
6932
  "422": {
6739
- "description": "Semantic failure (e.g. idempotency key reuse)",
6933
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6740
6934
  "content": {
6741
6935
  "application/json": {
6742
6936
  "schema": {
@@ -6815,6 +7009,14 @@
6815
7009
  "minLength": 1,
6816
7010
  "maxLength": 200
6817
7011
  },
7012
+ "username": {
7013
+ "type": [
7014
+ "string",
7015
+ "null"
7016
+ ],
7017
+ "minLength": 1,
7018
+ "maxLength": 100
7019
+ },
6818
7020
  "email": {
6819
7021
  "anyOf": [
6820
7022
  {
@@ -6887,7 +7089,7 @@
6887
7089
  }
6888
7090
  },
6889
7091
  "422": {
6890
- "description": "Semantic failure (e.g. idempotency key reuse)",
7092
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6891
7093
  "content": {
6892
7094
  "application/json": {
6893
7095
  "schema": {
@@ -6994,7 +7196,7 @@
6994
7196
  }
6995
7197
  },
6996
7198
  "422": {
6997
- "description": "Semantic failure (e.g. idempotency key reuse)",
7199
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
6998
7200
  "content": {
6999
7201
  "application/json": {
7000
7202
  "schema": {
@@ -7104,7 +7306,7 @@
7104
7306
  }
7105
7307
  },
7106
7308
  "422": {
7107
- "description": "Semantic failure (e.g. idempotency key reuse)",
7309
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
7108
7310
  "content": {
7109
7311
  "application/json": {
7110
7312
  "schema": {
@@ -7231,7 +7433,7 @@
7231
7433
  }
7232
7434
  },
7233
7435
  "422": {
7234
- "description": "Semantic failure (e.g. idempotency key reuse)",
7436
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
7235
7437
  "content": {
7236
7438
  "application/json": {
7237
7439
  "schema": {
@@ -7348,7 +7550,7 @@
7348
7550
  }
7349
7551
  },
7350
7552
  "422": {
7351
- "description": "Semantic failure (e.g. idempotency key reuse)",
7553
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
7352
7554
  "content": {
7353
7555
  "application/json": {
7354
7556
  "schema": {
@@ -7484,7 +7686,7 @@
7484
7686
  }
7485
7687
  },
7486
7688
  "422": {
7487
- "description": "Semantic failure (e.g. idempotency key reuse)",
7689
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
7488
7690
  "content": {
7489
7691
  "application/json": {
7490
7692
  "schema": {
@@ -7610,7 +7812,7 @@
7610
7812
  }
7611
7813
  },
7612
7814
  "422": {
7613
- "description": "Semantic failure (e.g. idempotency key reuse)",
7815
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
7614
7816
  "content": {
7615
7817
  "application/json": {
7616
7818
  "schema": {
@@ -7727,7 +7929,7 @@
7727
7929
  }
7728
7930
  },
7729
7931
  "422": {
7730
- "description": "Semantic failure (e.g. idempotency key reuse)",
7932
+ "description": "Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)",
7731
7933
  "content": {
7732
7934
  "application/json": {
7733
7935
  "schema": {
@@ -8327,7 +8529,7 @@
8327
8529
  }
8328
8530
  },
8329
8531
  "402": {
8330
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
8532
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
8331
8533
  "content": {
8332
8534
  "application/json": {
8333
8535
  "schema": {
@@ -8434,7 +8636,7 @@
8434
8636
  }
8435
8637
  },
8436
8638
  "402": {
8437
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
8639
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
8438
8640
  "content": {
8439
8641
  "application/json": {
8440
8642
  "schema": {
@@ -8520,7 +8722,7 @@
8520
8722
  }
8521
8723
  },
8522
8724
  "402": {
8523
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
8725
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
8524
8726
  "content": {
8525
8727
  "application/json": {
8526
8728
  "schema": {
@@ -8653,7 +8855,7 @@
8653
8855
  }
8654
8856
  },
8655
8857
  "402": {
8656
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
8858
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
8657
8859
  "content": {
8658
8860
  "application/json": {
8659
8861
  "schema": {
@@ -8748,7 +8950,7 @@
8748
8950
  }
8749
8951
  },
8750
8952
  "402": {
8751
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
8953
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
8752
8954
  "content": {
8753
8955
  "application/json": {
8754
8956
  "schema": {
@@ -8859,7 +9061,7 @@
8859
9061
  }
8860
9062
  },
8861
9063
  "402": {
8862
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
9064
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
8863
9065
  "content": {
8864
9066
  "application/json": {
8865
9067
  "schema": {
@@ -8980,7 +9182,7 @@
8980
9182
  }
8981
9183
  },
8982
9184
  "402": {
8983
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
9185
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
8984
9186
  "content": {
8985
9187
  "application/json": {
8986
9188
  "schema": {
@@ -9121,7 +9323,7 @@
9121
9323
  }
9122
9324
  },
9123
9325
  "402": {
9124
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
9326
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
9125
9327
  "content": {
9126
9328
  "application/json": {
9127
9329
  "schema": {
@@ -9235,7 +9437,7 @@
9235
9437
  }
9236
9438
  },
9237
9439
  "402": {
9238
- "description": "Plan / quota / subscription gate (e.g. feature_not_entitled, quota_exceeded, subscription_inactive)",
9440
+ "description": "Billing / entitlement gate subscription inactive, quota exceeded, or plan tier missing a feature (feature_not_entitled). Upgrade to continue.",
9239
9441
  "content": {
9240
9442
  "application/json": {
9241
9443
  "schema": {