@primitivedotdev/sdk 0.31.2 → 0.31.5
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/dist/api/index.d.ts +2 -2
- package/dist/api/index.js +3 -3
- package/dist/{api-C7hBq-Wd.js → api-DWgGnwKH.js} +55 -6
- package/dist/{index-C17n15Eq.d.ts → index-D26g6K5Y.d.ts} +285 -8
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/openapi/index.js +1 -1
- package/dist/{operations.generated-CDIos4wH.js → operations.generated-DEtYrCU_.js} +961 -26
- package/package.json +1 -1
|
@@ -45,6 +45,10 @@ const openapiDocument = {
|
|
|
45
45
|
"name": "Domains",
|
|
46
46
|
"description": "Claim, verify, and manage email domains"
|
|
47
47
|
},
|
|
48
|
+
{
|
|
49
|
+
"name": "Inbox",
|
|
50
|
+
"description": "Check inbound email setup and processing readiness"
|
|
51
|
+
},
|
|
48
52
|
{
|
|
49
53
|
"name": "Emails",
|
|
50
54
|
"description": "List, inspect, and manage received emails"
|
|
@@ -510,7 +514,7 @@ const openapiDocument = {
|
|
|
510
514
|
"post": {
|
|
511
515
|
"operationId": "addDomain",
|
|
512
516
|
"summary": "Claim a new domain",
|
|
513
|
-
"description": "Creates an unverified domain claim
|
|
517
|
+
"description": "Creates an unverified domain claim and returns the exact\nDNS records to publish in `dns_records`. Publish those\nrecords before calling the verify endpoint. To give users\nan importable DNS file, call `downloadDomainZoneFile` or run\n`primitive domains zone-file --id <domain-id>`.\n",
|
|
514
518
|
"tags": ["Domains"],
|
|
515
519
|
"requestBody": {
|
|
516
520
|
"required": true,
|
|
@@ -603,7 +607,7 @@ const openapiDocument = {
|
|
|
603
607
|
"post": {
|
|
604
608
|
"operationId": "verifyDomain",
|
|
605
609
|
"summary": "Verify domain ownership",
|
|
606
|
-
"description": "Checks DNS records
|
|
610
|
+
"description": "Checks DNS records required for inbound routing, ownership,\nand outbound authentication: MX, ownership TXT, SPF, DKIM,\nDMARC, and TLS-RPT.\nOn success, the domain is promoted from unverified to verified.\nOn failure, returns which checks passed and which failed,\nplus the exact DNS records still expected. To give users\nan importable DNS file for missing records, call\n`downloadDomainZoneFile` or run\n`primitive domains zone-file --id <domain-id>`.\n",
|
|
607
611
|
"tags": ["Domains"],
|
|
608
612
|
"responses": {
|
|
609
613
|
"200": {
|
|
@@ -619,6 +623,55 @@ const openapiDocument = {
|
|
|
619
623
|
}
|
|
620
624
|
}
|
|
621
625
|
},
|
|
626
|
+
"/domains/{id}/zone-file": {
|
|
627
|
+
"parameters": [{ "$ref": "#/components/parameters/ResourceId" }],
|
|
628
|
+
"get": {
|
|
629
|
+
"operationId": "downloadDomainZoneFile",
|
|
630
|
+
"summary": "Download domain DNS zone file",
|
|
631
|
+
"description": "Downloads a BIND-format DNS zone file containing the DNS records\nrequired for a domain claim. Agents should offer this after\n`addDomain` when users want to import DNS records instead of\ncopying each record manually.\n",
|
|
632
|
+
"tags": ["Domains"],
|
|
633
|
+
"parameters": [{
|
|
634
|
+
"name": "outbound_only",
|
|
635
|
+
"in": "query",
|
|
636
|
+
"schema": { "type": "boolean" },
|
|
637
|
+
"description": "When true, include only outbound DNS records. Verified domains\ndefault to outbound-only; pending claims default to all required\nrecords.\n"
|
|
638
|
+
}],
|
|
639
|
+
"responses": {
|
|
640
|
+
"200": {
|
|
641
|
+
"description": "BIND-format zone file",
|
|
642
|
+
"content": { "text/plain": { "schema": {
|
|
643
|
+
"type": "string",
|
|
644
|
+
"format": "binary"
|
|
645
|
+
} } },
|
|
646
|
+
"headers": { "Content-Disposition": { "schema": {
|
|
647
|
+
"type": "string",
|
|
648
|
+
"example": "attachment; filename=\"example.com.zone\""
|
|
649
|
+
} } }
|
|
650
|
+
},
|
|
651
|
+
"400": { "$ref": "#/components/responses/ValidationError" },
|
|
652
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
653
|
+
"404": { "$ref": "#/components/responses/NotFound" },
|
|
654
|
+
"429": { "$ref": "#/components/responses/RateLimited" }
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"/inbox/status": { "get": {
|
|
659
|
+
"operationId": "getInboxStatus",
|
|
660
|
+
"summary": "Get inbound inbox readiness",
|
|
661
|
+
"description": "Returns one consolidated view of inbound domain readiness,\nwebhook/function processing routes, deployed Functions, and\nrecent inbound email activity.\n\nAgents should call this before guiding a user through inbound\nsetup. It answers the practical questions \"can I receive mail\",\n\"will anything process that mail\", and \"what should I do next\"\nwithout forcing clients to stitch together domains, endpoints,\nfunctions, and emails manually.\n",
|
|
662
|
+
"tags": ["Inbox"],
|
|
663
|
+
"responses": {
|
|
664
|
+
"200": {
|
|
665
|
+
"description": "Consolidated inbox readiness status",
|
|
666
|
+
"content": { "application/json": { "schema": { "allOf": [{ "$ref": "#/components/schemas/SuccessEnvelope" }, {
|
|
667
|
+
"type": "object",
|
|
668
|
+
"properties": { "data": { "$ref": "#/components/schemas/InboxStatus" } }
|
|
669
|
+
}] } } }
|
|
670
|
+
},
|
|
671
|
+
"401": { "$ref": "#/components/responses/Unauthorized" },
|
|
672
|
+
"429": { "$ref": "#/components/responses/RateLimited" }
|
|
673
|
+
}
|
|
674
|
+
} },
|
|
622
675
|
"/emails": { "get": {
|
|
623
676
|
"operationId": "listEmails",
|
|
624
677
|
"summary": "List inbound emails",
|
|
@@ -2907,8 +2960,183 @@ const openapiDocument = {
|
|
|
2907
2960
|
} },
|
|
2908
2961
|
"required": ["secret"]
|
|
2909
2962
|
},
|
|
2963
|
+
"InboxStatus": {
|
|
2964
|
+
"type": "object",
|
|
2965
|
+
"additionalProperties": false,
|
|
2966
|
+
"properties": {
|
|
2967
|
+
"ready": {
|
|
2968
|
+
"type": "boolean",
|
|
2969
|
+
"description": "True when at least one active inbound domain has an enabled processing route."
|
|
2970
|
+
},
|
|
2971
|
+
"receiving_ready": {
|
|
2972
|
+
"type": "boolean",
|
|
2973
|
+
"description": "True when at least one active verified or managed domain can receive mail."
|
|
2974
|
+
},
|
|
2975
|
+
"processing_ready": {
|
|
2976
|
+
"type": "boolean",
|
|
2977
|
+
"description": "True when at least one receiving-ready domain has an enabled webhook or function route."
|
|
2978
|
+
},
|
|
2979
|
+
"summary": {
|
|
2980
|
+
"type": "string",
|
|
2981
|
+
"description": "Short human-readable status summary."
|
|
2982
|
+
},
|
|
2983
|
+
"next_actions": {
|
|
2984
|
+
"type": "array",
|
|
2985
|
+
"items": { "$ref": "#/components/schemas/InboxStatusNextAction" }
|
|
2986
|
+
},
|
|
2987
|
+
"domains": {
|
|
2988
|
+
"type": "array",
|
|
2989
|
+
"items": { "$ref": "#/components/schemas/InboxStatusDomain" }
|
|
2990
|
+
},
|
|
2991
|
+
"endpoints": { "$ref": "#/components/schemas/InboxStatusEndpointSummary" },
|
|
2992
|
+
"functions": { "$ref": "#/components/schemas/InboxStatusFunctionSummary" },
|
|
2993
|
+
"recent_emails": { "$ref": "#/components/schemas/InboxStatusRecentEmailSummary" }
|
|
2994
|
+
},
|
|
2995
|
+
"required": [
|
|
2996
|
+
"ready",
|
|
2997
|
+
"receiving_ready",
|
|
2998
|
+
"processing_ready",
|
|
2999
|
+
"summary",
|
|
3000
|
+
"next_actions",
|
|
3001
|
+
"domains",
|
|
3002
|
+
"endpoints",
|
|
3003
|
+
"functions",
|
|
3004
|
+
"recent_emails"
|
|
3005
|
+
]
|
|
3006
|
+
},
|
|
3007
|
+
"InboxStatusNextAction": {
|
|
3008
|
+
"type": "object",
|
|
3009
|
+
"additionalProperties": false,
|
|
3010
|
+
"properties": {
|
|
3011
|
+
"kind": {
|
|
3012
|
+
"type": "string",
|
|
3013
|
+
"enum": [
|
|
3014
|
+
"add_domain",
|
|
3015
|
+
"verify_domain",
|
|
3016
|
+
"configure_processing",
|
|
3017
|
+
"send_test_email",
|
|
3018
|
+
"fix_failed_functions"
|
|
3019
|
+
]
|
|
3020
|
+
},
|
|
3021
|
+
"message": {
|
|
3022
|
+
"type": "string",
|
|
3023
|
+
"description": "Human-readable next step."
|
|
3024
|
+
},
|
|
3025
|
+
"command": {
|
|
3026
|
+
"type": "string",
|
|
3027
|
+
"description": "Suggested Primitive CLI command when there is an obvious next step."
|
|
3028
|
+
}
|
|
3029
|
+
},
|
|
3030
|
+
"required": ["kind", "message"]
|
|
3031
|
+
},
|
|
3032
|
+
"InboxStatusDomain": {
|
|
3033
|
+
"type": "object",
|
|
3034
|
+
"additionalProperties": false,
|
|
3035
|
+
"properties": {
|
|
3036
|
+
"id": { "type": "string" },
|
|
3037
|
+
"domain": { "type": "string" },
|
|
3038
|
+
"verified": { "type": "boolean" },
|
|
3039
|
+
"active": { "type": "boolean" },
|
|
3040
|
+
"managed": { "type": "boolean" },
|
|
3041
|
+
"receiving_ready": { "type": "boolean" },
|
|
3042
|
+
"processing_ready": { "type": "boolean" },
|
|
3043
|
+
"processing_route_count": { "type": "integer" },
|
|
3044
|
+
"endpoint_count": { "type": "integer" },
|
|
3045
|
+
"enabled_endpoint_count": { "type": "integer" },
|
|
3046
|
+
"function_endpoint_count": { "type": "integer" },
|
|
3047
|
+
"email_count": {
|
|
3048
|
+
"type": "integer",
|
|
3049
|
+
"description": "Number of inbound emails received for this domain in the last 30 days."
|
|
3050
|
+
},
|
|
3051
|
+
"latest_email_received_at": {
|
|
3052
|
+
"type": ["string", "null"],
|
|
3053
|
+
"format": "date-time",
|
|
3054
|
+
"description": "Most recent inbound email received for this domain in the last 30 days."
|
|
3055
|
+
},
|
|
3056
|
+
"status": {
|
|
3057
|
+
"type": "string",
|
|
3058
|
+
"enum": [
|
|
3059
|
+
"ready",
|
|
3060
|
+
"stored_only",
|
|
3061
|
+
"pending_dns",
|
|
3062
|
+
"inactive"
|
|
3063
|
+
]
|
|
3064
|
+
}
|
|
3065
|
+
},
|
|
3066
|
+
"required": [
|
|
3067
|
+
"id",
|
|
3068
|
+
"domain",
|
|
3069
|
+
"verified",
|
|
3070
|
+
"active",
|
|
3071
|
+
"managed",
|
|
3072
|
+
"receiving_ready",
|
|
3073
|
+
"processing_ready",
|
|
3074
|
+
"processing_route_count",
|
|
3075
|
+
"endpoint_count",
|
|
3076
|
+
"enabled_endpoint_count",
|
|
3077
|
+
"function_endpoint_count",
|
|
3078
|
+
"email_count",
|
|
3079
|
+
"latest_email_received_at",
|
|
3080
|
+
"status"
|
|
3081
|
+
]
|
|
3082
|
+
},
|
|
3083
|
+
"InboxStatusEndpointSummary": {
|
|
3084
|
+
"type": "object",
|
|
3085
|
+
"additionalProperties": false,
|
|
3086
|
+
"properties": {
|
|
3087
|
+
"total": { "type": "integer" },
|
|
3088
|
+
"enabled": { "type": "integer" },
|
|
3089
|
+
"disabled": { "type": "integer" },
|
|
3090
|
+
"fallback_enabled": { "type": "integer" },
|
|
3091
|
+
"domain_scoped_enabled": { "type": "integer" },
|
|
3092
|
+
"http_enabled": { "type": "integer" },
|
|
3093
|
+
"function_enabled": { "type": "integer" }
|
|
3094
|
+
},
|
|
3095
|
+
"required": [
|
|
3096
|
+
"total",
|
|
3097
|
+
"enabled",
|
|
3098
|
+
"disabled",
|
|
3099
|
+
"fallback_enabled",
|
|
3100
|
+
"domain_scoped_enabled",
|
|
3101
|
+
"http_enabled",
|
|
3102
|
+
"function_enabled"
|
|
3103
|
+
]
|
|
3104
|
+
},
|
|
3105
|
+
"InboxStatusFunctionSummary": {
|
|
3106
|
+
"type": "object",
|
|
3107
|
+
"additionalProperties": false,
|
|
3108
|
+
"properties": {
|
|
3109
|
+
"total": { "type": "integer" },
|
|
3110
|
+
"deployed": { "type": "integer" },
|
|
3111
|
+
"pending": { "type": "integer" },
|
|
3112
|
+
"failed": { "type": "integer" }
|
|
3113
|
+
},
|
|
3114
|
+
"required": [
|
|
3115
|
+
"total",
|
|
3116
|
+
"deployed",
|
|
3117
|
+
"pending",
|
|
3118
|
+
"failed"
|
|
3119
|
+
]
|
|
3120
|
+
},
|
|
3121
|
+
"InboxStatusRecentEmailSummary": {
|
|
3122
|
+
"type": "object",
|
|
3123
|
+
"description": "Inbound email activity from the last 30 days.",
|
|
3124
|
+
"additionalProperties": false,
|
|
3125
|
+
"properties": {
|
|
3126
|
+
"total": {
|
|
3127
|
+
"type": "integer",
|
|
3128
|
+
"description": "Number of inbound emails received in the last 30 days."
|
|
3129
|
+
},
|
|
3130
|
+
"latest_received_at": {
|
|
3131
|
+
"type": ["string", "null"],
|
|
3132
|
+
"format": "date-time",
|
|
3133
|
+
"description": "Most recent inbound email received in the last 30 days."
|
|
3134
|
+
}
|
|
3135
|
+
},
|
|
3136
|
+
"required": ["total", "latest_received_at"]
|
|
3137
|
+
},
|
|
2910
3138
|
"Domain": {
|
|
2911
|
-
"description": "A domain can be either verified or unverified. Verified domains have\n`is_active` and `spam_threshold` fields. Unverified domains have a\n`verification_token` for DNS
|
|
3139
|
+
"description": "A domain can be either verified or unverified. Verified domains have\n`is_active` and `spam_threshold` fields. Unverified domains have a\n`verification_token` and `dns_records` for DNS setup.\n",
|
|
2912
3140
|
"oneOf": [{ "$ref": "#/components/schemas/VerifiedDomain" }, { "$ref": "#/components/schemas/UnverifiedDomain" }]
|
|
2913
3141
|
},
|
|
2914
3142
|
"VerifiedDomain": {
|
|
@@ -2948,6 +3176,74 @@ const openapiDocument = {
|
|
|
2948
3176
|
"created_at"
|
|
2949
3177
|
]
|
|
2950
3178
|
},
|
|
3179
|
+
"DomainDnsRecord": {
|
|
3180
|
+
"type": "object",
|
|
3181
|
+
"additionalProperties": false,
|
|
3182
|
+
"properties": {
|
|
3183
|
+
"type": {
|
|
3184
|
+
"type": "string",
|
|
3185
|
+
"enum": ["MX", "TXT"],
|
|
3186
|
+
"description": "DNS record type."
|
|
3187
|
+
},
|
|
3188
|
+
"name": {
|
|
3189
|
+
"type": "string",
|
|
3190
|
+
"description": "DNS-provider host/name value relative to the managed root zone."
|
|
3191
|
+
},
|
|
3192
|
+
"fqdn": {
|
|
3193
|
+
"type": "string",
|
|
3194
|
+
"description": "Fully-qualified DNS record name."
|
|
3195
|
+
},
|
|
3196
|
+
"value": {
|
|
3197
|
+
"type": "string",
|
|
3198
|
+
"description": "Exact value to publish."
|
|
3199
|
+
},
|
|
3200
|
+
"priority": {
|
|
3201
|
+
"type": "integer",
|
|
3202
|
+
"description": "MX priority. Present only for MX records."
|
|
3203
|
+
},
|
|
3204
|
+
"ttl": {
|
|
3205
|
+
"type": "integer",
|
|
3206
|
+
"description": "Suggested TTL in seconds when the API can provide one."
|
|
3207
|
+
},
|
|
3208
|
+
"required": {
|
|
3209
|
+
"type": "boolean",
|
|
3210
|
+
"const": true
|
|
3211
|
+
},
|
|
3212
|
+
"purpose": {
|
|
3213
|
+
"type": "string",
|
|
3214
|
+
"enum": [
|
|
3215
|
+
"inbound_mx",
|
|
3216
|
+
"ownership_verification",
|
|
3217
|
+
"spf",
|
|
3218
|
+
"dkim",
|
|
3219
|
+
"dmarc",
|
|
3220
|
+
"tls_reporting"
|
|
3221
|
+
]
|
|
3222
|
+
},
|
|
3223
|
+
"status": {
|
|
3224
|
+
"type": "string",
|
|
3225
|
+
"enum": [
|
|
3226
|
+
"pending",
|
|
3227
|
+
"found",
|
|
3228
|
+
"missing",
|
|
3229
|
+
"incorrect"
|
|
3230
|
+
]
|
|
3231
|
+
},
|
|
3232
|
+
"message": {
|
|
3233
|
+
"type": "string",
|
|
3234
|
+
"description": "Short explanation of why this record is needed."
|
|
3235
|
+
}
|
|
3236
|
+
},
|
|
3237
|
+
"required": [
|
|
3238
|
+
"type",
|
|
3239
|
+
"name",
|
|
3240
|
+
"fqdn",
|
|
3241
|
+
"value",
|
|
3242
|
+
"required",
|
|
3243
|
+
"purpose",
|
|
3244
|
+
"status"
|
|
3245
|
+
]
|
|
3246
|
+
},
|
|
2951
3247
|
"UnverifiedDomain": {
|
|
2952
3248
|
"type": "object",
|
|
2953
3249
|
"properties": {
|
|
@@ -2968,6 +3264,11 @@ const openapiDocument = {
|
|
|
2968
3264
|
"type": "string",
|
|
2969
3265
|
"description": "Add this value as a TXT record to verify ownership"
|
|
2970
3266
|
},
|
|
3267
|
+
"dns_records": {
|
|
3268
|
+
"type": "array",
|
|
3269
|
+
"description": "Exact DNS records to publish for this pending domain claim.",
|
|
3270
|
+
"items": { "$ref": "#/components/schemas/DomainDnsRecord" }
|
|
3271
|
+
},
|
|
2971
3272
|
"created_at": {
|
|
2972
3273
|
"type": "string",
|
|
2973
3274
|
"format": "date-time"
|
|
@@ -2985,12 +3286,23 @@ const openapiDocument = {
|
|
|
2985
3286
|
"AddDomainInput": {
|
|
2986
3287
|
"type": "object",
|
|
2987
3288
|
"additionalProperties": false,
|
|
2988
|
-
"properties": {
|
|
2989
|
-
"
|
|
2990
|
-
|
|
2991
|
-
|
|
2992
|
-
|
|
2993
|
-
|
|
3289
|
+
"properties": {
|
|
3290
|
+
"domain": {
|
|
3291
|
+
"type": "string",
|
|
3292
|
+
"minLength": 1,
|
|
3293
|
+
"maxLength": 253,
|
|
3294
|
+
"description": "The domain name to claim (e.g. \"example.com\")"
|
|
3295
|
+
},
|
|
3296
|
+
"confirmed": {
|
|
3297
|
+
"type": "boolean",
|
|
3298
|
+
"description": "Set to true to confirm replacing an existing mailbox provider after an mx_conflict response."
|
|
3299
|
+
},
|
|
3300
|
+
"outbound": {
|
|
3301
|
+
"type": "boolean",
|
|
3302
|
+
"deprecated": true,
|
|
3303
|
+
"description": "Deprecated and ignored. Outbound DNS is provisioned for every new domain claim."
|
|
3304
|
+
}
|
|
3305
|
+
},
|
|
2994
3306
|
"required": ["domain"]
|
|
2995
3307
|
},
|
|
2996
3308
|
"UpdateDomainInput": {
|
|
@@ -3012,10 +3324,17 @@ const openapiDocument = {
|
|
|
3012
3324
|
},
|
|
3013
3325
|
"DomainVerifyResult": { "oneOf": [{
|
|
3014
3326
|
"type": "object",
|
|
3015
|
-
"properties": {
|
|
3016
|
-
"
|
|
3017
|
-
|
|
3018
|
-
|
|
3327
|
+
"properties": {
|
|
3328
|
+
"verified": {
|
|
3329
|
+
"type": "boolean",
|
|
3330
|
+
"const": true
|
|
3331
|
+
},
|
|
3332
|
+
"dns_records": {
|
|
3333
|
+
"type": "array",
|
|
3334
|
+
"description": "Exact DNS records checked for this verification attempt.",
|
|
3335
|
+
"items": { "$ref": "#/components/schemas/DomainDnsRecord" }
|
|
3336
|
+
}
|
|
3337
|
+
},
|
|
3019
3338
|
"required": ["verified"]
|
|
3020
3339
|
}, {
|
|
3021
3340
|
"type": "object",
|
|
@@ -3032,6 +3351,27 @@ const openapiDocument = {
|
|
|
3032
3351
|
"type": "boolean",
|
|
3033
3352
|
"description": "Whether the TXT verification record was found"
|
|
3034
3353
|
},
|
|
3354
|
+
"spfFound": {
|
|
3355
|
+
"type": "boolean",
|
|
3356
|
+
"description": "Whether the SPF record includes Primitive."
|
|
3357
|
+
},
|
|
3358
|
+
"dkimFound": {
|
|
3359
|
+
"type": "boolean",
|
|
3360
|
+
"description": "Whether the DKIM public key record was found."
|
|
3361
|
+
},
|
|
3362
|
+
"dmarcFound": {
|
|
3363
|
+
"type": "boolean",
|
|
3364
|
+
"description": "Whether the DMARC record was found."
|
|
3365
|
+
},
|
|
3366
|
+
"tlsRptFound": {
|
|
3367
|
+
"type": "boolean",
|
|
3368
|
+
"description": "Whether the TLS-RPT record was found."
|
|
3369
|
+
},
|
|
3370
|
+
"dns_records": {
|
|
3371
|
+
"type": "array",
|
|
3372
|
+
"description": "Exact DNS records checked for this verification attempt.",
|
|
3373
|
+
"items": { "$ref": "#/components/schemas/DomainDnsRecord" }
|
|
3374
|
+
},
|
|
3035
3375
|
"error": {
|
|
3036
3376
|
"type": "string",
|
|
3037
3377
|
"description": "Human-readable verification failure reason"
|
|
@@ -3344,6 +3684,31 @@ const openapiDocument = {
|
|
|
3344
3684
|
"created_at"
|
|
3345
3685
|
]
|
|
3346
3686
|
},
|
|
3687
|
+
"SendMailAttachment": {
|
|
3688
|
+
"type": "object",
|
|
3689
|
+
"additionalProperties": false,
|
|
3690
|
+
"properties": {
|
|
3691
|
+
"filename": {
|
|
3692
|
+
"type": "string",
|
|
3693
|
+
"minLength": 1,
|
|
3694
|
+
"maxLength": 255,
|
|
3695
|
+
"description": "Attachment filename. Control characters are rejected."
|
|
3696
|
+
},
|
|
3697
|
+
"content_type": {
|
|
3698
|
+
"type": "string",
|
|
3699
|
+
"minLength": 1,
|
|
3700
|
+
"maxLength": 255,
|
|
3701
|
+
"description": "Optional MIME content type. Control characters are rejected."
|
|
3702
|
+
},
|
|
3703
|
+
"content_base64": {
|
|
3704
|
+
"type": "string",
|
|
3705
|
+
"minLength": 1,
|
|
3706
|
+
"maxLength": 44040192,
|
|
3707
|
+
"description": "Base64-encoded attachment bytes."
|
|
3708
|
+
}
|
|
3709
|
+
},
|
|
3710
|
+
"required": ["filename", "content_base64"]
|
|
3711
|
+
},
|
|
3347
3712
|
"SendMailInput": {
|
|
3348
3713
|
"type": "object",
|
|
3349
3714
|
"additionalProperties": false,
|
|
@@ -3392,6 +3757,12 @@ const openapiDocument = {
|
|
|
3392
3757
|
"pattern": "^[^\\x00-\\x1F\\x7F]+$"
|
|
3393
3758
|
}
|
|
3394
3759
|
},
|
|
3760
|
+
"attachments": {
|
|
3761
|
+
"type": "array",
|
|
3762
|
+
"maxItems": 100,
|
|
3763
|
+
"description": "Inline attachments. Send requests with attachments to https://api.primitive.dev/v1/send-mail. Combined raw decoded attachment bytes must be at most 31457280.",
|
|
3764
|
+
"items": { "$ref": "#/components/schemas/SendMailAttachment" }
|
|
3765
|
+
},
|
|
3395
3766
|
"wait": {
|
|
3396
3767
|
"type": "boolean",
|
|
3397
3768
|
"description": "When true, wait for the first downstream SMTP delivery outcome before returning."
|
|
@@ -5679,7 +6050,7 @@ const operationManifest = [
|
|
|
5679
6050
|
"binaryResponse": false,
|
|
5680
6051
|
"bodyRequired": true,
|
|
5681
6052
|
"command": "add-domain",
|
|
5682
|
-
"description": "Creates an unverified domain claim
|
|
6053
|
+
"description": "Creates an unverified domain claim and returns the exact\nDNS records to publish in `dns_records`. Publish those\nrecords before calling the verify endpoint. To give users\nan importable DNS file, call `downloadDomainZoneFile` or run\n`primitive domains zone-file --id <domain-id>`.\n",
|
|
5683
6054
|
"hasJsonBody": true,
|
|
5684
6055
|
"method": "POST",
|
|
5685
6056
|
"operationId": "addDomain",
|
|
@@ -5689,12 +6060,23 @@ const operationManifest = [
|
|
|
5689
6060
|
"requestSchema": {
|
|
5690
6061
|
"type": "object",
|
|
5691
6062
|
"additionalProperties": false,
|
|
5692
|
-
"properties": {
|
|
5693
|
-
"
|
|
5694
|
-
|
|
5695
|
-
|
|
5696
|
-
|
|
5697
|
-
|
|
6063
|
+
"properties": {
|
|
6064
|
+
"domain": {
|
|
6065
|
+
"type": "string",
|
|
6066
|
+
"minLength": 1,
|
|
6067
|
+
"maxLength": 253,
|
|
6068
|
+
"description": "The domain name to claim (e.g. \"example.com\")"
|
|
6069
|
+
},
|
|
6070
|
+
"confirmed": {
|
|
6071
|
+
"type": "boolean",
|
|
6072
|
+
"description": "Set to true to confirm replacing an existing mailbox provider after an mx_conflict response."
|
|
6073
|
+
},
|
|
6074
|
+
"outbound": {
|
|
6075
|
+
"type": "boolean",
|
|
6076
|
+
"deprecated": true,
|
|
6077
|
+
"description": "Deprecated and ignored. Outbound DNS is provisioned for every new domain claim."
|
|
6078
|
+
}
|
|
6079
|
+
},
|
|
5698
6080
|
"required": ["domain"]
|
|
5699
6081
|
},
|
|
5700
6082
|
"responseSchema": {
|
|
@@ -5717,6 +6099,78 @@ const operationManifest = [
|
|
|
5717
6099
|
"type": "string",
|
|
5718
6100
|
"description": "Add this value as a TXT record to verify ownership"
|
|
5719
6101
|
},
|
|
6102
|
+
"dns_records": {
|
|
6103
|
+
"type": "array",
|
|
6104
|
+
"description": "Exact DNS records to publish for this pending domain claim.",
|
|
6105
|
+
"items": {
|
|
6106
|
+
"type": "object",
|
|
6107
|
+
"additionalProperties": false,
|
|
6108
|
+
"properties": {
|
|
6109
|
+
"type": {
|
|
6110
|
+
"type": "string",
|
|
6111
|
+
"enum": ["MX", "TXT"],
|
|
6112
|
+
"description": "DNS record type."
|
|
6113
|
+
},
|
|
6114
|
+
"name": {
|
|
6115
|
+
"type": "string",
|
|
6116
|
+
"description": "DNS-provider host/name value relative to the managed root zone."
|
|
6117
|
+
},
|
|
6118
|
+
"fqdn": {
|
|
6119
|
+
"type": "string",
|
|
6120
|
+
"description": "Fully-qualified DNS record name."
|
|
6121
|
+
},
|
|
6122
|
+
"value": {
|
|
6123
|
+
"type": "string",
|
|
6124
|
+
"description": "Exact value to publish."
|
|
6125
|
+
},
|
|
6126
|
+
"priority": {
|
|
6127
|
+
"type": "integer",
|
|
6128
|
+
"description": "MX priority. Present only for MX records."
|
|
6129
|
+
},
|
|
6130
|
+
"ttl": {
|
|
6131
|
+
"type": "integer",
|
|
6132
|
+
"description": "Suggested TTL in seconds when the API can provide one."
|
|
6133
|
+
},
|
|
6134
|
+
"required": {
|
|
6135
|
+
"type": "boolean",
|
|
6136
|
+
"const": true
|
|
6137
|
+
},
|
|
6138
|
+
"purpose": {
|
|
6139
|
+
"type": "string",
|
|
6140
|
+
"enum": [
|
|
6141
|
+
"inbound_mx",
|
|
6142
|
+
"ownership_verification",
|
|
6143
|
+
"spf",
|
|
6144
|
+
"dkim",
|
|
6145
|
+
"dmarc",
|
|
6146
|
+
"tls_reporting"
|
|
6147
|
+
]
|
|
6148
|
+
},
|
|
6149
|
+
"status": {
|
|
6150
|
+
"type": "string",
|
|
6151
|
+
"enum": [
|
|
6152
|
+
"pending",
|
|
6153
|
+
"found",
|
|
6154
|
+
"missing",
|
|
6155
|
+
"incorrect"
|
|
6156
|
+
]
|
|
6157
|
+
},
|
|
6158
|
+
"message": {
|
|
6159
|
+
"type": "string",
|
|
6160
|
+
"description": "Short explanation of why this record is needed."
|
|
6161
|
+
}
|
|
6162
|
+
},
|
|
6163
|
+
"required": [
|
|
6164
|
+
"type",
|
|
6165
|
+
"name",
|
|
6166
|
+
"fqdn",
|
|
6167
|
+
"value",
|
|
6168
|
+
"required",
|
|
6169
|
+
"purpose",
|
|
6170
|
+
"status"
|
|
6171
|
+
]
|
|
6172
|
+
}
|
|
6173
|
+
},
|
|
5720
6174
|
"created_at": {
|
|
5721
6175
|
"type": "string",
|
|
5722
6176
|
"format": "date-time"
|
|
@@ -5760,6 +6214,36 @@ const operationManifest = [
|
|
|
5760
6214
|
"tag": "Domains",
|
|
5761
6215
|
"tagCommand": "domains"
|
|
5762
6216
|
},
|
|
6217
|
+
{
|
|
6218
|
+
"binaryResponse": true,
|
|
6219
|
+
"bodyRequired": false,
|
|
6220
|
+
"command": "download-domain-zone-file",
|
|
6221
|
+
"description": "Downloads a BIND-format DNS zone file containing the DNS records\nrequired for a domain claim. Agents should offer this after\n`addDomain` when users want to import DNS records instead of\ncopying each record manually.\n",
|
|
6222
|
+
"hasJsonBody": false,
|
|
6223
|
+
"method": "GET",
|
|
6224
|
+
"operationId": "downloadDomainZoneFile",
|
|
6225
|
+
"path": "/domains/{id}/zone-file",
|
|
6226
|
+
"pathParams": [{
|
|
6227
|
+
"description": "Resource UUID",
|
|
6228
|
+
"enum": null,
|
|
6229
|
+
"name": "id",
|
|
6230
|
+
"required": true,
|
|
6231
|
+
"type": "string"
|
|
6232
|
+
}],
|
|
6233
|
+
"queryParams": [{
|
|
6234
|
+
"description": "When true, include only outbound DNS records. Verified domains\ndefault to outbound-only; pending claims default to all required\nrecords.\n",
|
|
6235
|
+
"enum": null,
|
|
6236
|
+
"name": "outbound_only",
|
|
6237
|
+
"required": false,
|
|
6238
|
+
"type": "boolean"
|
|
6239
|
+
}],
|
|
6240
|
+
"requestSchema": null,
|
|
6241
|
+
"responseSchema": null,
|
|
6242
|
+
"sdkName": "downloadDomainZoneFile",
|
|
6243
|
+
"summary": "Download domain DNS zone file",
|
|
6244
|
+
"tag": "Domains",
|
|
6245
|
+
"tagCommand": "domains"
|
|
6246
|
+
},
|
|
5763
6247
|
{
|
|
5764
6248
|
"binaryResponse": false,
|
|
5765
6249
|
"bodyRequired": false,
|
|
@@ -5775,7 +6259,7 @@ const operationManifest = [
|
|
|
5775
6259
|
"responseSchema": {
|
|
5776
6260
|
"type": "array",
|
|
5777
6261
|
"items": {
|
|
5778
|
-
"description": "A domain can be either verified or unverified. Verified domains have\n`is_active` and `spam_threshold` fields. Unverified domains have a\n`verification_token` for DNS
|
|
6262
|
+
"description": "A domain can be either verified or unverified. Verified domains have\n`is_active` and `spam_threshold` fields. Unverified domains have a\n`verification_token` and `dns_records` for DNS setup.\n",
|
|
5779
6263
|
"oneOf": [{
|
|
5780
6264
|
"type": "object",
|
|
5781
6265
|
"properties": {
|
|
@@ -5832,6 +6316,78 @@ const operationManifest = [
|
|
|
5832
6316
|
"type": "string",
|
|
5833
6317
|
"description": "Add this value as a TXT record to verify ownership"
|
|
5834
6318
|
},
|
|
6319
|
+
"dns_records": {
|
|
6320
|
+
"type": "array",
|
|
6321
|
+
"description": "Exact DNS records to publish for this pending domain claim.",
|
|
6322
|
+
"items": {
|
|
6323
|
+
"type": "object",
|
|
6324
|
+
"additionalProperties": false,
|
|
6325
|
+
"properties": {
|
|
6326
|
+
"type": {
|
|
6327
|
+
"type": "string",
|
|
6328
|
+
"enum": ["MX", "TXT"],
|
|
6329
|
+
"description": "DNS record type."
|
|
6330
|
+
},
|
|
6331
|
+
"name": {
|
|
6332
|
+
"type": "string",
|
|
6333
|
+
"description": "DNS-provider host/name value relative to the managed root zone."
|
|
6334
|
+
},
|
|
6335
|
+
"fqdn": {
|
|
6336
|
+
"type": "string",
|
|
6337
|
+
"description": "Fully-qualified DNS record name."
|
|
6338
|
+
},
|
|
6339
|
+
"value": {
|
|
6340
|
+
"type": "string",
|
|
6341
|
+
"description": "Exact value to publish."
|
|
6342
|
+
},
|
|
6343
|
+
"priority": {
|
|
6344
|
+
"type": "integer",
|
|
6345
|
+
"description": "MX priority. Present only for MX records."
|
|
6346
|
+
},
|
|
6347
|
+
"ttl": {
|
|
6348
|
+
"type": "integer",
|
|
6349
|
+
"description": "Suggested TTL in seconds when the API can provide one."
|
|
6350
|
+
},
|
|
6351
|
+
"required": {
|
|
6352
|
+
"type": "boolean",
|
|
6353
|
+
"const": true
|
|
6354
|
+
},
|
|
6355
|
+
"purpose": {
|
|
6356
|
+
"type": "string",
|
|
6357
|
+
"enum": [
|
|
6358
|
+
"inbound_mx",
|
|
6359
|
+
"ownership_verification",
|
|
6360
|
+
"spf",
|
|
6361
|
+
"dkim",
|
|
6362
|
+
"dmarc",
|
|
6363
|
+
"tls_reporting"
|
|
6364
|
+
]
|
|
6365
|
+
},
|
|
6366
|
+
"status": {
|
|
6367
|
+
"type": "string",
|
|
6368
|
+
"enum": [
|
|
6369
|
+
"pending",
|
|
6370
|
+
"found",
|
|
6371
|
+
"missing",
|
|
6372
|
+
"incorrect"
|
|
6373
|
+
]
|
|
6374
|
+
},
|
|
6375
|
+
"message": {
|
|
6376
|
+
"type": "string",
|
|
6377
|
+
"description": "Short explanation of why this record is needed."
|
|
6378
|
+
}
|
|
6379
|
+
},
|
|
6380
|
+
"required": [
|
|
6381
|
+
"type",
|
|
6382
|
+
"name",
|
|
6383
|
+
"fqdn",
|
|
6384
|
+
"value",
|
|
6385
|
+
"required",
|
|
6386
|
+
"purpose",
|
|
6387
|
+
"status"
|
|
6388
|
+
]
|
|
6389
|
+
}
|
|
6390
|
+
},
|
|
5835
6391
|
"created_at": {
|
|
5836
6392
|
"type": "string",
|
|
5837
6393
|
"format": "date-time"
|
|
@@ -5933,7 +6489,7 @@ const operationManifest = [
|
|
|
5933
6489
|
"binaryResponse": false,
|
|
5934
6490
|
"bodyRequired": false,
|
|
5935
6491
|
"command": "verify-domain",
|
|
5936
|
-
"description": "Checks DNS records
|
|
6492
|
+
"description": "Checks DNS records required for inbound routing, ownership,\nand outbound authentication: MX, ownership TXT, SPF, DKIM,\nDMARC, and TLS-RPT.\nOn success, the domain is promoted from unverified to verified.\nOn failure, returns which checks passed and which failed,\nplus the exact DNS records still expected. To give users\nan importable DNS file for missing records, call\n`downloadDomainZoneFile` or run\n`primitive domains zone-file --id <domain-id>`.\n",
|
|
5937
6493
|
"hasJsonBody": false,
|
|
5938
6494
|
"method": "POST",
|
|
5939
6495
|
"operationId": "verifyDomain",
|
|
@@ -5949,10 +6505,84 @@ const operationManifest = [
|
|
|
5949
6505
|
"requestSchema": null,
|
|
5950
6506
|
"responseSchema": { "oneOf": [{
|
|
5951
6507
|
"type": "object",
|
|
5952
|
-
"properties": {
|
|
5953
|
-
"
|
|
5954
|
-
|
|
5955
|
-
|
|
6508
|
+
"properties": {
|
|
6509
|
+
"verified": {
|
|
6510
|
+
"type": "boolean",
|
|
6511
|
+
"const": true
|
|
6512
|
+
},
|
|
6513
|
+
"dns_records": {
|
|
6514
|
+
"type": "array",
|
|
6515
|
+
"description": "Exact DNS records checked for this verification attempt.",
|
|
6516
|
+
"items": {
|
|
6517
|
+
"type": "object",
|
|
6518
|
+
"additionalProperties": false,
|
|
6519
|
+
"properties": {
|
|
6520
|
+
"type": {
|
|
6521
|
+
"type": "string",
|
|
6522
|
+
"enum": ["MX", "TXT"],
|
|
6523
|
+
"description": "DNS record type."
|
|
6524
|
+
},
|
|
6525
|
+
"name": {
|
|
6526
|
+
"type": "string",
|
|
6527
|
+
"description": "DNS-provider host/name value relative to the managed root zone."
|
|
6528
|
+
},
|
|
6529
|
+
"fqdn": {
|
|
6530
|
+
"type": "string",
|
|
6531
|
+
"description": "Fully-qualified DNS record name."
|
|
6532
|
+
},
|
|
6533
|
+
"value": {
|
|
6534
|
+
"type": "string",
|
|
6535
|
+
"description": "Exact value to publish."
|
|
6536
|
+
},
|
|
6537
|
+
"priority": {
|
|
6538
|
+
"type": "integer",
|
|
6539
|
+
"description": "MX priority. Present only for MX records."
|
|
6540
|
+
},
|
|
6541
|
+
"ttl": {
|
|
6542
|
+
"type": "integer",
|
|
6543
|
+
"description": "Suggested TTL in seconds when the API can provide one."
|
|
6544
|
+
},
|
|
6545
|
+
"required": {
|
|
6546
|
+
"type": "boolean",
|
|
6547
|
+
"const": true
|
|
6548
|
+
},
|
|
6549
|
+
"purpose": {
|
|
6550
|
+
"type": "string",
|
|
6551
|
+
"enum": [
|
|
6552
|
+
"inbound_mx",
|
|
6553
|
+
"ownership_verification",
|
|
6554
|
+
"spf",
|
|
6555
|
+
"dkim",
|
|
6556
|
+
"dmarc",
|
|
6557
|
+
"tls_reporting"
|
|
6558
|
+
]
|
|
6559
|
+
},
|
|
6560
|
+
"status": {
|
|
6561
|
+
"type": "string",
|
|
6562
|
+
"enum": [
|
|
6563
|
+
"pending",
|
|
6564
|
+
"found",
|
|
6565
|
+
"missing",
|
|
6566
|
+
"incorrect"
|
|
6567
|
+
]
|
|
6568
|
+
},
|
|
6569
|
+
"message": {
|
|
6570
|
+
"type": "string",
|
|
6571
|
+
"description": "Short explanation of why this record is needed."
|
|
6572
|
+
}
|
|
6573
|
+
},
|
|
6574
|
+
"required": [
|
|
6575
|
+
"type",
|
|
6576
|
+
"name",
|
|
6577
|
+
"fqdn",
|
|
6578
|
+
"value",
|
|
6579
|
+
"required",
|
|
6580
|
+
"purpose",
|
|
6581
|
+
"status"
|
|
6582
|
+
]
|
|
6583
|
+
}
|
|
6584
|
+
}
|
|
6585
|
+
},
|
|
5956
6586
|
"required": ["verified"]
|
|
5957
6587
|
}, {
|
|
5958
6588
|
"type": "object",
|
|
@@ -5969,6 +6599,94 @@ const operationManifest = [
|
|
|
5969
6599
|
"type": "boolean",
|
|
5970
6600
|
"description": "Whether the TXT verification record was found"
|
|
5971
6601
|
},
|
|
6602
|
+
"spfFound": {
|
|
6603
|
+
"type": "boolean",
|
|
6604
|
+
"description": "Whether the SPF record includes Primitive."
|
|
6605
|
+
},
|
|
6606
|
+
"dkimFound": {
|
|
6607
|
+
"type": "boolean",
|
|
6608
|
+
"description": "Whether the DKIM public key record was found."
|
|
6609
|
+
},
|
|
6610
|
+
"dmarcFound": {
|
|
6611
|
+
"type": "boolean",
|
|
6612
|
+
"description": "Whether the DMARC record was found."
|
|
6613
|
+
},
|
|
6614
|
+
"tlsRptFound": {
|
|
6615
|
+
"type": "boolean",
|
|
6616
|
+
"description": "Whether the TLS-RPT record was found."
|
|
6617
|
+
},
|
|
6618
|
+
"dns_records": {
|
|
6619
|
+
"type": "array",
|
|
6620
|
+
"description": "Exact DNS records checked for this verification attempt.",
|
|
6621
|
+
"items": {
|
|
6622
|
+
"type": "object",
|
|
6623
|
+
"additionalProperties": false,
|
|
6624
|
+
"properties": {
|
|
6625
|
+
"type": {
|
|
6626
|
+
"type": "string",
|
|
6627
|
+
"enum": ["MX", "TXT"],
|
|
6628
|
+
"description": "DNS record type."
|
|
6629
|
+
},
|
|
6630
|
+
"name": {
|
|
6631
|
+
"type": "string",
|
|
6632
|
+
"description": "DNS-provider host/name value relative to the managed root zone."
|
|
6633
|
+
},
|
|
6634
|
+
"fqdn": {
|
|
6635
|
+
"type": "string",
|
|
6636
|
+
"description": "Fully-qualified DNS record name."
|
|
6637
|
+
},
|
|
6638
|
+
"value": {
|
|
6639
|
+
"type": "string",
|
|
6640
|
+
"description": "Exact value to publish."
|
|
6641
|
+
},
|
|
6642
|
+
"priority": {
|
|
6643
|
+
"type": "integer",
|
|
6644
|
+
"description": "MX priority. Present only for MX records."
|
|
6645
|
+
},
|
|
6646
|
+
"ttl": {
|
|
6647
|
+
"type": "integer",
|
|
6648
|
+
"description": "Suggested TTL in seconds when the API can provide one."
|
|
6649
|
+
},
|
|
6650
|
+
"required": {
|
|
6651
|
+
"type": "boolean",
|
|
6652
|
+
"const": true
|
|
6653
|
+
},
|
|
6654
|
+
"purpose": {
|
|
6655
|
+
"type": "string",
|
|
6656
|
+
"enum": [
|
|
6657
|
+
"inbound_mx",
|
|
6658
|
+
"ownership_verification",
|
|
6659
|
+
"spf",
|
|
6660
|
+
"dkim",
|
|
6661
|
+
"dmarc",
|
|
6662
|
+
"tls_reporting"
|
|
6663
|
+
]
|
|
6664
|
+
},
|
|
6665
|
+
"status": {
|
|
6666
|
+
"type": "string",
|
|
6667
|
+
"enum": [
|
|
6668
|
+
"pending",
|
|
6669
|
+
"found",
|
|
6670
|
+
"missing",
|
|
6671
|
+
"incorrect"
|
|
6672
|
+
]
|
|
6673
|
+
},
|
|
6674
|
+
"message": {
|
|
6675
|
+
"type": "string",
|
|
6676
|
+
"description": "Short explanation of why this record is needed."
|
|
6677
|
+
}
|
|
6678
|
+
},
|
|
6679
|
+
"required": [
|
|
6680
|
+
"type",
|
|
6681
|
+
"name",
|
|
6682
|
+
"fqdn",
|
|
6683
|
+
"value",
|
|
6684
|
+
"required",
|
|
6685
|
+
"purpose",
|
|
6686
|
+
"status"
|
|
6687
|
+
]
|
|
6688
|
+
}
|
|
6689
|
+
},
|
|
5972
6690
|
"error": {
|
|
5973
6691
|
"type": "string",
|
|
5974
6692
|
"description": "Human-readable verification failure reason"
|
|
@@ -8510,6 +9228,193 @@ const operationManifest = [
|
|
|
8510
9228
|
"tag": "Functions",
|
|
8511
9229
|
"tagCommand": "functions"
|
|
8512
9230
|
},
|
|
9231
|
+
{
|
|
9232
|
+
"binaryResponse": false,
|
|
9233
|
+
"bodyRequired": false,
|
|
9234
|
+
"command": "get-inbox-status",
|
|
9235
|
+
"description": "Returns one consolidated view of inbound domain readiness,\nwebhook/function processing routes, deployed Functions, and\nrecent inbound email activity.\n\nAgents should call this before guiding a user through inbound\nsetup. It answers the practical questions \"can I receive mail\",\n\"will anything process that mail\", and \"what should I do next\"\nwithout forcing clients to stitch together domains, endpoints,\nfunctions, and emails manually.\n",
|
|
9236
|
+
"hasJsonBody": false,
|
|
9237
|
+
"method": "GET",
|
|
9238
|
+
"operationId": "getInboxStatus",
|
|
9239
|
+
"path": "/inbox/status",
|
|
9240
|
+
"pathParams": [],
|
|
9241
|
+
"queryParams": [],
|
|
9242
|
+
"requestSchema": null,
|
|
9243
|
+
"responseSchema": {
|
|
9244
|
+
"type": "object",
|
|
9245
|
+
"additionalProperties": false,
|
|
9246
|
+
"properties": {
|
|
9247
|
+
"ready": {
|
|
9248
|
+
"type": "boolean",
|
|
9249
|
+
"description": "True when at least one active inbound domain has an enabled processing route."
|
|
9250
|
+
},
|
|
9251
|
+
"receiving_ready": {
|
|
9252
|
+
"type": "boolean",
|
|
9253
|
+
"description": "True when at least one active verified or managed domain can receive mail."
|
|
9254
|
+
},
|
|
9255
|
+
"processing_ready": {
|
|
9256
|
+
"type": "boolean",
|
|
9257
|
+
"description": "True when at least one receiving-ready domain has an enabled webhook or function route."
|
|
9258
|
+
},
|
|
9259
|
+
"summary": {
|
|
9260
|
+
"type": "string",
|
|
9261
|
+
"description": "Short human-readable status summary."
|
|
9262
|
+
},
|
|
9263
|
+
"next_actions": {
|
|
9264
|
+
"type": "array",
|
|
9265
|
+
"items": {
|
|
9266
|
+
"type": "object",
|
|
9267
|
+
"additionalProperties": false,
|
|
9268
|
+
"properties": {
|
|
9269
|
+
"kind": {
|
|
9270
|
+
"type": "string",
|
|
9271
|
+
"enum": [
|
|
9272
|
+
"add_domain",
|
|
9273
|
+
"verify_domain",
|
|
9274
|
+
"configure_processing",
|
|
9275
|
+
"send_test_email",
|
|
9276
|
+
"fix_failed_functions"
|
|
9277
|
+
]
|
|
9278
|
+
},
|
|
9279
|
+
"message": {
|
|
9280
|
+
"type": "string",
|
|
9281
|
+
"description": "Human-readable next step."
|
|
9282
|
+
},
|
|
9283
|
+
"command": {
|
|
9284
|
+
"type": "string",
|
|
9285
|
+
"description": "Suggested Primitive CLI command when there is an obvious next step."
|
|
9286
|
+
}
|
|
9287
|
+
},
|
|
9288
|
+
"required": ["kind", "message"]
|
|
9289
|
+
}
|
|
9290
|
+
},
|
|
9291
|
+
"domains": {
|
|
9292
|
+
"type": "array",
|
|
9293
|
+
"items": {
|
|
9294
|
+
"type": "object",
|
|
9295
|
+
"additionalProperties": false,
|
|
9296
|
+
"properties": {
|
|
9297
|
+
"id": { "type": "string" },
|
|
9298
|
+
"domain": { "type": "string" },
|
|
9299
|
+
"verified": { "type": "boolean" },
|
|
9300
|
+
"active": { "type": "boolean" },
|
|
9301
|
+
"managed": { "type": "boolean" },
|
|
9302
|
+
"receiving_ready": { "type": "boolean" },
|
|
9303
|
+
"processing_ready": { "type": "boolean" },
|
|
9304
|
+
"processing_route_count": { "type": "integer" },
|
|
9305
|
+
"endpoint_count": { "type": "integer" },
|
|
9306
|
+
"enabled_endpoint_count": { "type": "integer" },
|
|
9307
|
+
"function_endpoint_count": { "type": "integer" },
|
|
9308
|
+
"email_count": {
|
|
9309
|
+
"type": "integer",
|
|
9310
|
+
"description": "Number of inbound emails received for this domain in the last 30 days."
|
|
9311
|
+
},
|
|
9312
|
+
"latest_email_received_at": {
|
|
9313
|
+
"type": ["string", "null"],
|
|
9314
|
+
"format": "date-time",
|
|
9315
|
+
"description": "Most recent inbound email received for this domain in the last 30 days."
|
|
9316
|
+
},
|
|
9317
|
+
"status": {
|
|
9318
|
+
"type": "string",
|
|
9319
|
+
"enum": [
|
|
9320
|
+
"ready",
|
|
9321
|
+
"stored_only",
|
|
9322
|
+
"pending_dns",
|
|
9323
|
+
"inactive"
|
|
9324
|
+
]
|
|
9325
|
+
}
|
|
9326
|
+
},
|
|
9327
|
+
"required": [
|
|
9328
|
+
"id",
|
|
9329
|
+
"domain",
|
|
9330
|
+
"verified",
|
|
9331
|
+
"active",
|
|
9332
|
+
"managed",
|
|
9333
|
+
"receiving_ready",
|
|
9334
|
+
"processing_ready",
|
|
9335
|
+
"processing_route_count",
|
|
9336
|
+
"endpoint_count",
|
|
9337
|
+
"enabled_endpoint_count",
|
|
9338
|
+
"function_endpoint_count",
|
|
9339
|
+
"email_count",
|
|
9340
|
+
"latest_email_received_at",
|
|
9341
|
+
"status"
|
|
9342
|
+
]
|
|
9343
|
+
}
|
|
9344
|
+
},
|
|
9345
|
+
"endpoints": {
|
|
9346
|
+
"type": "object",
|
|
9347
|
+
"additionalProperties": false,
|
|
9348
|
+
"properties": {
|
|
9349
|
+
"total": { "type": "integer" },
|
|
9350
|
+
"enabled": { "type": "integer" },
|
|
9351
|
+
"disabled": { "type": "integer" },
|
|
9352
|
+
"fallback_enabled": { "type": "integer" },
|
|
9353
|
+
"domain_scoped_enabled": { "type": "integer" },
|
|
9354
|
+
"http_enabled": { "type": "integer" },
|
|
9355
|
+
"function_enabled": { "type": "integer" }
|
|
9356
|
+
},
|
|
9357
|
+
"required": [
|
|
9358
|
+
"total",
|
|
9359
|
+
"enabled",
|
|
9360
|
+
"disabled",
|
|
9361
|
+
"fallback_enabled",
|
|
9362
|
+
"domain_scoped_enabled",
|
|
9363
|
+
"http_enabled",
|
|
9364
|
+
"function_enabled"
|
|
9365
|
+
]
|
|
9366
|
+
},
|
|
9367
|
+
"functions": {
|
|
9368
|
+
"type": "object",
|
|
9369
|
+
"additionalProperties": false,
|
|
9370
|
+
"properties": {
|
|
9371
|
+
"total": { "type": "integer" },
|
|
9372
|
+
"deployed": { "type": "integer" },
|
|
9373
|
+
"pending": { "type": "integer" },
|
|
9374
|
+
"failed": { "type": "integer" }
|
|
9375
|
+
},
|
|
9376
|
+
"required": [
|
|
9377
|
+
"total",
|
|
9378
|
+
"deployed",
|
|
9379
|
+
"pending",
|
|
9380
|
+
"failed"
|
|
9381
|
+
]
|
|
9382
|
+
},
|
|
9383
|
+
"recent_emails": {
|
|
9384
|
+
"type": "object",
|
|
9385
|
+
"description": "Inbound email activity from the last 30 days.",
|
|
9386
|
+
"additionalProperties": false,
|
|
9387
|
+
"properties": {
|
|
9388
|
+
"total": {
|
|
9389
|
+
"type": "integer",
|
|
9390
|
+
"description": "Number of inbound emails received in the last 30 days."
|
|
9391
|
+
},
|
|
9392
|
+
"latest_received_at": {
|
|
9393
|
+
"type": ["string", "null"],
|
|
9394
|
+
"format": "date-time",
|
|
9395
|
+
"description": "Most recent inbound email received in the last 30 days."
|
|
9396
|
+
}
|
|
9397
|
+
},
|
|
9398
|
+
"required": ["total", "latest_received_at"]
|
|
9399
|
+
}
|
|
9400
|
+
},
|
|
9401
|
+
"required": [
|
|
9402
|
+
"ready",
|
|
9403
|
+
"receiving_ready",
|
|
9404
|
+
"processing_ready",
|
|
9405
|
+
"summary",
|
|
9406
|
+
"next_actions",
|
|
9407
|
+
"domains",
|
|
9408
|
+
"endpoints",
|
|
9409
|
+
"functions",
|
|
9410
|
+
"recent_emails"
|
|
9411
|
+
]
|
|
9412
|
+
},
|
|
9413
|
+
"sdkName": "getInboxStatus",
|
|
9414
|
+
"summary": "Get inbound inbox readiness",
|
|
9415
|
+
"tag": "Inbox",
|
|
9416
|
+
"tagCommand": "inbox"
|
|
9417
|
+
},
|
|
8513
9418
|
{
|
|
8514
9419
|
"binaryResponse": false,
|
|
8515
9420
|
"bodyRequired": false,
|
|
@@ -9342,6 +10247,36 @@ const operationManifest = [
|
|
|
9342
10247
|
"pattern": "^[^\\x00-\\x1F\\x7F]+$"
|
|
9343
10248
|
}
|
|
9344
10249
|
},
|
|
10250
|
+
"attachments": {
|
|
10251
|
+
"type": "array",
|
|
10252
|
+
"maxItems": 100,
|
|
10253
|
+
"description": "Inline attachments. Send requests with attachments to https://api.primitive.dev/v1/send-mail. Combined raw decoded attachment bytes must be at most 31457280.",
|
|
10254
|
+
"items": {
|
|
10255
|
+
"type": "object",
|
|
10256
|
+
"additionalProperties": false,
|
|
10257
|
+
"properties": {
|
|
10258
|
+
"filename": {
|
|
10259
|
+
"type": "string",
|
|
10260
|
+
"minLength": 1,
|
|
10261
|
+
"maxLength": 255,
|
|
10262
|
+
"description": "Attachment filename. Control characters are rejected."
|
|
10263
|
+
},
|
|
10264
|
+
"content_type": {
|
|
10265
|
+
"type": "string",
|
|
10266
|
+
"minLength": 1,
|
|
10267
|
+
"maxLength": 255,
|
|
10268
|
+
"description": "Optional MIME content type. Control characters are rejected."
|
|
10269
|
+
},
|
|
10270
|
+
"content_base64": {
|
|
10271
|
+
"type": "string",
|
|
10272
|
+
"minLength": 1,
|
|
10273
|
+
"maxLength": 44040192,
|
|
10274
|
+
"description": "Base64-encoded attachment bytes."
|
|
10275
|
+
}
|
|
10276
|
+
},
|
|
10277
|
+
"required": ["filename", "content_base64"]
|
|
10278
|
+
}
|
|
10279
|
+
},
|
|
9345
10280
|
"wait": {
|
|
9346
10281
|
"type": "boolean",
|
|
9347
10282
|
"description": "When true, wait for the first downstream SMTP delivery outcome before returning."
|