@lap v0.3
# Machine-readable API spec. Each @endpoint block is one API call.
@api Cloudflare API
@base https://api.cloudflare.com/client/v4
@version 4.0.0
@auth ApiKey X-Auth-Email in header | ApiKey X-Auth-Key in header | Bearer bearer | ApiKey X-Auth-User-Service-Key in header
@endpoints 2726
@hint download_for_search
@toc accounts(1800), certificates(4), internal(1), ips(1), live(1), memberships(4), organizations(15), radar(268), ready(1), signed-url(1), system(11), tenants(5), user(46), users(1), zones(567)

@group accounts
@endpoint GET /accounts
@optional {name: str, page: num=1, per_page: num=20, direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts
@required {name: str}
@optional {type: any(standard/enterprise), unit: map{id: str}}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/move
@required {account_ids: [str], destination_organization_id: str}
@returns(200) {errors: [map], messages: [map], result: map{statuses: map{message: str, moved: bool, tag: str}}, success: bool}
@errors {4XX}

@endpoint GET /accounts/{accountId}/resource-library/applications
@required {accountId: str}
@optional {filter: str, limit: int=10, offset: int=0, order_by: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{accountId}/resource-library/applications
@required {accountId: str, application_type_id: str, human_id: str, name: str}
@optional {hostnames: any, ip_subnets: [str], port_protocols: [str], support_domains: [str]}
@returns(201)
@errors {4XX}

@endpoint GET /accounts/{accountId}/resource-library/applications/{id}
@required {accountId: str, id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{accountId}/resource-library/applications/{id}
@required {accountId: str, id: str}
@optional {hostnames: [str], ip_subnets: [str], port_protocols: [str], support_domains: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{accountId}/resource-library/categories
@required {accountId: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{accountId}/resource-library/categories/{id}
@required {accountId: str, id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_identifier}/custom_pages
@required {account_identifier: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_identifier}/custom_pages/assets
@required {account_identifier: str}
@optional {page: int=1, per_page: int=20}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_identifier}/custom_pages/assets
@required {account_identifier: str, description: str, name: str, url: str(uri)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_identifier}/custom_pages/assets/{asset_name}
@required {asset_name: str, account_identifier: str}
@returns(204)
@errors {4XX}

@endpoint GET /accounts/{account_identifier}/custom_pages/assets/{asset_name}
@required {asset_name: str, account_identifier: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_identifier}/custom_pages/assets/{asset_name}
@required {asset_name: str, account_identifier: str, description: str, url: str(uri)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_identifier}/custom_pages/{identifier}
@required {identifier: str, account_identifier: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_identifier}/custom_pages/{identifier}
@required {identifier: str, account_identifier: str, state: str(default/customized), url: str(uri)=}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/abuse-reports
@required {account_id: str}
@optional {page: int, per_page: int, sort: str, domain: str, created_before: str, created_after: str, status: str, type: str, mitigation_status: str}
@returns(200) {errors: [map], messages: [map], result: map{reports: [map]}, result_info: map{count: num, page: num, per_page: num, total_count: num, total_pages: num}, success: bool}
@errors {500}

@endpoint GET /accounts/{account_id}/abuse-reports/{report_id}/emails
@required {account_id: str, report_id: str}
@optional {page: int, per_page: int}
@returns(200) {errors: [map], messages: [map], result: map{emails: [map]}, result_info: map{count: num, page: num, per_page: num, total_count: num, total_pages: num}, success: bool}
@errors {400, 500}

@endpoint GET /accounts/{account_id}/abuse-reports/{report_id}/mitigations
@required {account_id: str, report_id: str}
@optional {page: int, per_page: int, sort: str(type,asc/type,desc/effective_date,asc/effective_date,desc/status,asc/status,desc/entity_type,asc/entity_type,desc), type: str, effective_before: str, effective_after: str, status: str, entity_type: str}
@returns(200) {errors: [map], messages: [map], result: map{mitigations: [map]}, result_info: map{count: num, page: num, per_page: num, total_count: num, total_pages: num}, success: bool}
@errors {500}

@endpoint POST /accounts/{account_id}/abuse-reports/{report_id}/mitigations/appeal
@required {account_id: str, report_id: str, appeals: [map{id!: str, reason!: str}]}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: num, page: num, per_page: num, total_count: num, total_pages: num}, success: bool}
@errors {500}

@endpoint GET /accounts/{account_id}/abuse-reports/{report_param}
@required {account_id: str, report_param: str}
@returns(200) {errors: [map], messages: [map], result: map{cdate: str, domain: str, id: str, justification: str, mitigation_summary: map{accepted_url_count: int, active_count: int, external_host_notified: bool, in_review_count: int, pending_count: int}, original_work: str, status: str, submitter: map{company: str, email: str, name: str, telephone: str}, type: str, urls: [str]}, success: bool}
@errors {400, 500}

@endpoint POST /accounts/{account_id}/abuse-reports/{report_param}
@required {account_id: str, report_param: str}
@returns(200) {abuse_rand: str, request: map{act: str}, result: str}
@errors {400, 500}

@endpoint GET /accounts/{account_id}/access/ai-controls/mcp/portals
@required {account_id: str}
@optional {page: int=1, per_page: int=20, search: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/access/ai-controls/mcp/portals
@required {account_id: str, hostname: str, id: str, name: str}
@optional {allow_code_mode: bool=true, description: str, secure_web_gateway: bool=false, servers: [map{default_disabled: bool, on_behalf: bool, server_id!: str, updated_prompts: [map], updated_tools: [map]}]}
@returns(201) {result: map{allow_code_mode: bool, created_at: str(date-time), created_by: str, description: str, hostname: str, id: str, modified_at: str(date-time), modified_by: str, name: str, secure_web_gateway: bool}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/access/ai-controls/mcp/portals/{id}
@required {account_id: str, id: str}
@returns(200) {result: map{allow_code_mode: bool, created_at: str(date-time), created_by: str, description: str, hostname: str, id: str, modified_at: str(date-time), modified_by: str, name: str, secure_web_gateway: bool}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/access/ai-controls/mcp/portals/{id}
@required {id: str, account_id: str}
@returns(200) {result: map{allow_code_mode: bool, created_at: str(date-time), created_by: str, description: str, hostname: str, id: str, modified_at: str(date-time), modified_by: str, name: str, secure_web_gateway: bool, servers: [map]}, success: bool}
@errors {404}

@endpoint PUT /accounts/{account_id}/access/ai-controls/mcp/portals/{id}
@required {id: str, account_id: str}
@optional {allow_code_mode: bool=true, description: str, hostname: str, name: str, secure_web_gateway: bool=false, servers: [map{default_disabled: bool, on_behalf: bool, server_id!: str, updated_prompts: [map], updated_tools: [map]}]}
@returns(200) {result: map{allow_code_mode: bool, created_at: str(date-time), created_by: str, description: str, hostname: str, id: str, modified_at: str(date-time), modified_by: str, name: str, secure_web_gateway: bool}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/access/ai-controls/mcp/servers
@required {account_id: str}
@optional {page: int=1, per_page: int=20, search: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/access/ai-controls/mcp/servers
@required {account_id: str, auth_type: str(oauth/bearer/unauthenticated), hostname: str(uri), id: str, name: str}
@optional {auth_credentials: str, description: str}
@returns(201) {result: map{auth_type: str, created_at: str(date-time), created_by: str, description: str?, error: str, hostname: str(uri), id: str, last_successful_sync: str(date-time), last_synced: str(date-time), modified_at: str(date-time), modified_by: str, name: str, prompts: [map], status: str, tools: [map]}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/access/ai-controls/mcp/servers/{id}
@required {account_id: str, id: str}
@returns(200) {result: map{auth_type: str, created_at: str(date-time), created_by: str, description: str?, error: str, hostname: str(uri), id: str, last_successful_sync: str(date-time), last_synced: str(date-time), modified_at: str(date-time), modified_by: str, name: str, prompts: [map], status: str, tools: [map]}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/access/ai-controls/mcp/servers/{id}
@required {account_id: str, id: str}
@returns(200) {result: map{auth_type: str, created_at: str(date-time), created_by: str, description: str?, error: str, hostname: str(uri), id: str, last_successful_sync: str(date-time), last_synced: str(date-time), modified_at: str(date-time), modified_by: str, name: str, prompts: [map], status: str, tools: [map]}, success: bool}
@errors {404}

@endpoint PUT /accounts/{account_id}/access/ai-controls/mcp/servers/{id}
@required {id: str, account_id: str}
@optional {auth_credentials: str, description: str, name: str}
@returns(200) {result: map{auth_type: str, created_at: str(date-time), created_by: str, description: str?, error: str, hostname: str(uri), id: str, last_successful_sync: str(date-time), last_synced: str(date-time), modified_at: str(date-time), modified_by: str, name: str, prompts: [map], status: str, tools: [map]}, success: bool}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/access/ai-controls/mcp/servers/{id}/sync
@required {id: str, account_id: str}
@returns(200) {result: map, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/access/apps
@required {account_id: str}
@optional {name: str, domain: str, aud: str, target_attributes: str, exact: bool, search: str, page: int=1, per_page: int=1000}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/apps
@required {account_id: str}
@returns(201)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/apps/ca
@required {account_id: str}
@optional {page: int=1, per_page: int=100}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/apps/{app_id}
@required {app_id: any, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/apps/{app_id}
@required {app_id: any, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/apps/{app_id}
@required {app_id: any, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/apps/{app_id}/ca
@required {app_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/apps/{app_id}/ca
@required {app_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/apps/{app_id}/ca
@required {app_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/apps/{app_id}/policies
@required {app_id: str, account_id: str}
@optional {page: int=1, per_page: int=200}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/apps/{app_id}/policies
@required {app_id: str, account_id: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/apps/{app_id}/policies/{policy_id}
@required {app_id: str, policy_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/apps/{app_id}/policies/{policy_id}
@required {app_id: str, policy_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/apps/{app_id}/policies/{policy_id}
@required {app_id: str, policy_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/apps/{app_id}/policies/{policy_id}/make_reusable
@required {app_id: str, policy_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/apps/{app_id}/revoke_tokens
@required {app_id: any, account_id: str}
@returns(202)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/access/apps/{app_id}/settings
@required {app_id: any, account_id: str}
@optional {allow_iframe: bool, skip_interstitial: bool}
@returns(202)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/apps/{app_id}/settings
@required {app_id: any, account_id: str}
@optional {allow_iframe: bool, skip_interstitial: bool}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/apps/{app_id}/user_policy_checks
@required {app_id: any, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/bookmarks
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/bookmarks/{bookmark_id}
@required {bookmark_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/bookmarks/{bookmark_id}
@required {bookmark_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/bookmarks/{bookmark_id}
@required {bookmark_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/bookmarks/{bookmark_id}
@required {bookmark_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/certificates
@required {account_id: str}
@optional {page: int=1, per_page: int=50}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/certificates
@required {account_id: str, certificate: str, name: str}
@optional {associated_hostnames: [str]}
@returns(201)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/certificates/settings
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/certificates/settings
@required {account_id: str, settings: [map{china_network!: bool, client_certificate_forwarding!: bool, hostname!: str}]}
@returns(202)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/certificates/{certificate_id}
@required {certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/certificates/{certificate_id}
@required {certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/certificates/{certificate_id}
@required {certificate_id: str, account_id: str, associated_hostnames: [str]}
@optional {name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/custom_pages
@required {account_id: str}
@optional {page: int=1, per_page: int=50}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/custom_pages
@required {account_id: str, custom_html: str, name: str, type: str(identity_denied/forbidden)}
@optional {app_count: int, created_at: any, uid: str, updated_at: any}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/custom_pages/{custom_page_id}
@required {custom_page_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/custom_pages/{custom_page_id}
@required {custom_page_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/custom_pages/{custom_page_id}
@required {custom_page_id: str, account_id: str, custom_html: str, name: str, type: str(identity_denied/forbidden)}
@optional {app_count: int, created_at: any, uid: str, updated_at: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/gateway_ca
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/gateway_ca
@required {account_id: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/gateway_ca/{certificate_id}
@required {certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/groups
@required {account_id: str}
@optional {name: str, search: str, page: int=1, per_page: int=1000}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/groups
@required {account_id: str, include: [map], name: str}
@optional {exclude: [map], is_default: bool, require: [map]}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/groups/{group_id}
@required {group_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/groups/{group_id}
@required {group_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/groups/{group_id}
@required {group_id: str, account_id: str, include: [map], name: str}
@optional {exclude: [map], is_default: bool, require: [map]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/identity_providers
@required {account_id: str}
@optional {scim_enabled: str, page: int=1, per_page: int=200}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/identity_providers
@required {account_id: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/identity_providers/{identity_provider_id}
@required {identity_provider_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/identity_providers/{identity_provider_id}
@required {identity_provider_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/identity_providers/{identity_provider_id}
@required {identity_provider_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/identity_providers/{identity_provider_id}/scim/groups
@required {identity_provider_id: str, account_id: str}
@optional {cf_resource_id: str, idp_resource_id: str, name: str, page: int=1, per_page: int=100}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/identity_providers/{identity_provider_id}/scim/users
@required {identity_provider_id: str, account_id: str}
@optional {cf_resource_id: str, idp_resource_id: str, username: str, email: str, name: str, page: int=1, per_page: int=100}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/keys
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/keys
@required {account_id: str, key_rotation_interval_days: num}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/keys/rotate
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/logs/access_requests
@required {account_id: str}
@optional {limit: int=25, direction: any(desc/asc)=desc, since: str(date-time), until: str(date-time), page: int=1, per_page: int=25, email: str(email), email_exact: bool=false, user_id: str(uuid), allowedOp: str(eq/neq)=eq, country_codeOp: str(eq/neq)=eq, app_typeOp: str(eq/neq)=eq, app_uidOp: str(eq/neq)=eq, ray_idOp: str(eq/neq)=eq, emailOp: str(eq/neq)=eq, idpOp: str(eq/neq)=eq, non_identityOp: str(eq/neq)=eq, user_idOp: str(eq/neq)=eq, fields: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/logs/scim/updates
@required {account_id: str, idp_id: [str]}
@optional {limit: int, direction: str, since: str(date-time), until: str(date-time), status: [str], resource_type: [str], request_method: [str], resource_user_email: str(email), resource_group_name: str, cf_resource_id: str, idp_resource_id: str, page: int=1, per_page: int=20}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/organizations
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/organizations
@required {account_id: str, auth_domain: str, name: str}
@optional {allow_authenticate_via_warp: bool=false, auto_redirect_to_identity: bool=false, deny_unmatched_requests: bool, deny_unmatched_requests_exempted_zone_names: [str], is_ui_read_only: bool=false, login_design: map{background_color: str, footer_text: str, header_text: str, logo_path: str, text_color: str}, mfa_config: map{allowed_authenticators: [str], session_duration: str}, mfa_required_for_all_apps: bool=false, session_duration: str, ui_read_only_toggle_reason: str, user_seat_expiration_inactive_time: str, warp_auth_session_duration: str}
@returns(201)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/organizations
@required {account_id: str}
@optional {allow_authenticate_via_warp: bool=false, auth_domain: str, auto_redirect_to_identity: bool=false, custom_pages: map{forbidden: str, identity_denied: str}, deny_unmatched_requests: bool, deny_unmatched_requests_exempted_zone_names: [str], is_ui_read_only: bool=false, login_design: map{background_color: str, footer_text: str, header_text: str, logo_path: str, text_color: str}, mfa_config: map{allowed_authenticators: [str], session_duration: str}, mfa_required_for_all_apps: bool=false, name: str, session_duration: str, ui_read_only_toggle_reason: str, user_seat_expiration_inactive_time: str, warp_auth_session_duration: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/organizations/doh
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/organizations/doh
@required {account_id: str}
@optional {doh_jwt_duration: str, service_token_id: str}
@returns(201)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/organizations/revoke_user
@required {account_id: str, email: str}
@optional {devices: bool, devices: bool, user_uid: str, warp_session_reauth: bool}
@returns(200)
@errors {4xx}

@endpoint GET /accounts/{account_id}/access/policies
@required {account_id: str}
@optional {page: int=1, per_page: int=100}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/policies
@required {account_id: str}
@optional {approval_groups: [map{approvals_needed!: num, email_addresses: [str], email_list_uuid: str}], approval_required: bool, connection_rules: map{rdp: map}, isolation_required: bool, mfa_config: map{allowed_authenticators: [str], mfa_disabled: bool, session_duration: str}, purpose_justification_prompt: str, purpose_justification_required: bool, session_duration: str=24h}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/policies/{policy_id}
@required {account_id: str, policy_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/policies/{policy_id}
@required {account_id: str, policy_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/policies/{policy_id}
@required {account_id: str, policy_id: str}
@optional {approval_groups: [map{approvals_needed!: num, email_addresses: [str], email_list_uuid: str}], approval_required: bool, connection_rules: map{rdp: map}, isolation_required: bool, mfa_config: map{allowed_authenticators: [str], mfa_disabled: bool, session_duration: str}, purpose_justification_prompt: str, purpose_justification_required: bool, session_duration: str=24h}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/policy-tests
@required {account_id: str}
@optional {policies: [any]}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/access/policy-tests/{policy_test_id}
@required {account_id: str, policy_test_id: str}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/access/policy-tests/{policy_test_id}/users
@required {account_id: str, policy_test_id: str}
@optional {page: int=1, per_page: int=25, status: str(success/fail/error)}
@returns(200)
@errors {400}

@endpoint PATCH /accounts/{account_id}/access/seats
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/service_tokens
@required {account_id: str}
@optional {name: str, search: str, page: int=1, per_page: int=1000}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/service_tokens
@required {account_id: str, name: str}
@optional {client_secret_version: num=1, duration: str=8760h, previous_client_secret_expires_at: str(date-time)}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/service_tokens/{service_token_id}
@required {service_token_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/service_tokens/{service_token_id}
@required {service_token_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/service_tokens/{service_token_id}
@required {service_token_id: str, account_id: str}
@optional {client_secret_version: num=1, duration: str=8760h, name: str, previous_client_secret_expires_at: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/service_tokens/{service_token_id}/refresh
@required {service_token_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/service_tokens/{service_token_id}/rotate
@required {service_token_id: str, account_id: str}
@optional {previous_client_secret_expires_at: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/tags
@required {account_id: str}
@optional {page: int=1, per_page: int=50}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/tags
@required {account_id: str}
@optional {name: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/tags/{tag_name}
@required {account_id: str, tag_name: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/tags/{tag_name}
@required {account_id: str, tag_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/tags/{tag_name}
@required {account_id: str, tag_name: str, name: str}
@optional {created_at: any, updated_at: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/users
@required {account_id: str}
@optional {name: str, email: str, search: str, page: int=1, per_page: int=1000}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/access/users
@required {account_id: str, email: str(email)}
@optional {name: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/users/{user_id}
@required {user_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/users/{user_id}
@required {user_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/access/users/{user_id}
@required {user_id: str, account_id: str, email: str(email), name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/users/{user_id}/active_sessions
@required {user_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/users/{user_id}/active_sessions/{nonce}
@required {user_id: str, account_id: str, nonce: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/users/{user_id}/failed_logins
@required {user_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/access/users/{user_id}/last_seen_identity
@required {user_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/access/users/{user_id}/mfa_authenticators/{authenticator_id}
@required {user_id: str, account_id: str, authenticator_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/address_maps
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/addressing/address_maps
@required {account_id: str}
@optional {description: str, enabled: bool=false, ips: [str], memberships: [map{identifier: str, kind: str}]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/address_maps/{address_map_id}
@required {address_map_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/address_maps/{address_map_id}
@required {address_map_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/addressing/address_maps/{address_map_id}
@required {address_map_id: str, account_id: str}
@optional {default_sni: str, description: str, enabled: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/address_maps/{address_map_id}/accounts/{account_id}
@required {account_id: str, address_map_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/addressing/address_maps/{address_map_id}/accounts/{account_id}
@required {account_id: str, address_map_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/address_maps/{address_map_id}/ips/{ip_address}
@required {ip_address: str, address_map_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/addressing/address_maps/{address_map_id}/ips/{ip_address}
@required {ip_address: str, address_map_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/address_maps/{address_map_id}/zones/{zone_id}
@required {zone_id: str, address_map_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/addressing/address_maps/{address_map_id}/zones/{zone_id}
@required {zone_id: str, address_map_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/leases
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/addressing/loa_documents
@required {account_id: str}
@returns(201)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/loa_documents/{loa_document_id}/download
@required {loa_document_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/addressing/prefixes
@required {account_id: str, asn: int, cidr: str}
@optional {delegate_loa_creation: bool=false, description: str, loa_document_id: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/prefixes/{prefix_id}
@required {prefix_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes/{prefix_id}
@required {prefix_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/addressing/prefixes/{prefix_id}
@required {prefix_id: str, account_id: str, description: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes
@required {account_id: str, prefix_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes
@required {account_id: str, prefix_id: str, cidr: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}
@required {account_id: str, prefix_id: str, bgp_prefix_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}
@required {account_id: str, prefix_id: str, bgp_prefix_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/prefixes/{bgp_prefix_id}
@required {account_id: str, prefix_id: str, bgp_prefix_id: str}
@optional {asn_prepend_count: int=0, auto_advertise_withdraw: bool=false, on_demand: map{advertised: bool}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/status
@required {prefix_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/addressing/prefixes/{prefix_id}/bgp/status
@required {prefix_id: str, account_id: str, advertised: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings
@required {account_id: str, prefix_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings
@required {account_id: str, prefix_id: str, cidr: str, service_id: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}
@required {account_id: str, prefix_id: str, binding_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes/{prefix_id}/bindings/{binding_id}
@required {account_id: str, prefix_id: str, binding_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations
@required {prefix_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations
@required {prefix_id: str, account_id: str, cidr: str, delegated_account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/addressing/prefixes/{prefix_id}/delegations/{delegation_id}
@required {delegation_id: str, prefix_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/addressing/prefixes/{prefix_id}/validate
@required {prefix_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/regional_hostnames/regions
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/addressing/services
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/ai-gateway/evaluation-types
@required {account_id: str}
@optional {page: int=1, per_page: int=20, order_by: str=mandatory, order_by_direction: str(asc/desc)=desc}
@returns(200) {result: [map], result_info: map{count: num, page: num, per_page: num, total_count: num}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways
@required {account_id: str}
@optional {page: int=1, per_page: int=20, search: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-gateway/gateways
@required {account_id: str, cache_invalidate_on_update: bool, cache_ttl: int, collect_logs: bool, id: str, rate_limiting_interval: int, rate_limiting_limit: int}
@optional {authentication: bool, log_management: int, log_management_strategy: str(STOP_INSERTING/DELETE_OLDEST), logpush: bool, logpush_public_key: str, rate_limiting_technique: str(fixed/sliding), retry_backoff: str(constant/linear/exponential), retry_delay: int, retry_max_attempts: int, workers_ai_billing_mode: str=postpaid, zdr: bool}
@returns(200) {result: map{authentication: bool, cache_invalidate_on_update: bool, cache_ttl: int?, collect_logs: bool, created_at: str(date-time), dlp: any, id: str, is_default: bool, log_management: int?, log_management_strategy: str?, logpush: bool, logpush_public_key: str?, modified_at: str(date-time), otel: [map]?, rate_limiting_interval: int?, rate_limiting_limit: int?, rate_limiting_technique: str?, retry_backoff: str?, retry_delay: int?, retry_max_attempts: int?, store_id: str?, stripe: map?{authorization: str, usage_events: [map]}, workers_ai_billing_mode: str, zdr: bool}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/datasets
@required {account_id: str, gateway_id: str}
@optional {page: int=1, per_page: int=20, name: str, enable: bool, search: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/datasets
@required {gateway_id: str, account_id: str, enable: bool, filters: [map{key!: str, operator!: str, value!: [any]}], name: str}
@returns(200) {result: map{created_at: str(date-time), enable: bool, filters: [map], gateway_id: str, id: str, modified_at: str(date-time), name: str}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/datasets/{id}
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {result: map{created_at: str(date-time), enable: bool, filters: [map], gateway_id: str, id: str, modified_at: str(date-time), name: str}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/datasets/{id}
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {result: map{created_at: str(date-time), enable: bool, filters: [map], gateway_id: str, id: str, modified_at: str(date-time), name: str}, success: bool}
@errors {404}

@endpoint PUT /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/datasets/{id}
@required {account_id: str, gateway_id: str, id: str, enable: bool, filters: [map{key!: str, operator!: str, value!: [any]}], name: str}
@returns(200) {result: map{created_at: str(date-time), enable: bool, filters: [map], gateway_id: str, id: str, modified_at: str(date-time), name: str}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/evaluations
@required {account_id: str, gateway_id: str}
@optional {page: int=1, per_page: int=20, name: str, processed: bool, search: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/evaluations
@required {gateway_id: str, account_id: str, dataset_ids: [str], evaluation_type_ids: [str], name: str}
@returns(200) {result: map{created_at: str(date-time), datasets: [map], gateway_id: str, id: str, modified_at: str(date-time), name: str, processed: bool, results: [map], total_logs: num}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/evaluations/{id}
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {result: map{created_at: str(date-time), datasets: [map], gateway_id: str, id: str, modified_at: str(date-time), name: str, processed: bool, results: [map], total_logs: num}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/evaluations/{id}
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {result: map{created_at: str(date-time), datasets: [map], gateway_id: str, id: str, modified_at: str(date-time), name: str, processed: bool, results: [map], total_logs: num}, success: bool}
@errors {404}

@endpoint DELETE /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs
@required {account_id: str, gateway_id: str}
@optional {order_by: str(created_at/provider/model/model_type/success/cached/cost/tokens_in/tokens_out/duration/feedback)=created_at, order_by_direction: str(asc/desc)=asc, filters: [map], limit: int=10000}
@returns(200) {success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs
@required {account_id: str, gateway_id: str}
@optional {search: str, page: int=1, per_page: int=20, order_by: str(created_at/provider/model/model_type/success/cached)=created_at, order_by_direction: str(asc/desc)=desc, filters: [map], meta_info: bool, direction: str(asc/desc), start_date: str(date-time), end_date: str(date-time), min_cost: num, max_cost: num, min_tokens_in: num, max_tokens_in: num, min_tokens_out: num, max_tokens_out: num, min_total_tokens: num, max_total_tokens: num, min_duration: num, max_duration: num, feedback: any, success: bool, cached: bool, model: str, model_type: str, provider: str, request_content_type: str, response_content_type: str}
@returns(200) {result: [map], result_info: map{count: num, max_cost: num, max_duration: num, max_tokens_in: num, max_tokens_out: num, max_total_tokens: num, min_cost: num, min_duration: num, min_tokens_in: num, min_tokens_out: num, min_total_tokens: num, page: num, per_page: num, total_count: num}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs/{id}
@required {id: str, gateway_id: str, account_id: str}
@returns(200) {result: map{cached: bool, cost: num, created_at: str(date-time), custom_cost: bool, duration: int, id: str, metadata: str, model: str, model_type: str, path: str, provider: str, request_content_type: str, request_head: str, request_head_complete: bool, request_size: int, request_type: str, response_content_type: str, response_head: str, response_head_complete: bool, response_size: int, status_code: int, step: int, success: bool, tokens_in: int?, tokens_out: int?}, success: bool}
@errors {404}

@endpoint PATCH /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs/{id}
@required {id: str, gateway_id: str, account_id: str}
@optional {feedback: num, metadata: map, score: num}
@returns(200) {result: map, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs/{id}/request
@required {id: str, gateway_id: str, account_id: str}
@returns(200)
@errors {404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/logs/{id}/response
@required {id: str, gateway_id: str, account_id: str}
@returns(200)
@errors {404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/provider_configs
@required {account_id: str, gateway_id: str}
@optional {page: int=1, per_page: int=20}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/provider_configs
@required {account_id: str, gateway_id: str, alias: str, default_config: bool, provider_slug: str, secret: str, secret_id: str}
@optional {rate_limit: num, rate_limit_period: num=60}
@returns(200) {result: map{alias: str, default_config: bool, gateway_id: str, id: str, modified_at: str(date-time), provider_slug: str, rate_limit: num, rate_limit_period: num, secret_id: str, secret_preview: str}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/provider_configs/{id}
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {result: map{alias: str, default_config: bool, gateway_id: str, id: str, modified_at: str(date-time), provider_slug: str, rate_limit: num, rate_limit_period: num, secret_id: str, secret_preview: str}, success: bool}
@errors {404}

@endpoint PUT /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/provider_configs/{id}
@required {account_id: str, gateway_id: str, id: str, secret: str}
@returns(200) {result: map{alias: str, default_config: bool, gateway_id: str, id: str, modified_at: str(date-time), provider_slug: str, rate_limit: num, rate_limit_period: num, secret_id: str, secret_preview: str}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes
@required {account_id: str, gateway_id: str}
@returns(200) {data: map{order_by: str, order_by_direction: str, page: num, per_page: num, routes: [map]}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes
@required {account_id: str, gateway_id: str, elements: [any], name: str}
@returns(200) {result: map{created_at: str(date-time), deployment: map{created_at: str, deployment_id: str, version_id: str}, elements: [any], gateway_id: str, id: str, modified_at: str(date-time), name: str, version: map{active: str, created_at: str, data: str, version_id: str}}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {result: map{created_at: str(date-time), elements: [any], gateway_id: str, id: str, modified_at: str(date-time), name: str}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {result: map{created_at: str(date-time), deployment: map{created_at: str, deployment_id: str, version_id: str}, elements: [any], gateway_id: str, id: str, modified_at: str(date-time), name: str, version: map{active: str, created_at: str, data: str, version_id: str}}, success: bool}
@errors {400}

@endpoint PATCH /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}
@required {account_id: str, gateway_id: str, id: str, name: str}
@returns(200) {route: map{account_tag: str, created_at: str(date-time), deployment: map{created_at: str, deployment_id: str, version_id: str}, elements: [any], gateway_id: str, id: str, modified_at: str(date-time), name: str, version: map{active: str, created_at: str, data: str, version_id: str}}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}/deployments
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {data: map{deployments: [map], order_by: str, order_by_direction: str, page: num, per_page: num}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}/deployments
@required {account_id: str, gateway_id: str, id: str, version_id: str}
@returns(200) {result: map{created_at: str(date-time), elements: [any], gateway_id: str, id: str, modified_at: str(date-time), name: str}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}/versions
@required {account_id: str, gateway_id: str, id: str}
@returns(200) {data: map{order_by: str, order_by_direction: str, page: num, per_page: num, versions: [map]}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}/versions
@required {account_id: str, gateway_id: str, id: str, elements: [any]}
@returns(200) {result: map{created_at: str(date-time), elements: [any], gateway_id: str, id: str, modified_at: str(date-time), name: str}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/routes/{id}/versions/{version_id}
@required {account_id: str, gateway_id: str, id: str, version_id: str}
@returns(200) {result: map{active: str, created_at: str, data: str, elements: [any], gateway_id: str, id: str, modified_at: str(date-time), name: str, version_id: str}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{gateway_id}/url/{provider}
@required {gateway_id: str, account_id: str, provider: str}
@returns(200) {result: str, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/ai-gateway/gateways/{id}
@required {account_id: str, id: str}
@returns(200) {result: map{authentication: bool, cache_invalidate_on_update: bool, cache_ttl: int?, collect_logs: bool, created_at: str(date-time), dlp: any, id: str, is_default: bool, log_management: int?, log_management_strategy: str?, logpush: bool, logpush_public_key: str?, modified_at: str(date-time), otel: [map]?, rate_limiting_interval: int?, rate_limiting_limit: int?, rate_limiting_technique: str?, retry_backoff: str?, retry_delay: int?, retry_max_attempts: int?, store_id: str?, stripe: map?{authorization: str, usage_events: [map]}, workers_ai_billing_mode: str, zdr: bool}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-gateway/gateways/{id}
@required {account_id: str, id: str}
@returns(200) {result: map{authentication: bool, cache_invalidate_on_update: bool, cache_ttl: int?, collect_logs: bool, created_at: str(date-time), dlp: any, id: str, is_default: bool, log_management: int?, log_management_strategy: str?, logpush: bool, logpush_public_key: str?, modified_at: str(date-time), otel: [map]?, rate_limiting_interval: int?, rate_limiting_limit: int?, rate_limiting_technique: str?, retry_backoff: str?, retry_delay: int?, retry_max_attempts: int?, store_id: str?, stripe: map?{authorization: str, usage_events: [map]}, workers_ai_billing_mode: str, zdr: bool}, success: bool}
@errors {404}

@endpoint PUT /accounts/{account_id}/ai-gateway/gateways/{id}
@required {account_id: str, id: str, cache_invalidate_on_update: bool, cache_ttl: int, collect_logs: bool, rate_limiting_interval: int, rate_limiting_limit: int}
@optional {authentication: bool, dlp: any, log_management: int, log_management_strategy: str(STOP_INSERTING/DELETE_OLDEST), logpush: bool, logpush_public_key: str, otel: [map{authorization!: str, content_type: str, headers!: map, url!: str}], rate_limiting_technique: str(fixed/sliding), retry_backoff: str(constant/linear/exponential), retry_delay: int, retry_max_attempts: int, store_id: str, stripe: map{authorization!: str, usage_events!: [map]}, workers_ai_billing_mode: str=postpaid, zdr: bool}
@returns(200) {result: map{authentication: bool, cache_invalidate_on_update: bool, cache_ttl: int?, collect_logs: bool, created_at: str(date-time), dlp: any, id: str, is_default: bool, log_management: int?, log_management_strategy: str?, logpush: bool, logpush_public_key: str?, modified_at: str(date-time), otel: [map]?, rate_limiting_interval: int?, rate_limiting_limit: int?, rate_limiting_technique: str?, retry_backoff: str?, retry_delay: int?, retry_max_attempts: int?, store_id: str?, stripe: map?{authorization: str, usage_events: [map]}, workers_ai_billing_mode: str, zdr: bool}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/ai-search/instances
@required {account_id: str}
@optional {page: int=1, per_page: int=20, namespace: str, search: str, order_by: str=created_at, order_by_direction: str(asc/desc)=desc}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-search/instances
@required {account_id: str, id: str}
@optional {ai_gateway_id: str, ai_search_model: str(@cf/meta/llama-3.3-70b-instruct-fp8-fast/@cf/zai-org/glm-4.7-flash/@cf/meta/llama-3.1-8b-instruct-fast/@cf/meta/llama-3.1-8b-instruct-fp8/@cf/meta/llama-4-scout-17b-16e-instruct/@cf/qwen/qwen3-30b-a3b-fp8/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b/@cf/moonshotai/kimi-k2-instruct/@cf/google/gemma-3-12b-it/anthropic/claude-3-7-sonnet/anthropic/claude-sonnet-4/anthropic/claude-opus-4/anthropic/claude-3-5-haiku/cerebras/qwen-3-235b-a22b-instruct/cerebras/qwen-3-235b-a22b-thinking/cerebras/llama-3.3-70b/cerebras/llama-4-maverick-17b-128e-instruct/cerebras/llama-4-scout-17b-16e-instruct/cerebras/gpt-oss-120b/google-ai-studio/gemini-2.5-flash/google-ai-studio/gemini-2.5-pro/grok/grok-4/groq/llama-3.3-70b-versatile/groq/llama-3.1-8b-instant/openai/gpt-5/openai/gpt-5-mini/openai/gpt-5-nano/), cache: bool=true, cache_threshold: str(super_strict_match/close_enough/flexible_friend/anything_goes)=close_enough, chunk: bool=true, chunk_overlap: int=10, chunk_size: int=256, custom_metadata: [map{data_type!: str, field_name!: str}], embedding_model: str(@cf/qwen/qwen3-embedding-0.6b/@cf/baai/bge-m3/@cf/baai/bge-large-en-v1.5/@cf/google/embeddinggemma-300m/google-ai-studio/gemini-embedding-001/google-ai-studio/gemini-embedding-2-preview/openai/text-embedding-3-small/openai/text-embedding-3-large/), fusion_method: str(max/rrf)=rrf, index_method: map{keyword!: bool, vector!: bool}=[object Object], indexing_options: map{keyword_tokenizer: str}, max_num_results: int=10, metadata: map{created_from_aisearch_wizard: bool, worker_domain: str}, namespace: str, public_endpoint_params: map{authorized_hosts: [str], chat_completions_endpoint: map, enabled: bool, mcp: map, rate_limit: map, search_endpoint: map}, reranking: bool=false, reranking_model: str(@cf/baai/bge-reranker-base/), retrieval_options: map{boost_by: [map], keyword_match_mode: str}, rewrite_model: str(@cf/meta/llama-3.3-70b-instruct-fp8-fast/@cf/zai-org/glm-4.7-flash/@cf/meta/llama-3.1-8b-instruct-fast/@cf/meta/llama-3.1-8b-instruct-fp8/@cf/meta/llama-4-scout-17b-16e-instruct/@cf/qwen/qwen3-30b-a3b-fp8/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b/@cf/moonshotai/kimi-k2-instruct/@cf/google/gemma-3-12b-it/anthropic/claude-3-7-sonnet/anthropic/claude-sonnet-4/anthropic/claude-opus-4/anthropic/claude-3-5-haiku/cerebras/qwen-3-235b-a22b-instruct/cerebras/qwen-3-235b-a22b-thinking/cerebras/llama-3.3-70b/cerebras/llama-4-maverick-17b-128e-instruct/cerebras/llama-4-scout-17b-16e-instruct/cerebras/gpt-oss-120b/google-ai-studio/gemini-2.5-flash/google-ai-studio/gemini-2.5-pro/grok/grok-4/groq/llama-3.3-70b-versatile/groq/llama-3.1-8b-instant/openai/gpt-5/openai/gpt-5-mini/openai/gpt-5-nano/), rewrite_query: bool=false, score_threshold: num=0.4, source: str, source_params: map{exclude_items: [str], include_items: [str], prefix: str, r2_jurisdiction: str, web_crawler: map}, token_id: str(uuid), type: str(r2/web-crawler)}
@returns(201) {result: map{ai_gateway_id: str?, ai_search_model: str?, cache: bool, cache_threshold: str, chunk_overlap: int, chunk_size: int, created_at: str(date-time), created_by: str?, custom_metadata: [map], embedding_model: str?, enable: bool, engine_version: num, fusion_method: str, hybrid_search_enabled: bool, id: str, index_method: map{keyword: bool, vector: bool}, indexing_options: map?{keyword_tokenizer: str}, last_activity: str(date-time)?, max_num_results: int, metadata: map{created_from_aisearch_wizard: bool, worker_domain: str}, modified_at: str(date-time), modified_by: str?, namespace: str?, paused: bool, public_endpoint_id: str?, public_endpoint_params: map{authorized_hosts: [str], chat_completions_endpoint: map{disabled: bool}, enabled: bool, mcp: map{description: str, disabled: bool}, rate_limit: map{period_ms: int, requests: int, technique: str}, search_endpoint: map{disabled: bool}}, reranking: bool, reranking_model: str?, retrieval_options: map?{boost_by: [map], keyword_match_mode: str}, rewrite_model: str?, rewrite_query: bool, score_threshold: num, source: str?, source_params: map?{exclude_items: [str], include_items: [str], prefix: str, r2_jurisdiction: str, web_crawler: map{crawl_options: map, parse_options: map, parse_type: str, store_options: map}}, status: str, token_id: str(uuid), type: str?}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/ai-search/instances/{id}
@required {id: str, account_id: str}
@returns(200) {result: map{ai_gateway_id: str?, ai_search_model: str?, cache: bool, cache_threshold: str, chunk_overlap: int, chunk_size: int, created_at: str(date-time), created_by: str?, custom_metadata: [map], embedding_model: str?, enable: bool, engine_version: num, fusion_method: str, hybrid_search_enabled: bool, id: str, index_method: map{keyword: bool, vector: bool}, indexing_options: map?{keyword_tokenizer: str}, last_activity: str(date-time)?, max_num_results: int, metadata: map{created_from_aisearch_wizard: bool, worker_domain: str}, modified_at: str(date-time), modified_by: str?, namespace: str?, paused: bool, public_endpoint_id: str?, public_endpoint_params: map{authorized_hosts: [str], chat_completions_endpoint: map{disabled: bool}, enabled: bool, mcp: map{description: str, disabled: bool}, rate_limit: map{period_ms: int, requests: int, technique: str}, search_endpoint: map{disabled: bool}}, reranking: bool, reranking_model: str?, retrieval_options: map?{boost_by: [map], keyword_match_mode: str}, rewrite_model: str?, rewrite_query: bool, score_threshold: num, source: str?, source_params: map?{exclude_items: [str], include_items: [str], prefix: str, r2_jurisdiction: str, web_crawler: map{crawl_options: map, parse_options: map, parse_type: str, store_options: map}}, status: str, token_id: str(uuid), type: str?}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-search/instances/{id}
@required {id: str, account_id: str}
@returns(200) {result: map{ai_gateway_id: str?, ai_search_model: str?, cache: bool, cache_threshold: str, chunk_overlap: int, chunk_size: int, created_at: str(date-time), created_by: str?, custom_metadata: [map], embedding_model: str?, enable: bool, engine_version: num, fusion_method: str, hybrid_search_enabled: bool, id: str, index_method: map{keyword: bool, vector: bool}, indexing_options: map?{keyword_tokenizer: str}, last_activity: str(date-time)?, max_num_results: int, metadata: map{created_from_aisearch_wizard: bool, worker_domain: str}, modified_at: str(date-time), modified_by: str?, namespace: str?, paused: bool, public_endpoint_id: str?, public_endpoint_params: map{authorized_hosts: [str], chat_completions_endpoint: map{disabled: bool}, enabled: bool, mcp: map{description: str, disabled: bool}, rate_limit: map{period_ms: int, requests: int, technique: str}, search_endpoint: map{disabled: bool}}, reranking: bool, reranking_model: str?, retrieval_options: map?{boost_by: [map], keyword_match_mode: str}, rewrite_model: str?, rewrite_query: bool, score_threshold: num, source: str?, source_params: map?{exclude_items: [str], include_items: [str], prefix: str, r2_jurisdiction: str, web_crawler: map{crawl_options: map, parse_options: map, parse_type: str, store_options: map}}, status: str, token_id: str(uuid), type: str?}, success: bool}
@errors {400, 404}

@endpoint PUT /accounts/{account_id}/ai-search/instances/{id}
@required {account_id: str, id: str}
@optional {ai_gateway_id: str, ai_search_model: str(@cf/meta/llama-3.3-70b-instruct-fp8-fast/@cf/zai-org/glm-4.7-flash/@cf/meta/llama-3.1-8b-instruct-fast/@cf/meta/llama-3.1-8b-instruct-fp8/@cf/meta/llama-4-scout-17b-16e-instruct/@cf/qwen/qwen3-30b-a3b-fp8/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b/@cf/moonshotai/kimi-k2-instruct/@cf/google/gemma-3-12b-it/anthropic/claude-3-7-sonnet/anthropic/claude-sonnet-4/anthropic/claude-opus-4/anthropic/claude-3-5-haiku/cerebras/qwen-3-235b-a22b-instruct/cerebras/qwen-3-235b-a22b-thinking/cerebras/llama-3.3-70b/cerebras/llama-4-maverick-17b-128e-instruct/cerebras/llama-4-scout-17b-16e-instruct/cerebras/gpt-oss-120b/google-ai-studio/gemini-2.5-flash/google-ai-studio/gemini-2.5-pro/grok/grok-4/groq/llama-3.3-70b-versatile/groq/llama-3.1-8b-instant/openai/gpt-5/openai/gpt-5-mini/openai/gpt-5-nano/), cache: bool=true, cache_threshold: str(super_strict_match/close_enough/flexible_friend/anything_goes)=close_enough, chunk: bool=true, chunk_overlap: int=10, chunk_size: int=256, custom_metadata: [map{data_type!: str, field_name!: str}], embedding_model: str(@cf/qwen/qwen3-embedding-0.6b/@cf/baai/bge-m3/@cf/baai/bge-large-en-v1.5/@cf/google/embeddinggemma-300m/google-ai-studio/gemini-embedding-001/google-ai-studio/gemini-embedding-2-preview/openai/text-embedding-3-small/openai/text-embedding-3-large/), fusion_method: str(max/rrf)=rrf, index_method: map{keyword!: bool, vector!: bool}=[object Object], indexing_options: map{keyword_tokenizer: str}, max_num_results: int=10, metadata: map{created_from_aisearch_wizard: bool, worker_domain: str}, paused: bool=false, public_endpoint_params: map{authorized_hosts: [str], chat_completions_endpoint: map, enabled: bool, mcp: map, rate_limit: map, search_endpoint: map}, reranking: bool=false, reranking_model: str(@cf/baai/bge-reranker-base/), retrieval_options: map{boost_by: [map], keyword_match_mode: str}, rewrite_model: str(@cf/meta/llama-3.3-70b-instruct-fp8-fast/@cf/zai-org/glm-4.7-flash/@cf/meta/llama-3.1-8b-instruct-fast/@cf/meta/llama-3.1-8b-instruct-fp8/@cf/meta/llama-4-scout-17b-16e-instruct/@cf/qwen/qwen3-30b-a3b-fp8/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b/@cf/moonshotai/kimi-k2-instruct/@cf/google/gemma-3-12b-it/anthropic/claude-3-7-sonnet/anthropic/claude-sonnet-4/anthropic/claude-opus-4/anthropic/claude-3-5-haiku/cerebras/qwen-3-235b-a22b-instruct/cerebras/qwen-3-235b-a22b-thinking/cerebras/llama-3.3-70b/cerebras/llama-4-maverick-17b-128e-instruct/cerebras/llama-4-scout-17b-16e-instruct/cerebras/gpt-oss-120b/google-ai-studio/gemini-2.5-flash/google-ai-studio/gemini-2.5-pro/grok/grok-4/groq/llama-3.3-70b-versatile/groq/llama-3.1-8b-instant/openai/gpt-5/openai/gpt-5-mini/openai/gpt-5-nano/), rewrite_query: bool=false, score_threshold: num=0.4, source_params: map{exclude_items: [str], include_items: [str], prefix: str, r2_jurisdiction: str, web_crawler: map}, summarization: bool=false, summarization_model: str(@cf/meta/llama-3.3-70b-instruct-fp8-fast/@cf/zai-org/glm-4.7-flash/@cf/meta/llama-3.1-8b-instruct-fast/@cf/meta/llama-3.1-8b-instruct-fp8/@cf/meta/llama-4-scout-17b-16e-instruct/@cf/qwen/qwen3-30b-a3b-fp8/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b/@cf/moonshotai/kimi-k2-instruct/@cf/google/gemma-3-12b-it/anthropic/claude-3-7-sonnet/anthropic/claude-sonnet-4/anthropic/claude-opus-4/anthropic/claude-3-5-haiku/cerebras/qwen-3-235b-a22b-instruct/cerebras/qwen-3-235b-a22b-thinking/cerebras/llama-3.3-70b/cerebras/llama-4-maverick-17b-128e-instruct/cerebras/llama-4-scout-17b-16e-instruct/cerebras/gpt-oss-120b/google-ai-studio/gemini-2.5-flash/google-ai-studio/gemini-2.5-pro/grok/grok-4/groq/llama-3.3-70b-versatile/groq/llama-3.1-8b-instant/openai/gpt-5/openai/gpt-5-mini/openai/gpt-5-nano/), system_prompt_ai_search: str, system_prompt_index_summarization: str, system_prompt_rewrite_query: str, token_id: str(uuid)}
@returns(200) {result: map{ai_gateway_id: str?, ai_search_model: str?, cache: bool, cache_threshold: str, chunk_overlap: int, chunk_size: int, created_at: str(date-time), created_by: str?, custom_metadata: [map], embedding_model: str?, enable: bool, engine_version: num, fusion_method: str, hybrid_search_enabled: bool, id: str, index_method: map{keyword: bool, vector: bool}, indexing_options: map?{keyword_tokenizer: str}, last_activity: str(date-time)?, max_num_results: int, metadata: map{created_from_aisearch_wizard: bool, worker_domain: str}, modified_at: str(date-time), modified_by: str?, namespace: str?, paused: bool, public_endpoint_id: str?, public_endpoint_params: map{authorized_hosts: [str], chat_completions_endpoint: map{disabled: bool}, enabled: bool, mcp: map{description: str, disabled: bool}, rate_limit: map{period_ms: int, requests: int, technique: str}, search_endpoint: map{disabled: bool}}, reranking: bool, reranking_model: str?, retrieval_options: map?{boost_by: [map], keyword_match_mode: str}, rewrite_model: str?, rewrite_query: bool, score_threshold: num, source: str?, source_params: map?{exclude_items: [str], include_items: [str], prefix: str, r2_jurisdiction: str, web_crawler: map{crawl_options: map, parse_options: map, parse_type: str, store_options: map}}, status: str, token_id: str(uuid), type: str?}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-search/instances/{id}/chat/completions
@required {id: str, account_id: str, messages: [map{content!: str, role!: str}]}
@optional {ai_search_options: map{cache: map, query_rewrite: map, reranking: map, retrieval: map}, model: any, stream: bool}
@returns(200) {choices: [map], chunks: [map], id: str, model: str, object: str}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-search/instances/{id}/jobs
@required {id: str, account_id: str}
@optional {page: int=1, per_page: int=20}
@returns(200) {result: [map], result_info: map{count: int, page: int, per_page: int, total_count: int}, success: bool}
@errors {400, 500}

@endpoint POST /accounts/{account_id}/ai-search/instances/{id}/jobs
@required {id: str, account_id: str}
@optional {description: str}
@returns(200) {result: map{description: str, end_reason: str, ended_at: str, id: str, last_seen_at: str, source: str, started_at: str}, success: bool}
@errors {400, 500}

@endpoint GET /accounts/{account_id}/ai-search/instances/{id}/jobs/{job_id}
@required {id: str, job_id: str, account_id: str}
@returns(200) {result: map{description: str, end_reason: str, ended_at: str, id: str, last_seen_at: str, source: str, started_at: str}, success: bool}
@errors {400, 500}

@endpoint PATCH /accounts/{account_id}/ai-search/instances/{id}/jobs/{job_id}
@required {id: str, job_id: str, account_id: str, action: str}
@returns(200) {result: map{description: str, end_reason: str, ended_at: str, id: str, last_seen_at: str, source: str, started_at: str}, success: bool}
@errors {400, 500}

@endpoint GET /accounts/{account_id}/ai-search/instances/{id}/jobs/{job_id}/logs
@required {id: str, job_id: str, account_id: str}
@optional {page: int=1, per_page: int=20}
@returns(200) {result: [map], result_info: map{count: int, page: int, per_page: int, total_count: int}, success: bool}
@errors {400, 500}

@endpoint POST /accounts/{account_id}/ai-search/instances/{id}/search
@required {id: str, account_id: str, messages: [map{content!: str, role!: str}]}
@optional {ai_search_options: map{cache: map, query_rewrite: map, reranking: map, retrieval: map}}
@returns(200) {result: map{chunks: [map], search_query: str}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-search/instances/{id}/stats
@required {id: str, account_id: str}
@returns(200) {result: map{completed: int, error: int, file_embed_errors: map, index_source_errors: map, last_activity: str(date-time), outdated: int, queued: int, running: int, skipped: int}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-search/tokens
@required {account_id: str}
@optional {page: int=1, per_page: int=20, order_by: str=created_at, order_by_direction: str(asc/desc)=desc}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai-search/tokens
@required {account_id: str, cf_api_id: str, cf_api_key: str, name: str}
@optional {legacy: bool=true}
@returns(201) {result: map{cf_api_id: str, created_at: str(date-time), created_by: str?, enabled: bool, id: str(uuid), legacy: bool, modified_at: str(date-time), modified_by: str?, name: str}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/ai-search/tokens/{id}
@required {account_id: str, id: str(uuid)}
@returns(200) {result: map{cf_api_id: str, created_at: str(date-time), created_by: str?, enabled: bool, id: str(uuid), legacy: bool, modified_at: str(date-time), modified_by: str?, name: str}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/ai-search/tokens/{id}
@required {account_id: str, id: str(uuid)}
@returns(200) {result: map{cf_api_id: str, created_at: str(date-time), created_by: str?, enabled: bool, id: str(uuid), legacy: bool, modified_at: str(date-time), modified_by: str?, name: str}, success: bool}
@errors {400, 404}

@endpoint PUT /accounts/{account_id}/ai-search/tokens/{id}
@required {account_id: str, id: str(uuid), cf_api_id: str, cf_api_key: str, name: str}
@optional {legacy: bool=true}
@returns(200) {result: map{cf_api_id: str, created_at: str(date-time), created_by: str?, enabled: bool, id: str(uuid), legacy: bool, modified_at: str(date-time), modified_by: str?, name: str}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai/authors/search
@required {account_id: str}
@returns(200) {errors: [map], messages: [str], result: [map], success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai/finetunes
@required {account_id: str}
@returns(200) {result: map{created_at: str(date-time), description: str, id: str(uuid), model: str, modified_at: str(date-time), name: str}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai/finetunes
@required {account_id: str, model: str, name: str}
@optional {description: str, public: bool=false}
@returns(200) {result: map{created_at: str(date-time), description: str, id: str(uuid), model: str, modified_at: str(date-time), name: str, public: bool}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai/finetunes/public
@required {account_id: str}
@optional {limit: num, offset: num, orderBy: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/ai/finetunes/{finetune_id}/finetune-assets
@required {account_id: str, finetune_id: str}
@returns(200) {success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai/models/schema
@required {account_id: str, model: str}
@returns(200) {result: map{input: map{additionalProperties: bool, description: str, type: str}, output: map{additionalProperties: bool, description: str, type: str}}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai/models/search
@required {account_id: str}
@optional {per_page: int, page: int, task: str, author: str, source: num, hide_experimental: bool, search: str}
@returns(200) {errors: [map], messages: [str], result: [map], success: bool}
@errors {404}

@endpoint POST /accounts/{account_id}/ai/run/@cf/ai4bharat/indictrans2-en-indic-1B
@required {account_id: str, target_language: str(asm_Beng/awa_Deva/ben_Beng/bho_Deva/brx_Deva/doi_Deva/eng_Latn/gom_Deva/gon_Deva/guj_Gujr/hin_Deva/hne_Deva/kan_Knda/kas_Arab/kas_Deva/kha_Latn/lus_Latn/mag_Deva/mai_Deva/mal_Mlym/mar_Deva/mni_Beng/mni_Mtei/npi_Deva/ory_Orya/pan_Guru/san_Deva/sat_Olck/snd_Arab/snd_Deva/tam_Taml/tel_Telu/urd_Arab/unr_Deva)=hin_Deva, text: any}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/ai4bharat/nonomni-indictrans2-en-indic-1b
@required {account_id: str, target_language: str(asm_Beng/awa_Deva/ben_Beng/bho_Deva/brx_Deva/doi_Deva/eng_Latn/gom_Deva/gon_Deva/guj_Gujr/hin_Deva/hne_Deva/kan_Knda/kas_Arab/kas_Deva/kha_Latn/lus_Latn/mag_Deva/mai_Deva/mal_Mlym/mar_Deva/mni_Beng/mni_Mtei/npi_Deva/ory_Orya/pan_Guru/san_Deva/sat_Olck/snd_Arab/snd_Deva/tam_Taml/tel_Telu/urd_Arab/unr_Deva)=hin_Deva, text: any}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/aisingapore/gemma-sea-lion-v4-27b-it
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/bge-base-en-v1.5
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/bge-large-en-v1.5
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/bge-m3
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/bge-reranker-base
@required {account_id: str, contexts: [map{text: str}], query: str}
@optional {queueRequest: str, tags: str, top_k: int}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/bge-small-en-v1.5
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/nonomni-bge-base-en-v1.5
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/nonomni-bge-large-en-v1.5
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/nonomni-bge-m3
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/baai/nonomni-bge-small-en-v1.5
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/black-forest-labs/flux-1-schnell
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, steps: int=4}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/black-forest-labs/flux-2-dev
@required {account_id: str, multipart: map{body: map, contentType: str}}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/black-forest-labs/flux-2-klein-4b
@required {account_id: str, multipart: map{body: map, contentType: str}}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/black-forest-labs/flux-2-klein-9b
@required {account_id: str, multipart: map{body: map, contentType: str}}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/bytedance/stable-diffusion-xl-lightning
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, guidance: num=7.5, height: int, image: [num], image_b64: str, mask: [num], negative_prompt: str, num_steps: int=20, seed: int, strength: num=1, width: int}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/aura
@required {account_id: str}
@errors {101, 400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/aura-1
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/deepgram/aura-1
@required {account_id: str, text: str}
@optional {queueRequest: str, tags: str, bit_rate: num, container: str(none/wav/ogg), encoding: str(linear16/flac/mulaw/alaw/mp3/opus/aac), sample_rate: num, speaker: str(angus/asteria/arcas/orion/orpheus/athena/luna/zeus/perseus/helios/hera/stella)=angus}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/aura-1-internal
@required {account_id: str}
@errors {101, 400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/aura-2
@required {account_id: str}
@errors {101, 400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/aura-2-en
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/deepgram/aura-2-en
@required {account_id: str, text: str}
@optional {queueRequest: str, tags: str, bit_rate: num, container: str(none/wav/ogg), encoding: str(linear16/flac/mulaw/alaw/mp3/opus/aac), sample_rate: num, speaker: str(amalthea/andromeda/apollo/arcas/aries/asteria/athena/atlas/aurora/callista/cora/cordelia/delia/draco/electra/harmonia/helena/hera/hermes/hyperion/iris/janus/juno/jupiter/luna/mars/minerva/neptune/odysseus/ophelia/orion/orpheus/pandora/phoebe/pluto/saturn/thalia/theia/vesta/zeus)=luna}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/aura-2-es
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/deepgram/aura-2-es
@required {account_id: str, text: str}
@optional {queueRequest: str, tags: str, bit_rate: num, container: str(none/wav/ogg), encoding: str(linear16/flac/mulaw/alaw/mp3/opus/aac), sample_rate: num, speaker: str(sirio/nestor/carina/celeste/alvaro/diana/aquila/selena/estrella/javier)=aquila}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/flux
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/deepgram/flux
@required {account_id: str, encoding: str, sample_rate: str}
@optional {queueRequest: str, tags: str, eager_eot_threshold: str, eot_threshold: str=0.7, eot_timeout_ms: str=5000, keyterm: str, mip_opt_out: str(true/false)=false, tag: str}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/nova-3
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/deepgram/nova-3
@required {account_id: str, audio: map{body!: map, contentType!: str}}
@optional {queueRequest: str, tags: str, channels: num, custom_intent: str, custom_intent_mode: str(extended/strict), custom_topic: str, custom_topic_mode: str(extended/strict), detect_entities: bool, detect_language: bool, diarize: bool, dictation: bool, encoding: str(linear16/flac/mulaw/amr-nb/amr-wb/opus/speex/g729), endpointing: str, extra: str, filler_words: bool, interim_results: bool, keyterm: str, keywords: str, language: str, measurements: bool, mip_opt_out: bool, mode: str(general/medical/finance), multichannel: bool, numerals: bool, paragraphs: bool, profanity_filter: bool, punctuate: bool, redact: str, replace: str, search: str, sentiment: bool, smart_format: bool, topics: bool, utt_split: num, utterance_end_ms: bool, utterances: bool, vad_events: bool}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/nova-3-internal
@required {account_id: str}
@errors {101, 400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/deepgram/nova-3-ws
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/deepseek-ai/deepseek-math-7b-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/deepseek-ai/deepseek-r1-distill-qwen-32b
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/defog/sqlcoder-7b-2
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/facebook/bart-large-cnn
@required {account_id: str, input_text: str}
@optional {queueRequest: str, tags: str, max_length: int=1024}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/facebook/nonomni-bart-large-cnn
@required {account_id: str, input_text: str}
@optional {queueRequest: str, tags: str, max_length: int=1024}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/facebook/nonomni-detr-resnet-50
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/fblgit/una-cybertron-7b-v2-bf16
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/google/embeddinggemma-300m
@required {account_id: str, text: any}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/google/gemma-2b-it-lora
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/google/gemma-3-12b-it
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/google/gemma-7b-it-lora
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/google/nonomni-embeddinggemma-300m
@required {account_id: str, text: any}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/huggingface/distilbert-sst-2-int8
@required {account_id: str, text: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/huggingface/nonomni-distilbert-sst-2-int8
@required {account_id: str, text: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/ibm-granite/granite-4.0-h-micro
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/leonardo/lucid-origin
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, guidance: num=4.5, height: int=1120, num_steps: int, seed: int, steps: int, width: int=1120}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/leonardo/phoenix-1.0
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, guidance: num=2, height: int=1024, negative_prompt: str, num_steps: int=25, seed: int, width: int=1024}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/lykon/dreamshaper-8-lcm
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, guidance: num=7.5, height: int, image: [num], image_b64: str, mask: [num], negative_prompt: str, num_steps: int=20, seed: int, strength: num=1, width: int}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta-llama/llama-2-7b-chat-hf-lora
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-2-7b-chat-fp16
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-2-7b-chat-int8
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3-8b-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3-8b-instruct-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.1-70b-instruct-fp8-fast
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct-fp8
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.1-8b-instruct-fp8-fast
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.2-11b-vision-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.2-1b-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.2-3b-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-3.3-70b-instruct-fp8-fast
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-4-scout-17b-16e-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/llama-guard-3-8b
@required {account_id: str, messages: [map{content!: str, role!: any}]}
@optional {queueRequest: str, tags: str, max_tokens: int=256, response_format: map{type: str}, temperature: num=0.6}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/meta/m2m100-1.2b
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/microsoft/nonomni-resnet-50
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/microsoft/phi-2
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/microsoft/resnet-50
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/mistral/mistral-7b-instruct-v0.1
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/mistral/mistral-7b-instruct-v0.2-lora
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/mistralai/mistral-small-3.1-24b-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/moonshotai/kimi-k2.5
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/myshell-ai/melotts
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, lang: str=en}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/nvidia/nemotron-3-120b-a12b
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/openai/gpt-oss-120b
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/openai/gpt-oss-20b
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/openai/whisper
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/openai/whisper-large-v3-turbo
@required {account_id: str, audio: any}
@optional {queueRequest: str, tags: str, beam_size: int=5, compression_ratio_threshold: num=2.4, condition_on_previous_text: bool=true, hallucination_silence_threshold: num, initial_prompt: str, language: str, log_prob_threshold: num=-1, no_speech_threshold: num=0.6, prefix: str, task: str=transcribe, vad_filter: bool=false}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/openai/whisper-tiny-en
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/openchat/openchat-3.5-0106
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/pfnet/plamo-embedding-1b
@required {account_id: str, text: any}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/pipecat-ai/smart-turn-v2
@required {account_id: str}
@errors {101, 400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/pipecat-ai/smart-turn-v3
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-0.5b-chat
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-1.8b-chat
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-14b-chat-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwen1.5-7b-chat-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwen2.5-coder-32b-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwen3-30b-a3b-fp8
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwen3-embedding-0.6b
@required {account_id: str}
@optional {queueRequest: str, tags: str, documents: any, instruction: str=Given a web search query, retrieve relevant passages that answer the query, queries: any, text: any}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/qwen/qwq-32b
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/runwayml/stable-diffusion-v1-5-img2img
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, guidance: num=7.5, height: int, image: [num], image_b64: str, mask: [num], negative_prompt: str, num_steps: int=20, seed: int, strength: num=1, width: int}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/runwayml/stable-diffusion-v1-5-inpainting
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, guidance: num=7.5, height: int, image: [num], image_b64: str, mask: [num], negative_prompt: str, num_steps: int=20, seed: int, strength: num=1, width: int}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/stabilityai/stable-diffusion-xl-base-1.0
@required {account_id: str, prompt: str}
@optional {queueRequest: str, tags: str, guidance: num=7.5, height: int, image: [num], image_b64: str, mask: [num], negative_prompt: str, num_steps: int=20, seed: int, strength: num=1, width: int}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/sven/test-pipe-http
@required {account_id: str}
@errors {101, 400}

@endpoint GET /accounts/{account_id}/ai/run/@cf/test/hello-world-cog
@required {account_id: str}
@errors {101, 400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/thebloke/discolm-german-7b-v1-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/tiiuae/falcon-7b-instruct
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/tinyllama/tinyllama-1.1b-chat-v1.0
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@cf/zai-org/glm-4.7-flash
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/google/gemma-7b-it
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/mistral/mistral-7b-instruct-v0.2
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/nexusflow/starling-lm-7b-beta
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/nousresearch/hermes-2-pro-mistral-7b
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/thebloke/deepseek-coder-6.7b-base-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/thebloke/deepseek-coder-6.7b-instruct-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/thebloke/llama-2-13b-chat-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/thebloke/mistral-7b-instruct-v0.1-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/thebloke/neural-chat-7b-v3-1-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/thebloke/openhermes-2.5-mistral-7b-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/@hf/thebloke/zephyr-7b-beta-awq
@required {account_id: str}
@optional {queueRequest: str, tags: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/ai/run/{model_name}
@required {account_id: str, model_name: str}
@returns(200) {result: map}
@errors {400}

@endpoint GET /accounts/{account_id}/ai/tasks/search
@required {account_id: str}
@returns(200) {errors: [map], messages: [str], result: [map], success: bool}
@errors {404}

@endpoint POST /accounts/{account_id}/ai/tomarkdown
@required {account_id: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/ai/tomarkdown/supported
@required {account_id: str}
@returns(200) {result: [map], success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/alerting/v3/available_alerts
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/destinations/eligible
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/alerting/v3/destinations/pagerduty
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/destinations/pagerduty
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/alerting/v3/destinations/pagerduty/connect
@required {account_id: str}
@returns(201)
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/destinations/pagerduty/connect/{token_id}
@required {account_id: str, token_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/destinations/webhooks
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/alerting/v3/destinations/webhooks
@required {account_id: str, name: str, url: str}
@optional {secret: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/alerting/v3/destinations/webhooks/{webhook_id}
@required {webhook_id: str, account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/destinations/webhooks/{webhook_id}
@required {account_id: str, webhook_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/alerting/v3/destinations/webhooks/{webhook_id}
@required {webhook_id: str, account_id: str, name: str, url: str}
@optional {secret: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/history
@required {account_id: str}
@optional {per_page: num, before: str(date-time), page: num=1, since: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/policies
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/alerting/v3/policies
@required {account_id: str, alert_type: str(abuse_report_alert/access_custom_certificate_expiration_type/advanced_ddos_attack_l4_alert/advanced_ddos_attack_l7_alert/advanced_http_alert_error/bgp_hijack_notification/billing_usage_alert/block_notification_block_removed/block_notification_new_block/block_notification_review_rejected/bot_traffic_basic_alert/brand_protection_alert/brand_protection_digest/clickhouse_alert_fw_anomaly/clickhouse_alert_fw_ent_anomaly/cloudforce_one_request_notification/cni_maintenance_notification/custom_analytics/custom_bot_detection_alert/custom_ssl_certificate_event_type/dedicated_ssl_certificate_event_type/device_connectivity_anomaly_alert/dos_attack_l4/dos_attack_l7/expiring_service_token_alert/failing_logpush_job_disabled_alert/fbm_auto_advertisement/fbm_dosd_attack/fbm_volumetric_attack/health_check_status_notification/hostname_aop_custom_certificate_expiration_type/http_alert_edge_error/http_alert_origin_error/image_notification/image_resizing_notification/incident_alert/load_balancing_health_alert/load_balancing_pool_enablement_alert/logo_match_alert/magic_tunnel_health_check_event/magic_wan_tunnel_health/maintenance_event_notification/mtls_certificate_store_certificate_expiration_type/pages_event_alert/radar_notification/real_origin_monitoring/scriptmonitor_alert_new_code_change_detections/scriptmonitor_alert_new_hosts/scriptmonitor_alert_new_malicious_hosts/scriptmonitor_alert_new_malicious_scripts/scriptmonitor_alert_new_malicious_url/scriptmonitor_alert_new_max_length_resource_url/scriptmonitor_alert_new_resources/secondary_dns_all_primaries_failing/secondary_dns_primaries_failing/secondary_dns_warning/secondary_dns_zone_successfully_updated/secondary_dns_zone_validation_warning/security_insights_alert/sentinel_alert/stream_live_notifications/synthetic_test_latency_alert/synthetic_test_low_availability_alert/traffic_anomalies_alert/tunnel_health_event/tunnel_update_event/universal_ssl_event_type/web_analytics_metrics_update/zone_aop_custom_certificate_expiration_type), enabled: bool=true, mechanisms: map{email: [map], pagerduty: [map], webhooks: [map]}, name: str}
@optional {alert_interval: str, description: str, filters: map{actions: [str], affected_asns: [str], affected_components: [str], affected_locations: [str], airport_code: [str], alert_trigger_preferences: [str], alert_trigger_preferences_value: [str], enabled: [str], environment: [str], event: [str], event_source: [str], event_type: [str], group_by: [str], health_check_id: [str], incident_impact: [str], input_id: [str], insight_class: [str], limit: [str], logo_tag: [str], megabits_per_second: [str], new_health: [str], new_status: [str], packets_per_second: [str], pool_id: [str], pop_names: [str], product: [str], project_id: [str], protocol: [str], query_tag: [str], requests_per_second: [str], selectors: [str], services: [str], slo: [str], status: [str], target_hostname: [str], target_ip: [str], target_zone_name: [str], traffic_exclusions: [str], tunnel_id: [str], tunnel_name: [str], type: [str], where: [str], zones: [str]}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/alerting/v3/policies/{policy_id}
@required {account_id: str, policy_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/policies/{policy_id}
@required {account_id: str, policy_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/alerting/v3/policies/{policy_id}
@required {account_id: str, policy_id: str}
@optional {alert_interval: str, alert_type: str(abuse_report_alert/access_custom_certificate_expiration_type/advanced_ddos_attack_l4_alert/advanced_ddos_attack_l7_alert/advanced_http_alert_error/bgp_hijack_notification/billing_usage_alert/block_notification_block_removed/block_notification_new_block/block_notification_review_rejected/bot_traffic_basic_alert/brand_protection_alert/brand_protection_digest/clickhouse_alert_fw_anomaly/clickhouse_alert_fw_ent_anomaly/cloudforce_one_request_notification/cni_maintenance_notification/custom_analytics/custom_bot_detection_alert/custom_ssl_certificate_event_type/dedicated_ssl_certificate_event_type/device_connectivity_anomaly_alert/dos_attack_l4/dos_attack_l7/expiring_service_token_alert/failing_logpush_job_disabled_alert/fbm_auto_advertisement/fbm_dosd_attack/fbm_volumetric_attack/health_check_status_notification/hostname_aop_custom_certificate_expiration_type/http_alert_edge_error/http_alert_origin_error/image_notification/image_resizing_notification/incident_alert/load_balancing_health_alert/load_balancing_pool_enablement_alert/logo_match_alert/magic_tunnel_health_check_event/magic_wan_tunnel_health/maintenance_event_notification/mtls_certificate_store_certificate_expiration_type/pages_event_alert/radar_notification/real_origin_monitoring/scriptmonitor_alert_new_code_change_detections/scriptmonitor_alert_new_hosts/scriptmonitor_alert_new_malicious_hosts/scriptmonitor_alert_new_malicious_scripts/scriptmonitor_alert_new_malicious_url/scriptmonitor_alert_new_max_length_resource_url/scriptmonitor_alert_new_resources/secondary_dns_all_primaries_failing/secondary_dns_primaries_failing/secondary_dns_warning/secondary_dns_zone_successfully_updated/secondary_dns_zone_validation_warning/security_insights_alert/sentinel_alert/stream_live_notifications/synthetic_test_latency_alert/synthetic_test_low_availability_alert/traffic_anomalies_alert/tunnel_health_event/tunnel_update_event/universal_ssl_event_type/web_analytics_metrics_update/zone_aop_custom_certificate_expiration_type), description: str, enabled: bool=true, filters: map{actions: [str], affected_asns: [str], affected_components: [str], affected_locations: [str], airport_code: [str], alert_trigger_preferences: [str], alert_trigger_preferences_value: [str], enabled: [str], environment: [str], event: [str], event_source: [str], event_type: [str], group_by: [str], health_check_id: [str], incident_impact: [str], input_id: [str], insight_class: [str], limit: [str], logo_tag: [str], megabits_per_second: [str], new_health: [str], new_status: [str], packets_per_second: [str], pool_id: [str], pop_names: [str], product: [str], project_id: [str], protocol: [str], query_tag: [str], requests_per_second: [str], selectors: [str], services: [str], slo: [str], status: [str], target_hostname: [str], target_ip: [str], target_zone_name: [str], traffic_exclusions: [str], tunnel_id: [str], tunnel_name: [str], type: [str], where: [str], zones: [str]}, mechanisms: map{email: [map], pagerduty: [map], webhooks: [map]}, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/silences
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/alerting/v3/silences
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint PUT /accounts/{account_id}/alerting/v3/silences
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/alerting/v3/silences/{silence_id}
@required {account_id: str, silence_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/alerting/v3/silences/{silence_id}
@required {account_id: str, silence_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/audit_logs
@required {account_id: str}
@optional {id: str, export: bool, action.type: str, actor.ip: str, actor.email: str(email), since: any, before: any, zone.name: str, direction: str(desc/asc)=desc, per_page: num=100, page: num=1, hide_user_logs: bool=false}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/autorag/rags/{id}/ai-search
@required {id: str, account_id: str, query: str}
@optional {filters: any, max_num_results: int=10, model: any, ranking_options: map{ranker: str, score_threshold: num}=[object Object], reranking: map{enabled: bool, model: any}, rewrite_query: bool=false, stream: bool=false, system_prompt: str}
@returns(200) {result: map{data: [map], has_more: bool, next_page: str?, object: str, response: str, search_query: str}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/autorag/rags/{id}/files
@required {id: str, account_id: str}
@optional {page: int=1, per_page: int=20, search: str, status: str(completed/queued/running/error)}
@returns(200) {result: [map], result_info: map{count: int, page: int, per_page: int, total_count: int}, success: bool}
@errors {404, 503}

@endpoint GET /accounts/{account_id}/autorag/rags/{id}/jobs
@required {id: str, account_id: str}
@optional {page: int=1, per_page: int=20}
@returns(200) {result: [map], result_info: map{count: int, page: int, per_page: int, total_count: int}, success: bool}
@errors {404, 503}

@endpoint GET /accounts/{account_id}/autorag/rags/{id}/jobs/{job_id}
@required {id: str, job_id: str, account_id: str}
@returns(200) {result: map{end_reason: str, ended_at: str, id: str, last_seen_at: str, source: str, started_at: str}, success: bool}
@errors {404, 503}

@endpoint GET /accounts/{account_id}/autorag/rags/{id}/jobs/{job_id}/logs
@required {id: str, job_id: str, account_id: str}
@optional {page: int=1, per_page: int=20}
@returns(200) {result: [map], result_info: map{count: int, page: int, per_page: int, total_count: int}, success: bool}
@errors {404, 503}

@endpoint POST /accounts/{account_id}/autorag/rags/{id}/search
@required {id: str, account_id: str, query: str}
@optional {filters: any, max_num_results: int=10, ranking_options: map{ranker: str, score_threshold: num}=[object Object], reranking: map{enabled: bool, model: any}, rewrite_query: bool=false}
@returns(200) {result: map{data: [map], has_more: bool, next_page: str?, object: str, search_query: str}, success: bool}
@errors {404}

@endpoint PATCH /accounts/{account_id}/autorag/rags/{id}/sync
@required {id: str, account_id: str}
@returns(200) {result: map{job_id: str}, success: bool}
@errors {400, 404, 429, 503}

@endpoint GET /accounts/{account_id}/billing/profile
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/billing/usage/paygo
@required {account_id: str}
@optional {from: str(date), to: str(date)}
@returns(200) {errors: [map]?, messages: [map]?, result: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/botnet_feed/asn/{asn_id}/day_report
@required {account_id: str, asn_id: int}
@optional {date: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/botnet_feed/asn/{asn_id}/full_report
@required {account_id: str, asn_id: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/botnet_feed/configs/asn
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/botnet_feed/configs/asn/{asn_id}
@required {account_id: str, asn_id: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/brand-protection/alerts

@endpoint PATCH /accounts/{account_id}/brand-protection/alerts

@endpoint PATCH /accounts/{account_id}/brand-protection/alerts/clear

@endpoint PATCH /accounts/{account_id}/brand-protection/alerts/refute

@endpoint PATCH /accounts/{account_id}/brand-protection/alerts/verify

@endpoint DELETE /accounts/{account_id}/brand-protection/brands

@endpoint GET /accounts/{account_id}/brand-protection/brands

@endpoint POST /accounts/{account_id}/brand-protection/brands

@endpoint DELETE /accounts/{account_id}/brand-protection/brands/patterns

@endpoint GET /accounts/{account_id}/brand-protection/brands/patterns

@endpoint POST /accounts/{account_id}/brand-protection/brands/patterns

@endpoint PATCH /accounts/{account_id}/brand-protection/clear

@endpoint GET /accounts/{account_id}/brand-protection/domain-info

@endpoint GET /accounts/{account_id}/brand-protection/logo-matches
@optional {logo_id: [str], offset: str, limit: str}
@returns(200) {matches: [map], total: int}
@errors {422}

@endpoint GET /accounts/{account_id}/brand-protection/logo-matches/download
@optional {logo_id: [str], offset: str, limit: str}
@returns(200) {matches: [map], total: int}
@errors {422}

@endpoint GET /accounts/{account_id}/brand-protection/logos

@endpoint POST /accounts/{account_id}/brand-protection/logos
@optional {tag: str, match_type: str, threshold: num}
@returns(201) {id: int, tag: str, upload_path: str}
@errors {422}

@endpoint DELETE /accounts/{account_id}/brand-protection/logos/{logo_id}
@returns(204)

@endpoint GET /accounts/{account_id}/brand-protection/logos/{logo_id}

@endpoint GET /accounts/{account_id}/brand-protection/matches
@optional {id: str, offset: int, limit: int, include_domain_id: bool}
@returns(200) {matches: [map], total: int}
@errors {422}

@endpoint GET /accounts/{account_id}/brand-protection/matches/download
@optional {id: str, offset: int, limit: int, include_domain_id: bool}
@returns(200) {matches: [map], total: int}
@errors {422}

@endpoint DELETE /accounts/{account_id}/brand-protection/queries
@optional {id: str, tag: str, scan: bool}
@returns(204)
@errors {422}

@endpoint GET /accounts/{account_id}/brand-protection/queries

@endpoint PATCH /accounts/{account_id}/brand-protection/queries
@optional {id: int, scan: bool, string_matches: [map{max_edit_distance: num, pattern!: str}], tag: str}

@endpoint POST /accounts/{account_id}/brand-protection/queries
@optional {id: str, tag: str, scan: bool, max_time: str(date-time), min_time: str(date-time), scan: bool, string_matches: any, tag: str}
@returns(204)
@errors {422}

@endpoint POST /accounts/{account_id}/brand-protection/queries/bulk
@optional {queries: [map]}
@returns(204)
@errors {422}

@endpoint GET /accounts/{account_id}/brand-protection/recent-submissions

@endpoint PATCH /accounts/{account_id}/brand-protection/refute

@endpoint POST /accounts/{account_id}/brand-protection/scan-logo

@endpoint POST /accounts/{account_id}/brand-protection/scan-page

@endpoint POST /accounts/{account_id}/brand-protection/search

@endpoint GET /accounts/{account_id}/brand-protection/submission-info

@endpoint POST /accounts/{account_id}/brand-protection/submit
@returns(201) {skipped_urls: [map], submitted_urls: [map]}

@endpoint GET /accounts/{account_id}/brand-protection/total-queries

@endpoint GET /accounts/{account_id}/brand-protection/tracked-domains

@endpoint GET /accounts/{account_id}/brand-protection/url-info
@returns(200) {result: [map]}

@endpoint PATCH /accounts/{account_id}/brand-protection/verify

@endpoint POST /accounts/{account_id}/browser-rendering/content
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], meta: map{status: num, title: str}, result: str, success: bool}
@errors {400, 422, 429, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/crawl
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], result: str, success: bool}
@errors {400, 429, 500}

@endpoint DELETE /accounts/{account_id}/browser-rendering/crawl/{job_id}
@required {account_id: str, job_id: str}
@returns(200) {errors: [map], result: map{job_id: str, message: str}, success: bool}
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/browser-rendering/crawl/{job_id}
@required {account_id: str, job_id: str}
@optional {cacheTTL: num=5, status: str(queued/errored/completed/disallowed/skipped/cancelled), cursor: num=0, limit: num=50}
@returns(200) {errors: [map], result: map{browserSecondsUsed: num, cursor: str, finished: num, id: str, records: [map], skipped: num, status: str, total: num}, success: bool}
@errors {400, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/json
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], result: map, success: bool}
@errors {400, 422, 429, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/links
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], result: [str], success: bool}
@errors {400, 422, 429, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/markdown
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], result: str, success: bool}
@errors {400, 422, 429, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/pdf
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200)
@errors {400, 422, 429, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/scrape
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], result: [map], success: bool}
@errors {400, 422, 429, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/screenshot
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], success: bool}
@errors {400, 422, 429, 500}

@endpoint POST /accounts/{account_id}/browser-rendering/snapshot
@required {account_id: str}
@optional {cacheTTL: num=5}
@returns(200) {errors: [map], meta: map{status: num, title: str}, result: map{content: str, screenshot: str}, success: bool}
@errors {400, 422, 429, 500}

@endpoint GET /accounts/{account_id}/builds/account/limits
@required {account_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/builds/builds
@required {account_id: str, version_ids: str}
@returns(200)

@endpoint GET /accounts/{account_id}/builds/builds/latest
@required {account_id: str, external_script_ids: str}
@returns(200)

@endpoint GET /accounts/{account_id}/builds/builds/{build_uuid}
@required {account_id: str, build_uuid: str(uuid)}
@returns(200)
@errors {404}

@endpoint PUT /accounts/{account_id}/builds/builds/{build_uuid}/cancel
@required {account_id: str, build_uuid: str(uuid)}
@returns(200)
@errors {404}

@endpoint GET /accounts/{account_id}/builds/builds/{build_uuid}/logs
@required {account_id: str, build_uuid: str(uuid)}
@optional {cursor: str}
@returns(200)
@errors {404}

@endpoint PUT /accounts/{account_id}/builds/repos/connections
@required {account_id: str, provider_account_id: str, provider_account_name: str, provider_type: str, repo_id: str, repo_name: str}
@returns(200)

@endpoint DELETE /accounts/{account_id}/builds/repos/connections/{repo_connection_uuid}
@required {account_id: str, repo_connection_uuid: str(uuid)}
@returns(200) {errors: [map], messages: [str], result: map?, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/builds/repos/{provider_type}/{provider_account_id}/{repo_id}/config_autofill
@required {account_id: str, provider_type: str, provider_account_id: str, repo_id: str, branch: str}
@optional {root_directory: str}
@returns(200)

@endpoint GET /accounts/{account_id}/builds/tokens
@required {account_id: str}
@optional {page: int=1, per_page: int=50}
@returns(200)

@endpoint POST /accounts/{account_id}/builds/tokens
@required {account_id: str, build_token_name: str, build_token_secret: str, cloudflare_token_id: str}
@returns(200)

@endpoint DELETE /accounts/{account_id}/builds/tokens/{build_token_uuid}
@required {account_id: str, build_token_uuid: str(uuid)}
@returns(200) {errors: [map], messages: [str], result: map?, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {404}

@endpoint POST /accounts/{account_id}/builds/triggers
@required {account_id: str, branch_excludes: [str], branch_includes: [str], build_command: str, build_token_uuid: str(uuid), deploy_command: str, external_script_id: str, path_excludes: [str], path_includes: [str]=*, repo_connection_uuid: str(uuid), root_directory: str, trigger_name: str}
@optional {build_caching_enabled: bool=false}
@returns(200)

@endpoint DELETE /accounts/{account_id}/builds/triggers/{trigger_uuid}
@required {account_id: str, trigger_uuid: str(uuid)}
@returns(200) {errors: [map], messages: [str], result: map?, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {404}

@endpoint PATCH /accounts/{account_id}/builds/triggers/{trigger_uuid}
@required {account_id: str, trigger_uuid: str(uuid)}
@optional {branch_excludes: [str], branch_includes: [str], build_caching_enabled: bool=false, build_command: str, build_token_uuid: str(uuid), deploy_command: str, path_excludes: [str], path_includes: [str]=*, root_directory: str, trigger_name: str}
@returns(200)
@errors {404}

@endpoint POST /accounts/{account_id}/builds/triggers/{trigger_uuid}/builds
@required {account_id: str, trigger_uuid: str(uuid)}
@optional {branch: any, commit_hash: any, seed_repo: map{branch!: str, files: [map], owner!: str, path!: str, provider!: str, repository!: str}}
@returns(200)

@endpoint GET /accounts/{account_id}/builds/triggers/{trigger_uuid}/environment_variables
@required {account_id: str, trigger_uuid: str(uuid)}
@returns(200)

@endpoint PATCH /accounts/{account_id}/builds/triggers/{trigger_uuid}/environment_variables
@required {account_id: str, trigger_uuid: str(uuid)}
@returns(200)
@errors {404}

@endpoint DELETE /accounts/{account_id}/builds/triggers/{trigger_uuid}/environment_variables/{environment_variable_key}
@required {account_id: str, trigger_uuid: str(uuid), environment_variable_key: str}
@returns(200) {errors: [map], messages: [str], result: map?, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {404}

@endpoint POST /accounts/{account_id}/builds/triggers/{trigger_uuid}/purge_build_cache
@required {account_id: str, trigger_uuid: str(uuid)}
@returns(200) {errors: [map], messages: [str], result: map?, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/builds/workers/{external_script_id}/builds
@required {account_id: str, external_script_id: str}
@optional {page: int=1, per_page: int=50}
@returns(200)

@endpoint GET /accounts/{account_id}/builds/workers/{external_script_id}/triggers
@required {account_id: str, external_script_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/calls/apps
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/calls/apps
@required {account_id: str}
@optional {name: str=}
@returns(201)

@endpoint DELETE /accounts/{account_id}/calls/apps/{app_id}
@required {app_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/calls/apps/{app_id}
@required {app_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/calls/apps/{app_id}
@required {app_id: str, account_id: str}
@optional {name: str=}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/calls/turn_keys
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/calls/turn_keys
@required {account_id: str}
@optional {name: str=}
@returns(201)

@endpoint DELETE /accounts/{account_id}/calls/turn_keys/{key_id}
@required {key_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/calls/turn_keys/{key_id}
@required {key_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/calls/turn_keys/{key_id}
@required {key_id: str, account_id: str}
@optional {name: str=}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cfd_tunnel
@required {account_id: str}
@optional {name: str, is_deleted: bool, existed_at: str(url-encoded-date-time), uuid: str(uuid), was_active_at: str(date-time), was_inactive_at: str(date-time), include_prefix: str, exclude_prefix: str, status: str, per_page: num, page: num}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cfd_tunnel
@required {account_id: str, name: str}
@optional {config_src: str(local/cloudflare)=local, tunnel_secret: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cfd_tunnel/{tunnel_id}
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cfd_tunnel/{tunnel_id}
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/cfd_tunnel/{tunnel_id}
@required {tunnel_id: str(uuid), account_id: str}
@optional {name: str, tunnel_secret: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cfd_tunnel/{tunnel_id}/configurations
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/cfd_tunnel/{tunnel_id}/configurations
@required {account_id: str, tunnel_id: str(uuid)}
@optional {config: map{ingress: [map], originRequest: map, warp-routing: map}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cfd_tunnel/{tunnel_id}/connections
@required {account_id: str, tunnel_id: str(uuid)}
@optional {client_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cfd_tunnel/{tunnel_id}/connections
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cfd_tunnel/{tunnel_id}/connectors/{connector_id}
@required {account_id: str, tunnel_id: str(uuid), connector_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cfd_tunnel/{tunnel_id}/management
@required {account_id: str, tunnel_id: str(uuid), resources: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cfd_tunnel/{tunnel_id}/token
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/challenges/widgets
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/challenges/widgets
@required {domains: [str], mode: str(non-interactive/invisible/managed), name: str}
@optional {bot_fight_mode: bool, clearance_level: str(no_clearance/jschallenge/managed/interactive), ephemeral_id: bool, offlabel: bool, region: str(world/china)=world}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/challenges/widgets/{sitekey}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/challenges/widgets/{sitekey}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/challenges/widgets/{sitekey}
@required {domains: [str], mode: str(non-interactive/invisible/managed), name: str}
@optional {bot_fight_mode: bool, clearance_level: str(no_clearance/jschallenge/managed/interactive), ephemeral_id: bool, offlabel: bool, region: str(world/china)=world}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/challenges/widgets/{sitekey}/rotate_secret
@optional {invalidate_immediately: bool=false}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/binary
@required {account_id: num}
@returns(200) {content_type: str, md5: str, sha1: str, sha256: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/binary/{hash}
@required {account_id: num, hash: str}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events
@required {account_id: str}
@optional {cursor: str, search: [map]=, page: num, pageSize: num, orderBy: str, order: str(asc/desc), datasetId: [str], forceRefresh: bool, format: str(json/stix2)}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/aggregate
@required {account_id: str, aggregateBy: str}
@optional {datasetId: [str], startDate: str, endDate: str, groupByDate: bool, limit: num=100}
@returns(200) {aggregateBy: str, aggregations: [any], dateRange: map{endDate: str, startDate: str}, total: num}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/attackers
@required {account_id: str}
@optional {datasetIds: [str]}
@returns(200) {items: map{type: str}, type: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/categories
@required {account_id: str}
@optional {datasetIds: [str]}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/categories/catalog
@required {account_id: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/categories/create
@required {account_id: str, killChain: num, name: str}
@optional {mitreAttack: [str], mitreCapec: [str], shortname: str}
@returns(200) {killChain: num, mitreAttack: [str], mitreCapec: [str], name: str, shortname: str, uuid: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/categories/{category_id}
@required {account_id: str, category_id: str(uuid)}
@returns(200) {uuid: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/categories/{category_id}
@required {account_id: str, category_id: str(uuid)}
@returns(200) {killChain: num, mitreAttack: [str], mitreCapec: [str], name: str, shortname: str, uuid: str}
@errors {400}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/categories/{category_id}
@required {account_id: str, category_id: str(uuid)}
@optional {killChain: num, mitreAttack: [str], mitreCapec: [str], name: str, shortname: str}
@returns(200) {killChain: num, mitreAttack: [str], mitreCapec: [str], name: str, shortname: str, uuid: str}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/categories/{category_id}
@required {account_id: str, category_id: str(uuid)}
@optional {killChain: num, mitreAttack: [str], mitreCapec: [str], name: str, shortname: str}
@returns(200) {killChain: num, mitreAttack: [str], mitreCapec: [str], name: str, shortname: str, uuid: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/countries
@required {account_id: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/create
@required {account_id: str, category: str, date: str(date-time), event: str, raw: map{data!: map, source: str, tlp: str}, tlp: str}
@optional {accountId: num, attacker: str, attackerCountry: str, datasetId: str, indicator: str, indicatorType: str, indicators: [map{indicatorType!: str, value!: str}], insight: str, tags: [str], targetCountry: str, targetIndustry: str}
@returns(200) {attacker: str, attackerCountry: str, category: str, datasetId: str, date: str, event: str, hasChildren: bool, indicator: str, indicatorType: str, indicatorTypeId: num, insight: str, killChain: num, mitreAttack: [str], mitreCapec: [str], numReferenced: num, numReferences: num, rawId: str, referenced: [str], referencedIds: [num], references: [str], referencesIds: [num], releasabilityId: str, tags: [str], targetCountry: str, targetIndustry: str, tlp: str, uuid: str}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/create/bulk
@required {account_id: str, data: [map{accountId: num, attacker: str, attackerCountry: str, category!: str, datasetId: str, date!: str(date-time), event!: str, indicator: str, indicatorType: str, indicators: [map], insight: str, raw!: map, tags: [str], targetCountry: str, targetIndustry: str, tlp!: str}], datasetId: str}
@optional {includeCreatedEvents: bool}
@returns(202) {createBulkEventsRequestId: str(uuid), createdEvents: [map], createdEventsCount: num, createdTagsCount: num, errorCount: num, errors: [map], queuedIndicatorsCount: num}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/create/bulk/relationships
@required {account_id: str, data: [map{accountId: num, attacker: str, attackerCountry: str, category!: str, datasetId: str, date!: str(date-time), event!: str, indicator: str, indicatorType: str, indicators: [map], insight: str, raw!: map, tags: [str], targetCountry: str, targetIndustry: str, tlp!: str}], datasetId: str}
@returns(200) {createdEventsCount: num, createdIndicatorsCount: num, createdRelationshipsCount: num, errorCount: num, errors: [map]}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset
@required {account_id: str}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/-/groups
@required {account_id: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/-/groups
@required {account_id: str, description: str, name: str}
@returns(200) {createdAt: str(date-time), description: str, name: str, updatedAt: str(date-time), uuid: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/dataset/-/groups/{group_id}
@required {account_id: str, group_id: str}
@returns(200) {message: str, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/-/groups/{group_id}
@required {account_id: str, group_id: str}
@returns(200) {createdAt: str(date-time), description: str, members: [map], name: str, updatedAt: str(date-time), uuid: str}
@errors {400}

@endpoint PUT /accounts/{account_id}/cloudforce-one/events/dataset/-/groups/{group_id}
@required {account_id: str, group_id: str, description: str, name: str}
@returns(200) {createdAt: str(date-time), description: str, name: str, updatedAt: str(date-time), uuid: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/-/groups/{group_id}/members
@required {account_id: str, group_id: str}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/-/groups/{group_id}/members
@required {account_id: str, group_id: str}
@optional {accountId: str, accountTag: str}
@returns(200) {accountId: str, accountTag: str, createdAt: str(date-time), updatedAt: str(date-time), uuid: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/dataset/-/groups/{group_id}/members/{member_id}
@required {account_id: str, group_id: str, member_id: str}
@returns(200) {message: str, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/create
@required {account_id: str, isPublic: bool, name: str}
@returns(200) {isPublic: bool, name: str, uuid: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}
@required {account_id: str, dataset_id: str}
@returns(200) {name: str, uuid: str}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}
@required {account_id: str, dataset_id: str(uuid)}
@returns(200) {isPublic: bool, name: str, uuid: str}
@errors {400}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}
@required {account_id: str, dataset_id: str(uuid), isPublic: bool, name: str}
@returns(200) {isPublic: bool, name: str, uuid: str}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}
@required {account_id: str, dataset_id: str(uuid), isPublic: bool, name: str}
@returns(200) {isPublic: bool, name: str, uuid: str}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/copy
@required {account_id: str, dataset_id: str(uuid), destDatasetId: str, eventIds: [str]}
@optional {keepRawData: bool}
@returns(200) {copied: num, indicatorsCopied: num, insertFailures: [map], relationshipsCopied: num}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/events/{event_id}
@required {account_id: str, dataset_id: str, event_id: str}
@returns(200) {attacker: str, attackerCountry: str, category: str, datasetId: str, date: str, event: str, hasChildren: bool, indicator: str, indicatorType: str, indicatorTypeId: num, insight: str, killChain: num, mitreAttack: [str], mitreCapec: [str], numReferenced: num, numReferences: num, rawId: str, referenced: [str], referencedIds: [num], references: [str], referencesIds: [num], releasabilityId: str, tags: [str], targetCountry: str, targetIndustry: str, tlp: str, uuid: str}
@errors {404}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicatorTypes/create
@required {account_id: str, dataset_id: str, indicatorType: str}
@optional {description: str}
@returns(200) {durableObjectId: str, indicatorType: str, message: str}
@errors {400, 500}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators
@required {account_id: str, dataset_id: str(uuid)}
@optional {page: num, pageSize: num, name: str, indicatorType: str, relatedEvent: [str]}
@returns(200) {indicators: [map], pagination: map{page: num, pageSize: num, totalCount: num, totalPages: num}}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/bulk
@required {account_id: str, dataset_id: str(uuid), indicators: [map{autoCreateType: bool, indicatorType!: str, relatedEvents: [map], tags: [any], value!: str}]}
@optional {autoCreateType: bool}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/create
@required {account_id: str, dataset_id: str(uuid), indicatorType: str, value: str}
@optional {autoCreateType: bool, relatedEvents: [map{datasetId!: str, eventId!: str}], tags: [any]}
@returns(200) {createdAt: str(date-time), datasetId: str, indicatorType: str, relatedEvents: [map], tags: [map], updatedAt: str(date-time), uuid: str, value: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/tags
@required {account_id: str, dataset_id: str}
@returns(200)
@errors {400, 404, 500}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/{indicator_id}
@required {account_id: str, dataset_id: str, indicator_id: str}
@returns(200) {message: str, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/{indicator_id}
@required {account_id: str, dataset_id: str, indicator_id: str}
@returns(200) {createdAt: str(date-time), datasetId: str, indicatorType: str, relatedEvents: [map], tags: [map], updatedAt: str(date-time), uuid: str, value: str}
@errors {404}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/indicators/{indicator_id}
@required {account_id: str, dataset_id: str, indicator_id: str}
@optional {indicatorType: str, relatedEvents: [map{datasetId!: str, eventId!: str}], tags: [any], value: str}
@returns(200) {createdAt: str(date-time), datasetId: str, indicatorType: str, relatedEvents: [map], tags: [map], updatedAt: str(date-time), uuid: str, value: str}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/move
@required {account_id: str, dataset_id: str(uuid), destDatasetId: str, eventIds: [str]}
@optional {keepRawData: bool}
@returns(200) {deletionFailures: [map], indicatorsCopied: num, insertFailures: [map], moved: num, relationshipsCopied: num}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/permissions
@required {account_id: str, dataset_id: str(uuid)}
@returns(200)
@errors {400, 404}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/permissions
@required {account_id: str, dataset_id: str(uuid), role: str(read/write), subjectId: str, subjectType: str(account/group)}
@returns(200) {createdAt: str(date-time), resourceId: str, resourceType: str, role: str, subjectId: str, subjectType: str, updatedAt: str(date-time), uuid: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/permissions/{grant_id}
@required {account_id: str, dataset_id: str(uuid), grant_id: str}
@returns(200) {message: str, success: bool}
@errors {400, 404}

@endpoint PUT /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/permissions/{grant_id}
@required {account_id: str, dataset_id: str(uuid), grant_id: str, role: str(read/write)}
@returns(200) {message: str, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/tags/{tag_uuid}/indicators
@required {account_id: str, tag_uuid: str, dataset_id: str(uuid)}
@optional {page: num, pageSize: num, indicatorType: str, relatedEvent: [str]}
@returns(200) {indicators: [map], pagination: map{page: num, pageSize: num, totalCount: num, totalPages: num}}
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/dataset/{dataset_id}/targetIndustries
@required {account_id: str, dataset_id: str(uuid)}
@returns(200) {items: map{type: str}, type: str}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/datasets/populate
@required {account_id: str}
@returns(200) {properties: map{accountId: map{type: str}, datasets: map{items: map{properties: map, type: str}, type: str}, errors: map{items: map{type: str}, type: str}, summary: map{properties: map{failedDatasets: map, successfulDatasets: map, totalDatasets: map, totalIndicatorTypes: map, totalProcessingTimeMs: map}, type: str}}, type: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/event_tag/{event_id}
@required {account_id: str, event_id: str, tags: [str]}
@returns(200) {result: map{success: bool}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/event_tag/{event_id}/create
@required {account_id: str, event_id: str, tags: [str]}
@returns(200) {result: map{success: bool}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/graphql
@required {account_id: str}
@returns(200) {data: map?, errors: [map]?}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/indicator-types
@required {account_id: str}
@optional {datasetIds: [str]}
@returns(200) {items: map{type: str}, type: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/indicatorTypes
@required {account_id: str}
@returns(200) {items: map{type: str}, type: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/indicators
@required {account_id: str}
@optional {datasetIds: [str], page: num, pageSize: num, search: [map], name: str, indicatorType: str, relatedEvents: [str], tags: [str], createdAfter: str(date-time), createdBefore: str(date-time), relatedEventsLimit: num, includeTags: bool, includeTotalCount: bool, format: str(json/stix2)}
@returns(200) {properties: map{indicators: map{items: map{createdAt: str(date-time), datasetId: str, indicatorType: str, relatedEvents: [map], tags: [map], updatedAt: str(date-time), uuid: str, value: str}, type: str}, pagination: map{properties: map{count: map, page: map, per_page: map, total_count: map}, type: str}}, type: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/queries
@required {account_id: str}
@returns(200)
@errors {500}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/queries/alerts
@required {account_id: str}
@returns(200)
@errors {500}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/queries/alerts/create
@required {account_id: str, query_id: int}
@optional {enabled: bool, frequency: str(immediate/daily)=daily, notification_type: str=ans}
@returns(200) {account_id: int, created_at: str, enabled: bool, frequency: str, id: int, last_sent_at: str, notification_type: str, query_id: int, updated_at: str, user_email: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/queries/alerts/{alert_id}
@required {account_id: str, alert_id: int}
@returns(200)
@errors {404}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/queries/alerts/{alert_id}
@required {account_id: str, alert_id: int}
@returns(200) {account_id: int, created_at: str, enabled: bool, frequency: str, id: int, last_sent_at: str, notification_type: str, query_id: int, updated_at: str, user_email: str}
@errors {404}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/queries/alerts/{alert_id}
@required {account_id: str, alert_id: int}
@optional {enabled: bool, frequency: str(immediate/daily), notification_type: str}
@returns(200) {account_id: int, created_at: str, enabled: bool, frequency: str, id: int, last_sent_at: str, notification_type: str, query_id: int, updated_at: str, user_email: str}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/queries/alerts/{alert_id}
@required {account_id: str, alert_id: int}
@optional {enabled: bool, frequency: str(immediate/daily), notification_type: str}
@returns(200) {account_id: int, created_at: str, enabled: bool, frequency: str, id: int, last_sent_at: str, notification_type: str, query_id: int, updated_at: str, user_email: str}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/queries/create
@required {account_id: str, alert_enabled: bool, alert_rollup_enabled: bool, name: str, query_json: str, rule_enabled: bool}
@optional {rule_scope: str}
@returns(200) {account_id: int, alert_enabled: bool, alert_rollup_enabled: bool, created_at: str, id: int, name: str, query_json: str, rule_enabled: bool, rule_scope: str, updated_at: str, user_email: str}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/queries/{query_id}
@required {account_id: str, query_id: int}
@returns(200)
@errors {404}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/queries/{query_id}
@required {account_id: str, query_id: int}
@returns(200) {account_id: int, alert_enabled: bool, alert_rollup_enabled: bool, created_at: str, id: int, name: str, query_json: str, rule_enabled: bool, rule_scope: str, updated_at: str, user_email: str}
@errors {404}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/queries/{query_id}
@required {account_id: str, query_id: int}
@optional {alert_enabled: bool, alert_rollup_enabled: bool, name: str, query_json: str, rule_enabled: bool, rule_scope: str}
@returns(200) {account_id: int, alert_enabled: bool, alert_rollup_enabled: bool, created_at: str, id: int, name: str, query_json: str, rule_enabled: bool, rule_scope: str, updated_at: str, user_email: str}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/queries/{query_id}
@required {account_id: str, query_id: int}
@optional {alert_enabled: bool, alert_rollup_enabled: bool, name: str, query_json: str, rule_enabled: bool, rule_scope: str}
@returns(200) {account_id: int, alert_enabled: bool, alert_rollup_enabled: bool, created_at: str, id: int, name: str, query_json: str, rule_enabled: bool, rule_scope: str, updated_at: str, user_email: str}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/raw/{dataset_id}/{event_id}
@required {account_id: str, event_id: str, dataset_id: str}
@returns(200) {accountId: num, created: str, data: str, id: num, source: str, tlp: str}
@errors {404, 500}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/relate/{event_id}
@required {account_id: str, event_id: str, events: [str]}
@returns(200) {result: map{success: bool}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/relate/{event_id}/create
@required {account_id: str, event_id: str, events: [str]}
@returns(200) {result: map{success: bool}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/relationships/create
@required {account_id: str, childIds: [str(uuid)], datasetId: str, parentId: str(uuid), relationshipType: str(related_to/caused_by/attributed_to)}
@returns(200) {childIds: [str(uuid)], errors: [map], message: str, relationships: [map], relationshipsCreated: num, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/tags
@required {account_id: str}
@optional {page: num, pageSize: num, search: str, categoryUuid: str}
@returns(200) {pagination: map{page: num, pageSize: num, totalCount: num, totalPages: num}, tags: [map]}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/tags/categories
@required {account_id: str}
@optional {search: str}
@returns(200) {categories: [map]}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/tags/categories/create
@required {account_id: str, name: str}
@optional {description: str}
@returns(200) {createdAt: str, description: str, name: str, updatedAt: str, uuid: str}
@errors {400, 409}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/tags/categories/{category_uuid}
@required {account_id: str, category_uuid: str}
@returns(200) {uuid: str}
@errors {400, 404}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/tags/categories/{category_uuid}
@required {account_id: str, category_uuid: str}
@optional {description: str, name: str}
@returns(200) {createdAt: str, description: str, name: str, updatedAt: str, uuid: str}
@errors {400, 404, 409}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/tags/create
@required {account_id: str, value: str}
@optional {activeDuration: str, actorCategory: str, aliasGroupNames: [str], aliasGroupNamesInternal: [str], analyticPriority: num, attributionConfidence: str, attributionOrganization: str, categoryUuid: str, externalReferenceLinks: [str], internalDescription: str, motive: str, opsecLevel: str, originCountryISO: str, priority: num, sophisticationLevel: str}
@returns(200) {activeDuration: str, actorCategory: str, aliasGroupNames: [str], aliasGroupNamesInternal: [str], analyticPriority: num, attributionConfidence: str, attributionOrganization: str, categoryName: str, categoryUuid: str, externalReferenceLinks: [str], internalDescription: str, motive: str, opsecLevel: str, originCountryISO: str, priority: num, sophisticationLevel: str, uuid: str, value: str}
@errors {400, 404}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/tags/{tag_uuid}
@required {account_id: str, tag_uuid: str}
@returns(200) {uuid: str}
@errors {400, 404}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/tags/{tag_uuid}
@required {account_id: str, tag_uuid: str}
@optional {activeDuration: str, actorCategory: str, aliasGroupNames: [str], aliasGroupNamesInternal: [str], analyticPriority: num, attributionConfidence: str, attributionOrganization: str, categoryUuid: str, externalReferenceLinks: [str], internalDescription: str, motive: str, opsecLevel: str, originCountryISO: str, priority: num, sophisticationLevel: str, value: str}
@returns(200) {activeDuration: str, actorCategory: str, aliasGroupNames: [str], aliasGroupNamesInternal: [str], analyticPriority: num, attributionConfidence: str, attributionOrganization: str, categoryName: str, categoryUuid: str, externalReferenceLinks: [str], internalDescription: str, motive: str, opsecLevel: str, originCountryISO: str, priority: num, sophisticationLevel: str, uuid: str, value: str}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/targetIndustries
@required {account_id: str}
@optional {datasetIds: [str]}
@returns(200) {items: map{type: str}, type: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/targetIndustries/catalog
@required {account_id: str}
@returns(200) {items: map{type: str}, type: str}
@errors {400}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/update/bulk
@required {account_id: str, datasetId: str, eventIds: [str], updates: map{attacker: str, attackerCountry: str, category: str, createdAt: str(date-time), event: str, indicator: str, indicatorType: str, insight: str, raw: map, targetCountry: str, targetIndustry: str, tlp: str}}
@returns(200) {failedCount: num, failures: [map], updatedCount: num}
@errors {400}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/events/{dataset_id}/delete
@required {account_id: str, dataset_id: str(uuid), eventIds: [str]}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/{dataset_id}/revert-do
@required {account_id: str, dataset_id: str(uuid), minutesAgo: num}
@returns(200) {properties: map{datasetId: map{type: str}, minutesAgo: map{type: str}, revertBookmark: map{type: str}, targetTimestamp: map{type: str}, undoBookmark: map{type: str}}, required: [str], type: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/{event_id}
@required {account_id: str, event_id: str}
@returns(200) {attacker: str, attackerCountry: str, category: str, datasetId: str, date: str, event: str, hasChildren: bool, indicator: str, indicatorType: str, indicatorTypeId: num, insight: str, killChain: num, mitreAttack: [str], mitreCapec: [str], numReferenced: num, numReferences: num, rawId: str, referenced: [str], referencedIds: [num], references: [str], referencesIds: [num], releasabilityId: str, tags: [str], targetCountry: str, targetIndustry: str, tlp: str, uuid: str}
@errors {404}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/{event_id}
@required {account_id: str, event_id: str, datasetId: str}
@optional {attacker: str, attackerCountry: str, category: str, createdAt: str(date-time), date: str(date-time), event: str, indicator: str, indicatorType: str, insight: str, raw: map{data: map, source: str, tlp: str}, targetCountry: str, targetIndustry: str, tlp: str}
@returns(200) {attacker: str, attackerCountry: str, category: str, datasetId: str, date: str, event: str, hasChildren: bool, indicator: str, indicatorType: str, indicatorTypeId: num, insight: str, killChain: num, mitreAttack: [str], mitreCapec: [str], numReferenced: num, numReferences: num, rawId: str, referenced: [str], referencedIds: [num], references: [str], referencesIds: [num], releasabilityId: str, tags: [str], targetCountry: str, targetIndustry: str, tlp: str, uuid: str}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/{event_id}
@required {account_id: str, event_id: str, datasetId: str}
@optional {attacker: str, attackerCountry: str, category: str, createdAt: str(date-time), date: str(date-time), event: str, indicator: str, indicatorType: str, insight: str, raw: map{data: map, source: str, tlp: str}, targetCountry: str, targetIndustry: str, tlp: str}
@returns(200) {attacker: str, attackerCountry: str, category: str, datasetId: str, date: str, event: str, hasChildren: bool, indicator: str, indicatorType: str, indicatorTypeId: num, insight: str, killChain: num, mitreAttack: [str], mitreCapec: [str], numReferenced: num, numReferences: num, rawId: str, referenced: [str], referencedIds: [num], references: [str], referencesIds: [num], releasabilityId: str, tags: [str], targetCountry: str, targetIndustry: str, tlp: str, uuid: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/{event_id}/raw/{raw_id}
@required {account_id: str, event_id: str, raw_id: str}
@returns(200) {accountId: num, created: str, data: map, id: str, source: str, tlp: str}
@errors {400}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/events/{event_id}/raw/{raw_id}
@required {account_id: str, event_id: str, raw_id: str}
@optional {data: map, source: str, tlp: str}
@returns(200) {data: map, id: str}
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/events/{event_id}/raw/{raw_id}
@required {account_id: str, event_id: str, raw_id: str}
@optional {data: map, source: str, tlp: str}
@returns(200) {data: map, id: str}
@errors {400}

@endpoint GET /accounts/{account_id}/cloudforce-one/events/{event_id}/relationships
@required {account_id: str, event_id: str, datasetId: str}
@optional {direction: str(ancestors/descendants/both)=both, maxDepth: num, relationshipTypes: any, indicatorTypeIds: [str], includeParent: bool=true, page: num, pageSize: num}
@returns(200)
@errors {400}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests
@required {account_id: str, page: int, per_page: int}
@optional {completed_after: any, completed_before: any, created_after: any, created_before: any, request_type: str, sort_by: str, sort_order: str(asc/desc), status: str(open/accepted/reported/approved/completed/declined)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/requests/constants
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests/new
@required {account_id: str}
@optional {content: str, priority: str, request_type: str, summary: str, tlp: str(clear/amber/amber-strict/green/red)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests/priority
@required {account_id: str, page: int, per_page: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests/priority/new
@required {account_id: str, labels: [str], priority: int, requirement: str, tlp: str(clear/amber/amber-strict/green/red)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/requests/priority/quota
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/requests/priority/{priority_id}
@required {account_id: str, priority_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/requests/priority/{priority_id}
@required {account_id: str, priority_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/cloudforce-one/requests/priority/{priority_id}
@required {account_id: str, priority_id: str, labels: [str], priority: int, requirement: str, tlp: str(clear/amber/amber-strict/green/red)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/requests/quota
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/requests/types
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/requests/{request_id}
@required {account_id: str, request_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/requests/{request_id}
@required {account_id: str, request_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/cloudforce-one/requests/{request_id}
@required {account_id: str, request_id: str}
@optional {content: str, priority: str, request_type: str, summary: str, tlp: str(clear/amber/amber-strict/green/red)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests/{request_id}/asset
@required {account_id: str, request_id: str, page: int, per_page: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests/{request_id}/asset/new
@required {account_id: str, request_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/requests/{request_id}/asset/{asset_id}
@required {account_id: str, request_id: str, asset_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/requests/{request_id}/asset/{asset_id}
@required {account_id: str, request_id: str, asset_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/cloudforce-one/requests/{request_id}/asset/{asset_id}
@required {account_id: str, request_id: str, asset_id: str}
@optional {source: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests/{request_id}/message
@required {account_id: str, request_id: str, page: int, per_page: int}
@optional {after: any, before: any, sort_by: str, sort_order: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/requests/{request_id}/message/new
@required {account_id: str, request_id: str}
@optional {content: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/requests/{request_id}/message/{message_id}
@required {account_id: str, request_id: str, message_id: int}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint PUT /accounts/{account_id}/cloudforce-one/requests/{request_id}/message/{message_id}
@required {account_id: str, request_id: str, message_id: int}
@optional {content: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/rules
@required {account_id: str}
@returns(200) {deleted: num}
@errors {401}

@endpoint GET /accounts/{account_id}/cloudforce-one/rules
@required {account_id: str}
@optional {namespace: str, recursive: str(true/false), search: str, is_public: str(true/false), limit: num=50, offset: num=0}
@returns(200) {rules: [map], total: num}
@errors {401}

@endpoint POST /accounts/{account_id}/cloudforce-one/rules
@required {account_id: str, content: str, name: str, namespaces: [str]}
@optional {actions: [map{action_config!: map, action_type!: str, enabled: bool}], enabled: bool=true, is_public: bool=false}
@returns(201) {content: str, created_at: num, created_by: str, enabled: bool, id: str(uuid), is_public: bool, name: str, namespaces: [str], updated_at: num, updated_by: str}
@returns(202) {approval_id: num, message: str}
@errors {400, 401}

@endpoint GET /accounts/{account_id}/cloudforce-one/rules/stats
@required {account_id: str}
@returns(200) {pending_approvals: num, rules_by_namespace: map, total_rules: num}
@errors {401}

@endpoint GET /accounts/{account_id}/cloudforce-one/rules/tree
@required {account_id: str}
@returns(200) {tree: [map]}
@errors {401}

@endpoint POST /accounts/{account_id}/cloudforce-one/rules/validate
@required {account_id: str, content: str, name: str, namespaces: [str]}
@optional {excludeRuleId: str(uuid)}
@returns(200) {error: str, valid: bool}
@errors {401}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/rules/{id}
@required {account_id: str, id: str(uuid)}
@returns(200) {success: bool}
@returns(202) {approval_id: num, message: str}
@errors {401, 404}

@endpoint GET /accounts/{account_id}/cloudforce-one/rules/{id}
@required {account_id: str, id: str(uuid)}
@returns(200) {content: str, created_at: num, created_by: str, enabled: bool, id: str(uuid), is_public: bool, name: str, namespaces: [str], updated_at: num, updated_by: str}
@errors {401, 404}

@endpoint PUT /accounts/{account_id}/cloudforce-one/rules/{id}
@required {account_id: str, id: str(uuid)}
@optional {content: str, enabled: bool, is_public: bool, name: str, namespaces: [str]}
@returns(200) {content: str, created_at: num, created_by: str, enabled: bool, id: str(uuid), is_public: bool, name: str, namespaces: [str], updated_at: num, updated_by: str}
@returns(202) {approval_id: num, message: str}
@errors {401, 404}

@endpoint GET /accounts/{account_id}/cloudforce-one/scans/config
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/cloudforce-one/scans/config
@required {account_id: str, ips: [str]}
@optional {frequency: num, ports: [str]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/scans/config/{config_id}
@required {account_id: str, config_id: str}
@returns(200) {errors: [str], messages: [str], result: map, success: bool}
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/cloudforce-one/scans/config/{config_id}
@required {account_id: str, config_id: str}
@optional {frequency: num, ips: [str], ports: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/scans/results/{config_id}
@required {account_id: str, config_id: str}
@returns(200) {errors: [str], messages: [str], result: map{1.1.1.1: [map]}, success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/cloudforce-one/v2/brand-protection/domain/matches
@required {account_id: str, query_id: [str]}
@optional {offset: str=0, limit: str=50, include_domain_id: str=false, include_dismissed: str, domain_search: str, orderBy: str(domain/first_seen), order: str(asc/desc)}
@returns(200) {matches: [map], total: int}

@endpoint GET /accounts/{account_id}/cloudforce-one/v2/brand-protection/domain/queries
@required {account_id: str}
@optional {id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/cloudforce-one/v2/brand-protection/logo/matches
@required {account_id: str, query_id: str}
@optional {offset: str=0, limit: str=50, download: str, orderBy: str(matchedAt/domain/similarityScore), order: str(asc/desc)}
@returns(200) {matches: [map], total: int}

@endpoint GET /accounts/{account_id}/cloudforce-one/v2/brand-protection/logo/queries
@required {account_id: str}
@optional {id: str, download: str}
@returns(200)

@endpoint POST /accounts/{account_id}/cloudforce-one/v2/brand-protection/logo/queries
@required {account_id: str, image_data: str, similarity_threshold: num, tag: str}
@optional {search_lookback: bool=true}
@returns(200) {message: str, query_id: int, success: bool}

@endpoint DELETE /accounts/{account_id}/cloudforce-one/v2/brand-protection/logo/queries/{query_id}
@required {account_id: str, query_id: str}
@returns(200) {message: str, success: bool}

@endpoint POST /accounts/{account_id}/cloudforce-one/v2/brand-protection/logo/search
@required {account_id: str, image_data: str}
@optional {showHistoric: str=false, download: str, score_threshold: num=0, top_k: int=10}
@returns(200) {matches: [map]}

@endpoint GET /accounts/{account_id}/cloudforce-one/v2/brand-protection/total-queries
@required {account_id: str}
@returns(200)

@endpoint POST /accounts/{account_id}/cloudforce-one/v2/events/graphql
@required {account_id: str}
@returns(200) {data: map?, errors: [map]?}
@errors {400}

@endpoint GET /accounts/{account_id}/cni/cnis
@required {account_id: str}
@optional {slot: str, tunnel_id: str, cursor: int(int32), limit: int}
@returns(200) {items: [map], next: int(int32)?}
@errors {400, 500}

@endpoint POST /accounts/{account_id}/cni/cnis
@required {account_id: str, account: str, interconnect: str, magic: map{conduit_name!: str, description!: str, mtu!: int(int32)}}
@optional {bgp: map{customer_asn!: int(int32), extra_prefixes!: [str(A.B.C.D/N)], md5_key: str}}
@returns(200) {account: str, bgp: map{customer_asn: int(int32), extra_prefixes: [str(A.B.C.D/N)], md5_key: str?}, cust_ip: str(A.B.C.D/N), id: str(uuid), interconnect: str, magic: map{conduit_name: str, description: str, mtu: int(int32)}, p2p_ip: str(A.B.C.D/N)}
@errors {400, 409, 500}

@endpoint DELETE /accounts/{account_id}/cni/cnis/{cni}
@required {cni: str(uuid), account_id: str}
@returns(200)
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cni/cnis/{cni}
@required {cni: str(uuid), account_id: str}
@returns(200) {account: str, bgp: map{customer_asn: int(int32), extra_prefixes: [str(A.B.C.D/N)], md5_key: str?}, cust_ip: str(A.B.C.D/N), id: str(uuid), interconnect: str, magic: map{conduit_name: str, description: str, mtu: int(int32)}, p2p_ip: str(A.B.C.D/N)}
@errors {400, 404, 500}

@endpoint PUT /accounts/{account_id}/cni/cnis/{cni}
@required {cni: str(uuid), account_id: str, account: str, cust_ip: str(A.B.C.D/N), id: str(uuid), interconnect: str, magic: map{conduit_name!: str, description!: str, mtu!: int(int32)}, p2p_ip: str(A.B.C.D/N)}
@optional {bgp: map{customer_asn!: int(int32), extra_prefixes!: [str(A.B.C.D/N)], md5_key: str}}
@returns(200) {account: str, bgp: map{customer_asn: int(int32), extra_prefixes: [str(A.B.C.D/N)], md5_key: str?}, cust_ip: str(A.B.C.D/N), id: str(uuid), interconnect: str, magic: map{conduit_name: str, description: str, mtu: int(int32)}, p2p_ip: str(A.B.C.D/N)}
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cni/interconnects
@required {account_id: str}
@optional {site: str, type: str, cursor: int(int32), limit: int}
@returns(200) {items: [map], next: int(int32)?}
@errors {400, 500}

@endpoint POST /accounts/{account_id}/cni/interconnects
@required {account_id: str}
@returns(200)
@errors {400, 500}

@endpoint DELETE /accounts/{account_id}/cni/interconnects/{icon}
@required {icon: str, account_id: str}
@returns(200)
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cni/interconnects/{icon}
@required {icon: str, account_id: str}
@returns(200)
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cni/interconnects/{icon}/loa
@required {icon: str, account_id: str}
@returns(200)
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cni/interconnects/{icon}/status
@required {icon: str, account_id: str}
@returns(200)
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cni/settings
@required {account_id: str}
@returns(200) {default_asn: int(int32)}
@errors {400, 404, 500}

@endpoint PUT /accounts/{account_id}/cni/settings
@required {account_id: str}
@optional {default_asn: int(int32)}
@returns(200) {default_asn: int(int32)}
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/cni/slots
@required {account_id: str}
@optional {address_contains: str, site: str, speed: str, occupied: bool, cursor: int(int32), limit: int}
@returns(200) {items: [map], next: int(int32)?}
@errors {400, 500}

@endpoint GET /accounts/{account_id}/cni/slots/{slot}
@required {slot: str(uuid), account_id: str}
@returns(200) {account: str, facility: map{address: [str], name: str}, id: str(uuid), occupied: bool, site: str, speed: str}
@errors {400, 404, 500}

@endpoint GET /accounts/{account_id}/connectivity/directory/services
@required {account_id: str}
@optional {type: str, page: int(int32)=1, per_page: int(int32)=1000}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/connectivity/directory/services
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/connectivity/directory/services/{service_id}
@required {account_id: str, service_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/connectivity/directory/services/{service_id}
@required {account_id: str, service_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/connectivity/directory/services/{service_id}
@required {account_id: str, service_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/containers
@optional {name: str, image: str}
@returns(200)
@errors {401, 500}

@endpoint POST /accounts/{account_id}/containers/registries/{domain}/credentials
@required {domain: str, expiration_minutes: int, permissions: [str]}
@returns(201)
@errors {400, 403, 404, 409, 500}

@endpoint GET /accounts/{account_id}/custom_ns
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/custom_ns
@required {account_id: str, ns_name: str(hostname)}
@optional {ns_set: num=1}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/custom_ns/{custom_ns_id}
@required {custom_ns_id: str(hostname), account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/d1/database
@required {account_id: str}
@optional {name: str, page: num=1, per_page: num=1000}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/d1/database
@required {account_id: str, name: str}
@optional {jurisdiction: str(eu/fedramp), primary_location_hint: str(wnam/enam/weur/eeur/apac/oc)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/d1/database/{database_id}
@required {account_id: str, database_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/d1/database/{database_id}
@required {account_id: str, database_id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/d1/database/{database_id}
@required {account_id: str, database_id: str}
@optional {read_replication: map{mode!: str}}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/d1/database/{database_id}
@required {account_id: str, database_id: str, read_replication: map{mode!: str}}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/d1/database/{database_id}/export
@required {account_id: str, database_id: str, output_format: str}
@optional {current_bookmark: str, dump_options: map{no_data: bool, no_schema: bool, tables: [str]}}
@returns(200)
@returns(202)
@errors {4XX}

@endpoint POST /accounts/{account_id}/d1/database/{database_id}/import
@required {account_id: str, database_id: str}
@returns(200)
@returns(202)
@errors {4XX}

@endpoint POST /accounts/{account_id}/d1/database/{database_id}/query
@required {account_id: str, database_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/d1/database/{database_id}/raw
@required {account_id: str, database_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/d1/database/{database_id}/time_travel/bookmark
@required {account_id: str, database_id: str}
@optional {timestamp: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/d1/database/{database_id}/time_travel/restore
@required {account_id: str, database_id: str}
@optional {bookmark: str, timestamp: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/ip-profiles
@required {account_id: str}
@optional {per_page: int=50}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}

@endpoint POST /accounts/{account_id}/devices/ip-profiles
@required {account_id: str, match: str, name: str, precedence: int, subnet_id: str}
@optional {description: str, enabled: bool=true}
@returns(200) {errors: [map], messages: [map], result: map{created_at: str, description: str?, enabled: bool, id: str, match: str, name: str, precedence: int, subnet_id: str, updated_at: str}, success: bool}

@endpoint DELETE /accounts/{account_id}/devices/ip-profiles/{profile_id}
@required {account_id: str, profile_id: str}
@returns(200) {errors: [map], messages: [map], result: map{id: str}, success: bool}

@endpoint GET /accounts/{account_id}/devices/ip-profiles/{profile_id}
@required {account_id: str, profile_id: str}
@returns(200) {errors: [map], messages: [map], result: map{created_at: str, description: str?, enabled: bool, id: str, match: str, name: str, precedence: int, subnet_id: str, updated_at: str}, success: bool}

@endpoint PATCH /accounts/{account_id}/devices/ip-profiles/{profile_id}
@required {account_id: str, profile_id: str}
@optional {description: str, enabled: bool, match: str, name: str, precedence: int, subnet_id: str}
@returns(200) {errors: [map], messages: [map], result: map{created_at: str, description: str?, enabled: bool, id: str, match: str, name: str, precedence: int, subnet_id: str, updated_at: str}, success: bool}

@endpoint GET /accounts/{account_id}/devices/networks
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/devices/networks
@required {account_id: any, config: map, name: str, type: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/devices/networks/{network_id}
@required {network_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/networks/{network_id}
@required {network_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/networks/{network_id}
@required {network_id: str, account_id: any}
@optional {config: map, name: str, type: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/physical-devices
@required {account_id: str}
@optional {cursor: str, sort_by: str(name/id/client_version/last_seen_user.email/last_seen_at/active_registrations/created_at), sort_order: str(asc/desc), last_seen_user.email: str, seen_after: str, seen_before: str, per_page: int(uint64), search: str, active_registrations: str(include/only/exclude), id: [str], include: str}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: int, cursor: str, per_page: int, total_count: int?}, success: bool}

@endpoint DELETE /accounts/{account_id}/devices/physical-devices/{device_id}
@required {device_id: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: map?, success: bool}

@endpoint GET /accounts/{account_id}/devices/physical-devices/{device_id}
@required {device_id: str, account_id: str}
@optional {include: str}
@returns(200) {errors: [map], messages: [map], result: map{active_registrations: int, client_version: str?, created_at: str, deleted_at: str?, device_type: str?, hardware_id: str?, id: str, last_seen_at: str?, last_seen_registration: map?, last_seen_user: map?, mac_address: str?, manufacturer: str?, model: str?, name: str, os_version: str?, os_version_extra: str?, public_ip: str?, serial_number: str?, updated_at: str}, success: bool}

@endpoint POST /accounts/{account_id}/devices/physical-devices/{device_id}/revoke
@required {account_id: str, device_id: str}
@returns(200) {errors: [map], messages: [map], result: map?, success: bool}

@endpoint GET /accounts/{account_id}/devices/policies
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/devices/policy
@required {account_id: any}
@optional {allow_mode_switch: bool=false, allow_updates: bool=false, allowed_to_leave: bool=true, auto_connect: num=0, captive_portal: num=180, disable_auto_fallback: bool=false, exclude: [map], exclude_office_ips: bool=false, include: [map], lan_allow_minutes: num, lan_allow_subnet_size: num, register_interface_ip_with_dns: bool=true, sccm_vpn_boundary_support: bool=false, service_mode_v2: map{mode: str, port: num}, support_url: str=, switch_locked: bool=false, tunnel_protocol: str=}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/devices/policy
@required {account_id: any, match: str, name: str, precedence: num}
@optional {allow_mode_switch: bool=false, allow_updates: bool=false, allowed_to_leave: bool=true, auto_connect: num=0, captive_portal: num=180, description: any, disable_auto_fallback: bool=false, enabled: bool=true, exclude: [map], exclude_office_ips: bool=false, include: [map], lan_allow_minutes: num, lan_allow_subnet_size: num, register_interface_ip_with_dns: bool=true, sccm_vpn_boundary_support: bool=false, service_mode_v2: map{mode: str, port: num}, support_url: str=, switch_locked: bool=false, tunnel_protocol: str=}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy/exclude
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/policy/exclude
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy/fallback_domains
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/policy/fallback_domains
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy/include
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/policy/include
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/devices/policy/{policy_id}
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy/{policy_id}
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/devices/policy/{policy_id}
@required {policy_id: str, account_id: any}
@optional {allow_mode_switch: bool=false, allow_updates: bool=false, allowed_to_leave: bool=true, auto_connect: num=0, captive_portal: num=180, description: str, disable_auto_fallback: bool=false, enabled: bool, exclude: [map], exclude_office_ips: bool=false, include: [map], lan_allow_minutes: num, lan_allow_subnet_size: num, match: str, name: str, precedence: num, register_interface_ip_with_dns: bool=true, sccm_vpn_boundary_support: bool=false, service_mode_v2: map{mode: str, port: num}, support_url: str=, switch_locked: bool=false, tunnel_protocol: str=}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy/{policy_id}/exclude
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/policy/{policy_id}/exclude
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy/{policy_id}/fallback_domains
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/policy/{policy_id}/fallback_domains
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/policy/{policy_id}/include
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/policy/{policy_id}/include
@required {policy_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/posture
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/devices/posture
@required {account_id: any, name: str, type: str(file/application/tanium/gateway/warp/disk_encryption/serial_number/sentinelone/carbonblack/firewall/os_version/domain_joined/client_certificate/client_certificate_v2/antivirus/unique_client_id/kolide/tanium_s2s/crowdstrike_s2s/intune/workspace_one/sentinelone_s2s/custom_s2s)}
@optional {description: str, expiration: str, input: map, match: [map{platform: str}], schedule: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/posture/integration
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/devices/posture/integration
@required {account_id: any, config: map, interval: str, name: str, type: str(workspace_one/crowdstrike_s2s/uptycs/intune/kolide/tanium_s2s/sentinelone_s2s/custom_s2s)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/devices/posture/integration/{integration_id}
@required {integration_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/posture/integration/{integration_id}
@required {integration_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/devices/posture/integration/{integration_id}
@required {integration_id: str, account_id: any}
@optional {config: map, interval: str, name: str, type: str(workspace_one/crowdstrike_s2s/uptycs/intune/kolide/tanium_s2s/sentinelone_s2s/custom_s2s)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/devices/posture/{rule_id}
@required {rule_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/posture/{rule_id}
@required {rule_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/posture/{rule_id}
@required {rule_id: str, account_id: any, name: str, type: str(file/application/tanium/gateway/warp/disk_encryption/serial_number/sentinelone/carbonblack/firewall/os_version/domain_joined/client_certificate/client_certificate_v2/antivirus/unique_client_id/kolide/tanium_s2s/crowdstrike_s2s/intune/workspace_one/sentinelone_s2s/custom_s2s)}
@optional {description: str, expiration: str, input: map, match: [map{platform: str}], schedule: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/devices/registrations
@required {account_id: str, id: [str]}
@returns(200) {errors: [map], messages: [map], result: map?, result_info: map{count: int, cursor: str, per_page: int, total_count: int?}, success: bool}

@endpoint GET /accounts/{account_id}/devices/registrations
@required {account_id: str}
@optional {user.id: [str], seen_after: str, seen_before: str, status: str(active/all/revoked), per_page: int(uint64), search: str, sort_by: str(id/user.name/user.email/last_seen_at/created_at), sort_order: str(asc/desc), cursor: str, id: [str], device.id: str, include: str}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: int, cursor: str, per_page: int, total_count: int?}, success: bool}

@endpoint POST /accounts/{account_id}/devices/registrations/revoke
@required {account_id: str, id: [str]}
@returns(200) {errors: [map], messages: [map], result: map?, result_info: map{count: int, cursor: str, per_page: int, total_count: int?}, success: bool}

@endpoint POST /accounts/{account_id}/devices/registrations/unrevoke
@required {account_id: str, id: [str]}
@returns(200) {errors: [map], messages: [map], result: map?, result_info: map{count: int, cursor: str, per_page: int, total_count: int?}, success: bool}

@endpoint DELETE /accounts/{account_id}/devices/registrations/{registration_id}
@required {registration_id: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: map?, success: bool}

@endpoint GET /accounts/{account_id}/devices/registrations/{registration_id}
@required {registration_id: str, account_id: str}
@optional {include: str}
@returns(200) {errors: [map], messages: [map], result: map{created_at: str, deleted_at: str?, device: map{client_version: str, id: str, name: str}, id: str, key: str, key_type: str?, last_seen_at: str, policy: map{default: bool, deleted: bool, id: str, name: str, updated_at: str}, revoked_at: str?, tunnel_type: str?, updated_at: str, user: map{email: str, id: str, name: str}}, success: bool}

@endpoint GET /accounts/{account_id}/devices/registrations/{registration_id}/override_codes
@required {account_id: str, registration_id: str}
@returns(200) {errors: [map], messages: [map], result: any, success: bool}

@endpoint GET /accounts/{account_id}/devices/resilience/disconnect
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/devices/resilience/disconnect
@required {account_id: any, disconnect: bool}
@optional {justification: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/devices/revoke
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/devices/settings
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/settings
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/devices/settings
@required {account_id: any}
@optional {disable_for_time: num, external_emergency_signal_enabled: bool, external_emergency_signal_fingerprint: str, external_emergency_signal_interval: str, external_emergency_signal_url: str, gateway_proxy_enabled: bool, gateway_udp_proxy_enabled: bool, root_certificate_installation_enabled: bool, use_zt_virtual_ip: bool}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/devices/settings
@required {account_id: any}
@optional {disable_for_time: num, external_emergency_signal_enabled: bool, external_emergency_signal_fingerprint: str, external_emergency_signal_interval: str, external_emergency_signal_url: str, gateway_proxy_enabled: bool, gateway_udp_proxy_enabled: bool, root_certificate_installation_enabled: bool, use_zt_virtual_ip: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/devices/unrevoke
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/{device_id}
@required {device_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/devices/{device_id}/override_codes
@required {device_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/colos
@required {account_id: str, from: str, to: str}
@optional {sortBy: str(fleet-status-usage/application-tests-usage)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/commands
@required {account_id: str, page: num, per_page: num}
@optional {from: str(date-time), to: str(date-time), device_id: str, user_email: str, command_type: str, status: str(PENDING_EXEC/PENDING_UPLOAD/SUCCESS/FAILED)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dex/commands
@required {account_id: str, commands: [map{command_args: map, command_type!: str, device_id!: str, registration_id: str, user_email!: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/commands/devices
@required {account_id: str, page: num, per_page: num}
@optional {search: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/commands/quota
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/commands/{command_id}/downloads/{filename}
@required {account_id: str, command_id: str, filename: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/devices/dex_tests
@required {account_id: str}
@optional {page: num=1, per_page: num=10, testName: str, kind: str(http/traceroute)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dex/devices/dex_tests
@required {account_id: str, data: map{host!: str, kind!: str, method: str}, enabled: bool, interval: str, name: str}
@optional {description: str, target_policies: [map{default: bool, id!: str, name: str}], targeted: bool, test_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dex/devices/dex_tests/{dex_test_id}
@required {account_id: str, dex_test_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/devices/dex_tests/{dex_test_id}
@required {account_id: str, dex_test_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dex/devices/dex_tests/{dex_test_id}
@required {account_id: str, dex_test_id: str, data: map{host!: str, kind!: str, method: str}, enabled: bool, interval: str, name: str}
@optional {description: str, target_policies: [map{default: bool, id!: str, name: str}], targeted: bool, test_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/devices/{device_id}/fleet-status/live
@required {account_id: str, device_id: str, since_minutes: num}
@optional {time_now: str, colo: str}
@returns(200) {alwaysOn: bool?, batteryCharging: bool?, batteryCycles: int(int64)?, batteryPct: num(float)?, colo: str, connectionType: str?, cpuPct: num(float)?, cpuPctByApp: [[map]]?, deviceId: str, deviceIpv4: map{address: str?, asn: int?, aso: str?, location: map{city: str?, country_iso: str?, state_iso: str?, zip: str?}, netmask: str?, version: str?}, deviceIpv6: map{address: str?, asn: int?, aso: str?, location: map{city: str?, country_iso: str?, state_iso: str?, zip: str?}, netmask: str?, version: str?}, deviceName: str, diskReadBps: int(int64)?, diskUsagePct: num(float)?, diskWriteBps: int(int64)?, dohSubdomain: str?, estimatedLossPct: num(float)?, firewallEnabled: bool?, gatewayIpv4: map{address: str?, asn: int?, aso: str?, location: map{city: str?, country_iso: str?, state_iso: str?, zip: str?}, netmask: str?, version: str?}, gatewayIpv6: map{address: str?, asn: int?, aso: str?, location: map{city: str?, country_iso: str?, state_iso: str?, zip: str?}, netmask: str?, version: str?}, handshakeLatencyMs: num(int64)?, ispIpv4: map{address: str?, asn: int?, aso: str?, location: map{city: str?, country_iso: str?, state_iso: str?, zip: str?}, netmask: str?, version: str?}, ispIpv6: map{address: str?, asn: int?, aso: str?, location: map{city: str?, country_iso: str?, state_iso: str?, zip: str?}, netmask: str?, version: str?}, metal: str?, mode: str, networkRcvdBps: int(int64)?, networkSentBps: int(int64)?, networkSsid: str?, personEmail: str, platform: str, ramAvailableKb: int(int64)?, ramUsedPct: num(float)?, ramUsedPctByApp: [[map]]?, status: str, switchLocked: bool?, timestamp: str, version: str, wifiStrengthDbm: int(int64)?}
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/fleet-status/devices
@required {account_id: str, to: str, from: str, page: num, per_page: num}
@optional {sort_by: str, colo: str, device_id: str, mode: str, status: str, platform: str, version: str, source: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/fleet-status/live
@required {account_id: str, since_minutes: num}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/fleet-status/over-time
@required {account_id: str, to: str, from: str}
@optional {colo: str, device_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/http-tests/{test_id}
@required {account_id: str, test_id: str, from: str, to: str, interval: str(minute/hour)}
@optional {deviceId: [str], colo: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/http-tests/{test_id}/percentiles
@required {account_id: str, test_id: str, from: str, to: str}
@optional {deviceId: [str], colo: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/rules
@required {account_id: str, page: num, per_page: num}
@optional {sort_order: str(ASC/DESC)=ASC, sort_by: str(name/created_at/updated_at)=name, name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dex/rules
@required {account_id: str, match: str, name: str}
@optional {description: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dex/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/dex/rules/{rule_id}
@required {account_id: str, rule_id: str}
@optional {description: str, match: str, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/tests/overview
@required {account_id: str}
@optional {colo: str, testName: str, deviceId: [str], page: num=1, per_page: num=10, kind: str(http/traceroute)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/tests/unique-devices
@required {account_id: str}
@optional {testName: str, deviceId: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/traceroute-test-results/{test_result_id}/network-path
@required {account_id: str, test_result_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/traceroute-tests/{test_id}
@required {account_id: str, test_id: str, from: str, to: str, interval: str(minute/hour)}
@optional {deviceId: [str], colo: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/traceroute-tests/{test_id}/network-path
@required {account_id: str, test_id: str, deviceId: str, from: str, to: str, interval: str(minute/hour)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/traceroute-tests/{test_id}/percentiles
@required {account_id: str, test_id: str, from: str, to: str}
@optional {deviceId: [str], colo: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dex/warp-change-events
@required {account_id: str, page: num, per_page: num, from: str, to: str}
@optional {type: str(config/toggle), toggle: str(on/off), config_name: str, account_name: str, sort_order: str(ASC/DESC)=ASC}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/diagnostics/endpoint-healthchecks
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/diagnostics/endpoint-healthchecks
@required {account_id: str, check_type: str=icmp, endpoint: str}
@optional {name: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/diagnostics/endpoint-healthchecks/{id}
@required {account_id: str, id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/diagnostics/endpoint-healthchecks/{id}
@required {account_id: str, id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/diagnostics/endpoint-healthchecks/{id}
@required {account_id: str, id: str, check_type: str=icmp, endpoint: str}
@optional {name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/diagnostics/traceroute
@required {account_id: str, targets: [str]}
@optional {colos: [str], options: map{max_ttl: int, packet_type: str, packets_per_ttl: int, port: int, wait_time: int}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/datasets
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/datasets
@required {account_id: str, name: str}
@optional {case_sensitive: bool, description: str, encoding_version: int(int32), secret: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/datasets/{dataset_id}
@required {account_id: str, dataset_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/datasets/{dataset_id}
@required {account_id: str, dataset_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/datasets/{dataset_id}
@required {account_id: str, dataset_id: str(uuid)}
@optional {case_sensitive: bool, description: str, name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/datasets/{dataset_id}/upload
@required {account_id: str, dataset_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/datasets/{dataset_id}/upload/{version}
@required {account_id: str, dataset_id: str(uuid), version: int(int64)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/datasets/{dataset_id}/versions/{version}
@required {account_id: str, dataset_id: str(uuid), version: int(int64)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/datasets/{dataset_id}/versions/{version}/entries/{entry_id}
@required {account_id: str, dataset_id: str(uuid), version: int(int64), entry_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/document_fingerprints
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/document_fingerprints
@required {account_id: str, match_percent: int(int32), name: str}
@optional {description: str=}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/document_fingerprints/{document_fingerprint_id}
@required {account_id: str, document_fingerprint_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/document_fingerprints/{document_fingerprint_id}
@required {account_id: str, document_fingerprint_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/document_fingerprints/{document_fingerprint_id}
@required {account_id: str, document_fingerprint_id: str(uuid)}
@optional {description: str, match_percent: int(int32), name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/document_fingerprints/{document_fingerprint_id}
@required {account_id: str, document_fingerprint_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/email/account_mapping
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/email/account_mapping
@required {account_id: str, auth_requirements: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/email/rules
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/dlp/email/rules
@required {account_id: str, new_priorities: map}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/email/rules
@required {account_id: str, action: any, conditions: [map{operator!: str, selector!: str, value!: any}], enabled: bool, name: str}
@optional {description: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/email/rules/{rule_id}
@required {account_id: str, rule_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/email/rules/{rule_id}
@required {account_id: str, rule_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/email/rules/{rule_id}
@required {account_id: str, rule_id: str(uuid), action: any, conditions: [map{operator!: str, selector!: str, value!: any}], enabled: bool, name: str}
@optional {description: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/entries
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/entries
@required {account_id: str, enabled: bool, name: str, pattern: map{regex!: str, validation: any}}
@optional {description: str, profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/entries/custom/{entry_id}
@required {account_id: str, entry_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/entries/integration
@required {account_id: str, enabled: bool, entry_id: str(uuid)}
@optional {profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/entries/integration/{entry_id}
@required {account_id: str, entry_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/entries/integration/{entry_id}
@required {account_id: str, entry_id: str(uuid), enabled: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/entries/predefined
@required {account_id: str, enabled: bool, entry_id: str(uuid)}
@optional {profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/entries/predefined/{entry_id}
@required {account_id: str, entry_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/entries/predefined/{entry_id}
@required {account_id: str, entry_id: str(uuid), enabled: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/entries/{entry_id}
@required {account_id: str, entry_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/entries/{entry_id}
@required {account_id: str, entry_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/entries/{entry_id}
@required {account_id: str, entry_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/limits
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/patterns/validate
@required {account_id: str, regex: str}
@optional {max_match_bytes: int(int32)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/payload_log
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/payload_log
@required {account_id: str}
@optional {masking_level: any, public_key: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/profiles
@required {account_id: str}
@optional {all: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/profiles/custom
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/profiles/custom
@required {account_id: str, name: str}
@optional {ai_context_enabled: bool=false, allowed_match_count: int(int32)=0, confidence_threshold: str=low, context_awareness: map{enabled!: bool, skip!: map}, data_classes: [str(uuid)], data_tags: [str(uuid)], description: str, entries: [any], ocr_enabled: bool=false, sensitivity_levels: [map{group_id!: str(uuid), level_id!: str(uuid)}], shared_entries: [map{enabled!: bool, entry_id!: str(uuid)}]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/profiles/custom/{profile_id}
@required {account_id: str, profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/profiles/custom/{profile_id}
@required {account_id: str, profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/profiles/custom/{profile_id}
@required {account_id: str, profile_id: str(uuid), name: str}
@optional {ai_context_enabled: bool=false, allowed_match_count: int(int32), confidence_threshold: str=low, context_awareness: map{enabled!: bool, skip!: map}, data_classes: [str(uuid)], data_tags: [str(uuid)], description: str, entries: [any], ocr_enabled: bool=false, sensitivity_levels: [map{group_id!: str(uuid), level_id!: str(uuid)}], shared_entries: [map{enabled!: bool, entry_id!: str(uuid)}]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/profiles/predefined
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/profiles/predefined/{profile_id}
@required {account_id: str, profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/profiles/predefined/{profile_id}
@required {account_id: str, profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/profiles/predefined/{profile_id}
@required {account_id: str, profile_id: str(uuid)}
@optional {ai_context_enabled: bool=false, allowed_match_count: int(int32)=0, confidence_threshold: str=low, context_awareness: map{enabled!: bool, skip!: map}, entries: [map{enabled!: bool, id!: str(uuid)}], ocr_enabled: bool=false}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/profiles/predefined/{profile_id}/config
@required {account_id: str, profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dlp/profiles/predefined/{profile_id}/config
@required {account_id: str, profile_id: str(uuid)}
@optional {ai_context_enabled: bool=false, allowed_match_count: int(int32)=0, confidence_threshold: str=low, enabled_entries: [str(uuid)], entries: [map{enabled!: bool, id!: str(uuid)}], ocr_enabled: bool=false}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/profiles/predefined/{profile_id}/config
@required {account_id: str, profile_id: str(uuid)}
@optional {ai_context_enabled: bool=false, allowed_match_count: int(int32)=0, confidence_threshold: str=low, enabled_entries: [str(uuid)], entries: [map{enabled!: bool, id!: str(uuid)}], ocr_enabled: bool=false}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/profiles/{profile_id}
@required {account_id: str, profile_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dlp/settings
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dlp/settings
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/dlp/settings
@required {account_id: str}
@optional {ai_context_analysis: bool=false, ocr: bool=false, payload_logging: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/dlp/settings
@required {account_id: str}
@optional {ai_context_analysis: bool=false, ocr: bool=false, payload_logging: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_firewall
@required {account_id: str}
@optional {page: num=1, per_page: num=20}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dns_firewall
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dns_firewall/{dns_firewall_id}
@required {dns_firewall_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_firewall/{dns_firewall_id}
@required {dns_firewall_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/dns_firewall/{dns_firewall_id}
@required {dns_firewall_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_firewall/{dns_firewall_id}/dns_analytics/report
@required {dns_firewall_id: str, account_id: str}
@optional {metrics: str, dimensions: str, since: str(date-time), until: str(date-time), limit: int, sort: str, filters: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_firewall/{dns_firewall_id}/dns_analytics/report/bytime
@required {dns_firewall_id: str, account_id: str}
@optional {metrics: str, dimensions: str, since: str(date-time), until: str(date-time), limit: int, sort: str, filters: str, time_delta: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_firewall/{dns_firewall_id}/reverse_dns
@required {dns_firewall_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/dns_firewall/{dns_firewall_id}/reverse_dns
@required {dns_firewall_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_records/usage
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_settings
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/dns_settings
@required {account_id: str}
@optional {zone_defaults: map}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_settings/views
@required {account_id: str}
@optional {name: str, name.exact: str, name.contains: str, name.startswith: str, name.endswith: str, zone_id: str, zone_name: str, match: str, page: num, per_page: num, order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/dns_settings/views
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/dns_settings/views/{view_id}
@required {account_id: str, view_id: str}
@returns(200) {result: map{id: str}}
@errors {4XX}

@endpoint GET /accounts/{account_id}/dns_settings/views/{view_id}
@required {account_id: str, view_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/dns_settings/views/{view_id}
@required {account_id: str, view_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/investigate
@required {account_id: str}
@optional {start: str(date-time), end: str(date-time), query: str, detections_only: bool=true, action_log: bool=true, final_disposition: any, metric: str, message_action: any, recipient: str, sender: str, alert_id: str, domain: str, message_id: str, subject: str, exact_subject: str, submissions: bool=false, cursor: str, per_page: int(int32)=20, page: int(int32)=1}
@returns(200)
@returns(202)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/investigate/move
@required {account_id: str, destination: str(Inbox/JunkEmail/DeletedItems/RecoverableItemsDeletions/RecoverableItemsPurges)}
@optional {ids: [str], postfix_ids: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/investigate/preview
@required {account_id: str, postfix_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/investigate/release
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/investigate/{postfix_id}
@required {account_id: str, postfix_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/investigate/{postfix_id}/detections
@required {account_id: str, postfix_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/investigate/{postfix_id}/move
@required {account_id: str, postfix_id: str, destination: str(Inbox/JunkEmail/DeletedItems/RecoverableItemsDeletions/RecoverableItemsPurges)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/investigate/{postfix_id}/preview
@required {account_id: str, postfix_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/investigate/{postfix_id}/raw
@required {account_id: str, postfix_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/investigate/{postfix_id}/reclassify
@required {account_id: str, postfix_id: str, expected_disposition: str(NONE/BULK/MALICIOUS/SPAM/SPOOF/SUSPICIOUS)}
@optional {eml_content: str, escalated_submission_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/investigate/{postfix_id}/trace
@required {account_id: str, postfix_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/phishguard/reports
@required {account_id: str}
@optional {from_date: str(date), to_date: str(date), start: str(date-time), end: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/allow_policies
@required {account_id: str}
@optional {page: int(int32)=1, per_page: int(int32)=20, order: str(pattern/created_at), direction: any, search: str, is_sender: bool, is_trusted_sender: bool, is_recipient: bool, is_exempt_recipient: bool, is_spoof: bool, is_acceptable_sender: bool, verify_sender: bool, pattern_type: any, pattern: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/allow_policies
@required {account_id: str, is_acceptable_sender: bool, is_exempt_recipient: bool, is_regex: bool, is_trusted_sender: bool, pattern: str, pattern_type: str(EMAIL/DOMAIN/IP/UNKNOWN), verify_sender: bool}
@optional {comments: str, is_recipient: bool, is_sender: bool, is_spoof: bool}
@returns(201)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/allow_policies/batch
@required {account_id: str, deletes: [map{id!: int(int32)}], patches: [any], posts: [map{comments: str, is_acceptable_sender!: bool, is_exempt_recipient!: bool, is_recipient: bool, is_regex!: bool, is_sender: bool, is_spoof: bool, is_trusted_sender!: bool, pattern!: str, pattern_type!: str, verify_sender!: bool}], puts: [any]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/email-security/settings/allow_policies/{policy_id}
@required {account_id: str, policy_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/allow_policies/{policy_id}
@required {account_id: str, policy_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/email-security/settings/allow_policies/{policy_id}
@required {account_id: str, policy_id: int(int32)}
@optional {comments: str, is_acceptable_sender: bool, is_exempt_recipient: bool, is_regex: bool, is_trusted_sender: bool, pattern: str, pattern_type: any, verify_sender: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/block_senders
@required {account_id: str}
@optional {page: int(int32)=1, per_page: int(int32)=20, order: str(pattern/created_at), direction: any, search: str, pattern_type: any, pattern: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/block_senders
@required {account_id: str, is_regex: bool, pattern: str, pattern_type: str(EMAIL/DOMAIN/IP/UNKNOWN)}
@optional {comments: str}
@returns(201)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/block_senders/batch
@required {account_id: str, deletes: [map{id!: int(int32)}], patches: [any], posts: [map{comments: str, is_regex!: bool, pattern!: str, pattern_type!: str}], puts: [any]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/email-security/settings/block_senders/{pattern_id}
@required {account_id: str, pattern_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/block_senders/{pattern_id}
@required {account_id: str, pattern_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/email-security/settings/block_senders/{pattern_id}
@required {account_id: str, pattern_id: int(int32)}
@optional {comments: str, is_regex: bool, pattern: str, pattern_type: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/email-security/settings/domains
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/domains
@required {account_id: str}
@optional {page: int(int32)=1, per_page: int(int32)=20, order: str(domain/created_at), direction: any, search: str, allowed_delivery_mode: any, domain: [str], active_delivery_mode: any, integration_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/email-security/settings/domains/{domain_id}
@required {account_id: str, domain_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/domains/{domain_id}
@required {account_id: str, domain_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/email-security/settings/domains/{domain_id}
@required {account_id: str, domain_id: int(int32), ip_restrictions: [str]}
@optional {allowed_delivery_modes: [str], domain: str, drop_dispositions: [str], folder: any, integration_id: str(uuid), lookback_hops: int(int32), regions: [str], require_tls_inbound: bool, require_tls_outbound: bool, transport: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/impersonation_registry
@required {account_id: str}
@optional {page: int(int32)=1, per_page: int(int32)=20, order: str(name/email/created_at), direction: any, search: str, provenance: any}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/impersonation_registry
@required {account_id: str, email: str, is_email_regex: bool, name: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/email-security/settings/impersonation_registry/{display_name_id}
@required {account_id: str, display_name_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/impersonation_registry/{display_name_id}
@required {account_id: str, display_name_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/email-security/settings/impersonation_registry/{display_name_id}
@required {account_id: str, display_name_id: int(int32)}
@optional {email: str, is_email_regex: bool, name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/sending_domain_restrictions/batch
@required {account_id: str, deletes: [map{id!: int(int32)}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/trusted_domains
@required {account_id: str}
@optional {page: int(int32)=1, per_page: int(int32)=20, order: str(pattern/created_at), direction: any, search: str, is_recent: bool, is_similarity: bool, pattern: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/trusted_domains
@required {account_id: str}
@returns(201)
@errors {4XX}

@endpoint POST /accounts/{account_id}/email-security/settings/trusted_domains/batch
@required {account_id: str, deletes: [map{id!: int(int32)}], patches: [any], posts: [map{comments: str, is_recent!: bool, is_regex!: bool, is_similarity!: bool, pattern!: str}], puts: [any]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/email-security/settings/trusted_domains/{trusted_domain_id}
@required {account_id: str, trusted_domain_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/settings/trusted_domains/{trusted_domain_id}
@required {account_id: str, trusted_domain_id: int(int32)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/email-security/settings/trusted_domains/{trusted_domain_id}
@required {account_id: str, trusted_domain_id: int(int32)}
@optional {comments: str, is_recent: bool, is_regex: bool, is_similarity: bool, pattern: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email-security/submissions
@required {account_id: str}
@optional {start: str(date-time), end: str(date-time), type: any, submission_id: str, original_disposition: any, requested_disposition: any, outcome_disposition: any, status: str, query: str, customer_status: any, page: int(int32)=1, per_page: int(int32)=20}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/email/routing/addresses
@required {account_id: str}
@optional {page: num=1, per_page: num=20, direction: str(asc/desc)=asc, verified: bool(true/false)=true}
@returns(200)

@endpoint POST /accounts/{account_id}/email/routing/addresses
@required {account_id: str, email: str}
@returns(200)

@endpoint DELETE /accounts/{account_id}/email/routing/addresses/{destination_address_identifier}
@required {destination_address_identifier: str, account_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/email/routing/addresses/{destination_address_identifier}
@required {destination_address_identifier: str, account_id: str}
@returns(200)

@endpoint POST /accounts/{account_id}/email/sending/send
@required {account_id: str, from: any, subject: str, to: any}
@optional {attachments: [any], bcc: any, cc: any, headers: map, html: str, reply_to: any, text: str}
@returns(200) {errors: [map], messages: [map], result: map{delivered: [str(email)], permanent_bounces: [str(email)], queued: [str(email)]}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 403, 429, 500}

@endpoint POST /accounts/{account_id}/email/sending/send_raw
@required {account_id: str, from: str(email), mime_message: str, recipients: [str(email)]}
@returns(200) {errors: [map], messages: [map], result: map{delivered: [str(email)], permanent_bounces: [str(email)], queued: [str(email)]}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 403, 429, 500}

@endpoint GET /accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {404, 4XX}

@endpoint DELETE /accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration/queues/{queue_id}
@required {queue_id: str, bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str, ruleIds: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration/queues/{queue_id}
@required {queue_id: str, bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str(default/eu/fedramp)=default}
@returns(200)
@errors {404, 4XX}

@endpoint PUT /accounts/{account_id}/event_notifications/r2/{bucket_name}/configuration/queues/{queue_id}
@required {queue_id: str, bucket_name: str, account_id: str, rules: [map{actions!: [str], description: str, prefix: str, suffix: str}]}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/event_subscriptions/subscriptions
@required {account_id: str}
@optional {page: int=1, per_page: int=20, order: str(created_at/name/enabled/source)=name, direction: str(asc/desc)=asc}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/event_subscriptions/subscriptions
@required {account_id: str}
@optional {destination: map, enabled: bool, events: [str], name: str, source: map}
@returns(200)
@errors {400, 404, 405}

@endpoint DELETE /accounts/{account_id}/event_subscriptions/subscriptions/{subscription_id}
@required {account_id: str, subscription_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/event_subscriptions/subscriptions/{subscription_id}
@required {account_id: str, subscription_id: str}
@returns(200)
@errors {404}

@endpoint PATCH /accounts/{account_id}/event_subscriptions/subscriptions/{subscription_id}
@required {account_id: str, subscription_id: str}
@optional {destination: map, enabled: bool, events: [str], name: str}
@returns(200)
@errors {400, 404}

@endpoint GET /accounts/{account_id}/firewall/access_rules/rules
@required {account_id: str}
@optional {mode: str, configuration.target: str(ip/ip_range/asn/country), configuration.value: str, notes: str, match: str(any/all)=all, page: num, per_page: num, order: str(configuration.target/configuration.value/mode), direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/firewall/access_rules/rules
@required {account_id: str, configuration: map, mode: str(block/challenge/whitelist/js_challenge/managed_challenge)}
@optional {notes: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/firewall/access_rules/rules/{rule_id}
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/firewall/access_rules/rules/{rule_id}
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/firewall/access_rules/rules/{rule_id}
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/app_types
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/apps/review_status
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/apps/review_status
@required {account_id: str, approved_apps: [int], in_review_apps: [int], unapproved_apps: [int]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/audit_ssh_settings
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/audit_ssh_settings
@required {account_id: str, public_key: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/audit_ssh_settings/rotate_seed
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/categories
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/certificates
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/certificates
@required {account_id: str}
@optional {validity_period_days: int}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/gateway/certificates/{certificate_id}
@required {certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/certificates/{certificate_id}
@required {certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/certificates/{certificate_id}/activate
@required {certificate_id: str, account_id: str}
@returns(202)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/certificates/{certificate_id}/deactivate
@required {certificate_id: str, account_id: str}
@returns(201)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/configuration
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/gateway/configuration
@required {account_id: str}
@optional {settings: map{activity_log: map, antivirus: map, block_page: map, body_scanning: map, browser_isolation: map, certificate: map, custom_certificate: map, extended_email_matching: map, fips: map, host_selector: map, inspection: map, protocol_detection: map, sandbox: map, tls_decrypt: map}}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/configuration
@required {account_id: str}
@optional {settings: map{activity_log: map, antivirus: map, block_page: map, body_scanning: map, browser_isolation: map, certificate: map, custom_certificate: map, extended_email_matching: map, fips: map, host_selector: map, inspection: map, protocol_detection: map, sandbox: map, tls_decrypt: map}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/configuration/custom_certificate
@required {account_id: str}
@returns(200) {binding_status: str, enabled: bool?, id: str, updated_at: str(date-time)}
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/lists
@required {account_id: str}
@optional {type: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/lists
@required {account_id: str, name: str, type: str(SERIAL/URL/DOMAIN/EMAIL/IP/CATEGORY/LOCATION/DEVICE)}
@optional {description: str, items: [map{description: str, value: str}]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/gateway/lists/{list_id}
@required {list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/lists/{list_id}
@required {list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/gateway/lists/{list_id}
@required {list_id: str, account_id: str}
@optional {append: [map{description: str, value: str}], remove: [str]}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/lists/{list_id}
@required {list_id: str, account_id: str, name: str}
@optional {description: str, items: [map{description: str, value: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/lists/{list_id}/items
@required {list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/locations
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/locations
@required {account_id: str, name: str}
@optional {client_default: bool=false, dns_destination_ips_id: str, ecs_support: bool=false, endpoints: map{doh!: map, dot!: map, ipv4!: map, ipv6!: map}, networks: [map{network!: str}]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/gateway/locations/{location_id}
@required {location_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/locations/{location_id}
@required {location_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/locations/{location_id}
@required {location_id: str, account_id: str, name: str}
@optional {client_default: bool=false, dns_destination_ips_id: str, ecs_support: bool=false, endpoints: map{doh!: map, dot!: map, ipv4!: map, ipv6!: map}, networks: [map{network!: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/logging
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/logging
@required {account_id: str}
@optional {redact_pii: bool=false, settings_by_rule_type: map{dns: any, http: any, l4: any}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/pacfiles
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/pacfiles
@required {account_id: str, contents: str, name: str}
@optional {description: str, slug: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/gateway/pacfiles/{pacfile_id}
@required {pacfile_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/pacfiles/{pacfile_id}
@required {pacfile_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/pacfiles/{pacfile_id}
@required {pacfile_id: str, account_id: str, contents: str, description: str, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/proxy_endpoints
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/proxy_endpoints
@required {account_id: str}
@optional {kind: str(ip/identity)=ip}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/gateway/proxy_endpoints/{proxy_endpoint_id}
@required {proxy_endpoint_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/proxy_endpoints/{proxy_endpoint_id}
@required {proxy_endpoint_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/gateway/proxy_endpoints/{proxy_endpoint_id}
@required {proxy_endpoint_id: str, account_id: str}
@optional {ips: [str], name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/rules
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/rules
@required {account_id: str, action: str(on/off/allow/block/scan/noscan/safesearch/ytrestricted/isolate/noisolate/override/l4_override/egress/resolve/quarantine/redirect), name: str}
@optional {description: str, device_posture: str=, enabled: bool=false, expiration: map{duration: int, expired: bool, expires_at!: any}, filters: [str], identity: str=, precedence: int, rule_settings: map{add_headers: map, allow_child_bypass: bool, audit_ssh: map, biso_admin_controls: map, block_page: map, block_page_enabled: bool, block_reason: str, bypass_parent_rule: bool, check_session: map, dns_resolvers: map, egress: map, forensic_copy: map, ignore_cname_category_matches: bool, insecure_disable_dnssec_validation: bool, ip_categories: bool, ip_indicator_feeds: bool, l4override: map, notification_settings: map, override_host: str, override_ips: [str], payload_log: map, quarantine: map, redirect: map, resolve_dns_internally: map, resolve_dns_through_cloudflare: bool, untrusted_cert: map}, schedule: map{fri: str, mon: str, sat: str, sun: str, thu: str, time_zone: str, tue: str, wed: str}, traffic: str=}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/rules/tenant
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/gateway/rules/{rule_id}
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/gateway/rules/{rule_id}
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/gateway/rules/{rule_id}
@required {rule_id: str, account_id: str, action: str(on/off/allow/block/scan/noscan/safesearch/ytrestricted/isolate/noisolate/override/l4_override/egress/resolve/quarantine/redirect), name: str}
@optional {description: str, device_posture: str=, enabled: bool=false, expiration: map{duration: int, expired: bool, expires_at!: any}, filters: [str], identity: str=, precedence: int, rule_settings: map{add_headers: map, allow_child_bypass: bool, audit_ssh: map, biso_admin_controls: map, block_page: map, block_page_enabled: bool, block_reason: str, bypass_parent_rule: bool, check_session: map, dns_resolvers: map, egress: map, forensic_copy: map, ignore_cname_category_matches: bool, insecure_disable_dnssec_validation: bool, ip_categories: bool, ip_indicator_feeds: bool, l4override: map, notification_settings: map, override_host: str, override_ips: [str], payload_log: map, quarantine: map, redirect: map, resolve_dns_internally: map, resolve_dns_through_cloudflare: bool, untrusted_cert: map}, schedule: map{fri: str, mon: str, sat: str, sun: str, thu: str, time_zone: str, tue: str, wed: str}, traffic: str=}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/gateway/rules/{rule_id}/reset_expiration
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/hyperdrive/configs
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/hyperdrive/configs
@required {account_id: str, id: str, name: str, origin: map}
@optional {caching: map, created_on: str(date-time), modified_on: str(date-time), mtls: map{ca_certificate_id: str, mtls_certificate_id: str, sslmode: str}, origin_connection_limit: int}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/hyperdrive/configs/{hyperdrive_id}
@required {account_id: str, hyperdrive_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/hyperdrive/configs/{hyperdrive_id}
@required {account_id: str, hyperdrive_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/hyperdrive/configs/{hyperdrive_id}
@required {account_id: str, hyperdrive_id: str}
@optional {caching: map, mtls: map{ca_certificate_id: str, mtls_certificate_id: str, sslmode: str}, name: str, origin: map, origin_connection_limit: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/hyperdrive/configs/{hyperdrive_id}
@required {account_id: str, hyperdrive_id: str, id: str, name: str, origin: map}
@optional {caching: map, created_on: str(date-time), modified_on: str(date-time), mtls: map{ca_certificate_id: str, mtls_certificate_id: str, sslmode: str}, origin_connection_limit: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/iam/permission_groups
@required {account_id: any}
@optional {id: str, name: str, label: str, page: num=1, per_page: num=20}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/iam/permission_groups/{permission_group_id}
@required {account_id: any, permission_group_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/iam/resource_groups
@required {account_id: any}
@optional {id: any, name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/iam/resource_groups
@required {account_id: any, name: str, scope: map{key!: any, objects!: [map]}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/iam/resource_groups/{resource_group_id}
@required {account_id: any, resource_group_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/iam/resource_groups/{resource_group_id}
@required {account_id: any, resource_group_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/iam/resource_groups/{resource_group_id}
@required {account_id: any, resource_group_id: any}
@optional {name: str, scope: map{key!: any, objects!: [map]}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/iam/user_groups
@required {account_id: any}
@optional {id: any, name: str, fuzzyName: str, page: num=1, per_page: num=20, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/iam/user_groups
@required {account_id: any, name: str, policies: [any]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/iam/user_groups/{user_group_id}
@required {account_id: any, user_group_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/iam/user_groups/{user_group_id}
@required {account_id: any, user_group_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/iam/user_groups/{user_group_id}
@required {account_id: any, user_group_id: any}
@optional {name: str, policies: [any]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/iam/user_groups/{user_group_id}/members
@required {account_id: any, user_group_id: any}
@optional {page: num=1, per_page: num=100}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/iam/user_groups/{user_group_id}/members
@required {account_id: any, user_group_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/iam/user_groups/{user_group_id}/members
@required {account_id: any, user_group_id: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/iam/user_groups/{user_group_id}/members/{member_id}
@required {account_id: any, user_group_id: any, member_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1
@required {account_id: str}
@optional {page: num=1, per_page: num=1000, creator: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/images/v1
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1/keys
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/images/v1/keys/{signing_key_name}
@required {signing_key_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/images/v1/keys/{signing_key_name}
@required {signing_key_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1/stats
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1/variants
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/images/v1/variants
@required {account_id: str, id: str, options: map{fit!: str, height!: num, metadata!: str, width!: num}}
@optional {neverRequireSignedURLs: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/images/v1/variants/{variant_id}
@required {variant_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1/variants/{variant_id}
@required {variant_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/images/v1/variants/{variant_id}
@required {variant_id: str, account_id: str, options: map{fit!: str, height!: num, metadata!: str, width!: num}}
@optional {neverRequireSignedURLs: bool=false}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1/variants/{variant_id}/flat
@required {variant_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/images/v1/{image_id}
@required {image_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1/{image_id}
@required {image_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/images/v1/{image_id}
@required {image_id: str, account_id: str}
@optional {creator: str, metadata: map, requireSignedURLs: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v1/{image_id}/blob
@required {image_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/images/v2
@required {account_id: str}
@optional {continuation_token: str, per_page: num=1000, sort_order: str(asc/desc)=desc, creator: str, meta.<field>[<operator>]: str}
@returns(200)
@errors {400, 4XX}

@endpoint POST /accounts/{account_id}/images/v2/direct_upload
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/infrastructure/targets
@required {account_id: str}
@optional {hostname: str, hostname_contains: str, virtual_network_id: str(uuid), ip_v4: str, ip_v6: str, created_before: str(date-time), created_after: str(date-time), modified_before: str(date-time), modified_after: str(date-time), ips: [str], target_ids: [str(uuid)], ip_like: str, ipv4_start: str, ipv4_end: str, ipv6_start: str, ipv6_end: str, page: int(int32)=1, per_page: int(int32)=1000, order: str(hostname/created_at), direction: any}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/infrastructure/targets
@required {account_id: str, hostname: str, ip: map{ipv4: map, ipv6: map}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/infrastructure/targets/batch
@required {account_id: str, target_ids: [str(uuid)]}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/infrastructure/targets/batch
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/infrastructure/targets/batch_delete
@required {account_id: str, target_ids: [str(uuid)]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/infrastructure/targets/{target_id}
@required {account_id: str, target_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/infrastructure/targets/{target_id}
@required {account_id: str, target_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/infrastructure/targets/{target_id}
@required {account_id: str, target_id: str(uuid), hostname: str, ip: map{ipv4: map, ipv6: map}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/asn/{asn}
@required {asn: int, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/asn/{asn}/subnets
@required {asn: int, account_id: str}
@returns(200) {asn: int, count: num, ip_count_total: int, page: num, per_page: num, subnets: [str]}
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/attack-surface-report/issue-types
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/attack-surface-report/issues
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str], page: any=1, per_page: any=25}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/attack-surface-report/issues/class
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/attack-surface-report/issues/severity
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/attack-surface-report/issues/type
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/intel/attack-surface-report/{issue_id}/dismiss
@required {account_id: str, issue_id: str}
@optional {dismiss: bool=true}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/dns
@required {account_id: str}
@optional {start_end_params: map, ipv4: str, page: num, per_page: num}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/domain
@required {account_id: str}
@optional {domain: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/domain-history
@required {account_id: str}
@optional {domain: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/domain/bulk
@required {account_id: str}
@optional {domain: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/indicator-feeds
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/intel/indicator-feeds
@required {account_id: str}
@optional {description: str, name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/intel/indicator-feeds/permissions/add
@required {account_id: str}
@optional {account_tag: str, feed_id: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/intel/indicator-feeds/permissions/remove
@required {account_id: str}
@optional {account_tag: str, feed_id: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/indicator-feeds/permissions/view
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/indicator-feeds/{feed_id}
@required {account_id: str, feed_id: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/intel/indicator-feeds/{feed_id}
@required {account_id: str, feed_id: int}
@optional {description: str, is_attributable: bool, is_downloadable: bool, is_public: bool, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/indicator-feeds/{feed_id}/data
@required {account_id: str, feed_id: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/indicator-feeds/{feed_id}/download
@required {account_id: str, feed_id: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/intel/indicator-feeds/{feed_id}/snapshot
@required {account_id: str, feed_id: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/ip
@required {account_id: str}
@optional {ipv4: str, ipv6: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/ip-lists
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/intel/miscategorization
@required {account_id: str}
@optional {content_adds: [int], content_removes: [int], indicator_type: str(domain/ipv4/ipv6/url), ip: str, security_adds: [int], security_removes: [int], url: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/intel/sinkholes
@required {account_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/intel/whois
@required {account_id: str}
@optional {domain: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/monitor_groups
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/load_balancers/monitor_groups
@required {account_id: str, description: str, id: str, members: [map{created_at: str(date-time), enabled!: bool, monitor_id!: str, monitoring_only!: bool, must_be_healthy!: bool, updated_at: str(date-time)}]}
@optional {created_at: str(date-time), updated_at: str(date-time)}
@returns(200)
@errors {412, 4XX}

@endpoint DELETE /accounts/{account_id}/load_balancers/monitor_groups/{monitor_group_id}
@required {monitor_group_id: str, account_id: str}
@returns(200)
@errors {412, 4XX}

@endpoint GET /accounts/{account_id}/load_balancers/monitor_groups/{monitor_group_id}
@required {monitor_group_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/load_balancers/monitor_groups/{monitor_group_id}
@required {monitor_group_id: str, account_id: str, description: str, id: str, members: [map{created_at: str(date-time), enabled!: bool, monitor_id!: str, monitoring_only!: bool, must_be_healthy!: bool, updated_at: str(date-time)}]}
@optional {created_at: str(date-time), updated_at: str(date-time)}
@returns(200)
@errors {412, 4XX}

@endpoint PUT /accounts/{account_id}/load_balancers/monitor_groups/{monitor_group_id}
@required {monitor_group_id: str, account_id: str, description: str, id: str, members: [map{created_at: str(date-time), enabled!: bool, monitor_id!: str, monitoring_only!: bool, must_be_healthy!: bool, updated_at: str(date-time)}]}
@optional {created_at: str(date-time), updated_at: str(date-time)}
@returns(200)
@errors {412, 4XX}

@endpoint GET /accounts/{account_id}/load_balancers/monitor_groups/{monitor_group_id}/references
@required {monitor_group_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/monitors
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/load_balancers/monitors
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/load_balancers/monitors/{monitor_id}
@required {monitor_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/monitors/{monitor_id}
@required {monitor_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/load_balancers/monitors/{monitor_id}
@required {monitor_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/load_balancers/monitors/{monitor_id}
@required {monitor_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/load_balancers/monitors/{monitor_id}/preview
@required {monitor_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/monitors/{monitor_id}/references
@required {monitor_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/pools
@required {account_id: str}
@optional {monitor: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/load_balancers/pools
@required {account_id: str}
@optional {notification_email: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/load_balancers/pools
@required {account_id: str, name: str, origins: [map{address: str, disabled_at: str(date-time), enabled: bool, header: map, name: str, port: int, virtual_network_id: str, weight: num}]}
@optional {description: str=, enabled: bool=true, latitude: num, load_shedding: map{default_percent: num, default_policy: str, session_percent: num, session_policy: str}, longitude: num, minimum_origins: int=1, monitor: str, monitor_group: str, notification_email: str=, notification_filter: map{origin: map, pool: map}, origin_steering: map{policy: str}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/load_balancers/pools/{pool_id}
@required {pool_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/pools/{pool_id}
@required {pool_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/load_balancers/pools/{pool_id}
@required {pool_id: str, account_id: str}
@optional {check_regions: [str], description: str=, disabled_at: str(date-time), enabled: bool=true, latitude: num, load_shedding: map{default_percent: num, default_policy: str, session_percent: num, session_policy: str}, longitude: num, minimum_origins: int=1, monitor: str, monitor_group: str, name: str, notification_email: str=, notification_filter: map{origin: map, pool: map}, origin_steering: map{policy: str}, origins: [map{address: str, disabled_at: str(date-time), enabled: bool, header: map, name: str, port: int, virtual_network_id: str, weight: num}]}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/load_balancers/pools/{pool_id}
@required {pool_id: str, account_id: str, name: str, origins: [map{address: str, disabled_at: str(date-time), enabled: bool, header: map, name: str, port: int, virtual_network_id: str, weight: num}]}
@optional {check_regions: [str], description: str=, disabled_at: str(date-time), enabled: bool=true, latitude: num, load_shedding: map{default_percent: num, default_policy: str, session_percent: num, session_policy: str}, longitude: num, minimum_origins: int=1, monitor: str, monitor_group: str, notification_email: str=, notification_filter: map{origin: map, pool: map}, origin_steering: map{policy: str}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/pools/{pool_id}/health
@required {pool_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/load_balancers/pools/{pool_id}/preview
@required {pool_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/pools/{pool_id}/references
@required {pool_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/preview/{preview_id}
@required {preview_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/regions
@required {account_id: str}
@optional {subdivision_code: str, subdivision_code_a2: str, country_code_a2: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/regions/{region_id}
@required {region_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/load_balancers/search
@required {account_id: str}
@optional {query: str=, references: str(/*/referral/referrer)=, page: num, per_page: num=25}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/logpush/datasets/{dataset_id}/fields
@required {dataset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/logpush/datasets/{dataset_id}/jobs
@required {dataset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/logpush/jobs
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/logpush/jobs
@required {account_id: str, destination_conf: str(uri)}
@optional {dataset: str(access_requests/audit_logs/audit_logs_v2/biso_user_actions/casb_findings/device_posture_results/dex_application_tests/dex_device_state_events/dlp_forensic_copies/dns_firewall_logs/dns_logs/email_security_alerts/firewall_events/gateway_dns/gateway_http/gateway_network/http_requests/ipsec_logs/magic_ids_detections/mcp_portal_logs/nel_reports/network_analytics_logs/page_shield_events/sinkhole_http_logs/spectrum_events/ssh_logs/warp_config_changes/warp_toggle_changes/workers_trace_events/zaraz_events/zero_trust_network_sessions)=http_requests, enabled: bool=false, filter: str, frequency: str(high/low)=high, kind: str(/edge)=, logpull_options: str(uri-reference), max_upload_bytes: int, max_upload_interval_seconds: int, max_upload_records: int, name: str, output_options: map{CVE-2021-44228: bool, batch_prefix: str, batch_suffix: str, field_delimiter: str, field_names: [str], merge_subrequests: bool, output_type: str, record_delimiter: str, record_prefix: str, record_suffix: str, record_template: str, sample_rate: num(float), timestamp_format: str}, ownership_challenge: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/logpush/jobs/{job_id}
@required {job_id: int, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/logpush/jobs/{job_id}
@required {job_id: int, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/logpush/jobs/{job_id}
@required {job_id: int, account_id: str}
@optional {destination_conf: str(uri), enabled: bool=false, filter: str, frequency: str(high/low)=high, kind: str(/edge)=, logpull_options: str(uri-reference), max_upload_bytes: int, max_upload_interval_seconds: int, max_upload_records: int, name: str, output_options: map{CVE-2021-44228: bool, batch_prefix: str, batch_suffix: str, field_delimiter: str, field_names: [str], merge_subrequests: bool, output_type: str, record_delimiter: str, record_prefix: str, record_suffix: str, record_template: str, sample_rate: num(float), timestamp_format: str}, ownership_challenge: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/logpush/ownership
@required {account_id: str, destination_conf: str(uri)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/logpush/ownership/validate
@required {account_id: str, destination_conf: str(uri), ownership_challenge: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/logpush/validate/destination
@required {account_id: str, destination_conf: str(uri)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/logpush/validate/destination/exists
@required {account_id: str, destination_conf: str(uri)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/logpush/validate/origin
@required {account_id: str, logpull_options: str(uri-reference)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/logs/audit
@required {account_id: str, since: str(date), before: str(date)}
@optional {account_name: [str], action_result: [str], action_type: [str], actor_context: [str], actor_email: [str(email)], actor_id: [str], actor_ip_address: [str], actor_token_id: [str], actor_token_name: [str], actor_type: [str], audit_log_id: [str], id: [str], raw_cf_ray_id: [str], raw_method: [str], raw_status_code: [int], raw_uri: [str], resource_id: [str], resource_product: [str], resource_type: [str], resource_scope: [str], zone_id: [str], zone_name: [str], account_name.not: [str], action_result.not: [str], action_type.not: [str], actor_context.not: [str], actor_email.not: [str(email)], actor_id.not: [str], actor_ip_address.not: [str], actor_token_id.not: [str], actor_token_name.not: [str], actor_type.not: [str], audit_log_id.not: [str], id.not: [str], raw_cf_ray_id.not: [str], raw_method.not: [str], raw_status_code.not: [int], raw_uri.not: [str], resource_id.not: [str], resource_product.not: [str], resource_type.not: [str], resource_scope.not: [str], zone_id.not: [str], zone_name.not: [str], direction: str(desc/asc)=desc, limit: num=100, cursor: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/logs/control/cmb/config
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/logs/control/cmb/config
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/logs/control/cmb/config
@required {account_id: str}
@optional {allow_out_of_region_access: bool, regions: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_dns_protection/configs/dns_protection/rules
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}

@endpoint GET /accounts/{account_id}/magic/advanced_dns_protection/configs/dns_protection/rules
@required {account_id: str}
@optional {page: int(int64), per_page: int(int64), order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_dns_protection/configs/dns_protection/rules
@required {account_id: str, burst_sensitivity: str, mode: str, name: str, profile_sensitivity: str, rate_sensitivity: str, scope: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_dns_protection/configs/dns_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_dns_protection/configs/dns_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_dns_protection/configs/dns_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@optional {burst_sensitivity: str, mode: str, profile_sensitivity: str, rate_sensitivity: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist
@required {account_id: str}
@optional {page: int(int64), per_page: int(int64), order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist
@required {account_id: str, comment: str, enabled: bool, prefix: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist/{prefix_id}
@required {account_id: str, prefix_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist/{prefix_id}
@required {account_id: str, prefix_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_tcp_protection/configs/allowlist/{prefix_id}
@required {account_id: str, prefix_id: str}
@optional {comment: str, enabled: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes
@required {account_id: str}
@optional {page: int(int64), per_page: int(int64), order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes
@required {account_id: str, comment: str, excluded: bool, prefix: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/bulk
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/{prefix_id}
@required {account_id: str, prefix_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/{prefix_id}
@required {account_id: str, prefix_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_tcp_protection/configs/prefixes/{prefix_id}
@required {account_id: str, prefix_id: str}
@optional {comment: str, excluded: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters
@required {account_id: str}
@optional {mode: str, page: int(int64), per_page: int(int64), order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters
@required {account_id: str, expression: str, mode: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters/{filter_id}
@required {account_id: str, filter_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters/{filter_id}
@required {account_id: str, filter_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/filters/{filter_id}
@required {account_id: str, filter_id: str}
@optional {expression: str, mode: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules
@required {account_id: str}
@optional {page: int(int64), per_page: int(int64), order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules
@required {account_id: str, burst_sensitivity: str, mode: str, name: str, rate_sensitivity: str, scope: str}
@optional {mitigation_type: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_tcp_protection/configs/syn_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@optional {burst_sensitivity: str, mitigation_type: str, mode: str, rate_sensitivity: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters
@required {account_id: str}
@optional {mode: str, page: int(int64), per_page: int(int64), order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters
@required {account_id: str, expression: str, mode: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters/{filter_id}
@required {account_id: str, filter_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters/{filter_id}
@required {account_id: str, filter_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/filters/{filter_id}
@required {account_id: str, filter_id: str}
@optional {expression: str, mode: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules
@required {account_id: str}
@optional {page: int(int64), per_page: int(int64), order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules
@required {account_id: str, burst_sensitivity: str, mode: str, name: str, rate_sensitivity: str, scope: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_flow_protection/rules/{rule_id}
@required {account_id: str, rule_id: str}
@optional {burst_sensitivity: str, mode: str, rate_sensitivity: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_protection_status
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/advanced_tcp_protection/configs/tcp_protection_status
@required {account_id: str, enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/apps
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/apps
@required {account_id: str, name: str, type: str}
@optional {hostnames: [str], ip_subnets: [any], source_subnets: [any]}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/apps/{account_app_id}
@required {account_id: str, account_app_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/apps/{account_app_id}
@required {account_id: str, account_app_id: str}
@optional {hostnames: [str], ip_subnets: [any], name: str, source_subnets: [any], type: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/apps/{account_app_id}
@required {account_id: str, account_app_id: str}
@optional {hostnames: [str], ip_subnets: [any], name: str, source_subnets: [any], type: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/cf_interconnects
@required {account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/cf_interconnects
@required {account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/cf_interconnects/{cf_interconnect_id}
@required {cf_interconnect_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/cf_interconnects/{cf_interconnect_id}
@required {cf_interconnect_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool, automatic_return_routing: bool=false, description: str, gre: map{cloudflare_endpoint: str}, health_check: map{enabled: bool, rate: str, target: any, type: str}, interface_address: str, interface_address6: str, mtu: int=1476, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/cloud/catalog-syncs
@required {account_id: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/catalog-syncs
@required {account_id: str, destination_type: str(NONE/ZERO_TRUST_LIST), name: str, update_mode: str(AUTO/MANUAL)}
@optional {forwarded: str, description: str, policy: str}
@returns(201)
@errors {400, 401, 403, 409, 422, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/catalog-syncs/prebuilt-policies
@required {account_id: str}
@optional {destination_type: str}
@returns(200)
@errors {400, 401, 403, 500}

@endpoint DELETE /accounts/{account_id}/magic/cloud/catalog-syncs/{sync_id}
@required {account_id: str, sync_id: str(uuid)}
@optional {delete_destination: bool}
@returns(200)
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/catalog-syncs/{sync_id}
@required {account_id: str, sync_id: str(uuid)}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /accounts/{account_id}/magic/cloud/catalog-syncs/{sync_id}
@required {account_id: str, sync_id: str(uuid)}
@optional {description: str, name: str, policy: str, update_mode: str(AUTO/MANUAL)}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint PUT /accounts/{account_id}/magic/cloud/catalog-syncs/{sync_id}
@required {account_id: str, sync_id: str(uuid)}
@optional {description: str, name: str, policy: str, update_mode: str(AUTO/MANUAL)}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/catalog-syncs/{sync_id}/refresh
@required {account_id: str, sync_id: str(uuid)}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/onramps
@required {account_id: str}
@optional {order_by: str, desc: bool, status: bool, vpcs: bool}
@returns(200)
@errors {400, 401, 403, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/onramps
@required {account_id: str, cloud_type: str(AWS/AZURE/GOOGLE), dynamic_routing: bool, install_routes_in_cloud: bool, install_routes_in_magic_wan: bool, name: str, type: str(OnrampTypeSingle/OnrampTypeHub)}
@optional {forwarded: str, adopted_hub_id: str(uuid), attached_hubs: [str(uuid)], attached_vpcs: [str(uuid)], cloud_asn: int(uint32), description: str, hub_provider_id: str(uuid), manage_hub_to_hub_attachments: bool, manage_vpc_to_hub_attachments: bool, region: str, vpc: str(uuid)}
@returns(201)
@errors {400, 401, 403, 409, 422, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/onramps/magic_wan_address_space
@required {account_id: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /accounts/{account_id}/magic/cloud/onramps/magic_wan_address_space
@required {account_id: str, prefixes: [str]}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint PUT /accounts/{account_id}/magic/cloud/onramps/magic_wan_address_space
@required {account_id: str, prefixes: [str]}
@returns(200)
@errors {400, 401, 403, 404, 422, 500}

@endpoint DELETE /accounts/{account_id}/magic/cloud/onramps/{onramp_id}
@required {account_id: str, onramp_id: str(uuid)}
@optional {destroy: bool, force: bool}
@returns(200)
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/onramps/{onramp_id}
@required {account_id: str, onramp_id: str(uuid)}
@optional {status: bool, vpcs: bool, post_apply_resources: bool, planned_resources: bool}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /accounts/{account_id}/magic/cloud/onramps/{onramp_id}
@required {account_id: str, onramp_id: str(uuid)}
@optional {attached_hubs: [str(uuid)], attached_vpcs: [str(uuid)], description: str, install_routes_in_cloud: bool, install_routes_in_magic_wan: bool, manage_hub_to_hub_attachments: bool, manage_vpc_to_hub_attachments: bool, name: str, vpc: str(uuid)}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint PUT /accounts/{account_id}/magic/cloud/onramps/{onramp_id}
@required {account_id: str, onramp_id: str(uuid)}
@optional {attached_hubs: [str(uuid)], attached_vpcs: [str(uuid)], description: str, install_routes_in_cloud: bool, install_routes_in_magic_wan: bool, manage_hub_to_hub_attachments: bool, manage_vpc_to_hub_attachments: bool, name: str, vpc: str(uuid)}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/onramps/{onramp_id}/apply
@required {account_id: str, onramp_id: str(uuid)}
@returns(202)
@errors {400, 401, 403, 404, 409, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/onramps/{onramp_id}/export
@required {account_id: str, onramp_id: str(uuid)}
@returns(201)
@errors {400, 401, 403, 404, 409, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/onramps/{onramp_id}/plan
@required {account_id: str, onramp_id: str(uuid)}
@returns(202)
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/providers
@required {account_id: str}
@optional {status: bool, order_by: str, desc: bool, cloudflare: bool}
@returns(200)
@errors {400, 401, 403, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/providers
@required {account_id: str, cloud_type: str(AWS/AZURE/GOOGLE/CLOUDFLARE), friendly_name: str}
@optional {forwarded: str, description: str}
@returns(201)
@errors {400, 401, 403, 409, 422, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/providers/discover
@required {account_id: str}
@returns(202)
@errors {400, 401, 403, 409, 500}

@endpoint DELETE /accounts/{account_id}/magic/cloud/providers/{provider_id}
@required {account_id: str, provider_id: str(uuid)}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/providers/{provider_id}
@required {account_id: str, provider_id: str(uuid)}
@optional {status: bool}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /accounts/{account_id}/magic/cloud/providers/{provider_id}
@required {account_id: str, provider_id: str(uuid)}
@optional {aws_arn: str, azure_subscription_id: str, azure_tenant_id: str, description: str, friendly_name: str, gcp_project_id: str, gcp_service_account_email: str}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint PUT /accounts/{account_id}/magic/cloud/providers/{provider_id}
@required {account_id: str, provider_id: str(uuid)}
@optional {aws_arn: str, azure_subscription_id: str, azure_tenant_id: str, description: str, friendly_name: str, gcp_project_id: str, gcp_service_account_email: str}
@returns(200)
@errors {400, 401, 403, 404, 409, 422, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/providers/{provider_id}/discover
@required {account_id: str, provider_id: str(uuid)}
@optional {v2: bool}
@returns(202)
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/providers/{provider_id}/initial_setup
@required {account_id: str, provider_id: str(uuid)}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/resources
@required {account_id: str}
@optional {provider_id: str, resource_type: [str], resource_id: [str(uuid)], region: str, resource_group: str, managed: bool, search: [str], order_by: str, desc: bool, per_page: int, page: int, cloudflare: bool, v2: bool}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/resources/export
@required {account_id: str}
@optional {provider_id: str, resource_type: [str], resource_id: [str(uuid)], region: str, resource_group: str, search: [str], order_by: str, desc: bool, v2: bool}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /accounts/{account_id}/magic/cloud/resources/policy-preview
@required {account_id: str, policy: str}
@returns(200)
@errors {400, 401, 403, 422, 500}

@endpoint GET /accounts/{account_id}/magic/cloud/resources/{resource_id}
@required {account_id: str, resource_id: str(uuid)}
@optional {v2: bool}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/magic/connectors
@required {account_id: str}
@returns(200)
@errors {400, 401, 403, 500}

@endpoint POST /accounts/{account_id}/magic/connectors
@required {account_id: str}
@returns(200)
@errors {400, 401, 403, 404, 409, 500}

@endpoint DELETE /accounts/{account_id}/magic/connectors/{connector_id}
@required {account_id: str, connector_id: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/magic/connectors/{connector_id}
@required {account_id: str, connector_id: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PATCH /accounts/{account_id}/magic/connectors/{connector_id}
@required {account_id: str, connector_id: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint PUT /accounts/{account_id}/magic/connectors/{connector_id}
@required {account_id: str, connector_id: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/magic/connectors/{connector_id}/telemetry/events
@required {account_id: str, connector_id: str, from: num, to: num}
@optional {limit: num, cursor: str, k: str}
@returns(200)
@errors {400, 401, 403, 429, 500}

@endpoint GET /accounts/{account_id}/magic/connectors/{connector_id}/telemetry/events/latest
@required {account_id: str, connector_id: str}
@returns(200)
@errors {400, 401, 403, 404, 429, 500}

@endpoint GET /accounts/{account_id}/magic/connectors/{connector_id}/telemetry/events/{event_t}.{event_n}
@required {account_id: str, connector_id: str, event_t: num, event_n: num}
@returns(200)
@errors {400, 401, 403, 404, 429, 500}

@endpoint GET /accounts/{account_id}/magic/connectors/{connector_id}/telemetry/snapshots
@required {account_id: str, connector_id: str, from: num, to: num}
@optional {limit: num, cursor: str}
@returns(200)
@errors {400, 401, 403, 429, 500}

@endpoint GET /accounts/{account_id}/magic/connectors/{connector_id}/telemetry/snapshots/latest
@required {account_id: str, connector_id: str}
@returns(200)
@errors {400, 401, 403, 404, 429, 500}

@endpoint GET /accounts/{account_id}/magic/connectors/{connector_id}/telemetry/snapshots/{snapshot_t}
@required {account_id: str, connector_id: str, snapshot_t: num}
@returns(200)
@errors {400, 401, 403, 404, 429, 500}

@endpoint GET /accounts/{account_id}/magic/gre_tunnels
@required {account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/gre_tunnels
@required {account_id: str, cloudflare_gre_endpoint: str, customer_gre_endpoint: str, interface_address: str, name: str}
@optional {x-magic-new-hc-target: bool, automatic_return_routing: bool=false, bgp: map{customer_asn!: int(int32), extra_prefixes: [str(cidr)], md5_key: str}, description: str, health_check: any, interface_address6: str, mtu: int=1476, ttl: int=64}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/gre_tunnels
@required {account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/gre_tunnels/{gre_tunnel_id}
@required {gre_tunnel_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/gre_tunnels/{gre_tunnel_id}
@required {gre_tunnel_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/gre_tunnels/{gre_tunnel_id}
@required {gre_tunnel_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/ipsec_tunnels
@required {account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/ipsec_tunnels
@required {account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/ipsec_tunnels
@required {account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}
@required {ipsec_tunnel_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}
@required {ipsec_tunnel_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}
@required {ipsec_tunnel_id: str, account_id: str, cloudflare_endpoint: str, interface_address: str, name: str}
@optional {x-magic-new-hc-target: bool, automatic_return_routing: bool=false, bgp: map{customer_asn!: int(int32), extra_prefixes: [str(cidr)], md5_key: str}, custom_remote_identities: map{fqdn_id: str}, customer_endpoint: str, description: str, health_check: any, interface_address6: str, psk: str, replay_protection: bool=false}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/ipsec_tunnels/{ipsec_tunnel_id}/psk_generate
@required {ipsec_tunnel_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/routes
@required {account_id: str, routes: [any]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/routes
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/routes
@required {account_id: str, nexthop: str, prefix: str, priority: int}
@optional {description: str, scope: map{colo_names: [str], colo_regions: [str]}, weight: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/routes
@required {account_id: str, routes: [any]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/routes/{route_id}
@required {route_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/routes/{route_id}
@required {route_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/routes/{route_id}
@required {route_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites
@required {account_id: str}
@optional {connectorid: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/sites
@required {account_id: str, name: str}
@optional {connector_id: str, description: str, ha_mode: bool, location: map{lat: str, lon: str}, secondary_connector_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/sites/{site_id}
@required {site_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}
@required {site_id: str, account_id: str}
@optional {x-magic-new-hc-target: bool}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/sites/{site_id}
@required {site_id: str, account_id: str}
@optional {connector_id: str, description: str, location: map{lat: str, lon: str}, name: str, secondary_connector_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/sites/{site_id}
@required {site_id: str, account_id: str}
@optional {connector_id: str, description: str, location: map{lat: str, lon: str}, name: str, secondary_connector_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/acls
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/sites/{site_id}/acls
@required {account_id: str, site_id: str, lan_1: map{lan_id!: str, lan_name: str, port_ranges: [str], ports: [int], subnets: [any]}, lan_2: map{lan_id!: str, lan_name: str, port_ranges: [str], ports: [int], subnets: [any]}, name: str}
@optional {description: str, forward_locally: bool, protocols: [str], unidirectional: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/sites/{site_id}/acls/{acl_id}
@required {site_id: str, account_id: str, acl_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/acls/{acl_id}
@required {site_id: str, account_id: str, acl_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/sites/{site_id}/acls/{acl_id}
@required {site_id: str, account_id: str, acl_id: str}
@optional {description: str, forward_locally: bool, lan_1: map{lan_id!: str, lan_name: str, port_ranges: [str], ports: [int], subnets: [any]}, lan_2: map{lan_id!: str, lan_name: str, port_ranges: [str], ports: [int], subnets: [any]}, name: str, protocols: [str], unidirectional: bool}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/sites/{site_id}/acls/{acl_id}
@required {site_id: str, account_id: str, acl_id: str}
@optional {description: str, forward_locally: bool, lan_1: map{lan_id!: str, lan_name: str, port_ranges: [str], ports: [int], subnets: [any]}, lan_2: map{lan_id!: str, lan_name: str, port_ranges: [str], ports: [int], subnets: [any]}, name: str, protocols: [str], unidirectional: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/app_configs
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/sites/{site_id}/app_configs
@required {account_id: str, site_id: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/sites/{site_id}/app_configs/{app_config_id}
@required {account_id: str, site_id: str, app_config_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/sites/{site_id}/app_configs/{app_config_id}
@required {account_id: str, site_id: str, app_config_id: str}
@optional {account_app_id: str, breakout: bool, managed_app_id: str, preferred_wans: [str], priority: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/sites/{site_id}/app_configs/{app_config_id}
@required {account_id: str, site_id: str, app_config_id: str}
@optional {account_app_id: str, breakout: bool, managed_app_id: str, preferred_wans: [str], priority: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/lans
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/sites/{site_id}/lans
@required {account_id: str, site_id: str}
@optional {bond_id: int, ha_link: bool, is_breakout: bool, is_prioritized: bool, name: str, nat: map{static_prefix: str}, physport: int, routed_subnets: [map{nat: map, next_hop!: str, prefix!: str}], static_addressing: map{address!: str, dhcp_relay: map, dhcp_server: map, secondary_address: str, virtual_address: str}, vlan_tag: int}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/sites/{site_id}/lans/{lan_id}
@required {site_id: str, account_id: str, lan_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/lans/{lan_id}
@required {site_id: str, account_id: str, lan_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/sites/{site_id}/lans/{lan_id}
@required {site_id: str, account_id: str, lan_id: str}
@optional {bond_id: int, is_breakout: bool, is_prioritized: bool, name: str, nat: map{static_prefix: str}, physport: int, routed_subnets: [map{nat: map, next_hop!: str, prefix!: str}], static_addressing: map{address!: str, dhcp_relay: map, dhcp_server: map, secondary_address: str, virtual_address: str}, vlan_tag: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/sites/{site_id}/lans/{lan_id}
@required {site_id: str, account_id: str, lan_id: str}
@optional {bond_id: int, is_breakout: bool, is_prioritized: bool, name: str, nat: map{static_prefix: str}, physport: int, routed_subnets: [map{nat: map, next_hop!: str, prefix!: str}], static_addressing: map{address!: str, dhcp_relay: map, dhcp_server: map, secondary_address: str, virtual_address: str}, vlan_tag: int}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/sites/{site_id}/netflow_config
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/netflow_config
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/sites/{site_id}/netflow_config
@required {account_id: str, site_id: str}
@optional {active_timeout: int, collector_ip: str, collector_port: int, inactive_timeout: int, sampling_rate: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/sites/{site_id}/netflow_config
@required {account_id: str, site_id: str}
@optional {active_timeout: int, collector_ip: str, collector_port: int, inactive_timeout: int, sampling_rate: int}
@returns(201)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/sites/{site_id}/netflow_config
@required {account_id: str, site_id: str}
@optional {active_timeout: int, collector_ip: str, collector_port: int, inactive_timeout: int, sampling_rate: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/wans
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/magic/sites/{site_id}/wans
@required {account_id: str, site_id: str, physport: int}
@optional {name: str, priority: int, static_addressing: map{address!: str, gateway_address!: str, secondary_address: str}, vlan_tag: int}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/magic/sites/{site_id}/wans/{wan_id}
@required {site_id: str, account_id: str, wan_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/magic/sites/{site_id}/wans/{wan_id}
@required {site_id: str, account_id: str, wan_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/magic/sites/{site_id}/wans/{wan_id}
@required {site_id: str, account_id: str, wan_id: str}
@optional {name: str, physport: int, priority: int, static_addressing: map{address!: str, gateway_address!: str, secondary_address: str}, vlan_tag: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/magic/sites/{site_id}/wans/{wan_id}
@required {site_id: str, account_id: str, wan_id: str}
@optional {name: str, physport: int, priority: int, static_addressing: map{address!: str, gateway_address!: str, secondary_address: str}, vlan_tag: int}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/members
@required {account_id: any}
@optional {order: any(user.first_name/user.last_name/user.email/status), status: str(accepted/pending/rejected), page: num=1, per_page: num=20, direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/members
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/members/{member_id}
@required {member_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/members/{member_id}
@required {member_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/members/{member_id}
@required {member_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/mnm/config
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/mnm/config
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/mnm/config
@required {account_id: str}
@optional {default_sampling: num=1, name: str, router_ips: [str], warp_devices: [map{id!: str, name!: str, router_ip!: str}]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/mnm/config
@required {account_id: str, default_sampling: num=1, name: str}
@optional {router_ips: [str], warp_devices: [map{id!: str, name!: str, router_ip!: str}]}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/mnm/config
@required {account_id: str, default_sampling: num=1, name: str}
@optional {router_ips: [str], warp_devices: [map{id!: str, name!: str, router_ip!: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/mnm/config/full
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/mnm/rules
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/mnm/rules
@required {account_id: str, duration: str(1m/5m/10m/15m/20m/30m/45m/60m)=1m, name: str}
@optional {automatic_advertisement: bool, bandwidth: num, packet_threshold: num, prefixes: [str]}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/mnm/rules
@required {account_id: str, duration: str(1m/5m/10m/15m/20m/30m/45m/60m)=1m, name: str}
@optional {automatic_advertisement: bool, bandwidth: num, id: str, packet_threshold: num, prefixes: [str]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/mnm/rules/{rule_id}
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/mnm/rules/{rule_id}
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/mnm/rules/{rule_id}
@required {rule_id: str, account_id: str}
@optional {automatic_advertisement: bool, bandwidth: num, duration: str(1m/5m/10m/15m/20m/30m/45m/60m)=1m, name: str, packet_threshold: num, prefixes: [str]}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/mnm/rules/{rule_id}/advertisement
@required {rule_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/mnm/vpc-flows/token
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/move
@required {account_id: str, destination_organization_id: str}
@returns(200) {errors: [map], messages: [map], result: map{account_id: str, destination_organization_id: str, source_organization_id: str}, success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/mtls_certificates
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/mtls_certificates
@required {account_id: str, ca: bool, certificates: str}
@optional {name: str, private_key: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/mtls_certificates/{mtls_certificate_id}
@required {mtls_certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/mtls_certificates/{mtls_certificate_id}
@required {mtls_certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/mtls_certificates/{mtls_certificate_id}/associations
@required {mtls_certificate_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/organizations
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/pages/projects
@required {account_id: str}
@optional {page: int, per_page: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/pages/projects
@required {account_id: str, name: str, production_branch: str}
@optional {build_config: map{build_caching: bool, build_command: str, destination_dir: str, root_dir: str, web_analytics_tag: str, web_analytics_token: str}, deployment_configs: map{preview: any, production: any}, source: map{config!: map, type!: str}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pages/projects/{project_name}
@required {project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pages/projects/{project_name}
@required {project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/pages/projects/{project_name}
@required {project_name: str, account_id: str}
@optional {build_config: map{build_caching: bool, build_command: str, destination_dir: str, root_dir: str, web_analytics_tag: str, web_analytics_token: str}, deployment_configs: map{preview: any, production: any}, name: str, production_branch: str, source: map{config!: map, type!: str}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pages/projects/{project_name}/deployments
@required {project_name: str, account_id: str}
@optional {env: str(production/preview), page: int, per_page: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/pages/projects/{project_name}/deployments
@required {project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}
@required {deployment_id: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}
@required {deployment_id: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}/history/logs
@required {deployment_id: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}/retry
@required {deployment_id: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/pages/projects/{project_name}/deployments/{deployment_id}/rollback
@required {deployment_id: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pages/projects/{project_name}/domains
@required {project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/pages/projects/{project_name}/domains
@required {project_name: str, account_id: str, name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pages/projects/{project_name}/domains/{domain_name}
@required {domain_name: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pages/projects/{project_name}/domains/{domain_name}
@required {domain_name: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/pages/projects/{project_name}/domains/{domain_name}
@required {domain_name: str, project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/pages/projects/{project_name}/purge_build_cache
@required {project_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pay-per-crawl/crawler/stripe
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/pay-per-crawl/crawler/stripe
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{connect_status: str, stripe_account_id: str}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/pay-per-crawl/crawler/stripe
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{url: str}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/pay-per-crawl/publisher/stripe
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/pay-per-crawl/publisher/stripe
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{connect_status: str, stripe_account_id: str}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/pay-per-crawl/publisher/stripe
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{url: str}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint PATCH /accounts/{account_id}/pay-per-crawl/zones_can_be_enabled
@required {account_id: str}
@optional {zones: [map{can_be_enabled: bool, id: str}]}
@returns(200) {errors: [map], messages: [map], result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/pay-per-crawl/zones_can_be_enabled/query
@required {account_id: str}
@optional {zones: [map{can_be_enabled: bool, id: str}]}
@returns(200) {errors: [map], messages: [map], result: map{zones: [map]}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/pcaps
@required {account_id: str}
@returns(200)

@endpoint POST /accounts/{account_id}/pcaps
@required {account_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/pcaps/ownership
@required {account_id: str}
@returns(200)

@endpoint POST /accounts/{account_id}/pcaps/ownership
@required {account_id: str, destination_conf: str}
@returns(200)

@endpoint POST /accounts/{account_id}/pcaps/ownership/validate
@required {account_id: str, destination_conf: str, ownership_challenge: str}
@returns(200)

@endpoint DELETE /accounts/{account_id}/pcaps/ownership/{ownership_id}
@required {ownership_id: str, account_id: str}
@returns(204)

@endpoint GET /accounts/{account_id}/pcaps/{pcap_id}
@required {pcap_id: str, account_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/pcaps/{pcap_id}/download
@required {pcap_id: str, account_id: str}
@returns(200)

@endpoint PUT /accounts/{account_id}/pcaps/{pcap_id}/stop
@required {pcap_id: str, account_id: str}
@returns(204)

@endpoint GET /accounts/{account_id}/pipelines
@required {account_id: str}
@optional {search: str, page: str=1, per_page: str=25}
@returns(200) {result_info: map{count: num, page: num, per_page: num, total_count: num}, results: [map], success: bool}
@errors {4XX}

@endpoint POST /accounts/{account_id}/pipelines
@required {account_id: str, destination: map{batch!: map, compression!: map, credentials!: map, format!: str, path!: map, type!: str}, name: str, source: [any]}
@returns(200) {result: map{destination: map{batch: map{max_bytes: int, max_duration_s: num, max_rows: int}, compression: map{type: str}, format: str, path: map{bucket: str, filename: any, filepath: str, prefix: str}, type: str}, endpoint: str, id: str, name: str, source: [any], version: num}, success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/pipelines/v1/pipelines
@required {account_id: str}
@optional {page: num=1, per_page: num}
@returns(200) {result: [map], result_info: map{count: num, page: num, per_page: num, total_count: num}, success: bool}
@errors {4XX}

@endpoint POST /accounts/{account_id}/pipelines/v1/pipelines
@required {account_id: str, name: str, sql: str}
@returns(200) {result: map{created_at: str, id: str, modified_at: str, name: str, sql: str, status: str}, success: bool}
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pipelines/v1/pipelines/{pipeline_id}
@required {account_id: str, pipeline_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pipelines/v1/pipelines/{pipeline_id}
@required {account_id: str, pipeline_id: str}
@returns(200) {result: map{created_at: str, failure_reason: str, id: str, modified_at: str, name: str, sql: str, status: str, tables: [map]}, success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/pipelines/v1/sinks
@required {account_id: str}
@optional {pipeline_id: str, page: num=1, per_page: num}
@returns(200) {result: [map], result_info: map{count: num, page: num, per_page: num, total_count: num}, success: bool}
@errors {4XX}

@endpoint POST /accounts/{account_id}/pipelines/v1/sinks
@required {account_id: str, name: str, type: str(r2/r2_data_catalog)}
@optional {config: any, format: any, schema: map{fields: [any], format: any, inferred: bool}}
@returns(200) {result: map{config: any, created_at: str(date-time), format: any, id: str, modified_at: str(date-time), name: str, schema: map{fields: [any], format: any, inferred: bool?}, type: str}, success: bool}
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pipelines/v1/sinks/{sink_id}
@required {account_id: str, sink_id: str}
@optional {force: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pipelines/v1/sinks/{sink_id}
@required {account_id: str, sink_id: str}
@returns(200) {result: map{config: any, created_at: str(date-time), format: any, id: str, modified_at: str(date-time), name: str, schema: map{fields: [any], format: any, inferred: bool?}, type: str}, success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/pipelines/v1/streams
@required {account_id: str}
@optional {pipeline_id: str, page: num=1, per_page: num}
@returns(200) {result: [map], result_info: map{count: num, page: num, per_page: num, total_count: num}, success: bool}
@errors {4XX}

@endpoint POST /accounts/{account_id}/pipelines/v1/streams
@required {account_id: str, name: str}
@optional {format: any, http: map{authentication!: bool, cors: map, enabled!: bool}=[object Object], schema: map{fields: [any], format: any, inferred: bool}, worker_binding: map{enabled!: bool}=[object Object]}
@returns(200) {result: map{created_at: str(date-time), endpoint: str(uri), format: any, http: map{authentication: bool, cors: map{origins: [str]}, enabled: bool}, id: str, modified_at: str(date-time), name: str, schema: map{fields: [any], format: any, inferred: bool?}, version: int, worker_binding: map{enabled: bool}}, success: bool}
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pipelines/v1/streams/{stream_id}
@required {account_id: str, stream_id: str}
@optional {force: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pipelines/v1/streams/{stream_id}
@required {account_id: str, stream_id: str}
@returns(200) {result: map{created_at: str(date-time), endpoint: str(uri), format: any, http: map{authentication: bool, cors: map{origins: [str]}, enabled: bool}, id: str, modified_at: str(date-time), name: str, schema: map{fields: [any], format: any, inferred: bool?}, version: int, worker_binding: map{enabled: bool}}, success: bool}
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/pipelines/v1/streams/{stream_id}
@required {account_id: str, stream_id: str}
@optional {http: map{authentication!: bool, cors: map, enabled!: bool}, worker_binding: map{enabled!: bool}}
@returns(200) {result: map{created_at: str(date-time), endpoint: str(uri), format: any, http: map{authentication: bool, cors: map{origins: [str]}, enabled: bool}, id: str, modified_at: str(date-time), name: str, version: int, worker_binding: map{enabled: bool}}, success: bool}
@errors {4XX}

@endpoint POST /accounts/{account_id}/pipelines/v1/validate_sql
@required {account_id: str, sql: str}
@returns(200) {result: map{graph: map{edges: [map], nodes: [map]}, tables: map}, success: bool}
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/pipelines/{pipeline_name}
@required {account_id: str, pipeline_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/pipelines/{pipeline_name}
@required {account_id: str, pipeline_name: str}
@returns(200) {result: map{destination: map{batch: map{max_bytes: int, max_duration_s: num, max_rows: int}, compression: map{type: str}, format: str, path: map{bucket: str, filename: any, filepath: str, prefix: str}, type: str}, endpoint: str, id: str, name: str, source: [any], version: num}, success: bool}
@errors {404}

@endpoint PUT /accounts/{account_id}/pipelines/{pipeline_name}
@required {account_id: str, pipeline_name: str, destination: map{batch!: map, compression!: map, credentials: map, format!: str, path!: map, type!: str}, name: str, source: [any]}
@returns(200) {result: map{destination: map{batch: map{max_bytes: int, max_duration_s: num, max_rows: int}, compression: map{type: str}, format: str, path: map{bucket: str, filename: any, filepath: str, prefix: str}, type: str}, endpoint: str, id: str, name: str, source: [any], version: num}, success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/profile
@required {account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{business_address: str, business_email: str, business_name: str, business_phone: str, external_metadata: str}, success: bool}
@errors {4XX}

@endpoint PUT /accounts/{account_id}/profile
@required {account_id: str, business_address: str, business_email: str, business_name: str, business_phone: str, external_metadata: str}
@returns(204)
@errors {4XX}

@endpoint GET /accounts/{account_id}/queues
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/queues
@required {account_id: str, queue_name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/queues/{queue_id}
@required {queue_id: str, account_id: str}
@returns(200) {errors: [map], messages: [str], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/queues/{queue_id}
@required {queue_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/queues/{queue_id}
@required {queue_id: str, account_id: str}
@optional {consumers: [map], consumers_total_count: num, created_on: str, modified_on: str, producers: [map], producers_total_count: num, queue_id: str, queue_name: str, settings: map{delivery_delay: num, delivery_paused: bool, message_retention_period: num}}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/queues/{queue_id}
@required {queue_id: str, account_id: str}
@optional {consumers: [map], consumers_total_count: num, created_on: str, modified_on: str, producers: [map], producers_total_count: num, queue_id: str, queue_name: str, settings: map{delivery_delay: num, delivery_paused: bool, message_retention_period: num}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/queues/{queue_id}/consumers
@required {queue_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/queues/{queue_id}/consumers
@required {queue_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/queues/{queue_id}/consumers/{consumer_id}
@required {consumer_id: str, queue_id: str, account_id: str}
@returns(200) {errors: [map], messages: [str], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/queues/{queue_id}/consumers/{consumer_id}
@required {consumer_id: str, queue_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/queues/{queue_id}/consumers/{consumer_id}
@required {consumer_id: str, queue_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/queues/{queue_id}/messages
@required {queue_id: str, account_id: str}
@returns(200) {errors: [map], messages: [str], success: bool}
@errors {4XX}

@endpoint POST /accounts/{account_id}/queues/{queue_id}/messages/ack
@required {queue_id: str, account_id: str}
@optional {acks: [map{lease_id: str}], retries: [map{delay_seconds: num, lease_id: str}]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/queues/{queue_id}/messages/batch
@required {queue_id: str, account_id: str}
@optional {delay_seconds: num, messages: [any]}
@returns(200) {errors: [map], messages: [str], success: bool}
@errors {4XX}

@endpoint POST /accounts/{account_id}/queues/{queue_id}/messages/pull
@required {queue_id: str, account_id: str}
@optional {batch_size: num, visibility_timeout_ms: num}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/queues/{queue_id}/purge
@required {queue_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/queues/{queue_id}/purge
@required {queue_id: str, account_id: str}
@optional {delete_messages_permanently: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2-catalog
@required {account_id: str}
@returns(200)
@errors {400, 401, 403, 500}

@endpoint GET /accounts/{account_id}/r2-catalog/{bucket_name}
@required {account_id: str, bucket_name: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /accounts/{account_id}/r2-catalog/{bucket_name}/credential
@required {account_id: str, bucket_name: str, token: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /accounts/{account_id}/r2-catalog/{bucket_name}/disable
@required {account_id: str, bucket_name: str}
@returns(204)
@errors {400, 401, 403, 404, 500}

@endpoint POST /accounts/{account_id}/r2-catalog/{bucket_name}/enable
@required {account_id: str, bucket_name: str}
@returns(200)
@errors {400, 401, 403, 409, 500}

@endpoint GET /accounts/{account_id}/r2-catalog/{bucket_name}/maintenance-configs
@required {account_id: str, bucket_name: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /accounts/{account_id}/r2-catalog/{bucket_name}/maintenance-configs
@required {account_id: str, bucket_name: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/r2-catalog/{bucket_name}/namespaces
@required {account_id: str, bucket_name: str}
@optional {page_token: str, page_size: int=100, parent: str, return_uuids: bool=false, return_details: bool=false}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/r2-catalog/{bucket_name}/namespaces/{namespace}/tables
@required {account_id: str, bucket_name: str, namespace: str}
@optional {page_token: str, page_size: int=100, return_uuids: bool=false, return_details: bool=false}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/r2-catalog/{bucket_name}/namespaces/{namespace}/tables/{table_name}/maintenance-configs
@required {account_id: str, bucket_name: str, namespace: str, table_name: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint POST /accounts/{account_id}/r2-catalog/{bucket_name}/namespaces/{namespace}/tables/{table_name}/maintenance-configs
@required {account_id: str, bucket_name: str, namespace: str, table_name: str}
@returns(200)
@errors {400, 401, 403, 404, 500}

@endpoint GET /accounts/{account_id}/r2/buckets
@required {account_id: str}
@optional {name_contains: str, start_after: str, per_page: num=20, order: str, direction: str(asc/desc), cursor: str, cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/r2/buckets
@required {account_id: str, name: str}
@optional {cf-r2-jurisdiction: str, locationHint: str(apac/eeur/enam/weur/wnam/oc), storageClass: str(Standard/InfrequentAccess)=Standard}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/r2/buckets/{bucket_name}
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str}
@returns(200) {errors: [map], messages: [str], result: map, success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}
@required {account_id: str, bucket_name: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/r2/buckets/{bucket_name}
@required {account_id: str, bucket_name: str, cf-r2-storage-class: any}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/r2/buckets/{bucket_name}/cors
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/cors
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/r2/buckets/{bucket_name}/cors
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str, rules: [map{allowed!: map, exposeHeaders: [str], id: str, maxAgeSeconds: num}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom
@required {account_id: str, bucket_name: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom
@required {account_id: str, bucket_name: str, domain: str, enabled: bool, zoneId: str}
@optional {cf-r2-jurisdiction: str, ciphers: [str], minTLS: str(1.0/1.1/1.2/1.3)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom/{domain}
@required {bucket_name: str, account_id: str, domain: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom/{domain}
@required {account_id: str, bucket_name: str, domain: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/r2/buckets/{bucket_name}/domains/custom/{domain}
@required {account_id: str, bucket_name: str, domain: str}
@optional {cf-r2-jurisdiction: str, ciphers: [str], enabled: bool, minTLS: str(1.0/1.1/1.2/1.3)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/domains/managed
@required {account_id: str, bucket_name: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/r2/buckets/{bucket_name}/domains/managed
@required {account_id: str, bucket_name: str, enabled: bool}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/lifecycle
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/r2/buckets/{bucket_name}/lifecycle
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str, rules: [map{abortMultipartUploadsTransition: map, conditions!: map, deleteObjectsTransition: map, enabled!: bool, id!: str, storageClassTransitions: [any]}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/local-uploads
@required {bucket_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/r2/buckets/{bucket_name}/local-uploads
@required {bucket_name: str, account_id: str, enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/lock
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/r2/buckets/{bucket_name}/lock
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str, rules: [map{condition!: any, enabled!: bool, id!: str, prefix: str}]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/r2/buckets/{bucket_name}/sippy
@required {bucket_name: str, account_id: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/buckets/{bucket_name}/sippy
@required {account_id: str, bucket_name: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/r2/buckets/{bucket_name}/sippy
@required {account_id: str, bucket_name: str}
@optional {cf-r2-jurisdiction: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/r2/metrics
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/r2/temp-access-credentials
@required {account_id: str, bucket: str, parentAccessKeyId: str, permission: str(admin-read-write/admin-read-only/object-read-write/object-read-only), ttlSeconds: num=900}
@optional {objects: [str], prefixes: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/realtime/kit/apps
@required {account_id: str}
@returns(200) {data: [map], success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/apps
@required {name: str}
@returns(200) {data: map{app: map{created_at: str, id: str, name: str}}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/analytics/daywise
@required {account_id: str, app_id: str}
@optional {start_date: str, end_date: str}
@returns(200) {data: map{recording_stats: map{day_stats: [map], recording_count: int, recording_minutes_consumed: num}, session_stats: map{day_stats: [map], sessions_count: int, sessions_minutes_consumed: num}}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/analytics/livestreams/overall
@required {account_id: str, app_id: str}
@optional {start_time: str(date-time), end_time: str(date-time)}
@returns(200) {data: map{count: int, total_ingest_seconds: int, total_viewer_seconds: int}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/livestreams
@optional {exclude_meetings: bool=false, per_page: int, page_no: int, status: str(LIVE/IDLE/ERRORED/INVOKED), start_time: str(date-time), end_time: str(date-time), sort_order: str(ASC/DSC)}
@returns(200) {data: map{created_at: str(date-time), disabled: str, id: str(uuid), ingest_server: str, meeting_id: str, name: str, paging: map{end_offset: int, start_offset: int, total_count: int}, playback_url: str, status: str, stream_key: str, updated_at: str(date-time)}, success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/livestreams
@optional {name: str}
@returns(201) {data: map{disabled: bool, id: str, ingest_server: str, meeting_id: str?, name: str, playback_url: str, status: str, stream_key: str}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/livestreams/sessions/{livestream-session-id}
@required {account_id: str, app_id: str, livestream-session-id: str}
@returns(200) {data: map{created_at: str(date-time), err_message: str, id: str, ingest_seconds: int, livestream_id: str, started_time: str, stopped_time: str, updated_at: str, viewer_seconds: int}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/livestreams/{livestream_id}
@required {account_id: str, app_id: str, livestream_id: str}
@optional {page_no: int, per_page: int}
@returns(200) {data: map{livestream: map{created_at: str, disabled: str, id: str, ingest_server: str, meeting_id: str, name: str, playback_url: str, status: str, stream_key: str, updated_at: str}, paging: map{end_offset: int, start_offset: int, total_count: int}, session: map{created_at: str(date-time), err_message: str, id: str, ingest_seconds: num, invoked_time: str(date-time), livestream_id: str, started_time: str(date-time), stopped_time: str(date-time), updated_at: str(date-time), viewer_seconds: num}}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/livestreams/{livestream_id}/active-livestream-session
@required {account_id: str, app_id: str, livestream_id: str}
@returns(200) {data: map{livestream: map{created_at: str(date-time), disabled: str, id: str, ingest_server: str, meeting_id: str, name: str, playback_url: str, status: str, stream_key: str, updated_at: str(date-time)}, session: map{created_at: str(date-time), err_message: str, id: str, ingest_seconds: str, invoked_time: str(date-time), livestream_id: str, started_time: str(date-time), stopped_time: str(date-time), updated_at: str(date-time), viewer_seconds: str}}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/meetings
@required {account_id: str, app_id: str}
@optional {page_no: num, per_page: num, start_time: str(date-time), end_time: str(date-time), search: str}
@returns(200)

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings
@required {account_id: str, app_id: str}
@optional {ai_config: map{summarization: map, transcription: map}, live_stream_on_start: bool=false, persist_chat: bool=false, record_on_start: bool=false, recording_config: map{audio_config: map, file_name_prefix: str, live_streaming_config: map, max_seconds: num, realtimekit_bucket_config: map, storage_config: map, video_config: map}, session_keep_alive_time_in_secs: num=60, summarize_on_end: bool=false, title: str}
@returns(201)

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
@required {meeting_id: str(uuid)}
@optional {name: str}
@returns(200)
@errors {500}

@endpoint PATCH /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
@required {meeting_id: str(uuid)}
@optional {ai_config: map{summarization: map, transcription: map}, live_stream_on_start: bool=false, persist_chat: bool=false, record_on_start: bool=false, session_keep_alive_time_in_secs: num=60, status: str(ACTIVE/INACTIVE), summarize_on_end: bool=false, title: str}
@returns(200)
@errors {500}

@endpoint PUT /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}
@required {meeting_id: str(uuid)}
@optional {ai_config: map{summarization: map, transcription: map}, live_stream_on_start: bool=false, persist_chat: bool=false, record_on_start: bool=false, recording_config: map{audio_config: map, file_name_prefix: str, live_streaming_config: map, max_seconds: num, realtimekit_bucket_config: map, storage_config: map, video_config: map}, session_keep_alive_time_in_secs: num=60, summarize_on_end: bool=false, title: str}
@returns(200)

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-livestream
@required {meeting_id: str(uuid)}
@returns(200) {data: map{created_at: str(date-time), disabled: str, id: str, ingest_server: str, meeting_id: str, name: str?, playback_url: str, status: str, stream_key: str, updated_at: str(date-time)}, success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-livestream/stop
@required {meeting_id: str(uuid)}
@returns(200) {data: map{message: str}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session
@required {meeting_id: str}
@returns(200) {data: map{associated_id: str, breakout_rooms: [map], created_at: str, ended_at: str, id: str, live_participants: num, max_concurrent_participants: num, meeting_display_name: str, meta: map, minutes_consumed: num, organization_id: str, started_at: str, status: str, type: str, updated_at: str}, success: bool}
@errors {404}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/kick
@required {account_id: str, app_id: str, meeting_id: str, custom_participant_ids: [str], participant_ids: [str]}
@returns(200) {data: map{action: str, participants: [map]}, success: bool}
@errors {404}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/kick-all
@required {account_id: str, app_id: str, meeting_id: str}
@returns(200) {data: map{action: str, kicked_participants_count: num}, success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/mute
@required {account_id: str, app_id: str, meeting_id: str, custom_participant_ids: [str], participant_ids: [str]}
@returns(200) {data: map{action: str, participants: [map]}, success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/mute-all
@required {account_id: str, app_id: str, meeting_id: str, allow_unmute: bool}
@returns(200) {data: map{action: str, muted_participants_count: num}, success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/active-session/poll
@required {account_id: str, app_id: str, meeting_id: str, options: [str], question: str}
@optional {anonymous: bool, hide_votes: bool}
@returns(201) {data: map{action: str, poll: map{anonymous: bool, created_by: str, hide_votes: bool, id: str, options: [map], question: str, voted: [str]}}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/livestream
@required {meeting_id: str(uuid)}
@optional {page_no: int, per_page: int}
@returns(200) {data: map{livestreams: [map], paging: map{end_offset: int, start_offset: int, total_count: int}, sessions: map{created_at: str(date-time), err_message: str, id: str, ingest_seconds: str, invoked_time: str(date-time), livestream_id: str, started_time: str(date-time), stopped_time: str(date-time), updated_at: str(date-time)}}, success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/livestreams
@required {meeting_id: str(uuid)}
@optional {name: str, video_config: map{height: int, width: int}}
@returns(201) {data: map{id: str, ingest_server: str, playback_url: str, status: str, stream_key: str}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants
@required {account_id: str, app_id: str, meeting_id: str(uuid)}
@optional {page_no: num, per_page: num}
@returns(200)
@errors {500}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants
@required {account_id: str, app_id: str, meeting_id: str(uuid), custom_participant_id: str, preset_name: str=group_call_host}
@optional {name: str, picture: str(uri)}
@returns(201)
@errors {500}

@endpoint DELETE /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
@required {meeting_id: str(uuid), participant_id: str}
@returns(200)
@errors {500}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
@required {meeting_id: str(uuid), participant_id: str}
@returns(200)
@errors {500}

@endpoint PATCH /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}
@required {meeting_id: str(uuid), participant_id: str}
@optional {name: str, picture: str(uri), preset_name: str}
@returns(200)
@errors {500}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/meetings/{meeting_id}/participants/{participant_id}/token
@required {account_id: str, app_id: str, meeting_id: str(uuid), participant_id: str}
@returns(200)
@errors {500}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/presets
@required {account_id: str, app_id: str}
@optional {per_page: num, page_no: num}
@returns(200)

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/presets
@required {account_id: str, app_id: str, config: map{max_screenshare_count!: int, max_video_streams!: map, media!: map, view_type!: str}, name: str, ui: map{config_diff: map, design_tokens!: map}}
@optional {permissions: map{accept_waiting_requests!: bool, can_accept_production_requests!: bool, can_change_participant_permissions!: bool, can_edit_display_name!: bool, can_livestream!: bool, can_record!: bool, can_spotlight!: bool, chat!: map, connected_meetings!: map, disable_participant_audio!: bool, disable_participant_screensharing!: bool, disable_participant_video!: bool, hidden_participant!: bool, is_recorder: bool, kick_participant!: bool, media!: map, pin_participant!: bool, plugins!: map, polls!: map, recorder_type!: str, show_participant_list!: bool, waiting_room_type!: str}}
@returns(200)

@endpoint DELETE /accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
@required {account_id: str, app_id: str, preset_id: str}
@returns(200)

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
@required {account_id: str, app_id: str, preset_id: str}
@returns(200)

@endpoint PATCH /accounts/{account_id}/realtime/kit/{app_id}/presets/{preset_id}
@required {account_id: str, app_id: str, preset_id: str}
@optional {config: map{max_screenshare_count: int, max_video_streams: map, media: map, view_type: str}, name: str, permissions: map{accept_waiting_requests: bool, can_accept_production_requests: bool, can_change_participant_permissions: bool, can_edit_display_name: bool, can_livestream: bool, can_record: bool, can_spotlight: bool, chat: map, connected_meetings: map, disable_participant_audio: bool, disable_participant_screensharing: bool, disable_participant_video: bool, hidden_participant: bool, is_recorder: bool, kick_participant: bool, media: map, pin_participant: bool, plugins: map, polls: map, recorder_type: str, show_participant_list: bool, waiting_room_type: str}, ui: map{config_diff: map, design_tokens: map}}
@returns(200)

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/recordings
@required {account_id: str, app_id: str}
@optional {meeting_id: str(uuid), page_no: num, per_page: num, expired: bool, search: str, sort_by: str, sort_order: str(ASC/DESC), start_time: str(date-time), end_time: str(date-time), status: [str]}
@returns(200)
@returns(201)

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/recordings
@required {account_id: str, app_id: str}
@optional {allow_multiple_recordings: bool=false, audio_config: map{channel: str, codec: str, export_file: bool}, file_name_prefix: str, interactive_config: map{type: str}, max_seconds: int, meeting_id: str(uuid), realtimekit_bucket_config: map{enabled!: bool}, rtmp_out_config: map{rtmp_url: str(uri)}, storage_config: map{access_key: str, auth_method: str, bucket: str, host: str, password: str, path: str, port: num, private_key: str, region: str, secret: str, type!: str, username: str}, url: str(uri), video_config: map{codec: str, export_file: bool, height: int, watermark: map, width: int}}
@returns(200)

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/recordings/active-recording/{meeting_id}
@required {account_id: str, app_id: str, meeting_id: str}
@returns(200)
@errors {404}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/recordings/track
@required {account_id: str, app_id: str, layers: map, meeting_id: str}
@optional {max_seconds: num}
@returns(200)

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/recordings/{recording_id}
@required {account_id: str, app_id: str, recording_id: str}
@returns(200)

@endpoint PUT /accounts/{account_id}/realtime/kit/{app_id}/recordings/{recording_id}
@required {account_id: str, app_id: str, recording_id: str, action: str(stop/pause/resume)}
@returns(200)

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions
@required {account_id: str, app_id: str}
@optional {page_no: num, per_page: num, sort_by: str(minutesConsumed/createdAt), sort_order: str(ASC/DESC), start_time: str(date-time), end_time: str(date-time), participants: str, status: str(LIVE/ENDED), search: str, associated_id: str}
@returns(200) {data: map{sessions: [map]}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/peer-report/{peer_id}
@required {account_id: str, app_id: str, peer_id: str}
@optional {filters: str(device_info/ip_information/precall_network_information/events/quality_stats)}
@returns(200) {data: map{participant: map{created_at: str, custom_participant_id: str, display_name: str, duration: num, id: str, joined_at: str, left_at: str, peer_report: map{metadata: map, quality: map}, peer_stats: map{device_info: map, events: [map], ip_information: map, precall_network_information: map}, quality_stats: map{audio_bandwidth: int, audio_stats: [map], average_quality: int, end: str?, first_audio_packet_received: str, first_video_packet_received: str, last_audio_packet_received: str, last_video_packet_received: str, peer_ids: [str], start: str?, total_audio_packets: int, total_audio_packets_lost: int, total_video_packets: int, total_video_packets_lost: int, video_bandwidth: int, video_stats: [map]}, role: str, updated_at: str, user_id: str}}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}
@required {account_id: str, app_id: str, session_id: str}
@optional {include_breakout_rooms: bool=false}
@returns(200) {data: map{session: map{associated_id: str, breakout_rooms: [map], created_at: str, ended_at: str, id: str, live_participants: num, max_concurrent_participants: num, meeting_display_name: str, meta: map, minutes_consumed: num, organization_id: str, started_at: str, status: str, type: str, updated_at: str}}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/chat
@required {account_id: str, app_id: str, session_id: str}
@returns(200) {data: map{chat_download_url: str, chat_download_url_expiry: str}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/livestream-sessions
@required {account_id: str, app_id: str, session_id: str}
@optional {per_page: num, page_no: num}
@returns(200) {data: map{created_at: str(date-time), err_message: str, id: str, ingest_seconds: num, invoked_time: str?, livestream_id: str, paging: map{end_offset: num, start_offset: num, total_count: num}, stopped_time: str(date-time), updated_at: str(date-time), viewer_seconds: num}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/participants
@required {account_id: str, app_id: str, session_id: str}
@optional {search: str, page_no: num, per_page: num, sort_order: str(ASC/DESC), sort_by: str(joinedAt/duration), include_peer_events: bool=false, view: str(raw/consolidated)=raw}
@returns(200) {data: map{participants: [map]}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/participants/{participant_id}
@required {account_id: str, app_id: str, participant_id: str, session_id: str}
@optional {filters: str(device_info/ip_information/precall_network_information/events/quality_stats), include_peer_events: bool=false}
@returns(200) {data: map{participant: any}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/summary
@required {account_id: str, app_id: str, session_id: str}
@returns(200) {data: map{sessionId: str, summaryDownloadUrl: str, summaryDownloadUrlExpiry: str}, success: bool}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/summary
@required {account_id: str, app_id: str, session_id: str}
@returns(2XX) {data: map{message: str, success: bool}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/sessions/{session_id}/transcript
@required {account_id: str, app_id: str, session_id: str}
@returns(200) {data: map{sessionId: str, transcript_download_url: str, transcript_download_url_expiry: str}, success: bool}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/webhooks
@required {account_id: str, app_id: str}
@returns(200) {data: [map], success: bool}
@errors {401}

@endpoint POST /accounts/{account_id}/realtime/kit/{app_id}/webhooks
@required {account_id: str, app_id: str, events: [str], name: str, url: str(uri)}
@optional {enabled: bool=true}
@returns(201) {data: map{created_at: str(date-time), enabled: bool, events: [str], id: str(uuid), name: str, updated_at: str(date-time), url: str(uri)}, success: bool}
@errors {400, 401}

@endpoint DELETE /accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
@required {account_id: str, app_id: str, webhook_id: str}
@returns(200) {data: map{created_at: str(date-time), enabled: bool, events: [str], id: str(uuid), name: str, updated_at: str(date-time), url: str(uri)}, success: bool}
@errors {400, 401}

@endpoint GET /accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
@required {account_id: str, app_id: str, webhook_id: str}
@returns(200) {data: map{created_at: str(date-time), enabled: bool, events: [str], id: str(uuid), name: str, updated_at: str(date-time), url: str(uri)}, success: bool}
@errors {400, 401}

@endpoint PATCH /accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
@required {account_id: str, app_id: str, webhook_id: str}
@optional {enabled: bool=true, events: [str], name: str, url: str(uri)}
@returns(200) {data: map{created_at: str(date-time), enabled: bool, events: [str], id: str(uuid), name: str, updated_at: str(date-time), url: str(uri)}, success: bool}
@errors {400, 401}

@endpoint PUT /accounts/{account_id}/realtime/kit/{app_id}/webhooks/{webhook_id}
@required {account_id: str, app_id: str, webhook_id: str, events: [str], name: str, url: str(uri)}
@optional {enabled: bool=true}
@returns(200) {data: map{created_at: str(date-time), enabled: bool, events: [str], id: str(uuid), name: str, updated_at: str(date-time), url: str(uri)}, success: bool}
@errors {400, 401}

@endpoint GET /accounts/{account_id}/registrar/domains
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/registrar/domains/{domain_name}
@required {domain_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/registrar/domains/{domain_name}
@required {domain_name: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/request-tracer/trace
@required {account_id: str, method: str, url: str}
@optional {body: map{base64: str, json: map, plain_text: str}, context: map{bot_score: int, geoloc: map, skip_challenge: bool, threat_score: int}, cookies: map, headers: map, protocol: str, skip_response: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/roles
@required {account_id: any}
@optional {page: num=1, per_page: num=20}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/roles/{role_id}
@required {role_id: str, account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rules/lists
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/rules/lists
@required {account_id: str, kind: any(ip/redirect/hostname/asn), name: str}
@optional {description: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rules/lists/bulk_operations/{operation_id}
@required {operation_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/rules/lists/{list_id}
@required {list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rules/lists/{list_id}
@required {list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/rules/lists/{list_id}
@required {list_id: str, account_id: str}
@optional {description: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/rules/lists/{list_id}/items
@required {list_id: str, account_id: str}
@optional {items: [map{id!: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rules/lists/{list_id}/items
@required {list_id: str, account_id: str}
@optional {cursor: str, per_page: int, search: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/rules/lists/{list_id}/items
@required {list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/rules/lists/{list_id}/items
@required {list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rules/lists/{list_id}/items/{item_id}
@required {item_id: str, list_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets
@required {account_id: str}
@optional {cursor: str, per_page: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/rulesets
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint
@required {ruleset_phase: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint
@required {ruleset_phase: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions
@required {ruleset_phase: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions/{ruleset_version}
@required {ruleset_version: str, ruleset_phase: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/rulesets/{ruleset_id}
@required {ruleset_id: str, account_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets/{ruleset_id}
@required {ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/rulesets/{ruleset_id}
@required {ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/rulesets/{ruleset_id}/rules
@required {ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/rulesets/{ruleset_id}/rules/{rule_id}
@required {rule_id: str, ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/rulesets/{ruleset_id}/rules/{rule_id}
@required {rule_id: str, ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets/{ruleset_id}/versions
@required {ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/rulesets/{ruleset_id}/versions/{ruleset_version}
@required {ruleset_version: str, ruleset_id: str, account_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets/{ruleset_id}/versions/{ruleset_version}
@required {ruleset_version: str, ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rulesets/{ruleset_id}/versions/{ruleset_version}/by_tag/{rule_tag}
@required {rule_tag: str, ruleset_version: str, ruleset_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/rum/site_info
@required {account_id: str}
@optional {auto_install: bool, host: str, zone_tag: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rum/site_info/list
@required {account_id: str}
@optional {per_page: num, page: num, order_by: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/rum/site_info/{site_id}
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rum/site_info/{site_id}
@required {account_id: str, site_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/rum/site_info/{site_id}
@required {account_id: str, site_id: str}
@optional {auto_install: bool, enabled: bool, host: str, lite: bool, zone_tag: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/rum/v2/{ruleset_id}/rule
@required {account_id: str, ruleset_id: str}
@optional {host: str, inclusive: bool, is_paused: bool, paths: [str]}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/rum/v2/{ruleset_id}/rule/{rule_id}
@required {account_id: str, ruleset_id: str, rule_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/rum/v2/{ruleset_id}/rule/{rule_id}
@required {account_id: str, ruleset_id: str, rule_id: str}
@optional {host: str, inclusive: bool, is_paused: bool, paths: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/rum/v2/{ruleset_id}/rules
@required {account_id: str, ruleset_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/rum/v2/{ruleset_id}/rules
@required {account_id: str, ruleset_id: str}
@optional {delete_rules: [str], rules: [map{host: str, id: str, inclusive: bool, is_paused: bool, paths: [str]}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/Groups
@required {account_id: any}
@optional {startIndex: int=1, count: int, filter: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/scim/v2/Groups
@required {account_id: any}
@returns(201)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/scim/v2/Groups/{group_id}
@required {account_id: any, group_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/Groups/{group_id}
@required {account_id: any, group_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/scim/v2/Groups/{group_id}
@required {account_id: any, group_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/ResourceTypes
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/ResourceTypes/{resource_type_id}
@required {account_id: any, resource_type_id: str(User/Group)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/Schemas
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/Schemas/{schema_id}
@required {account_id: any, schema_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/ServiceProviderConfig
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/Users
@required {account_id: any}
@optional {startIndex: int=1, count: int, filter: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/scim/v2/Users
@required {account_id: any}
@returns(201)
@errors {4XX}

@endpoint GET /accounts/{account_id}/scim/v2/Users/{user_id}
@required {account_id: any, user_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/scim/v2/Users/{user_id}
@required {account_id: any, user_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/scim/v2/Users/{user_id}
@required {account_id: any, user_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secondary_dns/acls
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/secondary_dns/acls
@required {account_id: str, ip_range: str, name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/secondary_dns/acls/{acl_id}
@required {acl_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secondary_dns/acls/{acl_id}
@required {acl_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/secondary_dns/acls/{acl_id}
@required {acl_id: str, account_id: str, id: str, ip_range: str, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secondary_dns/peers
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/secondary_dns/peers
@required {account_id: str, name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/secondary_dns/peers/{peer_id}
@required {peer_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secondary_dns/peers/{peer_id}
@required {peer_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/secondary_dns/peers/{peer_id}
@required {peer_id: str, account_id: str, id: str, name: str}
@optional {ip: str, ixfr_enable: bool, port: num, tsig_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secondary_dns/tsigs
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/secondary_dns/tsigs
@required {account_id: str, algo: str, id: str, name: str, secret: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/secondary_dns/tsigs/{tsig_id}
@required {tsig_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secondary_dns/tsigs/{tsig_id}
@required {tsig_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/secondary_dns/tsigs/{tsig_id}
@required {tsig_id: str, account_id: str, algo: str, id: str, name: str, secret: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secrets_store/quota
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secrets_store/stores
@required {account_id: str}
@optional {direction: str(asc/desc)=desc, page: int, per_page: int, order: str(name/comment/created/modified/status)=created}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/secrets_store/stores
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/secrets_store/stores/{store_id}
@required {account_id: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secrets_store/stores/{store_id}
@required {account_id: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/secrets_store/stores/{store_id}/secrets
@required {account_id: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secrets_store/stores/{store_id}/secrets
@required {account_id: str, store_id: str}
@optional {direction: str(asc/desc)=desc, page: int, per_page: int, search: str, order: str(name/comment/created/modified/status)=created, scopes: [[str]]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/secrets_store/stores/{store_id}/secrets
@required {account_id: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/secrets_store/stores/{store_id}/secrets/{secret_id}
@required {account_id: str, store_id: str, secret_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/secrets_store/stores/{store_id}/secrets/{secret_id}
@required {account_id: str, store_id: str, secret_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/secrets_store/stores/{store_id}/secrets/{secret_id}
@required {account_id: str, store_id: str, secret_id: str}
@optional {comment: str, scopes: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/secrets_store/stores/{store_id}/secrets/{secret_id}/duplicate
@required {account_id: str, store_id: str, secret_id: str, name: str, scopes: [str]}
@optional {comment: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/security-center/insights
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str], page: any=1, per_page: any=25}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/security-center/insights/class
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/security-center/insights/severity
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/security-center/insights/type
@required {account_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/security-center/insights/{issue_id}/context
@required {account_id: str, issue_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/security-center/insights/{issue_id}/dismiss
@required {account_id: str, issue_id: str}
@optional {dismiss: bool=true}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/shares
@required {account_id: str}
@optional {status: str, kind: str, target_type: str, resource_types: [str], order: str(name/created)=created, direction: str(asc/desc)=asc, page: int, per_page: int, include_resources: bool, include_recipient_counts: bool}
@returns(200)
@errors {4XX, 5XX}

@endpoint POST /accounts/{account_id}/shares
@required {account_id: str, name: str, recipients: [map{account_id: str, organization_id: str}], resources: [map{meta!: map, resource_account_id!: str, resource_id!: str, resource_type!: str}]}
@returns(201)
@errors {4XX, 5XX}

@endpoint DELETE /accounts/{account_id}/shares/{share_id}
@required {account_id: str, share_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/shares/{share_id}
@required {account_id: str, share_id: str}
@optional {include_resources: bool, include_recipient_counts: bool}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /accounts/{account_id}/shares/{share_id}
@required {account_id: str, share_id: str, name: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/shares/{share_id}/recipients
@required {account_id: str, share_id: str}
@optional {include_resources: bool, page: int, per_page: int}
@returns(200)
@errors {4XX, 5XX}

@endpoint POST /accounts/{account_id}/shares/{share_id}/recipients
@required {account_id: str, share_id: str}
@optional {account_id: str, organization_id: str}
@returns(201)
@errors {4XX, 5XX}

@endpoint PUT /accounts/{account_id}/shares/{share_id}/recipients
@required {account_id: str, share_id: str}
@returns(204)
@errors {4XX, 5XX}

@endpoint DELETE /accounts/{account_id}/shares/{share_id}/recipients/{recipient_id}
@required {account_id: str, share_id: str, recipient_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/shares/{share_id}/recipients/{recipient_id}
@required {account_id: str, share_id: str, recipient_id: str}
@optional {include_resources: bool}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/shares/{share_id}/resources
@required {account_id: str, share_id: str}
@optional {status: str, resource_type: str, page: int, per_page: int}
@returns(200)
@errors {4XX, 5XX}

@endpoint POST /accounts/{account_id}/shares/{share_id}/resources
@required {account_id: str, share_id: str, meta: map, resource_account_id: str, resource_id: str, resource_type: str(custom-ruleset/gateway-policy/gateway-destination-ip/gateway-block-page-settings/gateway-extended-email-matching)}
@returns(201)
@errors {4XX, 5XX}

@endpoint DELETE /accounts/{account_id}/shares/{share_id}/resources/{resource_id}
@required {account_id: str, share_id: str, resource_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/shares/{share_id}/resources/{resource_id}
@required {account_id: str, share_id: str, resource_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /accounts/{account_id}/shares/{share_id}/resources/{resource_id}
@required {account_id: str, share_id: str, resource_id: str, meta: map}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/slurper/jobs
@required {account_id: str}
@optional {limit: int, offset: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/slurper/jobs
@required {account_id: str}
@optional {overwrite: bool=true, source: map, target: map{bucket!: str, jurisdiction: str, secret!: map, vendor!: str}}
@returns(201)
@errors {409, 4XX}

@endpoint PUT /accounts/{account_id}/slurper/jobs/abortAll
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/slurper/jobs/{job_id}
@required {account_id: str, job_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/slurper/jobs/{job_id}/abort
@required {account_id: str, job_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/slurper/jobs/{job_id}/logs
@required {account_id: str, job_id: str}
@optional {limit: int, offset: int}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/slurper/jobs/{job_id}/pause
@required {account_id: str, job_id: str}
@returns(200)
@errors {409, 4XX}

@endpoint GET /accounts/{account_id}/slurper/jobs/{job_id}/progress
@required {account_id: str, job_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/slurper/jobs/{job_id}/resume
@required {account_id: str, job_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/slurper/source/connectivity-precheck
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/slurper/target/connectivity-precheck
@required {account_id: str, bucket: str, secret: map{accessKeyId!: str, secretAccessKey!: str}, vendor: str}
@optional {jurisdiction: str(default/eu/fedramp)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/sso_connectors
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/sso_connectors
@required {account_id: any, email_domain: str}
@optional {begin_verification: bool=true, use_fedramp_language: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/sso_connectors/{sso_connector_id}
@required {account_id: any, sso_connector_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/sso_connectors/{sso_connector_id}
@required {account_id: any, sso_connector_id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/sso_connectors/{sso_connector_id}
@required {account_id: any, sso_connector_id: any}
@optional {enabled: bool, use_fedramp_language: bool=false}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/sso_connectors/{sso_connector_id}/begin_verification
@required {account_id: any, sso_connector_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/storage/kv/namespaces
@required {account_id: str}
@optional {page: num=1, per_page: num=20, order: str(id/title), direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/storage/kv/namespaces
@required {account_id: str, title: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/storage/kv/namespaces/{namespace_id}
@required {namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/storage/kv/namespaces/{namespace_id}
@required {namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/storage/kv/namespaces/{namespace_id}
@required {namespace_id: str, account_id: str, title: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk
@required {namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk
@required {namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/delete
@required {namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/bulk/get
@required {namespace_id: str, account_id: str, keys: [str]}
@optional {type: str(text/json)=text, withMetadata: bool=false}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/keys
@required {namespace_id: str, account_id: str}
@optional {limit: num=1000, prefix: str, cursor: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/metadata/{key_name}
@required {key_name: str, namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/values/{key_name}
@required {key_name: str, namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/values/{key_name}
@required {key_name: str, namespace_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/storage/kv/namespaces/{namespace_id}/values/{key_name}
@required {key_name: str, namespace_id: str, account_id: str}
@optional {expiration: num, expiration_ttl: num}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream
@required {account_id: str}
@optional {status: str, creator: str, type: str, asc: bool, video_name: str, search: str, start: str(date-time), end: str(date-time), include_counts: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream
@required {Tus-Resumable: str, Upload-Length: int, account_id: str}
@optional {Upload-Creator: str, Upload-Metadata: str, direct_user: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/clip
@required {account_id: str, clippedFromVideoUID: str, endTimeSeconds: int, startTimeSeconds: int}
@optional {allowedOrigins: [str], creator: str, maxDurationSeconds: int, requireSignedURLs: bool=false, thumbnailTimestampPct: num=0, watermark: map{uid: str}}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/copy
@required {account_id: str, url: str(uri)}
@optional {Upload-Creator: str, allowedOrigins: [str], creator: str, meta: map, requireSignedURLs: bool=false, scheduledDeletion: str(date-time), thumbnailTimestampPct: num=0, watermark: map{uid: str}}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/direct_upload
@required {account_id: str, maxDurationSeconds: int}
@optional {Upload-Creator: str, allowedOrigins: [str], creator: str, expiry: str(date-time)=Now + 30 minutes, meta: map, requireSignedURLs: bool=false, scheduledDeletion: str(date-time), thumbnailTimestampPct: num=0, watermark: map{uid: str}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/keys
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/keys
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/keys/{identifier}
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/live_inputs
@required {account_id: str}
@optional {include_counts: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/live_inputs
@required {account_id: str}
@optional {defaultCreator: str, deleteRecordingAfterDays: num, enabled: bool=true, meta: map, recording: map{allowedOrigins: [str], hideLiveViewerCount: bool, mode: str, requireSignedURLs: bool, timeoutSeconds: int}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/live_inputs/{live_input_identifier}
@required {live_input_identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/live_inputs/{live_input_identifier}
@required {live_input_identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/stream/live_inputs/{live_input_identifier}
@required {live_input_identifier: str, account_id: str}
@optional {defaultCreator: str, deleteRecordingAfterDays: num, enabled: bool=true, meta: map, recording: map{allowedOrigins: [str], hideLiveViewerCount: bool, mode: str, requireSignedURLs: bool, timeoutSeconds: int}}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/disable
@required {live_input_identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/enable
@required {live_input_identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs
@required {live_input_identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs
@required {live_input_identifier: str, account_id: str, streamKey: str, url: str}
@optional {enabled: bool=true}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs/{output_identifier}
@required {output_identifier: str, live_input_identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/stream/live_inputs/{live_input_identifier}/outputs/{output_identifier}
@required {output_identifier: str, live_input_identifier: str, account_id: str, enabled: bool=true}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/storage-usage
@required {account_id: str}
@optional {creator: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/watermarks
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/watermarks
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/watermarks/{identifier}
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/watermarks/{identifier}
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/webhook
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/webhook
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/stream/webhook
@required {account_id: str, notificationUrl: str(uri)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/{identifier}
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/{identifier}
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/{identifier}
@required {identifier: str, account_id: str}
@optional {allowedOrigins: [str], creator: str, maxDurationSeconds: int, meta: map, requireSignedURLs: bool=false, scheduledDeletion: str(date-time), thumbnailTimestampPct: num=0, uploadExpiry: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/{identifier}/audio
@required {account_id: str, identifier: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/{identifier}/audio/copy
@required {account_id: str, identifier: str, label: str}
@optional {url: str(uri)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/{identifier}/audio/{audio_identifier}
@required {account_id: str, identifier: str, audio_identifier: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/stream/{identifier}/audio/{audio_identifier}
@required {account_id: str, identifier: str, audio_identifier: str}
@optional {default: bool=false, label: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/{identifier}/captions
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/{identifier}/captions/{language}
@required {language: str, identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/{identifier}/captions/{language}
@required {language: str, identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/stream/{identifier}/captions/{language}
@required {language: str, identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/{identifier}/captions/{language}/generate
@required {language: str, identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/{identifier}/captions/{language}/vtt
@required {language: str, identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/{identifier}/downloads
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/{identifier}/downloads
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/{identifier}/downloads
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/stream/{identifier}/downloads/{download_type}
@required {identifier: str, account_id: str, download_type: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/{identifier}/downloads/{download_type}
@required {identifier: str, account_id: str, download_type: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/stream/{identifier}/embed
@required {identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/stream/{identifier}/token
@required {identifier: str, account_id: str}
@optional {accessRules: [map{action: str, country: [str], ip: [str], type: str}], downloadable: bool=false, exp: int, id: str, nbf: int, pem: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/subscriptions
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/subscriptions
@required {account_id: str}
@optional {app: any, component_values: [map{default: num, name: str, price: num, value: num}], currency: str, current_period_end: str(date-time), current_period_start: str(date-time), frequency: str(weekly/monthly/quarterly/yearly), id: str, price: num, rate_plan: map{currency: str, externally_managed: bool, id: str, is_contract: bool, public_name: str, scope: str, sets: [str]}, state: str(Trial/Provisioned/Paid/AwaitingPayment/Cancelled/Failed/Expired), zone: map{id: str, name: str}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/subscriptions/{subscription_identifier}
@required {subscription_identifier: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/subscriptions/{subscription_identifier}
@required {subscription_identifier: str, account_id: str}
@optional {app: any, component_values: [map{default: num, name: str, price: num, value: num}], currency: str, current_period_end: str(date-time), current_period_start: str(date-time), frequency: str(weekly/monthly/quarterly/yearly), id: str, price: num, rate_plan: map{currency: str, externally_managed: bool, id: str, is_contract: bool, public_name: str, scope: str, sets: [str]}, state: str(Trial/Provisioned/Paid/AwaitingPayment/Cancelled/Failed/Expired), zone: map{id: str, name: str}}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/tags
@required {account_id: any}
@optional {If-Match: str}
@returns(204)
@errors {412, 4XX, 5XX}

@endpoint GET /accounts/{account_id}/tags
@required {account_id: any, resource_id: str, resource_type: str}
@optional {worker_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /accounts/{account_id}/tags
@required {account_id: any}
@optional {If-Match: str}
@returns(200)
@errors {412, 4XX, 5XX}

@endpoint GET /accounts/{account_id}/tags/keys
@required {account_id: any}
@optional {cursor: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/tags/resources
@required {account_id: any}
@optional {type: [str], tag: [str], cursor: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/tags/values/{tag_key}
@required {account_id: any, tag_key: str}
@optional {type: str, cursor: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /accounts/{account_id}/teamnet/routes
@required {account_id: str}
@optional {comment: str, is_deleted: bool, network_subset: any, network_superset: any, existed_at: str(url-encoded-date-time), tunnel_id: str(uuid), route_id: str, tun_types: [str], virtual_network_id: str(uuid), per_page: num, page: num}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/teamnet/routes
@required {account_id: str, network: str, tunnel_id: str(uuid)}
@optional {comment: str=, virtual_network_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/teamnet/routes/ip/{ip}
@required {ip: str, account_id: str}
@optional {virtual_network_id: str(uuid), default_virtual_network_fallback: bool=true}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/teamnet/routes/network/{ip_network_encoded}
@required {ip_network_encoded: str, account_id: str}
@optional {virtual_network_id: str(uuid), tun_type: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/teamnet/routes/network/{ip_network_encoded}
@required {ip_network_encoded: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/teamnet/routes/network/{ip_network_encoded}
@required {ip_network_encoded: str, account_id: str, tunnel_id: str(uuid)}
@optional {comment: str=, virtual_network_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/teamnet/routes/{route_id}
@required {route_id: str, account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/teamnet/routes/{route_id}
@required {account_id: str, route_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/teamnet/routes/{route_id}
@required {route_id: str, account_id: str}
@optional {comment: str=, network: str, tunnel_id: str(uuid), virtual_network_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/teamnet/virtual_networks
@required {account_id: str}
@optional {id: str(uuid), name: str, is_default: bool, is_default_network: bool, is_deleted: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/teamnet/virtual_networks
@required {account_id: str, name: str}
@optional {comment: str=, is_default: bool, is_default_network: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/teamnet/virtual_networks/{virtual_network_id}
@required {virtual_network_id: str(uuid), account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/teamnet/virtual_networks/{virtual_network_id}
@required {account_id: str, virtual_network_id: str(uuid)}
@optional {comment: str=, is_default_network: bool, name: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/teamnet/virtual_networks/{virtual_network_id}
@required {account_id: str, virtual_network_id: str(uuid)}
@optional {comment: str=, is_default_network: bool=false, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/tokens
@required {account_id: any}
@optional {page: num=1, per_page: num=20, direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/tokens
@required {account_id: any, name: str, policies: [map{effect!: str, id!: str, permission_groups!: [map], resources!: any}]}
@optional {condition: map{request_ip: map}, expires_on: str(date-time), not_before: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/tokens/permission_groups
@required {account_id: any}
@optional {name: str, scope: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/tokens/verify
@required {account_id: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/tokens/{token_id}
@required {account_id: any, token_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/tokens/{token_id}
@required {account_id: any, token_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/tokens/{token_id}
@required {account_id: any, token_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/tokens/{token_id}/value
@required {account_id: any, token_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/tunnels
@required {account_id: str}
@optional {name: str, is_deleted: bool, existed_at: str(url-encoded-date-time), uuid: str(uuid), was_active_at: str(date-time), was_inactive_at: str(date-time), include_prefix: str, exclude_prefix: str, tun_types: [str], status: str, per_page: num, page: num}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/urlscanner/response/{response_id}
@required {response_id: str, account_id: str}
@returns(200)
@errors {400, 404}

@endpoint GET /accounts/{account_id}/urlscanner/scan
@required {account_id: str}
@optional {scan_id: str(uuid), limit: int, next_cursor: str, date_start: str(date-time), date_end: str(date-time), url: str, hostname: str, path: str, ip: str, hash: str, page_url: str, page_hostname: str, page_path: str, page_asn: str, page_ip: str, account_scans: bool, is_malicious: bool}
@returns(200) {errors: [map], messages: [map], result: map{tasks: [map]}, success: bool}
@errors {400}

@endpoint POST /accounts/{account_id}/urlscanner/scan
@required {account_id: str, url: str}
@optional {country: str(AF/AL/DZ/AD/AO/AG/AR/AM/AU/AT/AZ/BH/BD/BB/BY/BE/BZ/BJ/BM/BT/BO/BA/BW/BR/BN/BG/BF/BI/KH/CM/CA/CV/KY/CF/TD/CL/CN/CO/KM/CG/CR/CI/HR/CU/CY/CZ/CD/DK/DJ/DM/DO/EC/EG/SV/GQ/ER/EE/SZ/ET/FJ/FI/FR/GA/GE/DE/GH/GR/GL/GD/GT/GN/GW/GY/HT/HN/HU/IS/IN/ID/IR/IQ/IE/IL/IT/JM/JP/JO/KZ/KE/KI/KW/KG/LA/LV/LB/LS/LR/LY/LI/LT/LU/MO/MG/MW/MY/MV/ML/MR/MU/MX/FM/MD/MC/MN/MS/MA/MZ/MM/NA/NR/NP/NL/NZ/NI/NE/NG/KP/MK/NO/OM/PK/PS/PA/PG/PY/PE/PH/PL/PT/QA/RO/RU/RW/SH/KN/LC/VC/WS/SM/ST/SA/SN/RS/SC/SL/SK/SI/SB/SO/ZA/KR/SS/ES/LK/SD/SR/SE/CH/SY/TW/TJ/TZ/TH/BS/GM/TL/TG/TO/TT/TN/TR/TM/UG/UA/AE/GB/US/UY/UZ/VU/VE/VN/YE/ZM/ZW), customHeaders: map, screenshotsResolutions: [str]=desktop, visibility: str(Public/Unlisted)=Public}
@returns(200) {errors: [map], messages: [map], result: map{time: str(date-time), url: str, uuid: str(uuid), visibility: str}, success: bool}
@errors {400, 409, 429}

@endpoint GET /accounts/{account_id}/urlscanner/scan/{scan_id}
@required {scan_id: str(uuid), account_id: str}
@optional {full: bool}
@returns(200) {errors: [map], messages: [map], result: map{scan: map{asns: map{asn: map}, certificates: [map], domains: map{example.com: map}, geo: map{continents: [str], locations: [str]}, ips: map{ip: map}, links: map{link: map}, meta: map{processors: map}, page: map{asn: str, asnLocationAlpha2: str, asnname: str, console: [map], cookies: [map], country: str, countryLocationAlpha2: str, domain: str, headers: [map], ip: str, js: map, securityViolations: [map], status: num, subdivision1Name: str, subdivision2name: str, url: str}, performance: [map], task: map{clientLocation: str, clientType: str, effectiveUrl: str, errors: [map], scannedFrom: map, status: str, success: bool, time: str, timeEnd: str, url: str, uuid: str, visibility: str}, verdicts: map{overall: map}}}, success: bool}
@returns(202) {errors: [map], messages: [map], result: map{scan: map{task: map{effectiveUrl: str, errors: [map], location: str, region: str, status: str, success: bool, time: str, url: str, uuid: str, visibility: str}}}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/urlscanner/scan/{scan_id}/har
@required {scan_id: str(uuid), account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{har: map{log: map{creator: map, entries: [map], pages: [map], version: str}}}, success: bool}
@returns(202) {errors: [map], messages: [map], result: map{scan: map{task: map{effectiveUrl: str, errors: [map], location: str, region: str, status: str, success: bool, time: str, url: str, uuid: str, visibility: str}}}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/urlscanner/scan/{scan_id}/screenshot
@required {scan_id: str(uuid), account_id: str}
@optional {resolution: str(desktop/mobile/tablet)=desktop}
@returns(200)
@returns(202) {errors: [map], messages: [map], result: map{scan: map{task: map{effectiveUrl: str, errors: [map], location: str, region: str, status: str, success: bool, time: str, url: str, uuid: str, visibility: str}}}, success: bool}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/urlscanner/v2/bulk
@required {account_id: str}
@returns(200)
@errors {400, 429}

@endpoint GET /accounts/{account_id}/urlscanner/v2/dom/{scan_id}
@required {scan_id: str(uuid), account_id: str}
@returns(200)
@errors {400, 404}

@endpoint GET /accounts/{account_id}/urlscanner/v2/har/{scan_id}
@required {scan_id: str(uuid), account_id: str}
@returns(200) {log: map{creator: map{comment: str, name: str, version: str}, entries: [map], pages: [map], version: str}}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/urlscanner/v2/responses/{response_id}
@required {response_id: str, account_id: str}
@returns(200)
@errors {400}

@endpoint GET /accounts/{account_id}/urlscanner/v2/result/{scan_id}
@required {scan_id: str(uuid), account_id: str}
@returns(200) {data: map{console: [map], cookies: [map], globals: [map], links: [map], performance: [map], requests: [map]}, lists: map{asns: [str], certificates: [map], continents: [str], countries: [str], domains: [str], hashes: [str], ips: [str], linkDomains: [str], servers: [str], urls: [str]}, meta: map{processors: map{asn: map{data: [map]}, dns: map{data: [map]}, domainCategories: map{data: [map]}, geoip: map{data: [map]}, phishing: map{data: [str]}, phishing_v2: map{data: [str]}, radarRank: map{data: [map]}, robotsTxt: map{data: [map]}, urlCategories: map{data: [map]}, wappa: map{data: [map]}}}, page: map{apexDomain: str, asn: str, asnname: str, city: str, country: str, domain: str, ip: str, mimeType: str, screenshot: map{dhash: str, mm3Hash: num, name: str, phash: str}, server: str, status: str, title: str, tlsAgeDays: num, tlsIssuer: str, tlsValidDays: num, tlsValidFrom: str, url: str}, scanner: map{colo: str, country: str}, stats: map{IPv6Percentage: num, domainStats: [map], ipStats: [map], malicious: num, protocolStats: [map], resourceStats: [map], securePercentage: num, secureRequests: num, serverStats: [map], tlsStats: [map], totalLinks: num, uniqASNs: num, uniqCountries: num}, task: map{apexDomain: str, domURL: str, domain: str, method: str, options: map{customHeaders: map, screenshotsResolutions: [str]}, reportURL: str, screenshotURL: str, source: str, success: bool, time: str, url: str, uuid: str, visibility: str}, verdicts: map{overall: map{categories: [str], hasVerdicts: bool, malicious: bool, tags: [str]}}}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/urlscanner/v2/scan
@required {account_id: str, url: str}
@optional {country: str(AF/AL/DZ/AD/AO/AG/AR/AM/AU/AT/AZ/BH/BD/BB/BY/BE/BZ/BJ/BM/BT/BO/BA/BW/BR/BN/BG/BF/BI/KH/CM/CA/CV/KY/CF/TD/CL/CN/CO/KM/CG/CR/CI/HR/CU/CY/CZ/CD/DK/DJ/DM/DO/EC/EG/SV/GQ/ER/EE/SZ/ET/FJ/FI/FR/GA/GE/DE/GH/GR/GL/GD/GT/GN/GW/GY/HT/HN/HU/IS/IN/ID/IR/IQ/IE/IL/IT/JM/JP/JO/KZ/KE/KI/KW/KG/LA/LV/LB/LS/LR/LY/LI/LT/LU/MO/MG/MW/MY/MV/ML/MR/MU/MX/FM/MD/MC/MN/MS/MA/MZ/MM/NA/NR/NP/NL/NZ/NI/NE/NG/KP/MK/NO/OM/PK/PS/PA/PG/PY/PE/PH/PL/PT/QA/RO/RU/RW/SH/KN/LC/VC/WS/SM/ST/SA/SN/RS/SC/SL/SK/SI/SB/SO/ZA/KR/SS/ES/LK/SD/SR/SE/CH/SY/TW/TJ/TZ/TH/BS/GM/TL/TG/TO/TT/TN/TR/TM/UG/UA/AE/GB/US/UY/UZ/VU/VE/VN/YE/ZM/ZW), customHeaders: map, customagent: str, referer: str, screenshotsResolutions: [str]=desktop, visibility: str(Public/Unlisted)=Public}
@returns(200) {api: str, message: str, options: map{useragent: str}, result: str, url: str, uuid: str(uuid), visibility: str}
@errors {400, 409, 429}

@endpoint GET /accounts/{account_id}/urlscanner/v2/screenshots/{scan_id}.png
@required {scan_id: str(uuid), account_id: str}
@optional {resolution: str(desktop/mobile/tablet)=desktop}
@returns(200)
@errors {400, 404}

@endpoint GET /accounts/{account_id}/urlscanner/v2/search
@required {account_id: str}
@optional {size: int, q: str}
@returns(200) {results: [map]}
@errors {400}

@endpoint GET /accounts/{account_id}/vectorize/indexes
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/indexes
@required {account_id: str, config: any, name: str}
@optional {description: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/vectorize/indexes/{index_name}
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/vectorize/indexes/{index_name}
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/vectorize/indexes/{index_name}
@required {account_id: str, index_name: str, description: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/indexes/{index_name}/delete-by-ids
@required {account_id: str, index_name: str}
@optional {ids: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/indexes/{index_name}/get-by-ids
@required {account_id: str, index_name: str}
@optional {ids: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/indexes/{index_name}/insert
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/indexes/{index_name}/query
@required {account_id: str, index_name: str, vector: [num]}
@optional {filter: map, returnMetadata: bool=false, returnValues: bool=false, topK: num=5}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/indexes/{index_name}/upsert
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/vectorize/v2/indexes
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes
@required {account_id: str, config: any, name: str}
@optional {description: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/vectorize/v2/indexes/{index_name}
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/vectorize/v2/indexes/{index_name}
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes/{index_name}/delete_by_ids
@required {account_id: str, index_name: str}
@optional {ids: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes/{index_name}/get_by_ids
@required {account_id: str, index_name: str}
@optional {ids: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/vectorize/v2/indexes/{index_name}/info
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes/{index_name}/insert
@required {account_id: str, index_name: str}
@optional {unparsable-behavior: str(error/discard)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/vectorize/v2/indexes/{index_name}/list
@required {account_id: str, index_name: str}
@optional {count: int=100, cursor: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes/{index_name}/metadata_index/create
@required {account_id: str, index_name: str, indexType: str(string/number/boolean), propertyName: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes/{index_name}/metadata_index/delete
@required {account_id: str, index_name: str, propertyName: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/vectorize/v2/indexes/{index_name}/metadata_index/list
@required {account_id: str, index_name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes/{index_name}/query
@required {account_id: str, index_name: str, vector: [num]}
@optional {filter: map, returnMetadata: str(none/indexed/all)=none, returnValues: bool=false, topK: num=5}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/vectorize/v2/indexes/{index_name}/upsert
@required {account_id: str, index_name: str}
@optional {unparsable-behavior: str(error/discard)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/waiting_rooms
@required {account_id: str}
@optional {page: num=1, per_page: num=25}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/warp_connector
@required {account_id: str}
@optional {name: str, is_deleted: bool, existed_at: str(url-encoded-date-time), uuid: str(uuid), was_active_at: str(date-time), was_inactive_at: str(date-time), include_prefix: str, exclude_prefix: str, status: str, per_page: num, page: num}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/warp_connector
@required {account_id: str, name: str}
@optional {ha: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/warp_connector/{tunnel_id}
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/warp_connector/{tunnel_id}
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/warp_connector/{tunnel_id}
@required {account_id: str, tunnel_id: str(uuid)}
@optional {name: str, tunnel_secret: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/warp_connector/{tunnel_id}/connections
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/warp_connector/{tunnel_id}/connectors/{connector_id}
@required {account_id: str, tunnel_id: str(uuid), connector_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/warp_connector/{tunnel_id}/failover
@required {account_id: str, tunnel_id: str(uuid), client_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/warp_connector/{tunnel_id}/token
@required {account_id: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/account-settings
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/account-settings
@required {account_id: str}
@optional {default_usage_model: str, green_compute: bool}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/assets/upload
@required {account_id: str, base64: bool}
@returns(201)
@returns(202)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/dispatch/namespaces
@required {account_id: str}
@optional {name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}
@required {account_id: str, dispatch_namespace: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}
@required {account_id: str, dispatch_namespace: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}
@required {account_id: str, dispatch_namespace: str}
@optional {name: str, trusted_workers: bool=false}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}
@required {account_id: str, dispatch_namespace: str}
@optional {name: str, trusted_workers: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts
@required {account_id: str, dispatch_namespace: str}
@optional {tags: str, limit: int}
@returns(200) {deleted: [map], deleted_count: int, has_more: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts
@required {account_id: str, dispatch_namespace: str}
@optional {tags: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}
@required {account_id: str, dispatch_namespace: str, script_name: str}
@optional {force: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}
@required {account_id: str, dispatch_namespace: str, script_name: str}
@optional {bindings_inherit: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/assets-upload-session
@required {account_id: str, dispatch_namespace: str, script_name: str, manifest: map}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/bindings
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/content
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/content
@required {account_id: str, dispatch_namespace: str, script_name: str}
@optional {CF-WORKER-BODY-PART: str, CF-WORKER-MAIN-MODULE-PART: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/secrets
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/secrets
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {429, 4XX}

@endpoint DELETE /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/secrets/{secret_name}
@required {account_id: str, dispatch_namespace: str, script_name: str, secret_name: str}
@optional {url_encoded: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/secrets/{secret_name}
@required {account_id: str, dispatch_namespace: str, script_name: str, secret_name: str}
@optional {url_encoded: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/settings
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/settings
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/tags
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/tags
@required {account_id: str, dispatch_namespace: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/tags/{tag}
@required {account_id: str, dispatch_namespace: str, script_name: str, tag: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/dispatch/namespaces/{dispatch_namespace}/scripts/{script_name}/tags/{tag}
@required {account_id: str, dispatch_namespace: str, script_name: str, tag: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/domains
@required {account_id: str}
@optional {zone_id: str, zone_name: str, service: str, hostname: str, environment: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/domains
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/domains/{domain_id}
@required {account_id: str, domain_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/domains/{domain_id}
@required {account_id: str, domain_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/durable_objects/namespaces
@required {account_id: str}
@optional {page: int=1, per_page: int=20}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/durable_objects/namespaces/{id}/objects
@required {account_id: str, id: str}
@optional {limit: num=1000, cursor: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/observability/destinations
@optional {page: num=1, perPage: num=20, order: str(asc/desc)=desc, orderBy: str(created/updated)=updated}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {401, 404, 500}

@endpoint POST /accounts/{account_id}/workers/observability/destinations
@required {configuration: map{headers!: map, logpushDataset!: any, type!: str, url!: str}, enabled: bool, name: str}
@optional {skipPreflightCheck: bool}
@returns(201) {errors: [map], messages: [map], result: map{configuration: map{destination_conf: str, logpushDataset: any, logpushJob: num, type: str, url: str}, enabled: bool, name: str, scripts: [str], slug: str}, success: bool}
@errors {400, 401, 500}

@endpoint DELETE /accounts/{account_id}/workers/observability/destinations/{slug}
@required {slug: str}
@returns(200) {errors: [map], messages: [map], result: map{configuration: map{destination_conf: str, logpushDataset: any, logpushJob: num, type: str, url: str}, enabled: bool, name: str, scripts: [str], slug: str}, success: bool}
@errors {401, 404, 500}

@endpoint PATCH /accounts/{account_id}/workers/observability/destinations/{slug}
@required {slug: str, configuration: map{headers!: map, type!: str, url!: str}, enabled: bool}
@returns(200) {errors: [map], messages: [map], result: map{configuration: map{destination_conf: str, logpushDataset: any, logpushJob: num, type: str, url: str}, enabled: bool, name: str, scripts: [str], slug: str}, success: bool}
@errors {400, 401, 404, 500}

@endpoint GET /accounts/{account_id}/workers/observability/queries
@optional {page: num=1, perPage: num=20, order: str(asc/desc)=desc, orderBy: str(created/updated)=updated}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {401, 404, 500}

@endpoint POST /accounts/{account_id}/workers/observability/queries
@required {description: str, name: str, parameters: map{calculations: [map], datasets: [str], filterCombination: str, filters: [map], groupBys: [map], havings: [map], limit: int, needle: map, orderBy: map}}
@returns(200) {errors: [map], messages: [map], result: map{adhoc: bool, created: str, createdBy: str, description: str?, id: str, name: str, parameters: map{calculations: [map], datasets: [str], filterCombination: str, filters: [map], groupBys: [map], havings: [map], limit: int, needle: map{isRegex: bool, matchCase: bool, value: any}, orderBy: map{order: str, value: str}}, updated: str, updatedBy: str}, success: bool}
@errors {401, 409, 500}

@endpoint DELETE /accounts/{account_id}/workers/observability/queries/{queryId}
@required {queryId: str}
@returns(200) {errors: [map], messages: [map], result: map{adhoc: bool, created: str, createdBy: str, description: str?, id: str, name: str, parameters: map{calculations: [map], datasets: [str], filterCombination: str, filters: [map], groupBys: [map], havings: [map], limit: int, needle: map{isRegex: bool, matchCase: bool, value: any}, orderBy: map{order: str, value: str}}, updated: str, updatedBy: str}, success: bool}
@errors {401, 404, 500}

@endpoint GET /accounts/{account_id}/workers/observability/queries/{queryId}
@required {queryId: str}
@returns(200) {errors: [map], messages: [map], result: map{adhoc: bool, created: str, createdBy: str, description: str?, id: str, name: str, parameters: map{calculations: [map], datasets: [str], filterCombination: str, filters: [map], groupBys: [map], havings: [map], limit: int, needle: map{isRegex: bool, matchCase: bool, value: any}, orderBy: map{order: str, value: str}}, updated: str, updatedBy: str}, success: bool}
@errors {401, 404, 500}

@endpoint PATCH /accounts/{account_id}/workers/observability/queries/{queryId}
@required {queryId: str, description: str, name: str, parameters: map{calculations: [map], datasets: [str], filterCombination: str, filters: [map], groupBys: [map], havings: [map], limit: int, needle: map, orderBy: map}}
@returns(200) {errors: [map], messages: [map], result: map{adhoc: bool, created: str, createdBy: str, description: str?, id: str, name: str, parameters: map{calculations: [map], datasets: [str], filterCombination: str, filters: [map], groupBys: [map], havings: [map], limit: int, needle: map{isRegex: bool, matchCase: bool, value: any}, orderBy: map{order: str, value: str}}, updated: str, updatedBy: str}, success: bool}
@errors {401, 404, 500}

@endpoint POST /accounts/{account_id}/workers/observability/telemetry/keys
@optional {datasets: [str]=, filters: [any]=, from: num, keyNeedle: map{isRegex: bool, matchCase: bool, value!: any}, limit: num, needle: map{isRegex: bool, matchCase: bool, value!: any}, to: num}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {400, 401, 500}

@endpoint POST /accounts/{account_id}/workers/observability/telemetry/query
@required {queryId: str, timeframe: map{from!: num, to!: num}}
@optional {chart: bool, compare: bool, dry: bool=false, granularity: num, ignoreSeries: bool=false, limit: num=50, offset: str, offsetBy: num, offsetDirection: str, parameters: map{calculations: [map], datasets: [str], filterCombination: str, filters: [any], groupBys: [map], havings: [map], limit: int, needle: map, orderBy: map}, view: str(traces/events/calculations/invocations/requests/agents)=calculations}
@returns(200) {errors: [map], messages: [map], result: map{agents: [map], calculations: [map], compare: [map], events: map{count: num, events: [map], fields: [map], series: [map]}, invocations: map, run: map{accountId: str, created: str, dry: bool, granularity: num, id: str, query: any, statistics: map{abr_level: num, bytes_read: num, elapsed: num, rows_read: num}, status: str, timeframe: map{from: num, to: num}, updated: str, userId: str}, statistics: map{abr_level: num, bytes_read: num, elapsed: num, rows_read: num}, traces: [map]}, success: bool}
@errors {400, 401, 500}

@endpoint POST /accounts/{account_id}/workers/observability/telemetry/values
@required {datasets: [str], key: str, timeframe: map{from!: num, to!: num}, type: str(string/boolean/number)}
@optional {filters: [any]=, limit: num=50, needle: map{isRegex: bool, matchCase: bool, value!: any}}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {400, 401, 500}

@endpoint GET /accounts/{account_id}/workers/placement/regions
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts
@required {account_id: str}
@optional {tags: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts-search
@required {account_id: str}
@optional {name: str, id: str, order_by: str(created_on/modified_on/name)=name, page: int=1, per_page: int=10}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/scripts/{script_name}
@required {account_id: str, script_name: str}
@optional {force: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/scripts/{script_name}
@required {account_id: str, script_name: str}
@optional {bindings_inherit: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/scripts/{script_name}/assets-upload-session
@required {account_id: str, script_name: str, manifest: map}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/scripts/{script_name}/content
@required {account_id: str, script_name: str}
@optional {CF-WORKER-BODY-PART: str, CF-WORKER-MAIN-MODULE-PART: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/content/v2
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/deployments
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/scripts/{script_name}/deployments
@required {account_id: str, script_name: str, created_on: str(date-time), id: str(uuid), source: str, strategy: str, versions: [map{percentage!: num, version_id!: str(uuid)}]}
@optional {force: bool, annotations: map{workers/message: str, workers/triggered_by: str}, author_email: str(email)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/scripts/{script_name}/deployments/{deployment_id}
@required {account_id: str, script_name: str, deployment_id: str(uuid)}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/deployments/{deployment_id}
@required {account_id: str, script_name: str, deployment_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/schedules
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/scripts/{script_name}/schedules
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/script-settings
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/workers/scripts/{script_name}/script-settings
@required {account_id: str, script_name: str}
@optional {logpush: bool=false, observability: any, tags: any, tail_consumers: [map{environment: str, namespace: str, service!: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/secrets
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/scripts/{script_name}/secrets
@required {account_id: str, script_name: str}
@returns(200)
@errors {429, 4XX}

@endpoint DELETE /accounts/{account_id}/workers/scripts/{script_name}/secrets/{secret_name}
@required {account_id: str, script_name: str, secret_name: str}
@optional {url_encoded: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/secrets/{secret_name}
@required {account_id: str, script_name: str, secret_name: str}
@optional {url_encoded: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/settings
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/workers/scripts/{script_name}/settings
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/scripts/{script_name}/subdomain
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/subdomain
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/scripts/{script_name}/subdomain
@required {account_id: str, script_name: str, enabled: bool}
@optional {previews_enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/tails
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/scripts/{script_name}/tails
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/scripts/{script_name}/tails/{id}
@required {account_id: str, script_name: str, id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/usage-model
@required {account_id: str, script_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/scripts/{script_name}/usage-model
@required {account_id: str, script_name: str}
@optional {usage_model: str(standard/bundled/unbound)=standard, user_limits: map{cpu_ms: int}}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/versions
@required {account_id: str, script_name: str}
@optional {deployable: bool=false, page: int=1, per_page: int}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/scripts/{script_name}/versions
@required {account_id: str, script_name: str}
@optional {bindings_inherit: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/scripts/{script_name}/versions/{version_id}
@required {account_id: str, script_name: str, version_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/services/{service_name}/environments/{environment_name}/content
@required {account_id: str, service_name: str, environment_name: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/services/{service_name}/environments/{environment_name}/content
@required {account_id: str, service_name: str, environment_name: str}
@optional {CF-WORKER-BODY-PART: str, CF-WORKER-MAIN-MODULE-PART: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/services/{service_name}/environments/{environment_name}/settings
@required {account_id: str, service_name: str, environment_name: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/workers/services/{service_name}/environments/{environment_name}/settings
@required {account_id: str, service_name: str, environment_name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/subdomain
@required {account_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/subdomain
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/workers/subdomain
@required {account_id: str, subdomain: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/workers
@required {account_id: str}
@optional {page: int=1, per_page: int=10, order_by: str(deployed_on/updated_on/created_on/name)=deployed_on, order: str(asc/desc)=desc}
@returns(200)
@errors {401, 500}

@endpoint POST /accounts/{account_id}/workers/workers
@required {account_id: str}
@returns(200)
@errors {400, 401, 403, 409, 500}

@endpoint DELETE /accounts/{account_id}/workers/workers/{worker_id}
@required {account_id: str, worker_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {400, 401, 404, 500}

@endpoint GET /accounts/{account_id}/workers/workers/{worker_id}
@required {account_id: str, worker_id: str}
@returns(200)
@errors {400, 404, 500}

@endpoint PATCH /accounts/{account_id}/workers/workers/{worker_id}
@required {account_id: str, worker_id: str}
@returns(200)
@errors {400, 401, 403, 404, 409, 500}

@endpoint PUT /accounts/{account_id}/workers/workers/{worker_id}
@required {account_id: str, worker_id: str}
@returns(200)
@errors {400, 401, 403, 404, 409, 500}

@endpoint GET /accounts/{account_id}/workers/workers/{worker_id}/versions
@required {account_id: str, worker_id: str}
@optional {page: int=1, per_page: int=10}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/workers/workers/{worker_id}/versions
@required {account_id: str, worker_id: str, created_on: str(date-time), id: str(uuid), number: int, urls: [str(uri)]}
@optional {deploy: bool, annotations: map{workers/message: str, workers/tag: str, workers/triggered_by: str}, assets: map{config: map, jwt: str}, bindings: [map], compatibility_date: str, compatibility_flags: [str]=, limits: map{cpu_ms!: int}, main_module: str, migration_tag: str, migrations: any, modules: [map{content_base64!: str(byte), content_type!: str, name!: str}], placement: map, source: str, startup_time_ms: int, usage_model: str(standard/bundled/unbound)=standard}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/workers/workers/{worker_id}/versions/{version_id}
@required {account_id: str, worker_id: str, version_id: str}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /accounts/{account_id}/workers/workers/{worker_id}/versions/{version_id}
@required {account_id: str, worker_id: str, version_id: str}
@optional {include: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/workflows
@required {account_id: str}
@optional {per_page: num=10, page: num=1, search: str}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400}

@endpoint DELETE /accounts/{account_id}/workflows/{workflow_name}
@required {workflow_name: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{status: str, success: bool?}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}
@required {workflow_name: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{class_name: str, created_on: str(date-time), id: str(uuid), instances: map{complete: num, errored: num, paused: num, queued: num, running: num, terminated: num, waiting: num, waitingForPause: num}, modified_on: str(date-time), name: str, script_name: str, triggered_on: str(date-time)?}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint PUT /accounts/{account_id}/workflows/{workflow_name}
@required {workflow_name: str, account_id: str, class_name: str, script_name: str}
@optional {limits: map{steps: int}}
@returns(200) {errors: [map], messages: [map], result: map{class_name: str, created_on: str(date-time), id: str(uuid), is_deleted: num, modified_on: str(date-time), name: str, script_name: str, terminator_running: num, triggered_on: str(date-time)?, version_id: str(uuid)}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}/instances
@required {workflow_name: str, account_id: str}
@optional {page: num, per_page: num=50, cursor: str, direction: str(asc/desc), status: str(queued/running/paused/errored/terminated/complete/waitingForPause/waiting), date_start: str(date-time), date_end: str(date-time)}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/workflows/{workflow_name}/instances
@required {workflow_name: str, account_id: str}
@optional {instance_id: str, instance_retention: map{error_retention: any, success_retention: any}, params: map}
@returns(200) {errors: [map], messages: [map], result: map{id: str, status: str, version_id: str(uuid), workflow_id: str(uuid)}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/workflows/{workflow_name}/instances/batch
@required {workflow_name: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/workflows/{workflow_name}/instances/batch/terminate
@required {workflow_name: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{instancesTerminated: num, status: str}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}/instances/terminate
@required {workflow_name: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{status: str}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}
@required {workflow_name: str, instance_id: str, account_id: str}
@optional {simple: str(true/false)=false, order: str(asc/desc)=asc}
@returns(200) {errors: [map], messages: [map], result: map{end: str(date-time)?, error: map?{message: str, name: str}, output: any, params: map, queued: str(date-time), start: str(date-time)?, status: str, step_count: int, steps: [any], success: bool?, trigger: map{source: str}, versionId: str(uuid)}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint POST /accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/events/{event_type}
@required {workflow_name: str, instance_id: str, event_type: str, account_id: str}
@returns(200) {errors: [map], messages: [map], result: map, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint PATCH /accounts/{account_id}/workflows/{workflow_name}/instances/{instance_id}/status
@required {workflow_name: str, instance_id: str, account_id: str, status: str(resume/pause/terminate/restart)}
@returns(200) {errors: [map], messages: [map], result: map{status: str, timestamp: str(date-time)}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404, 409}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}/versions
@required {workflow_name: str, account_id: str}
@optional {per_page: num=50, page: num=1}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}
@required {workflow_name: str, version_id: str(uuid), account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{class_name: str, created_on: str(date-time), has_dag: bool, id: str(uuid), limits: map{steps: int}, modified_on: str(date-time), workflow_id: str(uuid)}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {400, 404}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}/dag
@required {workflow_name: str, version_id: str(uuid), account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{class_name: str, created_on: str(date-time), dag: map?, id: str(uuid), modified_on: str(date-time), workflow_id: str(uuid)}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/workflows/{workflow_name}/versions/{version_id}/graph
@required {workflow_name: str, version_id: str(uuid), account_id: str}
@returns(200) {errors: [map], messages: [map], result: map{class_name: str, created_on: str(date-time), graph: map?{version: num, workflow: map{class_name: str, functions: map, nodes: [any], payload: any}}, id: str(uuid), modified_on: str(date-time), workflow_id: str(uuid)}, result_info: map{count: num, cursor: str, page: num, per_page: num, total_count: num}, success: bool}
@errors {404}

@endpoint GET /accounts/{account_id}/zerotrust/connectivity_settings
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/zerotrust/connectivity_settings
@required {account_id: str}
@optional {icmp_proxy_enabled: bool, offramp_warp_enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zerotrust/routes/hostname
@required {account_id: str}
@optional {id: str(uuid), hostname: str, tunnel_id: str(uuid), comment: str, existed_at: str(url-encoded-date-time), is_deleted: bool=false, per_page: num, page: num}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/zerotrust/routes/hostname
@required {account_id: str}
@optional {comment: str, hostname: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/zerotrust/routes/hostname/{hostname_route_id}
@required {account_id: str, hostname_route_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zerotrust/routes/hostname/{hostname_route_id}
@required {account_id: str, hostname_route_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/zerotrust/routes/hostname/{hostname_route_id}
@required {account_id: str, hostname_route_id: str(uuid)}
@optional {comment: str, hostname: str, tunnel_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zerotrust/subnets
@required {account_id: str}
@optional {name: str, comment: str, network: any, existed_at: str(url-encoded-date-time), address_family: str, is_default_network: bool, is_deleted: bool, sort_order: str(asc/desc), subnet_types: str(cloudflare_source/warp), per_page: num, page: num}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/zerotrust/subnets/cloudflare_source/{address_family}
@required {account_id: str, address_family: str}
@optional {comment: str=, name: str, network: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/zerotrust/subnets/warp
@required {account_id: str, name: str, network: str}
@optional {comment: str=, is_default_network: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/zerotrust/subnets/warp/{subnet_id}
@required {account_id: str, subnet_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zerotrust/subnets/warp/{subnet_id}
@required {account_id: str, subnet_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PATCH /accounts/{account_id}/zerotrust/subnets/warp/{subnet_id}
@required {account_id: str, subnet_id: str(uuid)}
@optional {comment: str=, is_default_network: bool=false, name: str, network: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zt_risk_scoring/behaviors
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/zt_risk_scoring/behaviors
@required {account_id: str, behaviors: map}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zt_risk_scoring/integrations
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/zt_risk_scoring/integrations
@required {account_id: str, integration_type: str, tenant_url: str(uri)}
@optional {reference_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zt_risk_scoring/integrations/reference_id/{reference_id}
@required {account_id: str, reference_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /accounts/{account_id}/zt_risk_scoring/integrations/{integration_id}
@required {account_id: str, integration_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zt_risk_scoring/integrations/{integration_id}
@required {account_id: str, integration_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint PUT /accounts/{account_id}/zt_risk_scoring/integrations/{integration_id}
@required {account_id: str, integration_id: str(uuid), active: bool, tenant_url: str(uri)}
@optional {reference_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zt_risk_scoring/summary
@required {account_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /accounts/{account_id}/zt_risk_scoring/{user_id}
@required {account_id: str, user_id: str(uuid)}
@returns(200)
@errors {4XX}

@endpoint POST /accounts/{account_id}/zt_risk_scoring/{user_id}/reset
@required {account_id: str, user_id: str(uuid)}
@returns(200)
@errors {4XX}

@endgroup

@group certificates
@endpoint GET /certificates
@required {zone_id: str}
@optional {page: num=1, per_page: num=20, limit: int, offset: int}
@returns(200)
@errors {4XX}

@endpoint POST /certificates
@required {csr: str, hostnames: [str], request_type: str(origin-rsa/origin-ecc/keyless-certificate)}
@optional {requested_validity: num(7/30/90/365/730/1095/5475)=5475}
@returns(200)
@errors {4XX}

@endpoint DELETE /certificates/{certificate_id}
@required {certificate_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /certificates/{certificate_id}
@required {certificate_id: str}
@returns(200)
@errors {4XX}

@endgroup

@group internal
@endpoint POST /internal/submit

@endgroup

@group ips
@endpoint GET /ips
@optional {networks: str}
@returns(200)
@errors {4XX}

@endgroup

@group live
@endpoint GET /live

@endgroup

@group memberships
@endpoint GET /memberships
@optional {account.name: str, page: num=1, per_page: num=20, order: str(id/account.name/status), direction: str(asc/desc), name: str, status: str(accepted/pending/rejected)}
@returns(200)
@errors {4XX}

@endpoint DELETE /memberships/{membership_id}
@required {membership_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /memberships/{membership_id}
@required {membership_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /memberships/{membership_id}
@required {membership_id: str, status: any(accepted/rejected)}
@returns(200)
@errors {4XX}

@endgroup

@group organizations
@endpoint GET /organizations
@optional {id: [str], name: str, name.startsWith: str, name.endsWith: str, name.contains: str, containing.account: str, containing.user: str, containing.organization: str, parent.id: any, page_token: str, page_size: int}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{next_page_token: str, total_size: int}, success: bool}
@errors {4XX}

@endpoint POST /organizations
@required {create_time: str(date-time), id: any, meta: map{flags: any, managed_by: str}, name: str}
@optional {parent: map{id!: str, name!: str}, profile: map{business_address!: str, business_email!: str, business_name!: str, business_phone!: str, external_metadata!: str}}
@returns(200) {errors: [map], messages: [map], result: map{create_time: str(date-time), id: any, meta: map{flags: any, managed_by: str}, name: str, parent: map{id: str, name: str}, profile: map{business_address: str, business_email: str, business_name: str, business_phone: str, external_metadata: str}}, success: bool}
@errors {4XX}

@endpoint DELETE /organizations/{organization_id}
@required {organization_id: str}
@returns(200) {errors: [map], messages: [map], result: map{id: str}, success: bool}
@errors {4XX}

@endpoint GET /organizations/{organization_id}
@required {organization_id: str}
@returns(200) {errors: [map], messages: [map], result: map{create_time: str(date-time), id: any, meta: map{flags: any, managed_by: str}, name: str, parent: map{id: str, name: str}, profile: map{business_address: str, business_email: str, business_name: str, business_phone: str, external_metadata: str}}, success: bool}
@errors {4XX}

@endpoint PUT /organizations/{organization_id}
@required {organization_id: str, create_time: str(date-time), id: any, meta: map{flags: any, managed_by: str}, name: str}
@optional {parent: map{id!: str, name!: str}, profile: map{business_address!: str, business_email!: str, business_name!: str, business_phone!: str, external_metadata!: str}}
@returns(200) {errors: [map], messages: [map], result: map{create_time: str(date-time), id: any, meta: map{flags: any, managed_by: str}, name: str, parent: map{id: str, name: str}, profile: map{business_address: str, business_email: str, business_name: str, business_phone: str, external_metadata: str}}, success: bool}
@errors {4XX}

@endpoint GET /organizations/{organization_id}/accounts
@required {organization_id: str}
@optional {account_pubname: str, account_pubname.startsWith: str, account_pubname.endsWith: str, account_pubname.contains: str, name: str, name.startsWith: str, name.endsWith: str, name.contains: str, order_by: str, direction: str(asc/desc), page_token: str, page_size: int}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{next_page_token: str, total_size: int}, success: bool}
@errors {4XX}

@endpoint GET /organizations/{organization_id}/logs/audit
@required {organization_id: str, since: str(date), before: str(date)}
@optional {action_result: [str], action_type: [str], actor_context: [str], actor_email: [str(email)], actor_id: [str], actor_ip_address: [str], actor_token_id: [str], actor_token_name: [str], actor_type: [str], id: [str], raw_cf_ray_id: [str], raw_method: [str], raw_status_code: [int], raw_uri: [str], resource_id: [str], resource_product: [str], resource_type: [str], resource_scope: [str], action_result.not: [str], action_type.not: [str], actor_context.not: [str], actor_email.not: [str(email)], actor_id.not: [str], actor_ip_address.not: [str], actor_token_id.not: [str], actor_token_name.not: [str], actor_type.not: [str], id.not: [str], raw_cf_ray_id.not: [str], raw_method.not: [str], raw_status_code.not: [int], raw_uri.not: [str], resource_id.not: [str], resource_product.not: [str], resource_type.not: [str], resource_scope.not: [str], direction: str(desc/asc)=desc, limit: num=100, cursor: str}
@returns(200)
@errors {4XX}

@endpoint GET /organizations/{organization_id}/members
@required {organization_id: str}
@optional {status: [str], user.email: str, user.email.contains: str, user.email.startsWith: str, user.email.endsWith: str, page_token: str, page_size: int}
@returns(200) {errors: [map], messages: [map], result: [map], result_info: map{next_page_token: str, total_size: int}, success: bool}
@errors {4XX}

@endpoint POST /organizations/{organization_id}/members
@required {organization_id: str, member: map{status: str, user!: map}}
@returns(200) {errors: [map], messages: [map], result: map{create_time: str(date-time), id: str, meta: map, status: str, update_time: str(date-time), user: map{email: str, id: str, name: str, two_factor_authentication_enabled: bool}}, success: bool}
@errors {4XX}

@endpoint DELETE /organizations/{organization_id}/members/{member_id}
@required {organization_id: str, member_id: str, member_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /organizations/{organization_id}/members/{member_id}
@required {organization_id: str, member_id: str}
@returns(200) {errors: [map], messages: [map], result: map{create_time: str(date-time), id: str, meta: map, status: str, update_time: str(date-time), user: map{email: str, id: str, name: str, two_factor_authentication_enabled: bool}}, success: bool}
@errors {4XX}

@endpoint POST /organizations/{organization_id}/members:batchCreate
@required {organization_id: str, members: [map{status: str, user!: map}]}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {4XX}

@endpoint GET /organizations/{organization_id}/profile
@required {organization_id: str}
@returns(200) {errors: [map], messages: [map], result: map{business_address: str, business_email: str, business_name: str, business_phone: str, external_metadata: str}, success: bool}
@errors {4XX}

@endpoint PUT /organizations/{organization_id}/profile
@required {organization_id: str, business_address: str, business_email: str, business_name: str, business_phone: str, external_metadata: str}
@returns(204)
@errors {4XX}

@endpoint GET /organizations/{organization_id}/shares
@required {organization_id: str}
@optional {status: str, kind: str, target_type: str, resource_types: [str], order: str(name/created)=created, direction: str(asc/desc)=asc, page: int, per_page: int}
@returns(200)
@errors {4XX, 5XX}

@endgroup

@group radar
@endpoint GET /radar/ai/bots/summary/user_agent
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/ai/bots/summary/{dimension}
@required {dimension: str(USER_AGENT/CRAWL_PURPOSE/INDUSTRY/VERTICAL/CONTENT_TYPE)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], crawlPurpose: [str], userAgent: [str], vertical: [str], industry: [str], contentType: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/ai/bots/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], crawlPurpose: [str], userAgent: [str], industry: [str], vertical: [str], contentType: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/ai/bots/timeseries_groups/user_agent
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/ai/bots/timeseries_groups/{dimension}
@required {dimension: str(USER_AGENT/CRAWL_PURPOSE/INDUSTRY/VERTICAL/CONTENT_TYPE)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], crawlPurpose: [str], userAgent: [str], industry: [str], vertical: [str], contentType: [str], limitPerGroup: int, normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/ai/inference/summary/model
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/ai/inference/summary/task
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/ai/inference/summary/{dimension}
@required {dimension: str(MODEL/TASK)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/ai/inference/timeseries_groups/model
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/ai/inference/timeseries_groups/task
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/ai/inference/timeseries_groups/{dimension}
@required {dimension: str(MODEL/TASK)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], limitPerGroup: int, normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/annotations
@optional {limit: int=5, offset: int, dateRange: str, dateStart: str(date-time), dateEnd: str(date-time), dataSource: str(ALL/AI_BOTS/AI_GATEWAY/BGP/BOTS/CONNECTION_ANOMALY/CT/DNS/DNS_MAGNITUDE/DNS_AS112/DOS/EMAIL_ROUTING/EMAIL_SECURITY/FW/FW_PG/HTTP/HTTP_CONTROL/HTTP_CRAWLER_REFERER/HTTP_ORIGINS/IQI/LEAKED_CREDENTIALS/NET/ROBOTS_TXT/SPEED/WORKERS_AI), eventType: str(EVENT/GENERAL/OUTAGE/PARTIAL_PROJECTION/PIPELINE/TRAFFIC_ANOMALY), asn: int, location: str, origin: str, format: str(JSON/CSV)}
@returns(200) {result: map{annotations: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/annotations/outages
@optional {limit: int=5, offset: int, dateRange: str, dateStart: str(date-time), dateEnd: str(date-time), asn: int, location: str, origin: str, format: str(JSON/CSV)}
@returns(200) {result: map{annotations: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/annotations/outages/locations
@optional {limit: int=5, dateRange: str, dateStart: str(date-time), dateEnd: str(date-time), format: str(JSON/CSV)}
@returns(200) {result: map{annotations: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/as112/summary/dnssec
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NOT_SUPPORTED: str, SUPPORTED: str}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/summary/edns
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NOT_SUPPORTED: str, SUPPORTED: str}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/summary/ip_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{IPv4: str, IPv6: str}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/summary/protocol
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{HTTPS: str, TCP: str, TLS: str, UDP: str}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/summary/query_type
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], protocol: [str], responseCode: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/as112/summary/response_codes
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/as112/summary/{dimension}
@required {dimension: str(DNSSEC/EDNS/IP_VERSION/PROTOCOL/QUERY_TYPE/RESPONSE_CODE)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries_groups/dnssec
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NOT_SUPPORTED: [str], SUPPORTED: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries_groups/edns
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NOT_SUPPORTED: [str], SUPPORTED: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries_groups/ip_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{IPv4: [str], IPv6: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries_groups/protocol
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], responseCode: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{HTTPS: [str], TCP: [str], TLS: [str], UDP: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries_groups/query_type
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], protocol: [str], responseCode: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries_groups/response_codes
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/timeseries_groups/{dimension}
@required {dimension: str(DNSSEC/EDNS/IP_VERSION/PROTOCOL/QUERY_TYPE/RESPONSE_CODE)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], queryType: [str], protocol: [str], responseCode: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/as112/top/locations
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/as112/top/locations/dnssec/{dnssec}
@required {dnssec: str(SUPPORTED/NOT_SUPPORTED)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/as112/top/locations/edns/{edns}
@required {edns: str(SUPPORTED/NOT_SUPPORTED)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/as112/top/locations/ip_version/{ip_version}
@required {ip_version: str(IPv4/IPv6)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer3/summary/bitrate
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{OVER_100_GBPS: str, UNDER_500_MBPS: str, _10_GBPS_TO_100_GBPS: str, _1_GBPS_TO_10_GBPS: str, _500_MBPS_TO_1_GBPS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/summary/duration
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{OVER_3_HOURS: str, UNDER_10_MINS: str, _10_MINS_TO_20_MINS: str, _1_HOUR_TO_3_HOURS: str, _20_MINS_TO_40_MINS: str, _40_MINS_TO_1_HOUR: str}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/summary/industry
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/summary/ip_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], protocol: [str], direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{IPv4: str, IPv6: str}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/summary/protocol
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{GRE: str, ICMP: str, TCP: str, UDP: str}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/summary/vector
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/summary/vertical
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/summary/{dimension}
@required {dimension: str(PROTOCOL/IP_VERSION/VECTOR/DURATION/BITRATE/VERTICAL/INDUSTRY)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], protocol: [str], normalization: str(PERCENTAGE_CHANGE/MIN0_MAX), metric: str(BYTES/BYTES_OLD)=bytes, direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/bitrate
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{OVER_100_GBPS: [str], UNDER_500_MBPS: [str], _10_GBPS_TO_100_GBPS: [str], _1_GBPS_TO_10_GBPS: [str], _500_MBPS_TO_1_GBPS: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/duration
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{OVER_3_HOURS: [str], UNDER_10_MINS: [str], _10_MINS_TO_20_MINS: [str], _1_HOUR_TO_3_HOURS: [str], _20_MINS_TO_40_MINS: [str], _40_MINS_TO_1_HOUR: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/industry
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/ip_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], protocol: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{IPv4: [str], IPv6: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/protocol
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{GRE: [str], ICMP: [str], TCP: [str], UDP: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/vector
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/vertical
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/timeseries_groups/{dimension}
@required {dimension: str(PROTOCOL/IP_VERSION/VECTOR/DURATION/BITRATE/VERTICAL/INDUSTRY)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, direction: str(ORIGIN/TARGET)=ORIGIN, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer3/top/attacks
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], limitDirection: str(ORIGIN/TARGET)=ORIGIN, limitPerLocation: int=10, magnitude: str(MITIGATED_BYTES/MITIGATED_ATTACKS), normalization: str(PERCENTAGE/MIN_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer3/top/industry
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer3/top/locations/origin
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer3/top/locations/target
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer3/top/vertical
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], protocol: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer7/summary/http_method
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], mitigationProduct: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/summary/http_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpMethod: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{HTTP/1.x: str, HTTP/2: str, HTTP/3: str}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/summary/industry
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/summary/ip_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{IPv4: str, IPv6: str}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/summary/managed_rules
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/summary/mitigation_product
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/summary/vertical
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/summary/{dimension}
@required {dimension: str(HTTP_METHOD/HTTP_VERSION/IP_VERSION/MANAGED_RULES/MITIGATION_PRODUCT/VERTICAL/INDUSTRY)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], normalization: str(PERCENTAGE_CHANGE/MIN0_MAX), ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)], values: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/http_method
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], mitigationProduct: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/http_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpMethod: [str], mitigationProduct: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{HTTP/1.x: [str], HTTP/2: [str], HTTP/3: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/industry
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/ip_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{IPv4: [str], IPv6: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/managed_rules
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/mitigation_product
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/vertical
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/timeseries_groups/{dimension}
@required {dimension: str(HTTP_METHOD/HTTP_VERSION/IP_VERSION/MANAGED_RULES/MITIGATION_PRODUCT/VERTICAL/INDUSTRY)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/attacks/layer7/top/ases/origin
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer7/top/attacks
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], mitigationProduct: [str], limitDirection: str(ORIGIN/TARGET)=ORIGIN, limitPerLocation: int=10, normalization: str(PERCENTAGE/MIN_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer7/top/industry
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer7/top/locations/origin
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer7/top/locations/target
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], continent: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/attacks/layer7/top/vertical
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], ipVersion: [str], httpVersion: [str], httpMethod: [str], mitigationProduct: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/bgp/hijacks/events
@optional {page: int=1, per_page: int=50, eventId: int, hijackerAsn: int, victimAsn: int, involvedAsn: int, involvedCountry: str, prefix: str, minConfidence: int, maxConfidence: int, dateRange: str, dateStart: str(date-time), dateEnd: str(date-time), sortBy: str(ID/TIME/CONFIDENCE), sortOrder: str(ASC/DESC), format: str(JSON/CSV)}
@returns(200) {result: map{asn_info: [map], events: [map], total_monitors: int}, result_info: map{count: int, page: int, per_page: int, total_count: int}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/ips/timeseries
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], ipVersion: [str], includeDelay: bool, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], delay: map{asn_data: map, country_data: map, healthy: bool, nowTs: num}, lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{ipv4: [str], ipv6: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/leaks/events
@optional {page: int=1, per_page: int=50, eventId: int, leakAsn: int, involvedAsn: int, involvedCountry: str, dateRange: str, dateStart: str(date-time), dateEnd: str(date-time), sortBy: str(ID/LEAKS/PEERS/PREFIXES/ORIGINS/TIME), sortOrder: str(ASC/DESC), format: str(JSON/CSV)}
@returns(200) {result: map{asn_info: [map], events: [map]}, result_info: map{count: int, page: int, per_page: int, total_count: int}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/routes/ases
@optional {location: str, limit: int=5, sortBy: str(cone/pfxs/ipv4/ipv6/rpki_valid/rpki_invalid/rpki_unknown), sortOrder: str(ASC/DESC), format: str(JSON/CSV)}
@returns(200) {result: map{asns: [map], meta: map{dataTime: str, queryTime: str, totalPeers: int}}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/routes/moas
@optional {origin: int, prefix: str, invalid_only: bool, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{data_time: str, query_time: str, total_peers: int}, moas: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/routes/pfx2as
@optional {prefix: str, origin: int, rpkiStatus: str(VALID/INVALID/UNKNOWN), longestPrefixMatch: bool, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{data_time: str, query_time: str, total_peers: int}, prefix_origins: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/routes/realtime
@optional {prefix: str, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{asn_info: [map], collectors: [map], data_time: str, prefix_origins: [map], query_time: str}, routes: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/routes/stats
@optional {asn: int, location: str, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{data_time: str, query_time: str, total_peers: int}, stats: map{distinct_origins: int, distinct_origins_ipv4: int, distinct_origins_ipv6: int, distinct_prefixes: int, distinct_prefixes_ipv4: int, distinct_prefixes_ipv6: int, routes_invalid: int, routes_invalid_ipv4: int, routes_invalid_ipv6: int, routes_total: int, routes_total_ipv4: int, routes_total_ipv6: int, routes_unknown: int, routes_unknown_ipv4: int, routes_unknown_ipv6: int, routes_valid: int, routes_valid_ipv4: int, routes_valid_ipv6: int}}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/rpki/aspa/changes
@optional {dateStart: str(date-time), dateEnd: str(date-time), asn: int, includeAsnInfo: bool, format: str(JSON/CSV)}
@returns(200) {result: map{asnInfo: map{13335: map{asn: int, country: str, name: str}}, changes: [map], meta: map{dataTime: str(date-time), queryTime: str(date-time)}}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/rpki/aspa/snapshot
@optional {customerAsn: int, providerAsn: int, date: str(date-time), includeAsnInfo: bool, format: str(JSON/CSV)}
@returns(200) {result: map{asnInfo: map{13335: map{asn: int, country: str, name: str}}, aspaObjects: [map], meta: map{dataTime: str(date-time), queryTime: str(date-time), totalCount: int}}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/rpki/aspa/timeseries
@optional {dateStart: str(date-time), dateEnd: str(date-time), name: [str], rir: [str], location: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{dataTime: str(date-time), queryTime: str(date-time)}, serie_0: map{timestamps: [str(date-time)], values: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], prefix: [str], updateType: [str], asn: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time)}, serie_0: map{timestamps: [str(date-time)], values: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/top/ases
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], prefix: [str], updateType: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{dateRange: [map]}, top_0: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/bgp/top/ases/prefixes
@optional {country: str, limit: int, format: str(JSON/CSV)}
@returns(200) {result: map{asns: [map], meta: map{data_time: str, query_time: str, total_peers: int}}, success: bool}
@errors {404}

@endpoint GET /radar/bgp/top/prefixes
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], updateType: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{dateRange: [map]}, top_0: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/bots
@optional {limit: int=5, offset: int, botCategory: str(SEARCH_ENGINE_CRAWLER/SEARCH_ENGINE_OPTIMIZATION/MONITORING_AND_ANALYTICS/ADVERTISING_AND_MARKETING/SOCIAL_MEDIA_MARKETING/PAGE_PREVIEW/ACADEMIC_RESEARCH/SECURITY/ACCESSIBILITY/WEBHOOKS/FEED_FETCHER/AI_CRAWLER/AGGREGATOR/AI_ASSISTANT/AI_SEARCH/ARCHIVER), botOperator: str, kind: str(AGENT/BOT), botVerificationStatus: str, format: str(JSON/CSV)}
@returns(200) {result: map{bots: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/bots/crawlers/summary/{dimension}
@required {dimension: str(CLIENT_TYPE/USER_AGENT/REFERER/CRAWL_REFER_RATIO/VERTICAL/INDUSTRY)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, botOperator: [str], vertical: [str], industry: [str], clientType: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/bots/crawlers/timeseries_groups/{dimension}
@required {dimension: str(CLIENT_TYPE/USER_AGENT/REFERER/CRAWL_REFER_RATIO/VERTICAL/INDUSTRY)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, botOperator: [str], vertical: [str], industry: [str], clientType: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/bots/summary/{dimension}
@required {dimension: str(BOT/BOT_KIND/BOT_OPERATOR/BOT_CATEGORY)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], limitPerGroup: int, bot: [str], botOperator: [str], botCategory: [str], botKind: [str], botVerificationStatus: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/bots/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], bot: [str], botOperator: [str], botCategory: [str], botKind: [str], botVerificationStatus: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/bots/timeseries_groups/{dimension}
@required {dimension: str(BOT/BOT_KIND/BOT_OPERATOR/BOT_CATEGORY)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], limitPerGroup: int, bot: [str], botOperator: [str], botCategory: [str], botKind: [str], botVerificationStatus: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/bots/{bot_slug}
@required {bot_slug: str}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{bot: map{category: str, description: str, kind: str, name: str, operator: str, operatorUrl: str, slug: str, userAgentPatterns: [str], userAgents: [str]}}, success: bool}
@errors {404}

@endpoint GET /radar/ct/authorities
@optional {limit: int=5, offset: int, format: str(JSON/CSV)}
@returns(200) {result: map{certificateAuthorities: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/ct/authorities/{ca_slug}
@required {ca_slug: str}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{certificateAuthority: map{appleStatus: str, authorityKeyIdentifier: str, certificateRecordType: str, chromeStatus: str, country: str, countryName: str, microsoftStatus: str, mozillaStatus: str, name: str, owner: str, parentName: str, parentSha256Fingerprint: str, related: [map], revocationStatus: str, sha256Fingerprint: str, subjectKeyIdentifier: str, validFrom: str, validTo: str}}, success: bool}
@errors {404}

@endpoint GET /radar/ct/logs
@optional {limit: int=5, offset: int, format: str(JSON/CSV)}
@returns(200) {result: map{certificateLogs: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/ct/logs/{log_slug}
@required {log_slug: str}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{certificateLog: map{api: str, avgThroughput: num, description: str, endExclusive: str(date-time), lastUpdate: str(date-time), operator: str, performance: map?{endpoints: [map], responseTime: num, uptime: num}, related: [map], slug: str, startInclusive: str(date-time), state: str, stateTimestamp: str(date-time), submittableCertCount: str?, submittedCertCount: str?, url: str}}, success: bool}
@errors {404}

@endpoint GET /radar/ct/summary/{dimension}
@required {dimension: str(CA/CA_OWNER/DURATION/ENTRY_TYPE/EXPIRATION_STATUS/HAS_IPS/HAS_WILDCARDS/LOG/LOG_API/LOG_OPERATOR/PUBLIC_KEY_ALGORITHM/SIGNATURE_ALGORITHM/TLD/VALIDATION_LEVEL)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, ca: [str], caOwner: [str], duration: [str], entryType: [str], expirationStatus: [str], hasIps: [bool], hasWildcards: [bool], log: [str], logApi: [str], logOperator: [str], publicKeyAlgorithm: [str], signatureAlgorithm: [str], tld: [str], validationLevel: [str], uniqueEntries: [str], normalization: str(RAW_VALUES/PERCENTAGE)=RAW_VALUES, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: any}, success: bool}
@errors {400}

@endpoint GET /radar/ct/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], ca: [str], caOwner: [str], duration: [str], entryType: [str], expirationStatus: [str], hasIps: [bool], hasWildcards: [bool], log: [str], logApi: [str], logOperator: [str], publicKeyAlgorithm: [str], signatureAlgorithm: [str], tld: [str], validationLevel: [str], uniqueEntries: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/ct/timeseries_groups/{dimension}
@required {dimension: str(CA/CA_OWNER/DURATION/ENTRY_TYPE/EXPIRATION_STATUS/HAS_IPS/HAS_WILDCARDS/LOG/LOG_API/LOG_OPERATOR/PUBLIC_KEY_ALGORITHM/SIGNATURE_ALGORITHM/TLD/VALIDATION_LEVEL)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, ca: [str], caOwner: [str], duration: [str], entryType: [str], expirationStatus: [str], hasIps: [bool], hasWildcards: [bool], log: [str], logApi: [str], logOperator: [str], publicKeyAlgorithm: [str], signatureAlgorithm: [str], validationLevel: [str], tld: [str], normalization: str(RAW_VALUES/PERCENTAGE)=RAW_VALUES, uniqueEntries: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: any}, success: bool}
@errors {400}

@endpoint GET /radar/datasets
@optional {limit: int=5, offset: int, datasetType: str(RANKING_BUCKET/REPORT)=RANKING_BUCKET, date: str(date), format: str(JSON/CSV)}
@returns(200) {result: map{datasets: [map]}, success: bool}
@errors {400}

@endpoint POST /radar/datasets/download
@required {datasetId: int}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{dataset: map{url: str}}}
@errors {400}

@endpoint GET /radar/datasets/{alias}
@required {alias: str}
@returns(200)
@errors {400}

@endpoint GET /radar/dns/summary/cache_hit
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NEGATIVE: str, POSITIVE: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/dnssec
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{INSECURE: str, INVALID: str, OTHER: str, SECURE: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/dnssec_aware
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NOT_SUPPORTED: str, SUPPORTED: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/dnssec_e2e
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NEGATIVE: str, POSITIVE: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/ip_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{IPv4: str, IPv6: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/matching_answer
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NEGATIVE: str, POSITIVE: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/protocol
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{HTTPS: str, TCP: str, TLS: str, UDP: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/query_type
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/response_code
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], nodata: [bool]=true, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/response_ttl
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{gt_15m_lte_1h: str, gt_1d_lte_1w: str, gt_1h_lte_1d: str, gt_1m_lte_5m: str, gt_1w: str, gt_5m_lte_15m: str, lte_1m: str}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/summary/{dimension}
@required {dimension: str(AS/CACHE_HIT/DNSSEC/DNSSEC_AWARE/DNSSEC_E2E/IP_VERSION/LOCATION/MATCHING_ANSWER/PROTOCOL/QUERY_TYPE/RESPONSE_CODE/RESPONSE_TTL/TLD/TLD_DNS_MAGNITUDE)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], cacheHit: [bool], nodata: [bool]=true, protocol: [str], queryType: [str], responseCode: [str], responseTtl: [str], dnssec: [str], dnssecAware: [str], dnssecE2e: [bool], ipVersion: [str], limitPerGroup: int, matchingAnswer: [bool], tld: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], cacheHit: [bool], nodata: [bool]=true, protocol: [str], queryType: [str], responseCode: [str], responseTtl: [str], dnssec: [str], dnssecAware: [str], dnssecE2e: [bool], ipVersion: [str], matchingAnswer: [bool], tld: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/cache_hit
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NEGATIVE: [str], POSITIVE: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/dnssec
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{INSECURE: [str], INVALID: [str], OTHER: [str], SECURE: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/dnssec_aware
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NOT_SUPPORTED: [str], SUPPORTED: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/dnssec_e2e
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NEGATIVE: [str], POSITIVE: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/ip_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{IPv4: [str], IPv6: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/matching_answer
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NEGATIVE: [str], POSITIVE: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/protocol
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{HTTPS: [str], TCP: [str], TLS: [str], UDP: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/query_type
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/response_code
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], nodata: [bool]=true, limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/response_ttl
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], tld: [str], queryType: [str], protocol: [str], responseCode: [str], nodata: [bool]=true, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{gt_15m_lte_1h: [str], gt_1d_lte_1w: [str], gt_1h_lte_1d: [str], gt_1m_lte_5m: [str], gt_1w: [str], gt_5m_lte_15m: [str], lte_1m: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/timeseries_groups/{dimension}
@required {dimension: str(AS/CACHE_HIT/DNSSEC/DNSSEC_AWARE/DNSSEC_E2E/IP_VERSION/LOCATION/MATCHING_ANSWER/PROTOCOL/QUERY_TYPE/RESPONSE_CODE/RESPONSE_TTL/TLD)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], cacheHit: [bool], nodata: [bool]=true, protocol: [str], queryType: [str], responseCode: [str], responseTtl: [str], dnssec: [str], dnssecAware: [str], dnssecE2e: [bool], ipVersion: [str], limitPerGroup: int, matchingAnswer: [bool], tld: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/dns/top/ases
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], domain: [str], cacheHit: [bool], nodata: [bool]=true, protocol: [str], queryType: [str], responseCode: [str], responseTtl: [str], dnssec: [str], dnssecAware: [str], dnssecE2e: [bool], ipVersion: [str], matchingAnswer: [bool], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/dns/top/locations
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], domain: [str], cacheHit: [bool], nodata: [bool]=true, protocol: [str], queryType: [str], responseCode: [str], responseTtl: [str], dnssec: [str], dnssecAware: [str], dnssecE2e: [bool], ipVersion: [str], matchingAnswer: [bool], tld: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/email/routing/summary/arc
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], dkim: [str], dmarc: [str], spf: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/summary/dkim
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dmarc: [str], spf: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/summary/dmarc
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], spf: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/summary/encrypted
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], ipVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{ENCRYPTED: str, NOT_ENCRYPTED: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/summary/ip_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{IPv4: str, IPv6: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/summary/spf
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/summary/{dimension}
@required {dimension: str(IP_VERSION/ENCRYPTED/ARC/DKIM/DMARC/SPF)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], ipVersion: [str], encrypted: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/timeseries_groups/arc
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], dkim: [str], dmarc: [str], spf: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/timeseries_groups/dkim
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dmarc: [str], spf: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/timeseries_groups/dmarc
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], spf: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/timeseries_groups/encrypted
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], ipVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{ENCRYPTED: [str], NOT_ENCRYPTED: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/timeseries_groups/ip_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{IPv4: [str], IPv6: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/timeseries_groups/spf
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], ipVersion: [str], encrypted: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/routing/timeseries_groups/{dimension}
@required {dimension: str(IP_VERSION/ENCRYPTED/ARC/DKIM/DMARC/SPF)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], ipVersion: [str], encrypted: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/arc
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/dkim
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/dmarc
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/malicious
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{MALICIOUS: str, NOT_MALICIOUS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/spam
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NOT_SPAM: str, SPAM: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/spf
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{FAIL: str, NONE: str, PASS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/spoof
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NOT_SPOOF: str, SPOOF: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/threat_category
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{BrandImpersonation: str, CredentialHarvester: str, IdentityDeception: str, Link: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/tls_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{TLS 1.0: str, TLS 1.1: str, TLS 1.2: str, TLS 1.3: str}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/summary/{dimension}
@required {dimension: str(SPAM/MALICIOUS/SPOOF/THREAT_CATEGORY/ARC/DKIM/DMARC/SPF/TLS_VERSION)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/arc
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/dkim
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/dmarc
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/malicious
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{MALICIOUS: [str], NOT_MALICIOUS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/spam
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NOT_SPAM: [str], SPAM: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/spf
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{FAIL: [str], NONE: [str], PASS: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/spoof
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NOT_SPOOF: [str], SPOOF: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/threat_category
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{BrandImpersonation: [str], CredentialHarvester: [str], IdentityDeception: [str], Link: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/tls_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{TLS 1.0: [str], TLS 1.1: [str], TLS 1.2: [str], TLS 1.3: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/timeseries_groups/{dimension}
@required {dimension: str(SPAM/MALICIOUS/SPOOF/THREAT_CATEGORY/ARC/DKIM/DMARC/SPF/TLS_VERSION)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/email/security/top/tlds
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], tldCategory: str(CLASSIC/COUNTRY), format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/email/security/top/tlds/malicious/{malicious}
@required {malicious: str(MALICIOUS/NOT_MALICIOUS)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], tldCategory: str(CLASSIC/COUNTRY), format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/email/security/top/tlds/spam/{spam}
@required {spam: str(SPAM/NOT_SPAM)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], tldCategory: str(CLASSIC/COUNTRY), format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/email/security/top/tlds/spoof/{spoof}
@required {spoof: str(SPOOF/NOT_SPOOF)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], arc: [str], dkim: [str], dmarc: [str], spf: [str], tlsVersion: [str], tldCategory: str(CLASSIC/COUNTRY), format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/entities/asns
@optional {limit: int=5, offset: int, asn: str, location: str, orderBy: str(ASN/POPULATION)=ASN, format: str(JSON/CSV)}
@returns(200) {result: map{asns: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/entities/asns/botnet_threat_feed
@optional {limit: int=5, offset: int, metric: str(OFFENSE_COUNT/NUMBER_OF_OFFENDING_IPS)=NUMBER_OF_OFFENDING_IPS, date: str(date), compareDateRange: str, location: str, asn: [str], sortOrder: str(ASC/DESC), format: str(JSON/CSV)}
@returns(200) {result: map{ases: [map], meta: map{compareDate: str, date: str, total: int}}, success: bool}
@errors {400}

@endpoint GET /radar/entities/asns/ip
@required {ip: str(ip)}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{asn: map{aka: str, asn: int, country: str, countryName: str, estimatedUsers: map{estimatedUsers: int, locations: [map]}, name: str, orgName: str, related: [map], source: str, website: str}}, success: bool}
@errors {404}

@endpoint GET /radar/entities/asns/{asn}
@required {asn: int}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{asn: map{aka: str, asn: int, confidenceLevel: int, country: str, countryName: str, estimatedUsers: map{estimatedUsers: int, locations: [map]}, name: str, orgName: str, related: [map], source: str, website: str}}, success: bool}
@errors {404}

@endpoint GET /radar/entities/asns/{asn}/as_set
@required {asn: int}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{as_sets: [map], paths: [[str]]}, success: bool}
@errors {400}

@endpoint GET /radar/entities/asns/{asn}/rel
@required {asn: int}
@optional {asn2: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{data_time: str, query_time: str, total_peers: int}, rels: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/entities/ip
@required {ip: str(ip)}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{ip: map{asn: str, asnLocation: str, asnName: str, asnOrgName: str, ip: str, ipVersion: str, location: str, locationName: str}}, success: bool}
@errors {404}

@endpoint GET /radar/entities/locations
@optional {limit: int=5, offset: int, location: str, region: str, subregion: str, continent: str(AF/AS/EU/NA/OC/SA), format: str(JSON/CSV)}
@returns(200) {result: map{locations: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/entities/locations/{location}
@required {location: str}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{location: map{alpha2: str, confidenceLevel: int, continent: str, latitude: str, longitude: str, name: str, region: str, subregion: str}}, success: bool}
@errors {404}

@endpoint GET /radar/geolocations
@optional {limit: int=5, offset: int, geoId: str, location: str, format: str(JSON/CSV)}
@returns(200) {result: map{geolocations: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/geolocations/{geo_id}
@required {geo_id: str}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{geolocation: map{code: str, geoId: str, latitude: str, locale: str, longitude: str, name: str, parent: map{code: str, geoId: str, latitude: str, locale: str, longitude: str, name: str, parent: map, type: str}, type: str}}, success: bool}
@errors {404}

@endpoint GET /radar/http/summary/bot_class
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{bot: str, human: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/device_type
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{desktop: str, mobile: str, other: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/http_protocol
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{http: str, https: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/http_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{HTTP/1.x: str, HTTP/2: str, HTTP/3: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/ip_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{IPv4: str, IPv6: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/os
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{ANDROID: str, IOS: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/post_quantum
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{NOT_SUPPORTED: str, SUPPORTED: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/tls_version
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{TLS 1.0: str, TLS 1.1: str, TLS 1.2: str, TLS 1.3: str, TLS QUIC: str}}, success: bool}
@errors {400}

@endpoint GET /radar/http/summary/{dimension}
@required {dimension: str(ADM1/AS/BOT_CLASS/BROWSER/BROWSER_FAMILY/DEVICE_TYPE/HTTP_PROTOCOL/HTTP_VERSION/IP_VERSION/LOCATION/OS/POST_QUANTUM/TLS_VERSION)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], normalization: str(PERCENTAGE_CHANGE/MIN0_MAX), botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/bot_class
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{bot: [str], human: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/browser
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/browser_family
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/device_type
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{desktop: [str], mobile: [str], other: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/http_protocol
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{http: [str], https: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/http_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{HTTP/1.x: [str], HTTP/2: [str], HTTP/3: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/ip_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{IPv4: [str], IPv6: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/os
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/post_quantum
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{NOT_SUPPORTED: [str], SUPPORTED: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/tls_version
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{TLS 1.0: [str], TLS 1.1: [str], TLS 1.2: [str], TLS 1.3: [str], TLS QUIC: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/timeseries_groups/{dimension}
@required {dimension: str(ADM1/AS/BOT_CLASS/BROWSER/BROWSER_FAMILY/DEVICE_TYPE/HTTP_PROTOCOL/HTTP_VERSION/IP_VERSION/LOCATION/OS/POST_QUANTUM/TLS_VERSION)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], limitPerGroup: int, botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, ipVersion: [str], os: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/http/top/ases
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/bot_class/{bot_class}
@required {bot_class: str(LIKELY_AUTOMATED/LIKELY_HUMAN)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/browser_family/{browser_family}
@required {browser_family: str(CHROME/EDGE/FIREFOX/SAFARI)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/device_type/{device_type}
@required {device_type: str(DESKTOP/MOBILE/OTHER)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/http_protocol/{http_protocol}
@required {http_protocol: str(HTTP/HTTPS)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/http_version/{http_version}
@required {http_version: str(HTTPv1/HTTPv2/HTTPv3)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/ip_version/{ip_version}
@required {ip_version: str(IPv4/IPv6)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/os/{os}
@required {os: str(WINDOWS/MACOSX/IOS/ANDROID/CHROMEOS/LINUX/SMART_TV)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/ases/tls_version/{tls_version}
@required {tls_version: str(TLSv1_0/TLSv1_1/TLSv1_2/TLSv1_3/TLSvQUIC)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/browser
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/browser_family
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/bot_class/{bot_class}
@required {bot_class: str(LIKELY_AUTOMATED/LIKELY_HUMAN)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/browser_family/{browser_family}
@required {browser_family: str(CHROME/EDGE/FIREFOX/SAFARI)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/device_type/{device_type}
@required {device_type: str(DESKTOP/MOBILE/OTHER)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/http_protocol/{http_protocol}
@required {http_protocol: str(HTTP/HTTPS)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpVersion: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/http_version/{http_version}
@required {http_version: str(HTTPv1/HTTPv2/HTTPv3)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], ipVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/ip_version/{ip_version}
@required {ip_version: str(IPv4/IPv6)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], os: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/os/{os}
@required {os: str(WINDOWS/MACOSX/IOS/ANDROID/CHROMEOS/LINUX/SMART_TV)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], tlsVersion: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/http/top/locations/tls_version/{tls_version}
@required {tls_version: str(TLSv1_0/TLSv1_1/TLSv1_2/TLSv1_3/TLSvQUIC)}
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], botClass: [str], deviceType: [str], httpProtocol: [str], httpVersion: [str], ipVersion: [str], os: [str], browserFamily: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/leaked_credential_checks/summary/bot_class
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], compromised: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{bot: str, human: str}}, success: bool}
@errors {400}

@endpoint GET /radar/leaked_credential_checks/summary/compromised
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], botClass: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{CLEAN: str, COMPROMISED: str}}, success: bool}
@errors {400}

@endpoint GET /radar/leaked_credential_checks/summary/{dimension}
@required {dimension: str(COMPROMISED/BOT_CLASS)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], botClass: [str], compromised: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/leaked_credential_checks/timeseries_groups/bot_class
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], compromised: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{bot: [str], human: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/leaked_credential_checks/timeseries_groups/compromised
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], botClass: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{CLEAN: [str], COMPROMISED: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/leaked_credential_checks/timeseries_groups/{dimension}
@required {dimension: str(COMPROMISED/BOT_CLASS)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], botClass: [str], compromised: [str], checkResult: [str], limitPerGroup: int, normalization: str(PERCENTAGE_CHANGE/MIN0_MAX), format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/netflows/summary
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{HTTP: str, OTHER: str}}, success: bool}
@errors {400}

@endpoint GET /radar/netflows/summary/{dimension}
@required {dimension: str(ADM1/AS/LOCATION/PRODUCT)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], product: [str], limitPerGroup: int, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/netflows/timeseries
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], product: [str], asn: [str], location: [str], continent: [str], geoId: [str], normalization: str(PERCENTAGE_CHANGE/MIN0_MAX), format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)], values: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/netflows/timeseries_groups/{dimension}
@required {dimension: str(ADM1/AS/LOCATION/PRODUCT)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], limitPerGroup: int, normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, product: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/netflows/top/ases
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/netflows/top/locations
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], geoId: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/origins
@optional {limit: int=5, offset: int, format: str(JSON/CSV)}
@returns(200) {result: map{origins: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/origins/summary/{dimension}
@required {dimension: str(REGION/SUCCESS_RATE/PERCENTILE), origin: [str], metric: str(CONNECTION_FAILURES/REQUESTS/RESPONSE_HEADER_RECEIVE_DURATION/TCP_HANDSHAKE_DURATION/TCP_RTT/TLS_HANDSHAKE_DURATION)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, region: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/origins/timeseries
@required {origin: [str], metric: str(CONNECTION_FAILURES/REQUESTS/RESPONSE_HEADER_RECEIVE_DURATION/TCP_HANDSHAKE_DURATION/TCP_RTT/TLS_HANDSHAKE_DURATION)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], region: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/origins/timeseries_groups/{dimension}
@required {dimension: str(REGION/SUCCESS_RATE/PERCENTILE), origin: [str], metric: str(CONNECTION_FAILURES/REQUESTS/RESPONSE_HEADER_RECEIVE_DURATION/TCP_HANDSHAKE_DURATION/TCP_RTT/TLS_HANDSHAKE_DURATION)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], limitPerGroup: int, region: [str], normalization: str(PERCENTAGE/MIN0_MAX)=PERCENTAGE, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/origins/{slug}
@required {slug: str(AMAZON/GOOGLE/MICROSOFT/ORACLE)}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{origin: map{regions: [map], slug: str}}, success: bool}
@errors {404}

@endpoint GET /radar/post_quantum/origin/summary/{dimension}
@required {dimension: str}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map}, success: bool}
@errors {400}

@endpoint GET /radar/post_quantum/origin/timeseries_groups/{dimension}
@required {dimension: str}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/post_quantum/tls/support
@required {host: str}
@returns(200) {result: map{host: str, kex: num, kexName: str, pq: bool}, success: bool}
@errors {400}

@endpoint GET /radar/quality/iqi/summary
@required {metric: str(BANDWIDTH/DNS/LATENCY)}
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{p25: str, p50: str, p75: str}}, success: bool}
@errors {400}

@endpoint GET /radar/quality/iqi/timeseries_groups
@required {metric: str(BANDWIDTH/DNS/LATENCY)}
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], interpolation: bool, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{p25: [str], p50: [str], p75: [str], timestamps: [str]}}, success: bool}
@errors {400}

@endpoint GET /radar/quality/speed/histogram
@optional {name: [str], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], bucketSize: int, metricGroup: str(BANDWIDTH/LATENCY/JITTER)=bandwidth, format: str(JSON/CSV)}
@returns(200) {result: map{histogram_0: map{bandwidthDownload: [str], bandwidthUpload: [str], bucketMin: [str]}, meta: map{bucketSize: int, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, totalTests: [int], units: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/quality/speed/summary
@optional {name: [str], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{bandwidthDownload: str, bandwidthUpload: str, jitterIdle: str, jitterLoaded: str, latencyIdle: str, latencyLoaded: str, packetLoss: str}}, success: bool}
@errors {400}

@endpoint GET /radar/quality/speed/top/ases
@optional {limit: int=5, name: [str], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], orderBy: str(BANDWIDTH_DOWNLOAD/BANDWIDTH_UPLOAD/LATENCY_IDLE/LATENCY_LOADED/JITTER_IDLE/JITTER_LOADED)=BANDWIDTH_DOWNLOAD, reverse: bool, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/quality/speed/top/locations
@optional {limit: int=5, name: [str], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], orderBy: str(BANDWIDTH_DOWNLOAD/BANDWIDTH_UPLOAD/LATENCY_IDLE/LATENCY_LOADED/JITTER_IDLE/JITTER_LOADED)=BANDWIDTH_DOWNLOAD, reverse: bool, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/ranking/domain/{domain}
@required {domain: str}
@optional {limit: int=5, rankingType: str(POPULAR/TRENDING_RISE/TRENDING_STEADY)=POPULAR, name: [str], includeTopLocations: bool, date: [str(date)], format: str(JSON/CSV)}
@returns(200) {result: map{details_0: map{bucket: str, categories: [map], rank: int, top_locations: [map]}, meta: map{dateRange: [map]}}, success: bool}
@errors {400}

@endpoint GET /radar/ranking/internet_services/categories
@optional {limit: int, name: [str], date: [str(date)], format: str(JSON/CSV)}
@returns(200) {result: map{categories_0: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/ranking/internet_services/timeseries_groups
@optional {serviceCategory: [str], limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/ranking/internet_services/top
@optional {serviceCategory: [str], limit: int, name: [str], date: [str(date)], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/ranking/timeseries_groups
@optional {limit: int=5, rankingType: str(POPULAR/TRENDING_RISE/TRENDING_STEADY)=POPULAR, name: [str], location: [str], domains: [str], domainCategory: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/ranking/top
@optional {limit: int, name: [str], location: [str], domainCategory: [str], date: [str(date)], rankingType: str(POPULAR/TRENDING_RISE/TRENDING_STEADY)=POPULAR, format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/robots_txt/top/domain_categories
@optional {limit: int=5, name: [str], userAgentCategory: str=AI, date: [str(date)], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/robots_txt/top/user_agents/directive
@optional {limit: int=5, name: [str], userAgentCategory: str=AI, date: [str(date)], domainCategory: [str], directive: str(ALLOW/DISALLOW), format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/search/global
@required {query: str}
@optional {limit: int=5, limitPerGroup: num, include: [str], exclude: [str], format: str(JSON/CSV)}
@returns(200) {result: map{search: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/tcp_resets_timeouts/summary
@optional {name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, summary_0: map{later_in_flow: str, no_match: str, post_ack: str, post_psh: str, post_syn: str}}, success: bool}
@errors {400}

@endpoint GET /radar/tcp_resets_timeouts/timeseries_groups
@optional {aggInterval: str(15m/1h/1d/1w), name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{aggInterval: str, confidenceInfo: map{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, serie_0: map{later_in_flow: [str], no_match: [str], post_ack: [str], post_psh: [str], post_syn: [str], timestamps: [str(date-time)]}}, success: bool}
@errors {400}

@endpoint GET /radar/tlds
@optional {limit: int=5, offset: int, tldManager: str, tldType: str(GENERIC/COUNTRY_CODE/GENERIC_RESTRICTED/INFRASTRUCTURE/SPONSORED), tld: str, format: str(JSON/CSV)}
@returns(200) {result: map{tlds: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/tlds/{tld}
@required {tld: str}
@optional {format: str(JSON/CSV)}
@returns(200) {result: map{tld: map{manager: str, tld: str, type: str}}, success: bool}
@errors {404}

@endpoint GET /radar/traffic_anomalies
@optional {limit: int=5, offset: int, dateRange: str, dateStart: str(date-time), dateEnd: str(date-time), status: str(VERIFIED/UNVERIFIED), type: [str], asn: int, location: str, origin: str, format: str(JSON/CSV)}
@returns(200) {result: map{trafficAnomalies: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/traffic_anomalies/locations
@optional {limit: int=5, dateRange: str, dateStart: str(date-time), dateEnd: str(date-time), status: str(VERIFIED/UNVERIFIED), format: str(JSON/CSV)}
@returns(200) {result: map{trafficAnomalies: [map]}, success: bool}
@errors {400}

@endpoint GET /radar/verified_bots/top/bots
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endpoint GET /radar/verified_bots/top/categories
@optional {limit: int=5, name: [str], dateRange: [str], dateStart: [str(date-time)], dateEnd: [str(date-time)], asn: [str], location: [str], continent: [str], format: str(JSON/CSV)}
@returns(200) {result: map{meta: map{confidenceInfo: map?{annotations: [map], level: int}, dateRange: [map], lastUpdated: str(date-time), normalization: str, units: [map]}, top_0: [map]}, success: bool}
@errors {404}

@endgroup

@group ready
@endpoint GET /ready

@endgroup

@group signed-url
@endpoint GET /signed-url

@endgroup

@group system
@endpoint GET /system/accounts/{account_tag}/stores
@required {account_tag: str}
@optional {direction: str(asc/desc)=desc, page: int, per_page: int, order: str(name/comment/created/modified/status)=created}
@returns(200)
@errors {4XX}

@endpoint POST /system/accounts/{account_tag}/stores
@required {account_tag: str, account_id: int(int64), name: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /system/accounts/{account_tag}/stores/{store_id}
@required {account_tag: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /system/accounts/{account_tag}/stores/{store_id}
@required {account_tag: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /system/accounts/{account_tag}/stores/{store_id}/secrets
@required {account_tag: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /system/accounts/{account_tag}/stores/{store_id}/secrets
@required {account_tag: str, store_id: str}
@optional {direction: str(asc/desc)=desc, page: int, per_page: int, search: str, order: str(name/comment/created/modified/status)=created, scopes: [[str]]}
@returns(200)
@errors {4XX}

@endpoint POST /system/accounts/{account_tag}/stores/{store_id}/secrets
@required {account_tag: str, store_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /system/accounts/{account_tag}/stores/{store_id}/secrets/{secret_id}
@required {account_tag: str, store_id: str, secret_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /system/accounts/{account_tag}/stores/{store_id}/secrets/{secret_id}
@required {account_tag: str, store_id: str, secret_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /system/accounts/{account_tag}/stores/{store_id}/secrets/{secret_id}
@required {account_tag: str, store_id: str, secret_id: str}
@optional {comment: str, scopes: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /system/accounts/{account_tag}/stores/{store_id}/secrets/{secret_id}/duplicate
@required {account_tag: str, store_id: str, secret_id: str, name: str, scopes: [str]}
@optional {comment: str}
@returns(200)
@errors {4XX}

@endgroup

@group tenants
@endpoint GET /tenants/{tenant_id}
@required {tenant_id: str}
@returns(200) {errors: [map], messages: [map], result: map{cdate: str(date-time), customer_id: str, edate: str(date-time), tenant_contacts: map{email: str, website: str}, tenant_labels: [str], tenant_metadata: map{dns: map{ns_pool: map}}, tenant_name: str, tenant_network: map, tenant_status: str, tenant_tag: str, tenant_type: str, tenant_units: [map]}, success: bool}
@errors {4XX}

@endpoint GET /tenants/{tenant_id}/account_types
@required {tenant_id: str}
@returns(200) {errors: [map], messages: [map], result: [str], success: bool}
@errors {4XX}

@endpoint GET /tenants/{tenant_id}/accounts
@required {tenant_id: str}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {4XX}

@endpoint GET /tenants/{tenant_id}/entitlements
@required {tenant_id: str}
@returns(200) {errors: [map], messages: [map], result: map{allow_add_subdomain: map{type: str, value: bool}, allow_auto_accept_invites: map{type: str, value: bool}, cname_setup_allowed: map{type: str, value: bool}, custom_entitlements: [map]?, mhs_certificate_count: map{type: str, value: int}, partial_setup_allowed: map{type: str, value: bool}}, success: bool}
@errors {4XX}

@endpoint GET /tenants/{tenant_id}/memberships
@required {tenant_id: str}
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {4XX}

@endgroup

@group user
@endpoint GET /user
@returns(200)
@errors {4XX}

@endpoint PATCH /user
@optional {country: str, first_name: str, last_name: str, telephone: str, zipcode: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/audit_logs
@optional {id: str, export: bool, action.type: str, actor.ip: str, actor.email: str(email), since: any, before: any, zone.name: str, direction: str(desc/asc)=desc, per_page: num=100, page: num=1, hide_user_logs: bool=false}
@returns(200)
@errors {4XX}

@endpoint GET /user/billing/history
@optional {page: num=1, per_page: num=20, order: str(type/occurred_at/action), occurred_at: str(date-time), type: str, action: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/billing/profile
@returns(200)
@errors {4XX}

@endpoint GET /user/firewall/access_rules/rules
@optional {mode: str, configuration.target: str(ip/ip_range/asn/country), configuration.value: str, notes: str, match: str(any/all)=all, page: num, per_page: num, order: str(configuration.target/configuration.value/mode), direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /user/firewall/access_rules/rules
@required {configuration: map, mode: str(block/challenge/whitelist/js_challenge/managed_challenge)}
@optional {notes: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /user/firewall/access_rules/rules/{rule_id}
@required {rule_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /user/firewall/access_rules/rules/{rule_id}
@required {rule_id: str}
@optional {mode: str(block/challenge/whitelist/js_challenge/managed_challenge), notes: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/invites
@returns(200)
@errors {4XX}

@endpoint GET /user/invites/{invite_id}
@required {invite_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /user/invites/{invite_id}
@required {invite_id: str, status: any(accepted/rejected)}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/monitors
@returns(200)
@errors {4XX}

@endpoint POST /user/load_balancers/monitors
@returns(200)
@errors {4XX}

@endpoint DELETE /user/load_balancers/monitors/{monitor_id}
@required {monitor_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/monitors/{monitor_id}
@required {monitor_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /user/load_balancers/monitors/{monitor_id}
@required {monitor_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /user/load_balancers/monitors/{monitor_id}
@required {monitor_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /user/load_balancers/monitors/{monitor_id}/preview
@required {monitor_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/monitors/{monitor_id}/references
@required {monitor_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/pools
@optional {monitor: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /user/load_balancers/pools
@optional {notification_email: str}
@returns(200)
@errors {4XX}

@endpoint POST /user/load_balancers/pools
@required {name: str, origins: [map{address: str, disabled_at: str(date-time), enabled: bool, header: map, name: str, port: int, virtual_network_id: str, weight: num}]}
@optional {check_regions: [str], description: str=, enabled: bool=true, latitude: num, load_shedding: map{default_percent: num, default_policy: str, session_percent: num, session_policy: str}, longitude: num, minimum_origins: int=1, monitor: str, monitor_group: str, networks: [str], notification_email: str=, notification_filter: map{origin: map, pool: map}, origin_steering: map{policy: str}}
@returns(200)
@errors {4XX}

@endpoint DELETE /user/load_balancers/pools/{pool_id}
@required {pool_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/pools/{pool_id}
@required {pool_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /user/load_balancers/pools/{pool_id}
@required {pool_id: str}
@optional {check_regions: [str], description: str=, disabled_at: str(date-time), enabled: bool=true, latitude: num, load_shedding: map{default_percent: num, default_policy: str, session_percent: num, session_policy: str}, longitude: num, minimum_origins: int=1, monitor: str, monitor_group: str, name: str, notification_email: str=, notification_filter: map{origin: map, pool: map}, origin_steering: map{policy: str}, origins: [map{address: str, disabled_at: str(date-time), enabled: bool, header: map, name: str, port: int, virtual_network_id: str, weight: num}]}
@returns(200)
@errors {4XX}

@endpoint PUT /user/load_balancers/pools/{pool_id}
@required {pool_id: str, name: str, origins: [map{address: str, disabled_at: str(date-time), enabled: bool, header: map, name: str, port: int, virtual_network_id: str, weight: num}]}
@optional {check_regions: [str], description: str=, disabled_at: str(date-time), enabled: bool=true, latitude: num, load_shedding: map{default_percent: num, default_policy: str, session_percent: num, session_policy: str}, longitude: num, minimum_origins: int=1, monitor: str, monitor_group: str, networks: [str], notification_email: str=, notification_filter: map{origin: map, pool: map}, origin_steering: map{policy: str}}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/pools/{pool_id}/health
@required {pool_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /user/load_balancers/pools/{pool_id}/preview
@required {pool_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/pools/{pool_id}/references
@required {pool_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancers/preview/{preview_id}
@required {preview_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /user/load_balancing_analytics/events
@optional {until: str(date-time), pool_name: str, origin_healthy: bool, pool_id: str, since: str(date-time), origin_name: str, pool_healthy: bool=true}
@returns(200)
@errors {4XX}

@endpoint GET /user/organizations
@optional {name: str, page: num=1, per_page: num=20, order: str(id/name/status), direction: str(asc/desc), match: str(any/all)=all, status: str(member/invited)}
@returns(200)
@errors {4XX}

@endpoint DELETE /user/organizations/{organization_id}
@required {organization_id: str}
@returns(200) {id: str}
@errors {4XX}

@endpoint GET /user/organizations/{organization_id}
@required {organization_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/subscriptions
@returns(200)
@errors {4XX}

@endpoint DELETE /user/subscriptions/{identifier}
@required {identifier: str}
@returns(200) {subscription_id: str}
@errors {4XX}

@endpoint PUT /user/subscriptions/{identifier}
@required {identifier: str}
@optional {app: any, component_values: [map{default: num, name: str, price: num, value: num}], currency: str, current_period_end: str(date-time), current_period_start: str(date-time), frequency: str(weekly/monthly/quarterly/yearly), id: str, price: num, rate_plan: map{currency: str, externally_managed: bool, id: str, is_contract: bool, public_name: str, scope: str, sets: [str]}, state: str(Trial/Provisioned/Paid/AwaitingPayment/Cancelled/Failed/Expired), zone: map{id: str, name: str}}
@returns(200)
@errors {4XX}

@endpoint GET /user/tokens
@optional {page: num=1, per_page: num=20, direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /user/tokens
@required {name: str, policies: [map{effect!: str, id!: str, permission_groups!: [map], resources!: any}]}
@optional {condition: map{request_ip: map}, expires_on: str(date-time), not_before: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /user/tokens/permission_groups
@optional {name: str, scope: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/tokens/verify
@returns(200)
@errors {4XX}

@endpoint DELETE /user/tokens/{token_id}
@required {token_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /user/tokens/{token_id}
@required {token_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /user/tokens/{token_id}
@required {token_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /user/tokens/{token_id}/value
@required {token_id: str}
@returns(200)
@errors {4XX}

@endgroup

@group users
@endpoint GET /users/tenants
@returns(200) {errors: [map], messages: [map], result: [map], success: bool}
@errors {4XX}

@endgroup

@group zones
@endpoint GET /zones
@optional {name: str, status: str(initializing/pending/active/moved), account.id: str, account.name: str, page: num=1, per_page: num=20, order: str(name/status/account.id/account.name/plan.id), direction: str(asc/desc), match: str(any/all)=all}
@returns(200)
@errors {4XX}

@endpoint POST /zones
@required {account: map{id: str}, name: str}
@optional {type: str(full/partial/secondary/internal)=full}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_identifier}/analytics/colos
@required {zone_identifier: str}
@optional {until: any, since: any=-10080, continuous: bool=true}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_identifier}/analytics/dashboard
@required {zone_identifier: str}
@optional {until: any, since: any=-10080, continuous: bool=true}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_identifier}/custom_pages
@required {zone_identifier: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_identifier}/custom_pages/assets
@required {zone_identifier: str}
@optional {page: int=1, per_page: int=20}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_identifier}/custom_pages/assets
@required {zone_identifier: str, description: str, name: str, url: str(uri)}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_identifier}/custom_pages/assets/{asset_name}
@required {asset_name: str, zone_identifier: str}
@returns(204)
@errors {4XX}

@endpoint GET /zones/{zone_identifier}/custom_pages/assets/{asset_name}
@required {asset_name: str, zone_identifier: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_identifier}/custom_pages/assets/{asset_name}
@required {asset_name: str, zone_identifier: str, description: str, url: str(uri)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_identifier}/custom_pages/{identifier}
@required {identifier: str, zone_identifier: str}
@returns(200) {created_on: str(date-time), description: str, id: str, modified_on: str(date-time), preview_target: str, required_tokens: [str], state: str, url: str(uri)}
@errors {4XX}

@endpoint PUT /zones/{zone_identifier}/custom_pages/{identifier}
@required {identifier: str, zone_identifier: str, state: str(default/customized), url: str(uri)=}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}
@required {zone_id: str}
@optional {paused: bool=false, plan: map{id: str}, type: str(full/partial/secondary/internal), vanity_name_servers: [str(hostname)]=}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/apps
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/apps
@required {zone_id: str}
@returns(201)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/apps/ca
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/access/apps/{app_id}
@required {app_id: any, zone_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/apps/{app_id}
@required {app_id: any, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/apps/{app_id}
@required {app_id: any, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/access/apps/{app_id}/ca
@required {app_id: str, zone_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/apps/{app_id}/ca
@required {app_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/apps/{app_id}/ca
@required {app_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/apps/{app_id}/policies
@required {app_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/apps/{app_id}/policies
@required {app_id: str, zone_id: str, decision: str(allow/deny/non_identity/bypass), include: [map], name: str}
@optional {approval_groups: [map{approvals_needed!: num, email_addresses: [any], email_list_uuid: str}], approval_required: bool=false, exclude: [map], isolation_required: bool=false, precedence: int, purpose_justification_prompt: str, purpose_justification_required: bool=false, require: [map]}
@returns(201)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/access/apps/{app_id}/policies/{policy_id}
@required {policy_id: str, app_id: str, zone_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/apps/{app_id}/policies/{policy_id}
@required {policy_id: str, app_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/apps/{app_id}/policies/{policy_id}
@required {policy_id: str, app_id: str, zone_id: str, decision: str(allow/deny/non_identity/bypass), include: [map], name: str}
@optional {approval_groups: [map{approvals_needed!: num, email_addresses: [any], email_list_uuid: str}], approval_required: bool=false, exclude: [map], isolation_required: bool=false, precedence: int, purpose_justification_prompt: str, purpose_justification_required: bool=false, require: [map]}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/apps/{app_id}/revoke_tokens
@required {app_id: any, zone_id: str}
@returns(202)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/access/apps/{app_id}/settings
@required {app_id: any, zone_id: str}
@optional {allow_iframe: bool, skip_interstitial: bool}
@returns(202)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/apps/{app_id}/settings
@required {app_id: any, zone_id: str}
@optional {allow_iframe: bool, skip_interstitial: bool}
@returns(202)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/apps/{app_id}/user_policy_checks
@required {app_id: any, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/certificates
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/certificates
@required {zone_id: str, certificate: str, name: str}
@optional {associated_hostnames: [str]}
@returns(201)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/certificates/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/certificates/settings
@required {zone_id: str, settings: [map{china_network!: bool, client_certificate_forwarding!: bool, hostname!: str}]}
@returns(202)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/access/certificates/{certificate_id}
@required {certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/certificates/{certificate_id}
@required {certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/certificates/{certificate_id}
@required {certificate_id: str, zone_id: str, associated_hostnames: [str]}
@optional {name: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/groups
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/groups
@required {zone_id: str, include: [map], name: str}
@optional {exclude: [map], require: [map]}
@returns(201)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/access/groups/{group_id}
@required {group_id: str, zone_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/groups/{group_id}
@required {group_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/groups/{group_id}
@required {group_id: str, zone_id: str, include: [map], name: str}
@optional {exclude: [map], require: [map]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/identity_providers
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/identity_providers
@required {zone_id: str}
@returns(201)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/access/identity_providers/{identity_provider_id}
@required {identity_provider_id: str, zone_id: str}
@returns(202)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/identity_providers/{identity_provider_id}
@required {identity_provider_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/identity_providers/{identity_provider_id}
@required {identity_provider_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/organizations
@required {zone_id: any}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/organizations
@required {zone_id: any, auth_domain: str, name: str}
@optional {is_ui_read_only: bool, login_design: any, ui_read_only_toggle_reason: str, user_seat_expiration_inactive_time: str}
@returns(201)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/organizations
@required {zone_id: any}
@optional {auth_domain: str, is_ui_read_only: bool, login_design: any, name: str, ui_read_only_toggle_reason: str, user_seat_expiration_inactive_time: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/organizations/revoke_user
@required {zone_id: any, email: str}
@returns(200)
@errors {4xx}

@endpoint GET /zones/{zone_id}/access/service_tokens
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/access/service_tokens
@required {zone_id: str, name: str}
@optional {client_secret_version: num=1, duration: str=8760h, previous_client_secret_expires_at: str(date-time)}
@returns(201)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/access/service_tokens/{service_token_id}
@required {service_token_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/access/service_tokens/{service_token_id}
@required {service_token_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/access/service_tokens/{service_token_id}
@required {service_token_id: str, zone_id: str}
@optional {client_secret_version: num=1, duration: str=8760h, name: str, previous_client_secret_expires_at: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/acm/custom_trust_store
@required {zone_id: str}
@optional {page: num=1, per_page: num=20, limit: int, offset: int}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/acm/custom_trust_store
@required {zone_id: str, certificate: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/acm/custom_trust_store/{custom_origin_trust_store_id}
@required {custom_origin_trust_store_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/acm/custom_trust_store/{custom_origin_trust_store_id}
@required {custom_origin_trust_store_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/acm/total_tls
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/acm/total_tls
@required {zone_id: str, enabled: bool}
@optional {certificate_authority: str(google/lets_encrypt/ssl_com)}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/activation_check
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/addressing/regional_hostnames
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/addressing/regional_hostnames
@required {zone_id: str, hostname: str, region_key: str}
@optional {routing: str=dns}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/addressing/regional_hostnames/{hostname}
@required {zone_id: str, hostname: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/addressing/regional_hostnames/{hostname}
@required {zone_id: str, hostname: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/addressing/regional_hostnames/{hostname}
@required {zone_id: str, hostname: str, region_key: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/analytics/latency
@required {zone_id: str}
@optional {bins: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/analytics/latency/colos
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/configuration
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/configuration
@required {auth_id_characteristics: [any]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/discovery
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/discovery/operations
@optional {page: int=1, per_page: int=20, host: [str], method: [str], endpoint: str, direction: str(asc/desc), order: str(host/method/endpoint/traffic_stats.requests/traffic_stats.last_updated), diff: bool, origin: str, state: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/api_gateway/discovery/operations
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/api_gateway/discovery/operations/{operation_id}
@optional {state: any}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/api_gateway/expression-template/fallthrough
@required {hosts: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/labels
@optional {page: int=1, per_page: int=20, order: str(name/description/created_at/last_updated/mapped_resources.operations), direction: str(asc/desc), source: str, filter: str, with_mapped_resource_counts: bool=false}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/labels/managed/{name}
@optional {with_mapped_resource_counts: bool=false}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/labels/managed/{name}/resources/operation
@required {selector: map{include!: map}}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/api_gateway/labels/user
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/api_gateway/labels/user
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/api_gateway/labels/user/{name}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/labels/user/{name}
@optional {with_mapped_resource_counts: bool=false}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/api_gateway/labels/user/{name}
@optional {description: str, metadata: map}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/labels/user/{name}
@optional {description: str, metadata: map}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/labels/user/{name}/resources/operation
@required {selector: map{include!: map}}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/api_gateway/operations
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/operations
@optional {page: int=1, per_page: int=20, order: str(method/host/endpoint/thresholds.$key), direction: str(asc/desc), host: [str], method: [str], endpoint: str, feature: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/api_gateway/operations
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/api_gateway/operations/item
@required {endpoint: str(uri-template), host: str(hostname), method: str(GET/POST/HEAD/OPTIONS/PUT/DELETE/CONNECT/PATCH/TRACE)}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/api_gateway/operations/labels
@required {selector: map{include!: map}}
@optional {managed: map{labels: [str]}, user: map{labels: [str]}}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/api_gateway/operations/labels
@required {selector: map{include!: map}}
@optional {managed: map{labels: [str]}, user: map{labels: [str]}}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/operations/labels
@required {managed: map{labels!: [str]}, selector: map{include!: map}, user: map{labels!: [str]}}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/api_gateway/operations/schema_validation
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/api_gateway/operations/{operation_id}
@returns(200) {errors: [map], messages: [map], success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/operations/{operation_id}
@optional {feature: [str]}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/api_gateway/operations/{operation_id}/labels
@optional {managed: [str], user: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/api_gateway/operations/{operation_id}/labels
@optional {managed: [str], user: [str]}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/operations/{operation_id}/labels
@optional {managed: [str], user: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/operations/{operation_id}/schema_validation
@returns(200) {mitigation_action: str?, operation_id: any}
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/operations/{operation_id}/schema_validation
@optional {mitigation_action: str(log/block/none)}
@returns(200) {mitigation_action: str?, operation_id: any}
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/schemas
@optional {host: [str], feature: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/settings/schema_validation
@returns(200) {validation_default_mitigation_action: str, validation_override_mitigation_action: str?}
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/api_gateway/settings/schema_validation
@optional {validation_default_mitigation_action: str(none/log/block), validation_override_mitigation_action: str(none/disable_override)}
@returns(200) {validation_default_mitigation_action: str, validation_override_mitigation_action: str?}
@errors {4XX}

@endpoint PUT /zones/{zone_id}/api_gateway/settings/schema_validation
@required {validation_default_mitigation_action: str(none/log/block)}
@optional {validation_override_mitigation_action: str(none/disable_override)}
@returns(200) {validation_default_mitigation_action: str, validation_override_mitigation_action: str?}
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/user_schemas
@optional {page: int=1, per_page: int=20, omit_source: bool=false, validation_enabled: bool}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/api_gateway/user_schemas
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/user_schemas/hosts
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/api_gateway/user_schemas/{schema_id}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/user_schemas/{schema_id}
@optional {omit_source: bool=false}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/api_gateway/user_schemas/{schema_id}
@optional {validation_enabled: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/api_gateway/user_schemas/{schema_id}/operations
@optional {feature: [str], host: [str], method: [str], endpoint: str, page: int=1, per_page: int=20, operation_status: str(new/existing)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/argo/smart_routing
@required {zone_id: str}
@returns(200) {errors: [map], messages: [map], result: map{editable: bool, id: str, modified_on: str(date-time), value: str}, success: bool}
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/argo/smart_routing
@required {zone_id: str, value: str(on/off)}
@returns(200) {errors: [map], messages: [map], result: map{editable: bool, id: str, modified_on: str(date-time), value: str}, success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/argo/tiered_caching
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/argo/tiered_caching
@required {zone_id: str, value: str(on/off)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/available_plans
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/available_plans/{plan_identifier}
@required {plan_identifier: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/available_rate_plans
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/bot_management
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/bot_management
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/bot_management/feedback
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/bot_management/feedback
@required {zone_id: str, description: str, expression: str, first_request_seen_at: str(date-time), last_request_seen_at: str(date-time), requests: int(int64), requests_by_attribute: map, requests_by_score: map, requests_by_score_src: map, type: str(false_positive/false_negative)}
@optional {created_at: str(date-time), subtype: str}
@returns(201)
@errors {4XX}

@endpoint GET /zones/{zone_id}/cache/cache_reserve
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/cache/cache_reserve
@required {zone_id: str, value: str(on/off)=off}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/cache/cache_reserve_clear
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/cache/cache_reserve_clear
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/cache/origin_post_quantum_encryption
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/cache/origin_post_quantum_encryption
@required {zone_id: str, value: str(preferred/supported/off)=supported}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/cache/regional_tiered_cache
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/cache/regional_tiered_cache
@required {zone_id: str, value: str(on/off)=off}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/cache/tiered_cache_smart_topology_enable
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/cache/tiered_cache_smart_topology_enable
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/cache/tiered_cache_smart_topology_enable
@required {zone_id: str, value: str(on/off)}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/cache/variants
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/cache/variants
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/cache/variants
@required {zone_id: str, value: map{avif: [str], bmp: [str], gif: [str], jp2: [str], jpeg: [str], jpg: [str], jpg2: [str], png: [str], tif: [str], tiff: [str], webp: [str]}}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/certificate_authorities/hostname_associations
@required {zone_id: str}
@optional {mtls_certificate_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/certificate_authorities/hostname_associations
@required {zone_id: str}
@optional {hostnames: [str], mtls_certificate_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/client_certificates
@required {zone_id: str}
@optional {status: any(all/active/pending_reactivation/pending_revocation/revoked), page: num=1, per_page: num=20, limit: int, offset: int}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/client_certificates
@required {zone_id: str, csr: str, validity_days: int}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/client_certificates/{client_certificate_id}
@required {zone_id: str, client_certificate_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/client_certificates/{client_certificate_id}
@required {zone_id: str, client_certificate_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/client_certificates/{client_certificate_id}
@required {zone_id: str, client_certificate_id: str}
@optional {reactivate: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/cloud_connector/rules
@required {zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /zones/{zone_id}/cloud_connector/rules
@required {zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint POST /zones/{zone_id}/content-upload-scan/disable
@required {zone_id: str}
@returns(200) {errors: [map], messages: [map], result: any, success: bool}
@errors {4XX}

@endpoint POST /zones/{zone_id}/content-upload-scan/enable
@required {zone_id: str}
@returns(200) {errors: [map], messages: [map], result: any, success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/content-upload-scan/payloads
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/content-upload-scan/payloads
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/content-upload-scan/payloads/{expression_id}
@required {zone_id: str, expression_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/content-upload-scan/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/content-upload-scan/settings
@required {zone_id: str, value: str(enabled/disabled)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/custom_certificates
@required {zone_id: str}
@optional {page: num=1, per_page: num=20, match: str(any/all)=all, status: any(active/expired/deleted/pending/initializing)}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/custom_certificates
@required {zone_id: str, certificate: str, private_key: str}
@optional {bundle_method: str(ubiquitous/optimal/force)=ubiquitous, custom_csr_id: str, deploy: str(staging/production)=production, geo_restrictions: map{label: str}, policy: str, type: str(legacy_custom/sni_custom)=legacy_custom}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/custom_certificates/prioritize
@required {zone_id: str, certificates: [map{id: str, priority: num}]}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/custom_certificates/{custom_certificate_id}
@required {custom_certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/custom_certificates/{custom_certificate_id}
@required {custom_certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/custom_certificates/{custom_certificate_id}
@required {custom_certificate_id: str, zone_id: str}
@optional {bundle_method: str(ubiquitous/optimal/force)=ubiquitous, certificate: str, custom_csr_id: str, deploy: str(staging/production)=production, geo_restrictions: map{label: str}, policy: str, private_key: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/custom_hostnames
@required {zone_id: str}
@optional {hostname: str, hostname.contain: str, id: str, page: num=1, per_page: num=20, order: any(ssl/ssl_status)=ssl, direction: any(asc/desc), ssl_status: str(initializing/pending_validation/deleted/pending_issuance/pending_deployment/pending_deletion/pending_expiration/expired/active/initializing_timed_out/validation_timed_out/issuance_timed_out/deployment_timed_out/deletion_timed_out/pending_cleanup/staging_deployment/staging_active/deactivating/inactive/backup_issued/holding_deployment), hostname_status: str(active/pending/active_redeploying/moved/pending_deletion/deleted/pending_blocked/pending_migration/pending_provisioned/test_pending/test_active/test_active_apex/test_blocked/test_failed/provisioned/blocked), certificate_authority: str(google/lets_encrypt/ssl_com), wildcard: bool, custom_origin_server: str, ssl: any(0/1)=0}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/custom_hostnames
@required {zone_id: str, hostname: str}
@optional {custom_metadata: map, ssl: map}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/custom_hostnames/fallback_origin
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/custom_hostnames/fallback_origin
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/custom_hostnames/fallback_origin
@required {zone_id: str, origin: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/custom_hostnames/{custom_hostname_id}
@required {custom_hostname_id: str, zone_id: str}
@returns(200) {id: str}
@errors {4XX}

@endpoint GET /zones/{zone_id}/custom_hostnames/{custom_hostname_id}
@required {custom_hostname_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/custom_hostnames/{custom_hostname_id}
@required {custom_hostname_id: str, zone_id: str}
@optional {custom_metadata: map, custom_origin_server: str, custom_origin_sni: str, ssl: map}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/custom_hostnames/{custom_hostname_id}/certificate_pack/{certificate_pack_id}/certificates/{certificate_id}
@required {custom_hostname_id: str, certificate_pack_id: str, certificate_id: str, zone_id: str}
@returns(202) {id: str}
@errors {4XX}

@endpoint PUT /zones/{zone_id}/custom_hostnames/{custom_hostname_id}/certificate_pack/{certificate_pack_id}/certificates/{certificate_id}
@required {custom_hostname_id: str, certificate_pack_id: str, certificate_id: str, zone_id: str, custom_certificate: str, custom_key: str}
@returns(202)
@errors {4XX}

@endpoint GET /zones/{zone_id}/custom_ns
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/custom_ns
@required {zone_id: str}
@optional {enabled: bool, ns_set: num=1}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dcv_delegation/uuid
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/devices/policy/certificates
@required {zone_id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/devices/policy/certificates
@required {zone_id: any, enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_analytics/report
@required {zone_id: str}
@optional {metrics: str, dimensions: str, since: str(date-time), until: str(date-time), limit: int, sort: str, filters: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_analytics/report/bytime
@required {zone_id: str}
@optional {metrics: str, dimensions: str, since: str(date-time), until: str(date-time), limit: int, sort: str, filters: str, time_delta: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_records
@required {zone_id: str}
@optional {name: str, name.exact: str, name.contains: str, name.startswith: str, name.endswith: str, type: str, content: str, content.exact: str, content.contains: str, content.startswith: str, content.endswith: str, proxied: bool, match: str, comment: str, comment.present: str, comment.absent: str, comment.exact: str, comment.contains: str, comment.startswith: str, comment.endswith: str, tag: str, tag.present: str, tag.absent: str, tag.exact: str, tag.contains: str, tag.startswith: str, tag.endswith: str, search: str, tag_match: str, page: num, per_page: num, order: str, direction: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/dns_records
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/dns_records/batch
@required {zone_id: str}
@optional {deletes: [map], patches: [map{id!: str}], posts: [map], puts: [map{id!: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_records/export
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/dns_records/import
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/dns_records/scan
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_records/scan/review
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/dns_records/scan/review
@required {zone_id: str}
@optional {accepts: [map], rejects: [map]}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/dns_records/scan/trigger
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_records/usage
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/dns_records/{dns_record_id}
@required {dns_record_id: str, zone_id: str}
@returns(200) {result: map{id: str}}
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_records/{dns_record_id}
@required {dns_record_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/dns_records/{dns_record_id}
@required {dns_record_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/dns_records/{dns_record_id}
@required {dns_record_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dns_settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/dns_settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/dnssec
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/dnssec
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/dnssec
@required {zone_id: str}
@optional {dnssec_multi_signer: bool, dnssec_presigned: bool, dnssec_use_nsec3: bool, status: str(active/disabled)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/email/routing
@required {zone_id: str}
@returns(200)

@endpoint POST /zones/{zone_id}/email/routing/disable
@required {zone_id: str}
@returns(200)

@endpoint DELETE /zones/{zone_id}/email/routing/dns
@required {zone_id: str}
@optional {name: str}
@returns(200)

@endpoint GET /zones/{zone_id}/email/routing/dns
@required {zone_id: str}
@optional {subdomain: str}
@returns(200)

@endpoint PATCH /zones/{zone_id}/email/routing/dns
@required {zone_id: str}
@optional {name: str}
@returns(200)

@endpoint POST /zones/{zone_id}/email/routing/dns
@required {zone_id: str}
@optional {name: str}
@returns(200)

@endpoint POST /zones/{zone_id}/email/routing/enable
@required {zone_id: str}
@returns(200)

@endpoint GET /zones/{zone_id}/email/routing/rules
@required {zone_id: str}
@optional {page: num=1, per_page: num=20, enabled: bool(true/false)}
@returns(200)

@endpoint POST /zones/{zone_id}/email/routing/rules
@required {zone_id: str, actions: [map{type!: str, value: [str]}], matchers: [map{field: str, type!: str, value: str}]}
@optional {enabled: bool(true/false)=true, name: str, priority: num=0}
@returns(200)

@endpoint GET /zones/{zone_id}/email/routing/rules/catch_all
@required {zone_id: str}
@returns(200)

@endpoint PUT /zones/{zone_id}/email/routing/rules/catch_all
@required {zone_id: str, actions: [map{type!: str, value: [str]}], matchers: [map{type!: str}]}
@optional {enabled: bool(true/false)=true, name: str}
@returns(200)

@endpoint DELETE /zones/{zone_id}/email/routing/rules/{rule_identifier}
@required {rule_identifier: str, zone_id: str}
@returns(200)

@endpoint GET /zones/{zone_id}/email/routing/rules/{rule_identifier}
@required {rule_identifier: str, zone_id: str}
@returns(200)

@endpoint PUT /zones/{zone_id}/email/routing/rules/{rule_identifier}
@required {rule_identifier: str, zone_id: str, actions: [map{type!: str, value: [str]}], matchers: [map{field: str, type!: str, value: str}]}
@optional {enabled: bool(true/false)=true, name: str, priority: num=0}
@returns(200)

@endpoint GET /zones/{zone_id}/email/sending/subdomains
@required {zone_id: str}
@returns(200)

@endpoint POST /zones/{zone_id}/email/sending/subdomains
@required {zone_id: str, name: str}
@returns(200)

@endpoint POST /zones/{zone_id}/email/sending/subdomains/preview
@required {zone_id: str, name: str}
@returns(200)

@endpoint DELETE /zones/{zone_id}/email/sending/subdomains/{subdomain_id}
@required {subdomain_id: str, zone_id: str}
@returns(200)

@endpoint GET /zones/{zone_id}/email/sending/subdomains/{subdomain_id}
@required {subdomain_id: str, zone_id: str}
@returns(200)

@endpoint GET /zones/{zone_id}/email/sending/subdomains/{subdomain_id}/dns
@required {subdomain_id: str, zone_id: str}
@returns(200)

@endpoint GET /zones/{zone_id}/environments
@returns(200) {errors: [map], messages: [map], result: map{environments: [map]}, success: bool}
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/environments
@required {environments: [map{expression!: str, http_application_id: str, locked_on_deployment!: bool, name!: str, position!: map, ref!: str, version!: int(int64)}]}
@returns(200) {errors: [map], messages: [map], result: map{environments: [map]}, success: bool}
@errors {4XX}

@endpoint POST /zones/{zone_id}/environments
@required {environments: [map{expression!: str, http_application_id: str, locked_on_deployment!: bool, name!: str, position!: map, ref!: str, version!: int(int64)}]}
@returns(200) {errors: [map], messages: [map], result: map{environments: [map]}, success: bool}
@errors {4XX}

@endpoint PUT /zones/{zone_id}/environments
@required {environments: [map{expression!: str, http_application_id: str, locked_on_deployment!: bool, name!: str, position!: map, ref!: str, version!: int(int64)}]}
@returns(200) {errors: [map], messages: [map], result: map{environments: [map]}, success: bool}
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/environments/{environment_id}
@returns(200) {errors: [map], messages: [map], result: map{environments: [map]}, success: bool}
@errors {4XX}

@endpoint POST /zones/{zone_id}/environments/{environment_id}/rollback
@returns(200) {errors: [map], messages: [map], result: map{environments: [map]}, success: bool}
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/filters
@required {zone_id: str, id: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/filters
@required {zone_id: str}
@optional {paused: any, expression: str, description: str, ref: str, page: num=1, per_page: num=25, id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/filters
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/filters
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/filters/{filter_id}
@required {filter_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/filters/{filter_id}
@required {filter_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/filters/{filter_id}
@required {filter_id: str, zone_id: str}
@optional {description: str, expression: str, id: str, paused: bool, ref: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall-for-ai/custom-topics
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/firewall-for-ai/custom-topics
@required {zone_id: str}
@optional {topics: [map{label!: str, topic!: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall-for-ai/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/firewall-for-ai/settings
@required {zone_id: str}
@optional {pii_detection_enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/access_rules/rules
@required {zone_id: str}
@optional {mode: str, configuration.target: str(ip/ip_range/asn/country), configuration.value: str, notes: str, match: str(any/all)=all, page: num, per_page: num, order: str(configuration.target/configuration.value/mode), direction: str(asc/desc)}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/firewall/access_rules/rules
@required {zone_id: str, configuration: map, mode: str(block/challenge/whitelist/js_challenge/managed_challenge)}
@optional {notes: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/firewall/access_rules/rules/{rule_id}
@required {zone_id: str, rule_id: str}
@optional {cascade: str(none/basic/aggressive)=none}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/firewall/access_rules/rules/{rule_id}
@required {zone_id: str, rule_id: str}
@optional {mode: str(block/challenge/whitelist/js_challenge/managed_challenge), notes: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/lockdowns
@required {zone_id: str}
@optional {page: num=1, description: any, modified_on: any, ip: any, priority: any, uri_search: any, ip_range_search: any, per_page: num=20, created_on: str(date-time), description_search: str, ip_search: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/firewall/lockdowns
@required {zone_id: str, configurations: [any], urls: [str]}
@optional {description: str, paused: bool, priority: num}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/firewall/lockdowns/{lock_downs_id}
@required {lock_downs_id: str, zone_id: str}
@returns(200) {result: map{id: str}}
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/lockdowns/{lock_downs_id}
@required {lock_downs_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/firewall/lockdowns/{lock_downs_id}
@required {lock_downs_id: str, zone_id: str, configurations: [any], urls: [str]}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/firewall/rules
@required {zone_id: str, id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/rules
@required {zone_id: str}
@optional {description: str, action: str, page: num=1, per_page: num=25, id: str, paused: bool}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/firewall/rules
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/firewall/rules
@required {zone_id: str, action: map, filter: map{description: str, expression: str, id: str, paused: bool, ref: str}}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/firewall/rules
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/firewall/rules/{rule_id}
@required {rule_id: str, zone_id: str}
@optional {delete_filter_if_unused: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/rules/{rule_id}
@required {rule_id: str, zone_id: str}
@optional {id: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/firewall/rules/{rule_id}
@required {rule_id: str, zone_id: str, id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/firewall/rules/{rule_id}
@required {rule_id: str, zone_id: str, action: map, filter: map{description: str, expression: str, id: str, paused: bool, ref: str}, id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/ua_rules
@required {zone_id: str}
@optional {page: num=1, description: any, per_page: num=20, user_agent: str, paused: bool}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/firewall/ua_rules
@required {zone_id: str, configuration: map{target: str, value: str}, mode: str(block/challenge/whitelist/js_challenge/managed_challenge)}
@optional {description: str, paused: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/firewall/ua_rules/{ua_rule_id}
@required {ua_rule_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/ua_rules/{ua_rule_id}
@required {ua_rule_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/firewall/ua_rules/{ua_rule_id}
@required {ua_rule_id: str, zone_id: str, configuration: map, id: str, mode: str(block/challenge/whitelist/js_challenge/managed_challenge)}
@optional {description: str, paused: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/overrides
@required {zone_id: str}
@optional {page: num=1, per_page: num=50}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/firewall/waf/overrides
@required {zone_id: str, urls: [str]}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/firewall/waf/overrides/{overrides_id}
@required {overrides_id: str, zone_id: str}
@returns(200) {result: map{id: str}}
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/overrides/{overrides_id}
@required {overrides_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/firewall/waf/overrides/{overrides_id}
@required {overrides_id: str, zone_id: str, id: str, rewrite_action: map{block: any, challenge: any, default: any, disable: any, simulate: any}, rules: map, urls: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/packages
@required {zone_id: str}
@optional {page: num=1, per_page: num=50, order: str, direction: str(asc/desc), match: str(any/all)=all, name: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/packages/{package_id}
@required {package_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/firewall/waf/packages/{package_id}
@required {package_id: str, zone_id: str}
@optional {action_mode: str(simulate/block/challenge)=challenge, sensitivity: str(high/medium/low/off)=high}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/packages/{package_id}/groups
@required {package_id: str, zone_id: str}
@optional {mode: any, page: num=1, per_page: num=50, order: str(mode/rules_count), direction: str(asc/desc), match: str(any/all)=all, name: str, rules_count: num=0}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/packages/{package_id}/groups/{group_id}
@required {group_id: str, package_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/firewall/waf/packages/{package_id}/groups/{group_id}
@required {group_id: str, package_id: str, zone_id: str}
@optional {mode: str(on/off)=on}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/packages/{package_id}/rules
@required {package_id: str, zone_id: str}
@optional {mode: str(DIS/CHL/BLK/SIM), group_id: any, page: num=1, per_page: num=50, order: str(priority/group_id/description), direction: str(asc/desc), match: str(any/all)=all, description: str, priority: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/firewall/waf/packages/{package_id}/rules/{rule_id}
@required {rule_id: str, package_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/firewall/waf/packages/{package_id}/rules/{rule_id}
@required {rule_id: str, package_id: str, zone_id: str}
@optional {mode: str(default/disable/simulate/block/challenge/on/off)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/fraud_detection/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/fraud_detection/settings
@required {zone_id: str}
@optional {user_profiles: str(enabled/disabled), username_expressions: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/healthchecks
@required {zone_id: str}
@optional {page: num=1, per_page: num=25}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/healthchecks
@required {zone_id: str, address: str, name: str}
@optional {check_regions: [str], consecutive_fails: int=1, consecutive_successes: int=1, description: str, http_config: map{allow_insecure: bool, expected_body: str, expected_codes: [str], follow_redirects: bool, header: map, method: str, path: str, port: int}, interval: int=60, retries: int=2, suspended: bool=false, tcp_config: map{method: str, port: int}, timeout: int=5, type: str=HTTP}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/healthchecks/preview
@required {zone_id: str, address: str, name: str}
@optional {check_regions: [str], consecutive_fails: int=1, consecutive_successes: int=1, description: str, http_config: map{allow_insecure: bool, expected_body: str, expected_codes: [str], follow_redirects: bool, header: map, method: str, path: str, port: int}, interval: int=60, retries: int=2, suspended: bool=false, tcp_config: map{method: str, port: int}, timeout: int=5, type: str=HTTP}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/healthchecks/preview/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/healthchecks/preview/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str, address: str, name: str}
@optional {check_regions: [str], consecutive_fails: int=1, consecutive_successes: int=1, description: str, http_config: map{allow_insecure: bool, expected_body: str, expected_codes: [str], follow_redirects: bool, header: map, method: str, path: str, port: int}, interval: int=60, retries: int=2, suspended: bool=false, tcp_config: map{method: str, port: int}, timeout: int=5, type: str=HTTP}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str, address: str, name: str}
@optional {check_regions: [str], consecutive_fails: int=1, consecutive_successes: int=1, description: str, http_config: map{allow_insecure: bool, expected_body: str, expected_codes: [str], follow_redirects: bool, header: map, method: str, path: str, port: int}, interval: int=60, retries: int=2, suspended: bool=false, tcp_config: map{method: str, port: int}, timeout: int=5, type: str=HTTP}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/hold
@required {zone_id: str}
@optional {hold_after: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/hold
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/hold
@required {zone_id: str}
@optional {hold_after: str=, include_subdomains: bool=false}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/hold
@required {zone_id: str}
@optional {include_subdomains: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/hostnames/settings/{setting_id}
@required {zone_id: str, setting_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/hostnames/settings/{setting_id}/{hostname}
@required {zone_id: str, setting_id: str, hostname: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/hostnames/settings/{setting_id}/{hostname}
@required {zone_id: str, setting_id: str, hostname: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/hostnames/settings/{setting_id}/{hostname}
@required {zone_id: str, setting_id: str, hostname: str, value: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/keyless_certificates
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/keyless_certificates
@required {zone_id: str, certificate: str, host: str(hostname), port: num=24008}
@optional {bundle_method: str(ubiquitous/optimal/force)=ubiquitous, name: str, tunnel: map{private_ip!: str, vnet_id!: str}}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/keyless_certificates/{keyless_certificate_id}
@required {keyless_certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/keyless_certificates/{keyless_certificate_id}
@required {keyless_certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/keyless_certificates/{keyless_certificate_id}
@required {keyless_certificate_id: str, zone_id: str}
@optional {enabled: bool, host: str(hostname), name: str, port: num=24008, tunnel: map{private_ip!: str, vnet_id!: str}}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/leaked-credential-checks
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/leaked-credential-checks
@required {zone_id: str}
@optional {enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/leaked-credential-checks/detections
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/leaked-credential-checks/detections
@required {zone_id: str}
@optional {id: any, password: str, username: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/leaked-credential-checks/detections/{detection_id}
@required {zone_id: str, detection_id: any}
@returns(200) {errors: [map], messages: [map], result: any, success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/leaked-credential-checks/detections/{detection_id}
@required {zone_id: str, detection_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/leaked-credential-checks/detections/{detection_id}
@required {zone_id: str, detection_id: any}
@optional {id: any, password: str, username: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/load_balancers
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/load_balancers
@required {zone_id: str, default_pools: [str], fallback_pool: str, name: str}
@optional {adaptive_routing: map{failover_across_pools: bool}, country_pools: map, description: str, location_strategy: map{mode: str, prefer_ecs: str}, networks: [str], pop_pools: map, proxied: bool=false, random_steering: map{default_weight: num, pool_weights: map}, region_pools: map, rules: [map{condition: str, disabled: bool, fixed_response: map, name: str, overrides: map, priority: int, terminates: bool}], session_affinity: str(none/cookie/ip_cookie/header)=none, session_affinity_attributes: map{drain_duration: num, headers: [str], require_all_headers: bool, samesite: str, secure: str, zero_downtime_failover: str}, session_affinity_ttl: num, steering_policy: str(off/geo/random/dynamic_latency/proximity/least_outstanding_requests/least_connections/)=, ttl: num}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/load_balancers/{load_balancer_id}
@required {zone_id: str, load_balancer_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/load_balancers/{load_balancer_id}
@required {zone_id: str, load_balancer_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/load_balancers/{load_balancer_id}
@required {zone_id: str, load_balancer_id: str}
@optional {adaptive_routing: map{failover_across_pools: bool}, country_pools: map, default_pools: [str], description: str, enabled: bool=true, fallback_pool: str, location_strategy: map{mode: str, prefer_ecs: str}, name: str, pop_pools: map, proxied: bool=false, random_steering: map{default_weight: num, pool_weights: map}, region_pools: map, rules: [map{condition: str, disabled: bool, fixed_response: map, name: str, overrides: map, priority: int, terminates: bool}], session_affinity: str(none/cookie/ip_cookie/header)=none, session_affinity_attributes: map{drain_duration: num, headers: [str], require_all_headers: bool, samesite: str, secure: str, zero_downtime_failover: str}, session_affinity_ttl: num, steering_policy: str(off/geo/random/dynamic_latency/proximity/least_outstanding_requests/least_connections/)=, ttl: num}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/load_balancers/{load_balancer_id}
@required {zone_id: str, load_balancer_id: str, default_pools: [str], fallback_pool: str, name: str}
@optional {adaptive_routing: map{failover_across_pools: bool}, country_pools: map, description: str, enabled: bool=true, location_strategy: map{mode: str, prefer_ecs: str}, networks: [str], pop_pools: map, proxied: bool=false, random_steering: map{default_weight: num, pool_weights: map}, region_pools: map, rules: [map{condition: str, disabled: bool, fixed_response: map, name: str, overrides: map, priority: int, terminates: bool}], session_affinity: str(none/cookie/ip_cookie/header)=none, session_affinity_attributes: map{drain_duration: num, headers: [str], require_all_headers: bool, samesite: str, secure: str, zero_downtime_failover: str}, session_affinity_ttl: num, steering_policy: str(off/geo/random/dynamic_latency/proximity/least_outstanding_requests/least_connections/)=, ttl: num}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logpush/datasets/{dataset_id}/fields
@required {dataset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logpush/datasets/{dataset_id}/jobs
@required {dataset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logpush/edge/jobs
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logpush/edge/jobs
@required {zone_id: str}
@optional {fields: str, filter: str, sample: int}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logpush/jobs
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logpush/jobs
@required {zone_id: str, destination_conf: str(uri)}
@optional {dataset: str(access_requests/audit_logs/audit_logs_v2/biso_user_actions/casb_findings/device_posture_results/dex_application_tests/dex_device_state_events/dlp_forensic_copies/dns_firewall_logs/dns_logs/email_security_alerts/firewall_events/gateway_dns/gateway_http/gateway_network/http_requests/ipsec_logs/magic_ids_detections/mcp_portal_logs/nel_reports/network_analytics_logs/page_shield_events/sinkhole_http_logs/spectrum_events/ssh_logs/warp_config_changes/warp_toggle_changes/workers_trace_events/zaraz_events/zero_trust_network_sessions)=http_requests, enabled: bool=false, filter: str, frequency: str(high/low)=high, kind: str(/edge)=, logpull_options: str(uri-reference), max_upload_bytes: int, max_upload_interval_seconds: int, max_upload_records: int, name: str, output_options: map{CVE-2021-44228: bool, batch_prefix: str, batch_suffix: str, field_delimiter: str, field_names: [str], merge_subrequests: bool, output_type: str, record_delimiter: str, record_prefix: str, record_suffix: str, record_template: str, sample_rate: num(float), timestamp_format: str}, ownership_challenge: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/logpush/jobs/{job_id}
@required {job_id: int, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logpush/jobs/{job_id}
@required {job_id: int, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/logpush/jobs/{job_id}
@required {job_id: int, zone_id: str}
@optional {destination_conf: str(uri), enabled: bool=false, filter: str, frequency: str(high/low)=high, kind: str(/edge)=, logpull_options: str(uri-reference), max_upload_bytes: int, max_upload_interval_seconds: int, max_upload_records: int, name: str, output_options: map{CVE-2021-44228: bool, batch_prefix: str, batch_suffix: str, field_delimiter: str, field_names: [str], merge_subrequests: bool, output_type: str, record_delimiter: str, record_prefix: str, record_suffix: str, record_template: str, sample_rate: num(float), timestamp_format: str}, ownership_challenge: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logpush/ownership
@required {zone_id: str, destination_conf: str(uri)}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logpush/ownership/validate
@required {zone_id: str, destination_conf: str(uri), ownership_challenge: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logpush/validate/destination
@required {zone_id: str, destination_conf: str(uri)}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logpush/validate/destination/exists
@required {zone_id: str, destination_conf: str(uri)}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logpush/validate/origin
@required {zone_id: str, logpull_options: str(uri-reference)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logs/control/retention/flag
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/logs/control/retention/flag
@required {zone_id: str}
@optional {flag: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logs/rayids/{ray_id}
@required {zone_id: str, ray_id: str}
@optional {fields: str, timestamps: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logs/received
@required {zone_id: str, end: any}
@optional {start: any, fields: str, sample: num, count: int, timestamps: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/logs/received/fields
@required {zone_id: str}
@returns(200) {key: str}
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/managed_headers
@required {zone_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /zones/{zone_id}/managed_headers
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/managed_headers
@required {zone_id: str, managed_request_headers: [any], managed_response_headers: [any]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/origin_tls_client_auth
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/origin_tls_client_auth
@required {zone_id: str, certificate: str, private_key: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/origin_tls_client_auth/hostnames
@required {zone_id: str}
@optional {page: num=1, per_page: num=50, status: str(active/pending_deployment/pending_deletion/deleted/deployment_timed_out/deletion_timed_out/all)}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/origin_tls_client_auth/hostnames
@required {zone_id: str, config: [map{cert_id: str, enabled: bool, hostname: str}]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/origin_tls_client_auth/hostnames/certificates
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/origin_tls_client_auth/hostnames/certificates
@required {zone_id: str, certificate: str, private_key: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/origin_tls_client_auth/hostnames/certificates/{certificate_id}
@required {certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/origin_tls_client_auth/hostnames/certificates/{certificate_id}
@required {certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/origin_tls_client_auth/hostnames/{hostname}
@required {hostname: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/origin_tls_client_auth/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/origin_tls_client_auth/settings
@required {zone_id: str, enabled: bool}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/origin_tls_client_auth/{certificate_id}
@required {certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/origin_tls_client_auth/{certificate_id}
@required {certificate_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/page_shield
@required {zone_id: str}
@optional {enabled: bool, use_cloudflare_reporting_endpoint: bool, use_connection_url_path: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/connections
@required {zone_id: str}
@optional {exclude_urls: str, urls: str, hosts: str, page: str, per_page: num, order_by: str(first_seen_at/last_seen_at), direction: str(asc/desc), prioritize_malicious: bool, exclude_cdn_cgi: bool, status: str, page_url: str, export: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/connections/{connection_id}
@required {zone_id: str, connection_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/cookies
@required {zone_id: str}
@optional {hosts: str, page: str, per_page: num, order_by: str(first_seen_at/last_seen_at), direction: str(asc/desc), page_url: str, export: str, name: str, secure: bool, http_only: bool, same_site: str(lax/strict/none), type: str(first_party/unknown), path: str, domain: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/cookies/{cookie_id}
@required {zone_id: str, cookie_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/policies
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/page_shield/policies
@required {zone_id: str, action: str(allow/log/add_reporting_directives), description: str, enabled: bool, expression: str, value: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/page_shield/policies/{policy_id}
@required {zone_id: str, policy_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/policies/{policy_id}
@required {zone_id: str, policy_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/page_shield/policies/{policy_id}
@required {zone_id: str, policy_id: str}
@optional {action: str(allow/log/add_reporting_directives), description: str, enabled: bool, expression: str, value: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/scripts
@required {zone_id: str}
@optional {exclude_urls: str, urls: str, hosts: str, page: str, per_page: num, order_by: str(first_seen_at/last_seen_at), direction: str(asc/desc), prioritize_malicious: bool, exclude_cdn_cgi: bool=true, exclude_duplicates: bool=true, status: str, page_url: str, export: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/page_shield/scripts/{script_id}
@required {zone_id: str, script_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/pagerules
@required {zone_id: str}
@optional {order: str(status/priority)=priority, direction: str(asc/desc)=desc, match: str(any/all)=all, status: str(active/disabled)=disabled}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/pagerules
@required {zone_id: str, actions: [any], targets: [any]}
@optional {priority: int=1, status: str(active/disabled)=disabled}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/pagerules/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/pagerules/{pagerule_id}
@required {pagerule_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/pagerules/{pagerule_id}
@required {pagerule_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/pagerules/{pagerule_id}
@required {pagerule_id: str, zone_id: str}
@optional {actions: [any], priority: int=1, status: str(active/disabled)=disabled, targets: [any]}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/pagerules/{pagerule_id}
@required {pagerule_id: str, zone_id: str, actions: [any], targets: [any]}
@optional {priority: int=1, status: str(active/disabled)=disabled}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/pay-per-crawl/configuration
@required {zone_id: str}
@returns(200) {errors: [map], messages: [map], result: map{bot_overrides: map, enabled: bool, price_usd_microcents: int}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint PATCH /zones/{zone_id}/pay-per-crawl/configuration
@required {zone_id: str}
@optional {bot_overrides: map, enabled: bool, price_usd_microcents: int}
@returns(200) {errors: [map], messages: [map], result: map{bot_overrides: map, enabled: bool, price_usd_microcents: int}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint POST /zones/{zone_id}/pay-per-crawl/configuration
@required {zone_id: str}
@optional {bot_overrides: map, enabled: bool, price_usd_microcents: int}
@returns(200) {errors: [map], messages: [map], result: map{bot_overrides: map, enabled: bool, price_usd_microcents: int}, result_info: map{count: int, page: int, per_page: int, total_count: int, total_pages: int}, success: bool}
@errors {400}

@endpoint POST /zones/{zone_id}/purge_cache
@required {zone_id: str}
@returns(200) {errors: [map], messages: [map], result: map?{id: str}, success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/rate_limits
@required {zone_id: str}
@optional {page: num=1, per_page: num=20}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/rate_limits
@required {zone_id: str, action: map, match: map, period: num, threshold: num}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/rate_limits/{rate_limit_id}
@required {rate_limit_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rate_limits/{rate_limit_id}
@required {rate_limit_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/rate_limits/{rate_limit_id}
@required {rate_limit_id: str, zone_id: str, action: map, match: map, period: num, threshold: num}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets
@required {zone_id: str}
@optional {cursor: str, per_page: int}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/rulesets
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint
@required {ruleset_phase: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint
@required {ruleset_phase: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions
@required {ruleset_phase: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets/phases/{ruleset_phase}/entrypoint/versions/{ruleset_version}
@required {ruleset_version: str, ruleset_phase: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/rulesets/{ruleset_id}
@required {ruleset_id: str, zone_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets/{ruleset_id}
@required {ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/rulesets/{ruleset_id}
@required {ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/rulesets/{ruleset_id}/rules
@required {ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/rulesets/{ruleset_id}/rules/{rule_id}
@required {rule_id: str, ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/rulesets/{ruleset_id}/rules/{rule_id}
@required {rule_id: str, ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets/{ruleset_id}/versions
@required {ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/rulesets/{ruleset_id}/versions/{ruleset_version}
@required {ruleset_version: str, ruleset_id: str, zone_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets/{ruleset_id}/versions/{ruleset_version}
@required {ruleset_version: str, ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/rulesets/{ruleset_id}/versions/{ruleset_version}/by_tag/{rule_tag}
@required {rule_tag: str, ruleset_version: str, ruleset_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/schema_validation/schemas
@optional {page: int=1, per_page: int=20, omit_source: bool=false, validation_enabled: bool}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/schema_validation/schemas
@required {kind: str, name: str, source: str, validation_enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/schema_validation/schemas/hosts
@optional {page: int=1, per_page: int=20}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/schema_validation/schemas/{schema_id}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/schema_validation/schemas/{schema_id}
@optional {omit_source: bool=false}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/schema_validation/schemas/{schema_id}
@optional {validation_enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/schema_validation/schemas/{schema_id}/operations
@optional {feature: [str], host: [str], method: [str], endpoint: str, page: int=1, per_page: int=20, operation_status: str(new/existing)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/schema_validation/settings
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/schema_validation/settings
@optional {validation_default_mitigation_action: str(none/log/block), validation_override_mitigation_action: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/schema_validation/settings
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/schema_validation/settings/operations
@optional {page: int=1, per_page: int=20}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/schema_validation/settings/operations
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/schema_validation/settings/operations/{operation_id}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/schema_validation/settings/operations/{operation_id}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/schema_validation/settings/operations/{operation_id}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/secondary_dns/force_axfr
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/secondary_dns/incoming
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/secondary_dns/incoming
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/secondary_dns/incoming
@required {zone_id: str, auto_refresh_seconds: num=86400, id: str, name: str, peers: [str]}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/secondary_dns/incoming
@required {zone_id: str, auto_refresh_seconds: num=86400, id: str, name: str, peers: [str]}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/secondary_dns/outgoing
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/secondary_dns/outgoing
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/secondary_dns/outgoing
@required {zone_id: str, id: str, name: str, peers: [str]}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/secondary_dns/outgoing
@required {zone_id: str, id: str, name: str, peers: [str]}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/secondary_dns/outgoing/disable
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/secondary_dns/outgoing/enable
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/secondary_dns/outgoing/force_notify
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/secondary_dns/outgoing/status
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/security-center/insights
@required {zone_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str], page: any=1, per_page: any=25}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/security-center/insights/class
@required {zone_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/security-center/insights/severity
@required {zone_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/security-center/insights/type
@required {zone_id: str}
@optional {dismissed: bool, issue_class: [str], issue_type: [str], product: [str], severity: [str], subject: [str], issue_class~neq: [str], issue_type~neq: [str], product~neq: [str], severity~neq: [str], subject~neq: [str]}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/security-center/insights/{issue_id}/dismiss
@required {zone_id: str, issue_id: str}
@optional {dismiss: bool=true}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/security-center/securitytxt
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/security-center/securitytxt
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/security-center/securitytxt
@required {zone_id: str}
@optional {acknowledgments: [str(uri)], canonical: [str(uri)], contact: [str(uri)], enabled: bool, encryption: [str(uri)], expires: str(date-time), hiring: [str(uri)], policy: [str(uri)], preferred_languages: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/aegis
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/aegis
@required {zone_id: str, value: map{enabled: bool, pool_id: str}}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/fonts
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/fonts
@required {zone_id: str, value: str(on/off)=off}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/google-tag-gateway/config
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/settings/google-tag-gateway/config
@required {zone_id: str, enabled: bool, endpoint: str, hideOriginalIp: bool, measurementId: str}
@optional {setUpTag: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/origin_h2_max_streams
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/origin_h2_max_streams
@required {zone_id: str, value: int}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/origin_max_http_version
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/origin_max_http_version
@required {zone_id: str, value: str(2/1)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/rum
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/rum
@required {zone_id: str}
@optional {value: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/speed_brain
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/speed_brain
@required {zone_id: str, value: str(on/off)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/ssl_automatic_mode
@required {zone_id: str}
@returns(200) {errors: [map], messages: [map], result: map{editable: bool, id: str, modified_on: str(date-time), next_scheduled_scan: str(date-time)?, value: str}, success: bool}
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/ssl_automatic_mode
@required {zone_id: str, value: str(auto/custom)}
@returns(200) {errors: [map], messages: [map], result: map{editable: bool, id: str, modified_on: str(date-time), next_scheduled_scan: str(date-time)?, value: str}, success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/zaraz/config
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/settings/zaraz/config
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/zaraz/default
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/zaraz/export
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/zaraz/history
@required {zone_id: str}
@optional {offset: int, limit: int, sortField: str(id/user_id/description/created_at/updated_at), sortOrder: str(DESC/ASC)}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/settings/zaraz/history
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/zaraz/history/configs
@required {zone_id: str, ids: [int]}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/settings/zaraz/publish
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/zaraz/workflow
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/settings/zaraz/workflow
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/settings/{setting_id}
@required {zone_id: str, setting_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/settings/{setting_id}
@required {zone_id: str, setting_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/smart_shield
@required {zone_id: str}
@returns(200)
@errors {500, 502, 4XX}

@endpoint PATCH /zones/{zone_id}/smart_shield
@required {zone_id: str}
@optional {cache_reserve: map{value: str}, regional_tiered_cache: map{value: str}, smart_routing: map{value: str}, smart_tiered_cache: map{value: str}}
@returns(200)
@errors {500, 502, 4XX}

@endpoint GET /zones/{zone_id}/smart_shield/cache_reserve_clear
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/smart_shield/cache_reserve_clear
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/smart_shield/healthchecks
@required {zone_id: str}
@optional {page: num=1, per_page: num=25}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/smart_shield/healthchecks
@required {zone_id: str, address: str, name: str}
@optional {check_regions: [str], consecutive_fails: int=1, consecutive_successes: int=1, description: str, http_config: map{allow_insecure: bool, expected_body: str, expected_codes: [str], follow_redirects: bool, header: map, method: str, path: str, port: int}, interval: int=60, retries: int=2, suspended: bool=false, tcp_config: map{method: str, port: int}, timeout: int=5, type: str=HTTP}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/smart_shield/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/smart_shield/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/smart_shield/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str, address: str, name: str}
@optional {check_regions: [str], consecutive_fails: int=1, consecutive_successes: int=1, description: str, http_config: map{allow_insecure: bool, expected_body: str, expected_codes: [str], follow_redirects: bool, header: map, method: str, path: str, port: int}, interval: int=60, retries: int=2, suspended: bool=false, tcp_config: map{method: str, port: int}, timeout: int=5, type: str=HTTP}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/smart_shield/healthchecks/{healthcheck_id}
@required {healthcheck_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/snippets
@required {zone_id: str}
@optional {page: int, per_page: int}
@returns(200)
@errors {4XX, 5XX}

@endpoint DELETE /zones/{zone_id}/snippets/snippet_rules
@required {zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/snippets/snippet_rules
@required {zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /zones/{zone_id}/snippets/snippet_rules
@required {zone_id: str, rules: [map{description: str, enabled: bool, expression!: str, id!: str, last_updated!: str(date-time), snippet_name!: str}]}
@returns(200)
@errors {4XX, 5XX}

@endpoint DELETE /zones/{zone_id}/snippets/{snippet_name}
@required {zone_id: str, snippet_name: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/snippets/{snippet_name}
@required {zone_id: str, snippet_name: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /zones/{zone_id}/snippets/{snippet_name}
@required {zone_id: str, snippet_name: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/snippets/{snippet_name}/content
@required {zone_id: str, snippet_name: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/spectrum/analytics/aggregate/current
@required {zone_id: str}
@optional {appID: str, colo_name: str}
@returns(200)
@errors {4xx}

@endpoint GET /zones/{zone_id}/spectrum/analytics/events/bytime
@required {zone_id: str, time_delta: str(year/quarter/month/week/day/hour/dekaminute/minute)}
@optional {dimensions: [str], sort: [str], until: any, metrics: [str], filters: str, since: any}
@returns(200)
@errors {4xx}

@endpoint GET /zones/{zone_id}/spectrum/analytics/events/summary
@required {zone_id: str}
@optional {dimensions: [str], sort: [str], until: any, metrics: [str], filters: str, since: any}
@returns(200)
@errors {4xx}

@endpoint GET /zones/{zone_id}/spectrum/apps
@required {zone_id: any}
@optional {page: num, per_page: num=20, direction: str(asc/desc)=asc, order: str(protocol/app_id/created_on/modified_on/dns)=dns}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/spectrum/apps
@required {zone_id: any}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/spectrum/apps/{app_id}
@required {app_id: any, zone_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/spectrum/apps/{app_id}
@required {app_id: any, zone_id: any}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/spectrum/apps/{app_id}
@required {app_id: any, zone_id: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/speed_api/availabilities
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/speed_api/pages
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/speed_api/pages/{url}/tests
@required {zone_id: str, url: str}
@optional {region: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/speed_api/pages/{url}/tests
@required {zone_id: str, url: str}
@optional {page: int=1, per_page: int=20, region: any}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/speed_api/pages/{url}/tests
@required {zone_id: str, url: str}
@optional {region: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/speed_api/pages/{url}/tests/{test_id}
@required {zone_id: str, url: str, test_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/speed_api/pages/{url}/trend
@required {zone_id: str, url: str, region: str, deviceType: str, start: str(date-time), tz: str, metrics: str}
@optional {end: str(date-time)}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/speed_api/schedule/{url}
@required {zone_id: str, url: str}
@optional {region: any}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/speed_api/schedule/{url}
@required {zone_id: str, url: str}
@optional {region: any}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/speed_api/schedule/{url}
@required {zone_id: str, url: str}
@optional {region: any, frequency: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/ssl/analyze
@required {zone_id: str}
@optional {bundle_method: str(ubiquitous/optimal/force)=ubiquitous, certificate: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/ssl/certificate_packs
@required {zone_id: str}
@optional {page: num=1, per_page: num=20, status: any, deploy: any(staging/production)}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/ssl/certificate_packs/order
@required {zone_id: str, certificate_authority: str(google/lets_encrypt/ssl_com), hosts: [str], type: str, validation_method: str(txt/http/email), validity_days: int(14/30/90/365)}
@optional {cloudflare_branding: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/ssl/certificate_packs/quota
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/ssl/certificate_packs/{certificate_pack_id}
@required {certificate_pack_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/ssl/certificate_packs/{certificate_pack_id}
@required {certificate_pack_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/ssl/certificate_packs/{certificate_pack_id}
@required {certificate_pack_id: str, zone_id: str}
@optional {cloudflare_branding: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/ssl/recommendation
@required {zone_id: str}
@returns(200) {errors: [map], messages: [map], result: map{editable: bool, id: str, modified_on: str(date-time), next_scheduled_scan: str(date-time)?, value: str}, success: bool}
@errors {4XX}

@endpoint GET /zones/{zone_id}/ssl/universal/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/ssl/universal/settings
@required {zone_id: str}
@optional {enabled: bool}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/ssl/verification
@required {zone_id: str}
@optional {retry: any}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/ssl/verification/{certificate_pack_id}
@required {certificate_pack_id: str, zone_id: str, validation_method: str(http/cname/txt/email)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/subscription
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/subscription
@required {zone_id: str}
@optional {app: any, component_values: [map{default: num, name: str, price: num, value: num}], currency: str, current_period_end: str(date-time), current_period_start: str(date-time), frequency: str(weekly/monthly/quarterly/yearly), id: str, price: num, rate_plan: map{currency: str, externally_managed: bool, id: str, is_contract: bool, public_name: str, scope: str, sets: [str]}, state: str(Trial/Provisioned/Paid/AwaitingPayment/Cancelled/Failed/Expired), zone: map{id: str, name: str}}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/subscription
@required {zone_id: str}
@optional {app: any, component_values: [map{default: num, name: str, price: num, value: num}], currency: str, current_period_end: str(date-time), current_period_start: str(date-time), frequency: str(weekly/monthly/quarterly/yearly), id: str, price: num, rate_plan: map{currency: str, externally_managed: bool, id: str, is_contract: bool, public_name: str, scope: str, sets: [str]}, state: str(Trial/Provisioned/Paid/AwaitingPayment/Cancelled/Failed/Expired), zone: map{id: str, name: str}}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/tags
@required {zone_id: any}
@optional {If-Match: str}
@returns(204)
@errors {412, 4XX, 5XX}

@endpoint GET /zones/{zone_id}/tags
@required {zone_id: any, resource_id: str, resource_type: str}
@optional {access_application_id: str(uuid)}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /zones/{zone_id}/tags
@required {zone_id: any}
@optional {If-Match: str}
@returns(200)
@errors {412, 4XX, 5XX}

@endpoint GET /zones/{zone_id}/token_validation/config
@optional {page: int=1, per_page: int=20}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/token_validation/config
@required {credentials: map{keys!: [map]}, description: str, title: str, token_sources: [any], token_type: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/token_validation/config/{config_id}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/token_validation/config/{config_id}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/token_validation/config/{config_id}
@optional {description: str, title: str, token_sources: [any]}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/token_validation/config/{config_id}/credentials
@required {keys: [map]}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/token_validation/rules
@optional {per_page: int=20, page: int=1, token_configuration: [any], action: str, enabled: bool, id: any, rule_id: any, host: str(hostname), hostname: str(hostname)}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/token_validation/rules
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/token_validation/rules/bulk
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/token_validation/rules/bulk
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/token_validation/rules/preview
@optional {per_page: int=20, page: int=1, state: [str], host: [str(hostname)], hostname: [str(hostname)], method: [str], endpoint: [str(uri-template)], exclude: [map{operation_ids: [any]}], include: [map{host: [str(hostname)]}]}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/token_validation/rules/{rule_id}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/token_validation/rules/{rule_id}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/token_validation/rules/{rule_id}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/url_normalization
@required {zone_id: str}
@returns(204)
@errors {4XX}

@endpoint GET /zones/{zone_id}/url_normalization
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/url_normalization
@required {zone_id: str, scope: str(incoming/both/none), type: str(cloudflare/rfc3986)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms
@required {zone_id: str}
@optional {page: num=1, per_page: num=25}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/waiting_rooms
@required {zone_id: str, host: str, name: str, new_users_per_minute: int, total_active_users: int}
@optional {additional_routes: [map{host: str, path: str}], cookie_attributes: map{samesite: str, secure: str}, cookie_suffix: str, custom_page_html: str=, default_template_language: str(en-US/es-ES/de-DE/fr-FR/it-IT/ja-JP/ko-KR/pt-BR/zh-CN/zh-TW/nl-NL/pl-PL/id-ID/tr-TR/ar-EG/ru-RU/fa-IR/bg-BG/hr-HR/cs-CZ/da-DK/fi-FI/lt-LT/ms-MY/nb-NO/ro-RO/el-GR/he-IL/hi-IN/hu-HU/sr-BA/sk-SK/sl-SI/sv-SE/tl-PH/th-TH/uk-UA/vi-VN)=en-US, description: str=, disable_session_renewal: bool=false, enabled_origin_commands: [str]=, json_response_enabled: bool=false, path: str=/, queue_all: bool=false, queueing_method: str(fifo/random/passthrough/reject)=fifo, queueing_status_code: int(200/202/429)=200, session_duration: int=5, suspended: bool=false, turnstile_action: str(log/infinite_queue)=log, turnstile_mode: str(off/invisible/visible_non_interactive/visible_managed)=invisible}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/waiting_rooms/preview
@required {zone_id: str, custom_html: str=}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms/settings
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/waiting_rooms/settings
@required {zone_id: str}
@optional {search_engine_crawler_bypass: bool=false}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/waiting_rooms/settings
@required {zone_id: str}
@optional {search_engine_crawler_bypass: bool=false}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/waiting_rooms/{waiting_room_id}
@required {waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms/{waiting_room_id}
@required {waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/waiting_rooms/{waiting_room_id}
@required {waiting_room_id: str, zone_id: str, host: str, name: str, new_users_per_minute: int, total_active_users: int}
@optional {additional_routes: [map{host: str, path: str}], cookie_attributes: map{samesite: str, secure: str}, cookie_suffix: str, custom_page_html: str=, default_template_language: str(en-US/es-ES/de-DE/fr-FR/it-IT/ja-JP/ko-KR/pt-BR/zh-CN/zh-TW/nl-NL/pl-PL/id-ID/tr-TR/ar-EG/ru-RU/fa-IR/bg-BG/hr-HR/cs-CZ/da-DK/fi-FI/lt-LT/ms-MY/nb-NO/ro-RO/el-GR/he-IL/hi-IN/hu-HU/sr-BA/sk-SK/sl-SI/sv-SE/tl-PH/th-TH/uk-UA/vi-VN)=en-US, description: str=, disable_session_renewal: bool=false, enabled_origin_commands: [str]=, json_response_enabled: bool=false, path: str=/, queue_all: bool=false, queueing_method: str(fifo/random/passthrough/reject)=fifo, queueing_status_code: int(200/202/429)=200, session_duration: int=5, suspended: bool=false, turnstile_action: str(log/infinite_queue)=log, turnstile_mode: str(off/invisible/visible_non_interactive/visible_managed)=invisible}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/waiting_rooms/{waiting_room_id}
@required {waiting_room_id: str, zone_id: str, host: str, name: str, new_users_per_minute: int, total_active_users: int}
@optional {additional_routes: [map{host: str, path: str}], cookie_attributes: map{samesite: str, secure: str}, cookie_suffix: str, custom_page_html: str=, default_template_language: str(en-US/es-ES/de-DE/fr-FR/it-IT/ja-JP/ko-KR/pt-BR/zh-CN/zh-TW/nl-NL/pl-PL/id-ID/tr-TR/ar-EG/ru-RU/fa-IR/bg-BG/hr-HR/cs-CZ/da-DK/fi-FI/lt-LT/ms-MY/nb-NO/ro-RO/el-GR/he-IL/hi-IN/hu-HU/sr-BA/sk-SK/sl-SI/sv-SE/tl-PH/th-TH/uk-UA/vi-VN)=en-US, description: str=, disable_session_renewal: bool=false, enabled_origin_commands: [str]=, json_response_enabled: bool=false, path: str=/, queue_all: bool=false, queueing_method: str(fifo/random/passthrough/reject)=fifo, queueing_status_code: int(200/202/429)=200, session_duration: int=5, suspended: bool=false, turnstile_action: str(log/infinite_queue)=log, turnstile_mode: str(off/invisible/visible_non_interactive/visible_managed)=invisible}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms/{waiting_room_id}/events
@required {waiting_room_id: str, zone_id: str}
@optional {page: num=1, per_page: num=25}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/waiting_rooms/{waiting_room_id}/events
@required {waiting_room_id: str, zone_id: str, event_end_time: str, event_start_time: str, name: str}
@optional {custom_page_html: str, description: str=, disable_session_renewal: bool, new_users_per_minute: int, prequeue_start_time: str, queueing_method: str, session_duration: int, shuffle_at_event_start: bool=false, suspended: bool=false, total_active_users: int, turnstile_action: str(log/infinite_queue), turnstile_mode: str(off/invisible/visible_non_interactive/visible_managed)}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}
@required {event_id: str, waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}
@required {event_id: str, waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}
@required {event_id: str, waiting_room_id: str, zone_id: str, event_end_time: str, event_start_time: str, name: str}
@optional {custom_page_html: str, description: str=, disable_session_renewal: bool, new_users_per_minute: int, prequeue_start_time: str, queueing_method: str, session_duration: int, shuffle_at_event_start: bool=false, suspended: bool=false, total_active_users: int, turnstile_action: str(log/infinite_queue), turnstile_mode: str(off/invisible/visible_non_interactive/visible_managed)}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}
@required {event_id: str, waiting_room_id: str, zone_id: str, event_end_time: str, event_start_time: str, name: str}
@optional {custom_page_html: str, description: str=, disable_session_renewal: bool, new_users_per_minute: int, prequeue_start_time: str, queueing_method: str, session_duration: int, shuffle_at_event_start: bool=false, suspended: bool=false, total_active_users: int, turnstile_action: str(log/infinite_queue), turnstile_mode: str(off/invisible/visible_non_interactive/visible_managed)}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms/{waiting_room_id}/events/{event_id}/details
@required {event_id: str, waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules
@required {waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules
@required {waiting_room_id: str, zone_id: str, action: str, expression: str}
@optional {description: str=, enabled: bool=true}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules
@required {waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules/{rule_id}
@required {rule_id: str, waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PATCH /zones/{zone_id}/waiting_rooms/{waiting_room_id}/rules/{rule_id}
@required {rule_id: str, waiting_room_id: str, zone_id: str, action: str, expression: str}
@optional {description: str=, enabled: bool=true, position: map}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/waiting_rooms/{waiting_room_id}/status
@required {waiting_room_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/web3/hostnames
@required {zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint POST /zones/{zone_id}/web3/hostnames
@required {zone_id: str, name: str, target: str(ethereum/ipfs/ipfs_universal_path)}
@optional {description: str, dnslink: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint DELETE /zones/{zone_id}/web3/hostnames/{identifier}
@required {identifier: str, zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/web3/hostnames/{identifier}
@required {identifier: str, zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PATCH /zones/{zone_id}/web3/hostnames/{identifier}
@required {identifier: str, zone_id: str}
@optional {description: str, dnslink: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list
@required {identifier: str, zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list
@required {identifier: str, zone_id: str, action: str, entries: [map{content: str, created_on: str(date-time), description: str, id: str, modified_on: str(date-time), type: str}]}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list/entries
@required {identifier: str, zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint POST /zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list/entries
@required {identifier: str, zone_id: str, content: str, type: str(cid/content_path)}
@optional {description: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint DELETE /zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list/entries/{content_list_entry_identifier}
@required {content_list_entry_identifier: str, identifier: str, zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list/entries/{content_list_entry_identifier}
@required {content_list_entry_identifier: str, identifier: str, zone_id: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint PUT /zones/{zone_id}/web3/hostnames/{identifier}/ipfs_universal_path/content_list/entries/{content_list_entry_identifier}
@required {content_list_entry_identifier: str, identifier: str, zone_id: str, content: str, type: str(cid/content_path)}
@optional {description: str}
@returns(200)
@errors {4XX, 5XX}

@endpoint GET /zones/{zone_id}/workers/routes
@required {zone_id: str}
@returns(200)
@errors {4XX}

@endpoint POST /zones/{zone_id}/workers/routes
@required {zone_id: str, id: any, pattern: str}
@optional {script: str}
@returns(200)
@errors {4XX}

@endpoint DELETE /zones/{zone_id}/workers/routes/{route_id}
@required {route_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint GET /zones/{zone_id}/workers/routes/{route_id}
@required {route_id: str, zone_id: str}
@returns(200)
@errors {4XX}

@endpoint PUT /zones/{zone_id}/workers/routes/{route_id}
@required {route_id: str, zone_id: str, id: any, pattern: str}
@optional {script: str}
@returns(200)
@errors {4XX}

@endgroup

@end
