{"components":{"schemas":{"Action":{"additionalProperties":false,"properties":{"id":{"description":"Unique action identifier","examples":[1],"format":"int64","type":"integer"},"label":{"description":"Human-readable action label","examples":["My Action"],"type":"string"},"name":{"description":"Machine-readable action name","examples":["my-action"],"type":"string"},"scope":{"description":"Scope in which the action is available","examples":["global"],"type":"string"},"short_label":{"description":"Short action description","examples":["My Action (All)"],"type":"string"}},"required":["id","name","label","short_label","scope"],"type":"object"},"BucketingInput":{"additionalProperties":false,"properties":{"columns":{"description":"Bucket columns","examples":[["user_id"]],"items":{"type":"string"},"type":["array","null"]},"count":{"description":"Number of buckets. If 0, then will use auto bucketing","examples":[10],"format":"int64","type":"integer"}},"required":["columns"],"type":"object"},"CloudProvider":{"additionalProperties":false,"properties":{"configuration":{"description":"Cloud-provider-specific configuration","examples":[{}]},"id":{"description":"Unique cloud provider identifier","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Cloud provider name","examples":["AWS"],"type":"string"}},"required":["id","name"],"type":"object"},"ColumnInput":{"additionalProperties":false,"properties":{"auto_increment":{"description":"Whether the column is auto-incrementing. Only BIGINT columns are supported","examples":[false],"type":"boolean"},"auto_increment_start":{"description":"Starting value for auto-incrementing column. The value must match the column type","examples":[1],"format":"int64","type":"integer"},"default":{"description":"Optional default value for the column","examples":["0"],"type":"string"},"is_key":{"description":"Whether the column is a key column","examples":[true],"type":"boolean"},"name":{"description":"Column name","examples":["user_id"],"type":"string"},"nullable":{"description":"Whether the column is nullable","examples":[false],"type":"boolean"},"type":{"description":"Column type, values are BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, DATE, TIME, STRING, VARCHAR, CHAR, DECIMAL, DATETIME. ","examples":["bigint"],"type":"string"}},"required":["name","type"],"type":"object"},"Connector":{"additionalProperties":false,"properties":{"input_topic_id":{"description":"Pub/Sub topic that supplies events to the function","examples":[10],"format":"int64","type":"integer"},"output_topic_id":{"description":"Optional Pub/Sub topic that receives the function output","examples":[11],"format":"int64","type":"integer"}},"required":["input_topic_id"],"type":"object"},"Container":{"additionalProperties":false,"properties":{"id":{"description":"Unique container identifier","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Human-readable container name","examples":["My Container"],"type":"string"},"parent_container_id":{"description":"Optional parent container identifier","examples":[6],"format":"int64","type":"integer"},"project_id":{"description":"Project that owns the container","examples":[1],"format":"int64","type":"integer"},"slug":{"description":"URL-safe, unique container slug","examples":["project-1-my-container"],"type":"string"}},"required":["id","project_id","slug","name"],"type":"object"},"CreateContainerActionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateContainerActionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"label":{"description":"Human-readable action label","examples":["My Action"],"type":"string"},"name":{"description":"Machine-readable action name","examples":["my-action"],"type":"string"},"scope":{"description":"Scope in which the action is available","examples":["global"],"type":"string"},"short_label":{"description":"Short action description","examples":["My Action (All)"],"type":"string"}},"required":["name","label","short_label","scope"],"type":"object"},"CreateContainerInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateContainerInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"name":{"description":"Human-readable container name","examples":["My Container"],"type":"string"},"parent_container_id":{"description":"Optional parent container identifier","examples":[6],"format":"int64","type":"integer"},"slug":{"description":"URL-safe, unique container slug","examples":["project-1-my-container"],"type":"string"}},"required":["slug","name"],"type":"object"},"CreateContainerPermissionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateContainerPermissionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"label":{"description":"Human-readable permission label","examples":["My Permission"],"type":"string"},"name":{"description":"Machine-readable permission name","examples":["my-permission"],"type":"string"}},"required":["name","label"],"type":"object"},"CreateContainerRoleInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateContainerRoleInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"label":{"description":"Human-readable role label","examples":["My Role"],"type":"string"},"name":{"description":"Machine-readable role name","examples":["my-role"],"type":"string"}},"required":["name","label"],"type":"object"},"CreateFunctionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateFunctionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"description":{"description":"Human-readable description of the function","examples":["Processes incoming temperature readings"],"type":"string"},"execution_timeout":{"description":"Maximum duration allowed for a single execution, in nanoseconds","examples":[30000000000],"format":"int64","type":"integer"},"fundamentum_iot_connectors":{"description":"Optional Pub/Sub topics connected to the function","items":{"$ref":"#/components/schemas/Connector"},"type":["array","null"]},"keep_alive_timeout":{"description":"How long an idle function instance remains warm, in nanoseconds","examples":[300000000000],"format":"int64","type":"integer"},"language":{"description":"Runtime language of the function","examples":["rust"],"type":"string"},"scaling":{"$ref":"#/components/schemas/ScalingOptions","description":"Optional worker-pool scaling configuration"},"variables":{"additionalProperties":{"type":"string"},"description":"Environment variables made available to the function","examples":[{"ENV":"production"}],"type":"object"}},"required":["description","language"],"type":"object"},"CreateInstanceInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateInstanceInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"name":{"description":"Instance name","examples":["My Insight Instance"],"type":"string"}},"required":["name"],"type":"object"},"CreateInvitationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateInvitationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"custom_message":{"description":"Displayed in the invitation email","examples":["Hello !"],"type":"string"},"email":{"description":"Invitee's email","examples":["john.doe@example.org"],"type":"string"},"name":{"description":"Invitee's name","examples":["John Doe"],"type":"string"},"options":{"description":"Options","examples":[[]]},"redirect_url":{"description":"Redirect URL after login","examples":["http://oauth.fundamentum.test/"],"type":"string"},"role_id":{"description":"Role ID","examples":[6],"format":"int64","type":"integer"}},"required":["name","email","redirect_url","role_id","container_item_id","options"],"type":"object"},"CreateLicenseInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateLicenseInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"license_type_id":{"description":"License Type ID","examples":[1],"format":"int64","type":"integer"},"meta_data":{"description":"Meta data","examples":[{}]},"name":{"description":"License name","examples":["My License"],"type":"string"},"options":{"description":"License options","items":{"$ref":"#/components/schemas/LicenseOptionSave"},"type":["array","null"]}},"required":["name","license_type_id","options"],"type":"object"},"CreateLicenseInvitationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateLicenseInvitationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"custom_message":{"description":"Displayed in the invitation email","examples":["Hello !"],"type":"string"},"email":{"description":"Invitee's email","examples":["john.doe@example.org"],"type":"string"},"name":{"description":"Invitee's name","examples":["John Doe"],"type":"string"},"options":{"description":"Options","examples":[[]]},"redirect_url":{"description":"Redirect URL after login","examples":["http://oauth.fundamentum.test/"],"type":"string"},"role_id":{"description":"Role ID","examples":[6],"format":"int64","type":"integer"}},"required":["name","email","redirect_url","role_id","container_item_id","options"],"type":"object"},"CreateNotifierInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateNotifierInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"action_url":{"description":"Action URL","examples":["https://example.com/alert/1"],"type":"string"},"notifiable":{"description":"Array of user IDs or role names"},"notifiable_type":{"description":"roles or users","examples":["roles"],"type":"string"}},"required":["notifiable_type","notifiable"],"type":"object"},"CreateOrganizationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateOrganizationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"icon":{"description":"Optional organization icon definition","examples":[{"type":"icon","value":"fa-solid fa-building"}]},"meta_data":{"description":"Optional organization metadata","examples":[{}]},"name":{"description":"Organization name","examples":["My Organization"],"type":"string"}},"required":["name"],"type":"object"},"CreateProjectInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateProjectInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"meta_data":{"description":"Optional project metadata","examples":[{}]},"name":{"description":"Project name","examples":["My Project"],"type":"string"},"sender_email_address":{"description":"Sender email address","examples":["no-reply@fundamentum-iot.com"],"type":"string"}},"required":["name"],"type":"object"},"CreateRegistryInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateRegistryInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"cloud_provider_id":{"description":"Cloud provider identifier. Leave at 1 for the default provider","examples":[1],"format":"int64","type":"integer"},"configuration":{"description":"Cloud-provider-specific registry configuration","examples":[{}]},"name":{"description":"Registry display name","examples":["Production registry"],"type":"string"},"provisioning_end_at":{"description":"End of the provisioning window","examples":["2026-12-31T23:59:59Z"],"type":"string"},"provisioning_start_at":{"description":"Start of the provisioning window","examples":["2026-01-01T00:00:00Z"],"type":"string"}},"required":["cloud_provider_id","name","provisioning_start_at","provisioning_end_at"],"type":"object"},"CreateServiceAccountInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateServiceAccountInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"name":{"description":"Service account name","examples":["my-service-account"],"type":"string"}},"required":["name"],"type":"object"},"CreateServiceAccountRoleInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateServiceAccountRoleInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"options":{"additionalProperties":{},"description":"Options","examples":[{}],"type":"object"},"role_id":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}},"required":["role_id"],"type":"object"},"CreateServiceAccountTokenInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateServiceAccountTokenInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"name":{"description":"Token name","examples":["my-token"],"type":"string"}},"required":["name"],"type":"object"},"CreateSiteInvitationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/CreateSiteInvitationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"custom_message":{"description":"Displayed in the invitation email","examples":["Hello !"],"type":"string"},"email":{"description":"Invitee's email","examples":["john.doe@example.org"],"type":"string"},"name":{"description":"Invitee's name","examples":["John Doe"],"type":"string"},"options":{"description":"Options","examples":[[]]},"redirect_url":{"description":"Redirect URL after login","examples":["http://oauth.fundamentum.test/"],"type":"string"},"role_id":{"description":"Role ID","examples":[6],"format":"int64","type":"integer"}},"required":["name","email","redirect_url","role_id","container_item_id","options"],"type":"object"},"DatabaseUserInput":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/DatabaseUserInput.json"],"format":"uri","readOnly":true,"type":"string"},"password":{"description":"password must be 12-128 characters","examples":["securepassword"],"type":"string"},"username":{"description":"username must be 3-32 characters and can only contain letters, numbers, dots, underscores, hyphens, and @","examples":["johndoe"],"type":"string"}},"required":["username","password"],"type":"object"},"DeviceType":{"additionalProperties":false,"properties":{"asset_type_id":{"description":"Asset type identifier","examples":[1],"format":"int64","type":"integer"},"default_configuration":{"description":"Default device configuration","examples":[{}]},"deleted_at":{"description":"Soft deletion timestamp, when applicable","examples":["null"],"type":"string"},"icon":{"$ref":"#/components/schemas/Icon","description":"Optional device type icon"},"id":{"description":"Unique device type identifier","examples":[1],"format":"int64","type":"integer"},"is_accessible":{"description":"Whether the device type is available to the current project","examples":[true],"type":"boolean"},"is_gateway":{"description":"Whether this device type is a gateway","examples":[false],"type":"boolean"},"is_lorawan":{"description":"Whether this device type uses LoRaWAN","examples":[true],"type":"boolean"},"meta_data":{"description":"Optional device type metadata","examples":[{}]},"name":{"description":"Device type name","examples":["Temperature Sensor"],"type":"string"},"pivot":{"$ref":"#/components/schemas/DeviceTypePivot","description":"Registry-specific device type quantities"},"project_id":{"description":"Project identifier, when project-scoped","examples":[1],"format":"int64","type":["integer","null"]},"should_self_provision_has_mps":{"description":"Whether devices can self-provision with MPS","examples":[false],"type":"boolean"},"updated_at":{"description":"Last update timestamp","examples":["2026-01-01T00:00:00Z"],"type":"string"}},"required":["id","project_id","asset_type_id","should_self_provision_has_mps","is_accessible","is_gateway","is_lorawan","name"],"type":"object"},"DeviceTypePivot":{"additionalProperties":false,"properties":{"device_count":{"description":"Number of devices currently associated with the registry","examples":[25],"format":"int64","type":"integer"},"device_type_id":{"description":"Device type identifier","examples":[1],"format":"int64","type":"integer"},"provisioning_quantity":{"description":"Maximum number of devices that may be provisioned","examples":[100],"format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier","examples":[1],"format":"int64","type":"integer"}},"required":["registry_id","device_type_id","provisioning_quantity","device_count"],"type":"object"},"EmptyResponseBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/EmptyResponseBody.json"],"format":"uri","readOnly":true,"type":"string"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status"],"type":"object"},"Error":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/Error.json"],"format":"uri","readOnly":true,"type":"string"},"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"},"FeatureResponse":{"additionalProperties":false,"properties":{"enabled":{"description":"Whether the feature is enabled for the current project and user","examples":[true],"type":"boolean"},"options":{"contentEncoding":"base64","description":"Feature-specific configuration options","type":"string"}},"required":["enabled"],"type":"object"},"FunctionDetails":{"additionalProperties":false,"properties":{"description":{"description":"Human-readable description of the function","examples":["Processes incoming temperature readings"],"type":"string"},"execution_timeout":{"description":"Maximum duration allowed for a single execution, in nanoseconds","examples":[30000000000],"format":"int64","type":"integer"},"fundamentum_iot_connectors":{"description":"Optional Pub/Sub topics connected to the function","items":{"$ref":"#/components/schemas/Connector"},"type":["array","null"]},"has_file_set":{"description":"Whether executable function code has been uploaded","examples":[true],"type":"boolean"},"id":{"description":"Unique function identifier","examples":["fn_01HXYZ"],"type":"string"},"keep_alive_timeout":{"description":"How long an idle function instance remains warm, in nanoseconds","examples":[300000000000],"format":"int64","type":"integer"},"language":{"description":"Runtime language of the function","examples":["rust"],"type":"string"},"scaling":{"$ref":"#/components/schemas/ScalingOptions","description":"Optional worker-pool scaling configuration"},"variables":{"additionalProperties":{"type":"string"},"description":"Environment variables made available to the function","examples":[{"ENV":"production"}],"type":"object"}},"required":["has_file_set","description","language"],"type":"object"},"FunctionExecution":{"additionalProperties":false,"properties":{"error":{"description":"Execution error message, if the execution failed","examples":[""],"type":"string"},"execution_time":{"description":"Execution duration in seconds","examples":[0.42],"format":"double","type":"number"},"log":{"description":"Execution log output","examples":["processed 10 messages"],"type":"string"},"source":{"description":"Event or request that triggered the execution","examples":["pubsub"],"type":"string"},"started_at":{"description":"Execution start timestamp","examples":["2026-01-01T12:00:00Z"],"format":"date-time","type":"string"}},"required":["source","started_at","execution_time","log","error"],"type":"object"},"FunctionInvocationResult":{"additionalProperties":false,"properties":{"execution_time":{"description":"Invocation duration in seconds","examples":[0.42],"format":"double","type":"number"},"output":{"$ref":"#/components/schemas/FunctionInvocationResultOutputStruct","description":"Function output"},"started_at":{"description":"Invocation start timestamp","examples":["2026-01-01T12:00:00Z"],"type":"string"}},"required":["started_at","execution_time","output"],"type":"object"},"FunctionInvocationResultOutputStruct":{"additionalProperties":false,"properties":{"format":{"description":"Format of the function output","examples":["json"],"type":"string"},"value":{"description":"Value returned by the function","examples":[{"processed":10}]}},"required":["format","value"],"type":"object"},"FunctionSummary":{"additionalProperties":false,"properties":{"description":{"description":"Human-readable description of the function","examples":["Processes incoming temperature readings"],"type":"string"},"execution_timeout":{"description":"Maximum duration allowed for a single execution, in nanoseconds","examples":[30000000000],"format":"int64","type":"integer"},"has_file_set":{"description":"Whether executable function code has been uploaded","examples":[true],"type":"boolean"},"id":{"description":"Unique function identifier","examples":["fn_01HXYZ"],"type":"string"},"keep_alive_timeout":{"description":"How long an idle function instance remains warm, in nanoseconds","examples":[300000000000],"format":"int64","type":"integer"},"language":{"description":"Runtime language of the function","examples":["rust"],"type":"string"}},"required":["has_file_set","description","language"],"type":"object"},"FunctionUploadResult":{"additionalProperties":false,"properties":{"readable_file_size":{"description":"Uploaded file size in a human-readable format","examples":["2.4 MB"],"type":"string"}},"required":["readable_file_size"],"type":"object"},"HealthOutputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/HealthOutputBody.json"],"format":"uri","readOnly":true,"type":"string"},"message":{"description":"Health of service","examples":["OK"],"type":"string"}},"required":["message"],"type":"object"},"Icon":{"additionalProperties":false,"properties":{"type":{"description":"Icon library or icon type","examples":["fa"],"type":"string"},"value":{"description":"Icon name or value","examples":["layer-group"],"type":"string"}},"required":["type","value"],"type":"object"},"IndexInput":{"additionalProperties":false,"properties":{"column":{"description":"Index column name","examples":["user_id"],"type":"string"},"properties":{"additionalProperties":{"type":"string"},"description":"Extra index properties","type":"object"},"type":{"description":"Index type, values are INVERTED (Default if empty), NGRAM_BF, ANN","examples":["INVERTED"],"type":"string"}},"required":["column"],"type":"object"},"Instance":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp","format":"date-time","type":"string"},"deleted_at":{"description":"Soft delete timestamp","format":"date-time","type":["string","null"]},"id":{"description":"Unique instance identifier","examples":[42],"format":"int64","type":"integer"},"name":{"description":"Instance name","examples":["acme-prod"],"type":"string"},"owner_id":{"description":"Owner user ID","examples":[1],"format":"int64","type":"integer"},"project_id":{"description":"Project ID","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp","format":"date-time","type":"string"}},"required":["id","name","project_id","owner_id","created_at","updated_at","deleted_at"],"type":"object"},"Invitation":{"additionalProperties":false,"properties":{"completed_at":{"description":"Completion date","examples":["2026-01-01T00:00:00.000000Z"],"type":["string","null"]},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"created_at":{"description":"Creation date","examples":["2026-01-01T00:00:00.000000Z"],"type":"string"},"custom_message":{"description":"Displayed in the invitation email","examples":["Hello !"],"type":"string"},"deleted_at":{"description":"Deletion date","examples":["2026-01-01T00:00:00.000000Z"],"type":["string","null"]},"email":{"description":"Invitee's email","examples":["john.doe@example.org"],"type":"string"},"from_user_id":{"description":"Sender user ID","examples":[1],"format":"int64","type":"integer"},"id":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"},"license":{"$ref":"#/components/schemas/License","description":"The license this invitation grants access to"},"name":{"description":"Invitee's name","examples":["John Doe"],"type":"string"},"options":{"description":"Options","examples":[[]]},"role_id":{"description":"Role ID","examples":[6],"format":"int64","type":"integer"},"site":{"description":"The site this invitation grants access to"},"to_user_id":{"description":"Recipient user ID","examples":[2],"format":"int64","type":"integer"},"updated_at":{"description":"Last update date","examples":["2026-01-01T00:00:00.000000Z"],"type":"string"}},"required":["id","name","email","options","custom_message","from_user_id","to_user_id","role_id","container_item_id","created_at","updated_at","deleted_at","completed_at"],"type":"object"},"License":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation date","examples":["2026-01-01T00:00:00.000000Z"],"type":"string"},"deleted_at":{"description":"Deletion date","examples":["2026-01-01T00:00:00.000000Z"],"type":["string","null"]},"id":{"description":"License ID","examples":[1],"format":"int64","type":"integer"},"license_type":{"$ref":"#/components/schemas/LicenseType","description":"License type"},"meta_data":{"description":"Meta data","examples":[{}]},"name":{"description":"License name","examples":["My License"],"type":"string"},"options":{"description":"License options","items":{"$ref":"#/components/schemas/LicenseOption"},"type":["array","null"]},"updated_at":{"description":"Last update date","examples":["2026-01-01T00:00:00.000000Z"],"type":"string"}},"required":["id","name","options","meta_data","license_type","created_at","updated_at","deleted_at"],"type":"object"},"LicenseOption":{"additionalProperties":false,"properties":{"field_id":{"description":"Field ID","examples":[1],"format":"int64","type":"integer"},"field_name":{"description":"Field name","examples":["Max Users"],"type":"string"},"id":{"description":"License Option ID","examples":[1],"format":"int64","type":"integer"},"value":{"description":"Field value","examples":[100]}},"required":["id","field_id","field_name","value"],"type":"object"},"LicenseOptionSave":{"additionalProperties":false,"properties":{"id":{"description":"License Option ID","examples":[1],"format":"int64","type":"integer"},"license_option_field_id":{"description":"License Option Field ID","examples":[1],"format":"int64","type":"integer"},"value":{"description":"Field value","examples":[100]}},"required":["license_option_field_id","value"],"type":"object"},"LicenseType":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation date","examples":["2026-01-01T00:00:00.000000Z"],"type":"string"},"deleted_at":{"description":"Deletion date","examples":["2026-01-01T00:00:00.000000Z"],"type":["string","null"]},"id":{"description":"License Type ID","examples":[1],"format":"int64","type":"integer"},"name":{"description":"License Type name","examples":["Full License"],"type":"string"},"project_id":{"description":"Project ID","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Last update date","examples":["2026-01-01T00:00:00.000000Z"],"type":"string"}},"required":["id","project_id","name","created_at","updated_at","deleted_at"],"type":"object"},"Notifiable":{"additionalProperties":false,"properties":{"roles":{"additionalProperties":{},"description":"List of roles","type":"object"},"users":{"description":"List of users","items":{"$ref":"#/components/schemas/NotifiableUser"},"type":["array","null"]}},"required":["users","roles"],"type":"object"},"NotifiableUser":{"additionalProperties":false,"properties":{"email":{"description":"User email","examples":["doe@mail.com"],"type":"string"},"id":{"description":"User ID","examples":[1],"format":"int64","type":"integer"},"name":{"description":"User name","examples":["John Doe"],"type":"string"}},"required":["id","name","email"],"type":"object"},"Notifier":{"additionalProperties":false,"properties":{"action_url":{"description":"URL to be redirected when an alert is triggered. This URL will be present in the notification that is sent","examples":["https://example.com/alert/1"],"type":"string"},"alert_rule_id":{"description":"Alert Rule ID","examples":[1],"format":"int64","type":"integer"},"id":{"description":"Alert Notifier ID","examples":[1],"format":"int64","type":"integer"},"notifiable":{"description":"Notifiable is an array of user ID or an array of role name","examples":[[1,2]]},"notifiable_type":{"description":"the type of notifiable (users or roles)","examples":["users"],"type":"string"},"project_id":{"description":"Project ID","examples":[1],"format":"int64","type":"integer"}},"required":["id","project_id","alert_rule_id","notifiable_type","notifiable","action_url"],"type":"object"},"Organization":{"additionalProperties":false,"properties":{"icon":{"description":"Optional organization icon definition","examples":[{"type":"icon","value":"fa-solid fa-building"}]},"meta_data":{"description":"Optional organization metadata","examples":[{}]},"name":{"description":"Organization name","examples":["My Organization"],"type":"string"}},"required":["name"],"type":"object"},"OutputResponseActionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseActionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Action"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseContainerBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseContainerBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Container"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseDatabaseUserBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseDatabaseUserBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"type":"string"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseFeatureResponseBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseFeatureResponseBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/FeatureResponse"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseFunctionDetailsBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseFunctionDetailsBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/FunctionDetails"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseFunctionInvocationResultBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseFunctionInvocationResultBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/FunctionInvocationResult"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseFunctionUploadResultBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseFunctionUploadResultBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/FunctionUploadResult"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseInstanceBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseInstanceBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Instance"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseInvitationBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseInvitationBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Invitation"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseLicenseBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseLicenseBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/License"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListDeviceTypeBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListDeviceTypeBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/DeviceType"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListRegistryTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListRegistryTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/RegistryTopic"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListServiceAccountBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListServiceAccountBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ServiceAccount"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListServiceAccountRoleBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListServiceAccountRoleBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/ServiceAccountRole"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseListTokenBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseListTokenBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Token"},"type":["array","null"]},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseNotifiableBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseNotifiableBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Notifiable"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseNotifierBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseNotifierBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Notifier"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseOrganizationBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseOrganizationBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Organization"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponsePermissionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponsePermissionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Permission"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponsePipelineBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponsePipelineBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Pipeline"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponsePipelineStatusBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponsePipelineStatusBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/PipelineStatus"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseProjectBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseProjectBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Project"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseRegistryBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseRegistryBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Registry"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseRegistryTopicBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseRegistryTopicBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/RegistryTopic"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseRoleBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseRoleBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Role"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseServiceAccountBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseServiceAccountBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/ServiceAccount"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseServiceAccountRoleBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseServiceAccountRoleBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/ServiceAccountRole"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseTableBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseTableBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Table"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseTokenBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseTokenBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/Token"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseTokenResultBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseTokenResultBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/TokenResult"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"OutputResponseUserBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/OutputResponseUserBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"$ref":"#/components/schemas/User"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data"],"type":"object"},"Pager":{"additionalProperties":false,"properties":{"current_page":{"format":"int64","type":"integer"},"first_page_url":{"type":"string"},"from":{"format":"int64","type":"integer"},"last_page":{"format":"int64","type":"integer"},"last_page_url":{"type":"string"},"next_page_url":{"type":"string"},"per_page":{"format":"int64","type":"integer"},"prev_page_url":{"type":"string"},"to":{"format":"int64","type":"integer"},"total":{"format":"int64","type":"integer"}},"required":["current_page","from","to","total","last_page","per_page","first_page_url","last_page_url","next_page_url","prev_page_url"],"type":"object"},"PaginatedResponseListActionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListActionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Action"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListContainerBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListContainerBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Container"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListDatabaseUserBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListDatabaseUserBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"type":"string"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListFunctionExecutionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListFunctionExecutionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/FunctionExecution"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListFunctionSummaryBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListFunctionSummaryBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/FunctionSummary"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListInstanceBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListInstanceBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Instance"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListInvitationBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListInvitationBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Invitation"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListLicenseBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListLicenseBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/License"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListNotifierBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListNotifierBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Notifier"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListOrganizationBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListOrganizationBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Organization"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListPermissionBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListPermissionBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Permission"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListProjectBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListProjectBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Project"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListRegistryBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListRegistryBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Registry"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListRoleBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListRoleBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Role"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PaginatedResponseListTableBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/PaginatedResponseListTableBody.json"],"format":"uri","readOnly":true,"type":"string"},"data":{"items":{"$ref":"#/components/schemas/Table"},"type":["array","null"]},"pager":{"$ref":"#/components/schemas/Pager"},"status":{"default":"success","examples":["success"],"type":"string"}},"required":["status","data","pager"],"type":"object"},"PartitioningInput":{"additionalProperties":false,"properties":{"column":{"description":"Partitioning column name","examples":["created_at"],"type":"string"},"unit":{"description":"Partitioning unit, values are day, week, month, quarter, year","examples":["month"],"type":"string"}},"required":["column","unit"],"type":"object"},"Permission":{"additionalProperties":false,"properties":{"container_id":{"description":"Container that owns the permission","examples":[2],"format":"int64","type":"integer"},"id":{"description":"Unique permission identifier","examples":[1],"format":"int64","type":"integer"},"label":{"description":"Human-readable permission label","examples":["My Permission"],"type":"string"},"name":{"description":"Machine-readable permission name","examples":["my-permission"],"type":"string"}},"required":["id","container_id","name","label"],"type":"object"},"Pipeline":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/Pipeline.json"],"format":"uri","readOnly":true,"type":"string"},"dimensions":{"description":"Dimension tables used for enrichment","items":{"$ref":"#/components/schemas/PipelineDimension"},"type":["array","null"]},"sinks":{"description":"Destination tables receiving pipeline data","items":{"$ref":"#/components/schemas/PipelineSinkTable"},"minItems":1,"type":["array","null"]},"sources":{"description":"Event sources feeding the pipeline","items":{"$ref":"#/components/schemas/PipelineSource"},"minItems":1,"type":["array","null"]}},"required":["sources","dimensions","sinks"],"type":"object"},"PipelineCondition":{"additionalProperties":false,"properties":{"combinator":{"description":"Logical combinator used to combine the group's items","type":"string"},"items":{"description":"Nested conditions in a group","items":{"$ref":"#/components/schemas/PipelineCondition"},"type":["array","null"]},"left":{"$ref":"#/components/schemas/PipelineConditionExpression","description":"Left-hand expression for a comparison condition"},"operator":{"description":"Comparison operator applied to the left- and right-hand expressions","type":"string"},"right":{"$ref":"#/components/schemas/PipelineConditionExpression","description":"Right-hand expression for a comparison condition"},"type":{"description":"Condition node type, such as a comparison or a group","type":"string"}},"required":["type"],"type":"object"},"PipelineConditionExpression":{"additionalProperties":false,"properties":{"raw_sql":{"description":"Raw SQL expression used as the expression value; mutually exclusive with source_field_name and string_value","type":"string"},"source_field_name":{"description":"Name of a source field used as the expression value; mutually exclusive with string_value and raw_sql","type":"string"},"string_value":{"description":"String literal used as the expression value; mutually exclusive with source_field_name and raw_sql","type":"string"}},"type":"object"},"PipelineDimension":{"additionalProperties":false,"properties":{"fields":{"description":"Fields of the dimension","items":{"$ref":"#/components/schemas/PipelineDimensionField"},"type":["array","null"]},"name":{"description":"Name of the dimension, used to reference in sink join mappings","examples":["dimension1"],"type":"string"},"table_id":{"description":"Id of the dimension table","examples":[42],"format":"int64","type":"integer"},"topic_id":{"description":"PubSub Topic Id","format":"int64","type":"integer"}},"required":["name","topic_id","table_id","fields"],"type":"object"},"PipelineDimensionField":{"additionalProperties":false,"properties":{"column_id":{"description":"Id of the column in the dimension table","examples":[42],"format":"int64","type":"integer"},"name":{"description":"Name of the field in the event's payload data field. For example, 'user_id' will match the user_id in this payload '{ data: { user_id: 123 } }'","examples":["user_id"],"type":"string"},"transform":{"description":"Name reference to a transformation function applied to the field before it is cast to the column type","examples":["mv_to_utc"],"type":"string"}},"required":["name","column_id"],"type":"object"},"PipelineSinkTable":{"additionalProperties":false,"properties":{"condition":{"$ref":"#/components/schemas/PipelineCondition","description":"Optional condition that determines which records are sent to this sink"},"mappings":{"description":"Mappings of sink table columns to source fields, transformations, or constant values","items":{"$ref":"#/components/schemas/PipelineSinkTableMapping"},"type":["array","null"]},"name":{"description":"Name of the sink","examples":["sink1"],"type":"string"},"source_name":{"description":"Name of the source","examples":["source1"],"type":"string"},"table_id":{"description":"Id of the table to sink data into","examples":[42],"format":"int64","type":"integer"},"weight":{"description":"Relative weight used when distributing data to this sink","examples":[1],"format":"int64","minimum":0,"type":"integer"}},"required":["name","source_name","table_id","weight","mappings"],"type":"object"},"PipelineSinkTableMapping":{"additionalProperties":false,"properties":{"column_id":{"description":"Id of the column in the sink table","examples":[42],"format":"int64","type":"integer"},"dimension":{"description":"Dimension table name to join","type":["string","null"]},"dimension_field_ref":{"description":"Dimension field ID to include in query","format":"int64","type":["integer","null"]},"dimension_join_field_ref":{"description":"Dimension field ID to join on","format":"int64","type":["integer","null"]},"source_field_ref":{"description":"Source field index, mutually exclusive with SourceJoinFieldRef and SourceValue","examples":[0],"format":"int64","type":["integer","null"]},"source_join_field_ref":{"description":"Source field ID to join on, mutually exclusive with SourceFieldRef and SourceValue","examples":[0],"format":"int64","type":["integer","null"]},"source_value":{"description":"Constant value to use for the column, mutually exclusive with SourceFieldRef and SourceJoinFieldRef","examples":["constant_value"],"type":["string","null"]},"transform":{"description":"Name reference to a transformation function","type":["string","null"]}},"required":["column_id","transform","source_field_ref","source_join_field_ref","dimension","dimension_join_field_ref","dimension_field_ref","source_value"],"type":"object"},"PipelineSource":{"additionalProperties":false,"properties":{"debug":{"description":"Whether debug output is enabled for this source","examples":[false],"type":"boolean"},"fields":{"description":"Fields of the source","items":{"$ref":"#/components/schemas/PipelineSourceField"},"type":["array","null"]},"name":{"description":"Name of the source, used to reference in sinks","examples":["source1"],"type":"string"},"topic_id":{"description":"PubSub Topic Id","format":"int64","type":"integer"}},"required":["name","topic_id","debug","fields"],"type":"object"},"PipelineSourceField":{"additionalProperties":false,"properties":{"name":{"description":"Name of the field in the event's payload data field. For example, 'user_id' will match the user_id in this payload '{ data: { user_id: 123 } }'","examples":["user_id"],"type":"string"}},"required":["name"],"type":"object"},"PipelineStatus":{"additionalProperties":false,"properties":{"pipeline":{"$ref":"#/components/schemas/Pipeline","description":"Pipeline details"},"status":{"description":"Pipeline status","enum":["unknown","missing","running","starting","stopping","stopped","failed"],"examples":["running"],"type":"string"}},"required":["status","pipeline"],"type":"object"},"Project":{"additionalProperties":false,"properties":{"id":{"description":"Project ID","examples":[123],"format":"int64","type":"integer"},"meta_data":{"description":"Optional project metadata","examples":[{}]},"name":{"description":"Project name","examples":["My Project"],"type":"string"},"sender_email_address":{"description":"Sender email address","examples":["no-reply@fundamentum-iot.com"],"type":"string"}},"required":["id","name"],"type":"object"},"PubSubTopic":{"additionalProperties":false,"properties":{"default_type":{"description":"Default topic type","examples":["events"],"type":"string"},"deleted_at":{"description":"Soft deletion timestamp, when applicable","examples":["null"],"type":["string","null"]},"id":{"description":"Unique Pub/Sub topic identifier","examples":[10],"format":"int64","type":"integer"},"is_default":{"description":"Whether this is the project's default topic","examples":[true],"type":"boolean"},"name":{"description":"Pub/Sub topic name","examples":["telemetry"],"type":"string"},"project_id":{"description":"Project that owns the topic","examples":[1],"format":"int64","type":"integer"},"registry_topic_count":{"description":"Number of registry topics using this Pub/Sub topic","examples":[2],"format":"int64","type":"integer"},"scoped_from":{"description":"Scopes from which this topic is available","examples":[["project"]],"items":{"type":"string"},"type":["array","null"]},"updated_at":{"description":"Last update timestamp","examples":["2026-01-01T00:00:00Z"],"type":["string","null"]}},"required":["id","project_id","name","is_default","default_type","updated_at","deleted_at","registry_topic_count"],"type":"object"},"Registry":{"additionalProperties":false,"properties":{"cloud_provider":{"$ref":"#/components/schemas/CloudProvider","description":"Cloud provider details"},"cloud_provider_id":{"description":"Cloud provider identifier","examples":[1],"format":"int64","type":"integer"},"configuration":{"description":"Cloud-provider-specific registry configuration","examples":[{}]},"deleted_at":{"description":"Soft deletion timestamp, when applicable","examples":["null"],"type":"string"},"device_types":{"description":"Device types available through this registry","items":{"$ref":"#/components/schemas/DeviceType"},"type":["array","null"]},"id":{"description":"Unique registry identifier","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Registry display name","examples":["Production registry"],"type":"string"},"project_id":{"description":"Project that owns the registry","examples":[1],"format":"int64","type":"integer"},"provisioning_end_at":{"description":"End of the provisioning window","examples":["2026-12-31T23:59:59Z"],"type":"string"},"provisioning_secret":{"description":"Secret used when provisioning devices","type":"string"},"provisioning_start_at":{"description":"Start of the provisioning window","examples":["2026-01-01T00:00:00Z"],"type":"string"},"topics":{"description":"Topics configured for this registry","items":{"$ref":"#/components/schemas/RegistryTopic"},"type":["array","null"]},"updated_at":{"description":"Last update timestamp","examples":["2026-01-01T00:00:00Z"],"type":"string"}},"required":["id","project_id","name","provisioning_secret","provisioning_start_at","provisioning_end_at","cloud_provider_id"],"type":"object"},"RegistryTopic":{"additionalProperties":false,"properties":{"configuration":{"description":"Topic-specific configuration","examples":[{}]},"id":{"description":"Unique registry topic identifier","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Registry topic name","examples":["telemetry"],"type":"string"},"pub_sub_topic":{"$ref":"#/components/schemas/PubSubTopic","description":"Pub/Sub topic details"},"pub_sub_topic_id":{"description":"Pub/Sub topic identifier","examples":[10],"format":"int64","type":"integer"},"registry_id":{"description":"Registry that owns the topic","examples":[1],"format":"int64","type":"integer"},"sub_type_name":{"description":"Optional topic subtype","examples":["temperature"],"type":"string"},"type":{"description":"Topic type","examples":["uplink"],"type":"string"}},"required":["id","registry_id","pub_sub_topic_id","name","type"],"type":"object"},"Role":{"additionalProperties":false,"properties":{"container_id":{"description":"Container that owns the role","examples":[2],"format":"int64","type":"integer"},"id":{"description":"Unique role identifier","examples":[1],"format":"int64","type":"integer"},"label":{"description":"Human-readable role label","examples":["My Role"],"type":"string"},"name":{"description":"Machine-readable role name","examples":["my-role"],"type":"string"}},"required":["id","container_id","name","label"],"type":"object"},"RoleContainer":{"additionalProperties":false,"properties":{"id":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Container Name","examples":["Project"],"type":"string"},"parent_container_id":{"description":"Parent Container ID","examples":[2],"format":"int64","type":"integer"},"project_id":{"description":"Project ID","examples":[1],"format":"int64","type":"integer"},"slug":{"description":"Container Slug","examples":["project"],"type":"string"},"sort":{"description":"Sort Order","examples":[1],"format":"int64","type":"integer"},"system":{"description":"System Flag","examples":[true],"type":"boolean"}},"required":["id","name","slug","system","sort"],"type":"object"},"RolePivot":{"additionalProperties":false,"properties":{"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"options":{"description":"Pivot Options","examples":[{}]},"role_id":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"},"user_id":{"description":"User ID","examples":[1],"format":"int64","type":"integer"}},"required":["user_id","role_id"],"type":"object"},"ScalingOptions":{"additionalProperties":false,"properties":{"pool_size":{"description":"Number of function workers kept in the execution pool","examples":[2],"format":"int64","type":"integer"}},"required":["pool_size"],"type":"object"},"ServiceAccount":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp","examples":["2026-01-01T00:00:00Z"],"type":"string"},"deleted_at":{"description":"Soft deletion timestamp, or null when active","examples":["null"],"type":["string","null"]},"email":{"description":"Email address associated with the service account","examples":["automation-bot@example.com"],"type":"string"},"id":{"description":"Unique service account identifier","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Service account display name","examples":["automation-bot"],"type":"string"},"project_id":{"description":"Project that owns the service account","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Last update timestamp","examples":["2026-01-01T00:00:00Z"],"type":"string"}},"required":["id","project_id","name","created_at","updated_at","deleted_at"],"type":"object"},"ServiceAccountRole":{"additionalProperties":false,"properties":{"id":{"description":"Unique role identifier","examples":[1],"format":"int64","type":"integer"},"name":{"description":"Role name","examples":["project_admin"],"type":"string"}},"required":["id","name"],"type":"object"},"StoreRegistryTopicInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/StoreRegistryTopicInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"pub_sub_topic_id":{"description":"Pub/Sub topic identifier","examples":[10],"format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier","examples":[1],"format":"int64","type":"integer"},"sub_type_name":{"description":"Optional topic subtype","examples":["temperature"],"type":"string"},"type":{"description":"Topic type","examples":["uplink"],"type":"string"}},"required":["registry_id","pub_sub_topic_id"],"type":"object"},"Table":{"additionalProperties":false,"properties":{"bucket_count":{"description":"Table bucket count. If 0, then will use auto bucketing","examples":[10],"format":"int64","type":"integer"},"columns":{"description":"Table columns","items":{"$ref":"#/components/schemas/TableColumn"},"type":["array","null"]},"created_at":{"description":"Creation timestamp","format":"date-time","type":"string"},"id":{"description":"Unique table identifier","examples":[42],"format":"int64","type":"integer"},"indexes":{"description":"Table indexes","items":{"$ref":"#/components/schemas/TableIndex"},"type":["array","null"]},"instance_id":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"},"key_model":{"description":"Table key model, values are UNIQUE, DUPLICATE or AGGREGATE. Default value is UNIQUE","examples":["UNIQUE"],"type":"string"},"name":{"description":"Table name","examples":["users"],"type":"string"},"partition_time_unit":{"description":"Table partition time unit, values are day, week, month, quarter, year","examples":["day"],"type":"string"},"partition_type":{"description":"Table partition type, values are RANGE or LIST","examples":["RANGE"],"type":"string"},"properties":{"additionalProperties":{"type":"string"},"description":"Table properties","examples":[{"replication_num":"3"}],"type":"object"},"type":{"description":"Table type, values are fact or dimension","examples":["fact"],"type":"string"},"updated_at":{"description":"Last update timestamp","format":"date-time","type":"string"},"version":{"description":"Table version","examples":[1],"format":"int64","type":"integer"}},"required":["id","instance_id","name","version","type","key_model","partition_type","partition_time_unit","bucket_count","properties","columns","indexes","created_at","updated_at"],"type":"object"},"TableColumn":{"additionalProperties":false,"properties":{"id":{"description":"Unique column identifier","examples":[42],"format":"int64","type":"integer"},"is_distribution_key":{"description":"Whether the column is part of the bucket distribution key","examples":[true],"type":"boolean"},"is_key":{"description":"Whether the column is a key column","examples":[true],"type":"boolean"},"is_partition_key":{"description":"Whether the column is part of the partitioning key. Partitioning columns must be key columns","examples":[false],"type":"boolean"},"name":{"description":"Column name","examples":["user_id"],"type":"string"},"nullable":{"description":"Whether the column is nullable","examples":[false],"type":"boolean"},"type":{"description":"Column type, Values are BOOLEAN, TINYINT, SMALLINT, INT, BIGINT, LARGEINT, FLOAT, DOUBLE, DATE, TIME, STRING, VARCHAR, CHAR, DECIMAL, DATETIME. ","examples":["bigint"],"type":"string"}},"required":["id","name","type","is_key","nullable","is_partition_key","is_distribution_key"],"type":"object"},"TableIndex":{"additionalProperties":false,"properties":{"columns":{"description":"Index columns","examples":[["user_id"]],"items":{"type":"string"},"type":["array","null"]},"id":{"description":"Unique index identifier","examples":[42],"format":"int64","type":"integer"},"name":{"description":"Index name","examples":["idx_user_id"],"type":"string"},"type":{"description":"Index type, values are INVERTED (Default if empty), NGRAM_BF, ANN","examples":["INVERTED"],"type":"string"}},"required":["id","name","type","columns"],"type":"object"},"TableInput":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/TableInput.json"],"format":"uri","readOnly":true,"type":"string"},"bucketing":{"$ref":"#/components/schemas/BucketingInput"},"columns":{"description":"Table columns","items":{"$ref":"#/components/schemas/ColumnInput"},"type":["array","null"]},"indexes":{"description":"Table indexes","items":{"$ref":"#/components/schemas/IndexInput"},"type":["array","null"]},"name":{"description":"Table name","examples":["users"],"type":"string"},"partitioning":{"$ref":"#/components/schemas/PartitioningInput"},"properties":{"additionalProperties":{"type":"string"},"description":"Extra table properties, note 'replication_num' and 'compression' are not supported and will be ignored","type":"object"},"type":{"description":"Table type, values are fact or dimension","examples":["fact"],"type":"string"},"version":{"description":"Table version","examples":[1],"format":"int64","type":"integer"}},"required":["name","version","type","partitioning","bucketing","columns","indexes"],"type":"object"},"Token":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation timestamp","examples":["2026-01-01T00:00:00Z"],"type":"string"},"expires_at":{"description":"Token expiration timestamp, or null when it does not expire","examples":["2027-01-01T00:00:00Z"],"type":["string","null"]},"id":{"description":"Unique token identifier","examples":["tok_01HXYZ"],"type":"string"},"name":{"description":"Token display name","examples":["deployment-token"],"type":"string"},"updated_at":{"description":"Last update timestamp","examples":["2026-01-01T00:00:00Z"],"type":"string"}},"required":["id","name","created_at","updated_at","expires_at"],"type":"object"},"TokenResult":{"additionalProperties":false,"properties":{"accessToken":{"description":"The secret access token; store it securely because it is only returned when the token is created","examples":["fnd_live_xxxxx"],"type":"string"},"token":{"$ref":"#/components/schemas/Token","description":"Metadata for the created token"}},"required":["token","accessToken"],"type":"object"},"UpdateContainerActionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateContainerActionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"label":{"description":"Human-readable action label","examples":["My Action"],"type":"string"},"name":{"description":"Machine-readable action name","examples":["my-action"],"type":"string"},"scope":{"description":"Scope in which the action is available","examples":["global"],"type":"string"},"short_label":{"description":"Short action description","examples":["My Action (All)"],"type":"string"}},"required":["name","label","short_label","scope"],"type":"object"},"UpdateContainerInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateContainerInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"name":{"description":"Human-readable container name","examples":["My Container"],"type":"string"},"parent_container_id":{"description":"Optional parent container identifier","examples":[6],"format":"int64","type":"integer"},"slug":{"description":"URL-safe, unique container slug","examples":["project-1-my-container"],"type":"string"}},"required":["slug","name"],"type":"object"},"UpdateContainerPermissionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateContainerPermissionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"label":{"description":"Human-readable permission label","examples":["My Permission"],"type":"string"},"name":{"description":"Machine-readable permission name","examples":["my-permission"],"type":"string"}},"required":["name","label"],"type":"object"},"UpdateContainerRoleInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateContainerRoleInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"label":{"description":"Human-readable role label","examples":["My Role"],"type":"string"},"name":{"description":"Machine-readable role name","examples":["my-role"],"type":"string"}},"required":["name","label"],"type":"object"},"UpdateDeviceLimitsInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateDeviceLimitsInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"ids":{"additionalProperties":{},"description":"Device type IDs with provisioning quantities","examples":[{"1":{"provisioning_quantity":100}}],"type":"object"}},"required":["ids"],"type":"object"},"UpdateFunctionInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateFunctionInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"description":{"description":"Human-readable description of the function","examples":["Processes incoming temperature readings"],"type":"string"},"execution_timeout":{"description":"Maximum duration allowed for a single execution, in nanoseconds","examples":[30000000000],"format":"int64","type":"integer"},"fundamentum_iot_connectors":{"description":"Optional Pub/Sub topics connected to the function","items":{"$ref":"#/components/schemas/Connector"},"type":["array","null"]},"keep_alive_timeout":{"description":"How long an idle function instance remains warm, in nanoseconds","examples":[300000000000],"format":"int64","type":"integer"},"language":{"description":"Runtime language of the function","examples":["rust"],"type":"string"},"scaling":{"$ref":"#/components/schemas/ScalingOptions","description":"Optional worker-pool scaling configuration"},"variables":{"additionalProperties":{"type":"string"},"description":"Environment variables made available to the function","examples":[{"ENV":"production"}],"type":"object"}},"required":["description","language"],"type":"object"},"UpdateInstanceInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateInstanceInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"name":{"description":"Instance name","examples":["My Insight Instance"],"type":"string"}},"required":["name"],"type":"object"},"UpdateInvitationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateInvitationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"custom_message":{"description":"Displayed in the invitation email","examples":["Hello !"],"type":"string"},"email":{"description":"Invitee's email","examples":["john.doe@example.org"],"type":"string"},"name":{"description":"Invitee's name","examples":["John Doe"],"type":"string"},"options":{"description":"Options","examples":[[]]},"redirect_url":{"description":"Redirect URL after login","examples":["http://oauth.fundamentum.test/"],"type":"string"},"role_id":{"description":"Role ID","examples":[6],"format":"int64","type":"integer"}},"required":["name","email","redirect_url","role_id","container_item_id","options"],"type":"object"},"UpdateLicenseInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateLicenseInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"license_type_id":{"description":"License Type ID","examples":[1],"format":"int64","type":"integer"},"meta_data":{"description":"Meta data","examples":[{}]},"name":{"description":"License name","examples":["My License"],"type":"string"},"options":{"description":"License options","items":{"$ref":"#/components/schemas/LicenseOptionSave"},"type":["array","null"]}},"required":["name","license_type_id","options"],"type":"object"},"UpdateLicenseInvitationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateLicenseInvitationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"custom_message":{"description":"Displayed in the invitation email","examples":["Hello !"],"type":"string"},"email":{"description":"Invitee's email","examples":["john.doe@example.org"],"type":"string"},"name":{"description":"Invitee's name","examples":["John Doe"],"type":"string"},"options":{"description":"Options","examples":[[]]},"redirect_url":{"description":"Redirect URL after login","examples":["http://oauth.fundamentum.test/"],"type":"string"},"role_id":{"description":"Role ID","examples":[6],"format":"int64","type":"integer"}},"required":["name","email","redirect_url","role_id","container_item_id","options"],"type":"object"},"UpdateNotifierInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateNotifierInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"action_url":{"description":"Action URL","examples":["https://example.com/alert/1"],"type":"string"},"notifiable":{"description":"Array of user IDs or role names"},"notifiable_type":{"description":"roles or users","examples":["roles"],"type":"string"}},"required":["notifiable_type","notifiable"],"type":"object"},"UpdateOrganizationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateOrganizationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"icon":{"description":"Optional organization icon definition","examples":[{"type":"icon","value":"fa-solid fa-building"}]},"meta_data":{"description":"Optional organization metadata","examples":[{}]},"name":{"description":"Organization name","examples":["My Organization"],"type":"string"}},"required":["name"],"type":"object"},"UpdateProjectInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateProjectInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"meta_data":{"description":"Optional project metadata","examples":[{}]},"name":{"description":"Project name","examples":["My Project"],"type":"string"},"sender_email_address":{"description":"Sender email address","examples":["no-reply@fundamentum-iot.com"],"type":"string"}},"required":["name"],"type":"object"},"UpdateRegistryInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateRegistryInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"cloud_provider_id":{"description":"Cloud provider identifier","examples":[1],"format":"int64","type":"integer"},"configuration":{"description":"Cloud-provider-specific registry configuration","examples":[{}]},"name":{"description":"Registry display name","examples":["Production registry"],"type":"string"},"provisioning_end_at":{"description":"End of the provisioning window","examples":["2026-12-31T23:59:59Z"],"type":"string"},"provisioning_start_at":{"description":"Start of the provisioning window","examples":["2026-01-01T00:00:00Z"],"type":"string"}},"type":"object"},"UpdateRegistryTopicInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateRegistryTopicInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"pub_sub_topic_id":{"description":"Pub/Sub topic identifier","examples":[10],"format":"int64","type":"integer"},"registry_id":{"description":"Registry identifier","examples":[1],"format":"int64","type":"integer"},"sub_type_name":{"description":"Optional topic subtype","examples":["temperature"],"type":"string"},"type":{"description":"Topic type","examples":["uplink"],"type":"string"}},"required":["registry_id","pub_sub_topic_id"],"type":"object"},"UpdateServiceAccountInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateServiceAccountInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"name":{"description":"Service account name","examples":["my-service-account"],"type":"string"}},"required":["name"],"type":"object"},"UpdateSiteInvitationInputBody":{"additionalProperties":false,"properties":{"$schema":{"description":"A URL to the JSON Schema for this object.","examples":["https://example.com/schemas/UpdateSiteInvitationInputBody.json"],"format":"uri","readOnly":true,"type":"string"},"container_item_id":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"},"custom_message":{"description":"Displayed in the invitation email","examples":["Hello !"],"type":"string"},"email":{"description":"Invitee's email","examples":["john.doe@example.org"],"type":"string"},"name":{"description":"Invitee's name","examples":["John Doe"],"type":"string"},"options":{"description":"Options","examples":[[]]},"redirect_url":{"description":"Redirect URL after login","examples":["http://oauth.fundamentum.test/"],"type":"string"},"role_id":{"description":"Role ID","examples":[6],"format":"int64","type":"integer"}},"required":["name","email","redirect_url","role_id","container_item_id","options"],"type":"object"},"User":{"additionalProperties":false,"properties":{"created_at":{"description":"Creation Date","examples":["2024-02-19T20:31:08.000000Z"],"type":"string"},"deleted_at":{"description":"Deletion Date","examples":["null"],"type":"string"},"email":{"description":"Email","examples":["user@example.org"],"type":"string"},"email_verified_at":{"description":"Email Verification Date","examples":["2024-02-19T20:31:08.000000Z"],"type":"string"},"id":{"description":"User ID","examples":[1],"format":"int64","type":"integer"},"name":{"description":"User Name","examples":["My User"],"type":"string"},"roles":{"description":"User Roles","items":{"$ref":"#/components/schemas/UserRole"},"type":["array","null"]},"updated_at":{"description":"Update Date","examples":["2024-02-19T20:31:08.000000Z"],"type":"string"}},"required":["id","name","email"],"type":"object"},"UserRole":{"additionalProperties":false,"properties":{"container":{"$ref":"#/components/schemas/RoleContainer","description":"Container"},"container_id":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"},"created_at":{"description":"Creation Date","examples":["2024-02-19T20:31:08.000000Z"],"type":"string"},"id":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"},"label":{"description":"Role Label","examples":["System Admin"],"type":"string"},"name":{"description":"Role Name","examples":["container_admin"],"type":"string"},"pivot":{"$ref":"#/components/schemas/RolePivot","description":"Pivot"},"project_id":{"description":"Project ID","examples":[1],"format":"int64","type":"integer"},"updated_at":{"description":"Update Date","examples":["2024-02-19T20:31:08.000000Z"],"type":"string"}},"required":["id","name","label","container_id"],"type":"object"}},"securitySchemes":{"OAuth2":{"description":"Oauth2 Authorization","flows":{"implicit":{"authorizationUrl":"https://oauth.fundamentum-iot.com/oauth/authorize","scopes":{},"tokenUrl":""}},"type":"oauth2"}}},"info":{"description":"Public API that access Fundamentum internal services","title":"Fundamentum public API","version":"1.0"},"openapi":"3.1.0","paths":{"/health":{"get":{"operationId":"getHealthStatus","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthOutputBody"}}},"description":"OK"},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"Check API health status","tags":["Health"]}},"/v2/api/openapi.json":{"get":{"operationId":"getDoc","responses":{"200":{"content":{"application/json":{"schema":{"contentEncoding":"base64","type":"string"}}},"description":"OK","headers":{"Content-Disposition":{"schema":{"type":"string"}},"Content-Type":{"schema":{"type":"string"}}}},"default":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Error"}},"summary":"OpenAPI.json file","tags":["Documentation"]}},"/v2/organizations":{"get":{"description":"Returns all organizations visible to the authenticated caller. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `business-unit:list`, granted globally.","operationId":"listOrganizations","parameters":[{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListOrganizationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List organizations","tags":["Organizations"]},"post":{"description":"Creates an organization with the supplied name and optional metadata.\n\nRequires `business-unit:store`, granted globally.","operationId":"createOrganization","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateOrganizationInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseOrganizationBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create an organization","tags":["Organizations"]}},"/v2/organizations/{organization_id}":{"delete":{"description":"Deletes an organization and its association with the caller.\n\nRequires `business-unit:delete`, granted globally.","operationId":"deleteOrganization","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseOrganizationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete an organization","tags":["Organizations"]},"get":{"description":"Returns an organization and its metadata by identifier.\n\nRequires `business-unit:show`, granted globally.","operationId":"getOrganization","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseOrganizationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get an organization","tags":["Organizations"]},"put":{"description":"Updates an organization's name or metadata.\n\nRequires `business-unit:update`, granted globally.","operationId":"updateOrganization","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateOrganizationInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseOrganizationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update an organization","tags":["Organizations"]}},"/v2/organizations/{organization_id}/projects":{"get":{"description":"Returns all projects belonging to the specified organization. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `business-unit:list`, granted globally.","operationId":"listProjects","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","format":"int64","type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListProjectBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List organization projects","tags":["Projects"]},"post":{"description":"Creates a project under the specified organization with the supplied name and optional metadata.\n\nRequires `business-unit:store`, granted globally.","operationId":"createProject","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateProjectInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseProjectBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create an organization project","tags":["Projects"]}},"/v2/organizations/{organization_id}/projects/{project_id}":{"delete":{"description":"Deletes a project from the specified organization.\n\nRequires `business-unit:delete`, granted globally.","operationId":"deleteProject","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","format":"int64","type":"integer"}},{"description":"Project ID","in":"path","name":"project_id","required":true,"schema":{"description":"Project ID","format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseProjectBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete an organization project","tags":["Projects"]},"get":{"description":"Returns a project and its metadata by identifier.\n\nRequires `business-unit:show`, granted globally.","operationId":"getProject","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","format":"int64","type":"integer"}},{"description":"Project ID","in":"path","name":"project_id","required":true,"schema":{"description":"Project ID","format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseProjectBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get an organization project","tags":["Projects"]},"put":{"description":"Updates a project's name or metadata.\n\nRequires `business-unit:update`, granted globally.","operationId":"updateProject","parameters":[{"description":"Organization ID","in":"path","name":"organization_id","required":true,"schema":{"description":"Organization ID","format":"int64","type":"integer"}},{"description":"Project ID","in":"path","name":"project_id","required":true,"schema":{"description":"Project ID","format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseProjectBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update an organization project","tags":["Projects"]}},"/v2/projects/{project_id}/alert-rules/{alert_rule_id}/notifiers":{"get":{"description":"Returns all alert notifier configurations for the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `alert_notifier:list`, granted globally or on this project.","operationId":"listAlertNotifiers","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Alert Rule ID","in":"path","name":"alert_rule_id","required":true,"schema":{"description":"Alert Rule ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListNotifierBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project alert notifiers","tags":["Projects: Alert Notifier"]},"post":{"description":"Creates an alert notifier in the specified project with the selected recipients and optional action URL.\n\nRequires `alert_notifier:store`, granted globally or on this project.","operationId":"createAlertNotifier","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Alert Rule ID","in":"path","name":"alert_rule_id","required":true,"schema":{"description":"Alert Rule ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNotifierInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseNotifierBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a project alert notifier","tags":["Projects: Alert Notifier"]}},"/v2/projects/{project_id}/alert-rules/{alert_rule_id}/notifiers/{alert_notifier_id}":{"delete":{"description":"Deletes an alert notifier from the specified project.\n\nRequires `alert_notifier:delete`, granted globally or on this project.","operationId":"deleteAlertNotifier","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Alert Rule ID","in":"path","name":"alert_rule_id","required":true,"schema":{"description":"Alert Rule ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Alert Notifier ID","in":"path","name":"alert_notifier_id","required":true,"schema":{"description":"Alert Notifier ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseNotifierBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a project alert notifier","tags":["Projects: Alert Notifier"]},"get":{"description":"Returns a single alert notifier configuration, including its recipients and action URL.\n\nRequires `alert_notifier:show`, granted globally or on this project.","operationId":"getAlertNotifier","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Alert Rule ID","in":"path","name":"alert_rule_id","required":true,"schema":{"description":"Alert Rule ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Alert Notifier ID","in":"path","name":"alert_notifier_id","required":true,"schema":{"description":"Alert Notifier ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseNotifierBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a project alert notifier","tags":["Projects: Alert Notifier"]},"put":{"description":"Updates the recipients or action URL of an existing alert notifier.\n\nRequires `alert_notifier:update`, granted globally or on this project.","operationId":"updateAlertNotifier","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Alert Rule ID","in":"path","name":"alert_rule_id","required":true,"schema":{"description":"Alert Rule ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Alert Notifier ID","in":"path","name":"alert_notifier_id","required":true,"schema":{"description":"Alert Notifier ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNotifierInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseNotifierBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a project alert notifier","tags":["Projects: Alert Notifier"]}},"/v2/projects/{project_id}/containers":{"get":{"description":"Returns all authorization containers in the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `container:list`, granted globally or on this project.","operationId":"listContainers","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListContainerBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project containers","tags":["Authorization: Containers"]},"post":{"description":"Creates an authorization container in the specified project.\n\nRequires `container:store`, granted globally or on this project.","operationId":"createContainer","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContainerInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseContainerBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a project container","tags":["Authorization: Containers"]}},"/v2/projects/{project_id}/containers/{container_id}":{"delete":{"description":"Deletes an authorization container from the specified project.\n\nRequires `container:delete`, granted globally or on this project.","operationId":"deleteContainer","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseContainerBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a project container","tags":["Authorization: Containers"]},"get":{"description":"Returns an authorization container and its hierarchy metadata by identifier.\n\nRequires `container:show`, granted globally or on this project.","operationId":"getContainer","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseContainerBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a project container","tags":["Authorization: Containers"]},"put":{"description":"Updates an authorization container's name, slug, or parent container.\n\nRequires `container:update`, granted globally or on this project.","operationId":"updateContainer","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContainerInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseContainerBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a project container","tags":["Authorization: Containers"]}},"/v2/projects/{project_id}/containers/{container_id}/actions":{"get":{"description":"Returns all actions defined for the specified authorization container. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `container:list`, granted globally or on this project.","operationId":"listContainerActions","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List container actions","tags":["Authorization: Container Actions"]},"post":{"description":"Creates an action in an authorization container.\n\nRequires `container:store`, granted globally or on this project.","operationId":"createContainerAction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContainerActionInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a container action","tags":["Authorization: Container Actions"]}},"/v2/projects/{project_id}/containers/{container_id}/actions/{action_id}":{"delete":{"description":"Deletes an action from an authorization container.\n\nRequires `container:delete`, granted globally or on this project.","operationId":"deleteContainerAction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Action ID","in":"path","name":"action_id","required":true,"schema":{"description":"Action ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a container action","tags":["Authorization: Container Actions"]},"get":{"description":"Returns an action defined for an authorization container by identifier.\n\nRequires `container:show`, granted globally or on this project.","operationId":"getContainerAction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Action ID","in":"path","name":"action_id","required":true,"schema":{"description":"Action ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a container action","tags":["Authorization: Container Actions"]},"put":{"description":"Updates an action's name, label, or scope in an authorization container.\n\nRequires `container:update`, granted globally or on this project.","operationId":"updateContainerAction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Action ID","in":"path","name":"action_id","required":true,"schema":{"description":"Action ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContainerActionInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseActionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a container action","tags":["Authorization: Container Actions"]}},"/v2/projects/{project_id}/containers/{container_id}/roles":{"get":{"description":"Returns all roles defined for the specified authorization container. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `container:list`, granted globally or on this project.","operationId":"listContainerRoles","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListRoleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List container roles","tags":["Authorization: Container Roles"]},"post":{"description":"Creates a role in an authorization container.\n\nRequires `container:store`, granted globally or on this project.","operationId":"createContainerRole","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContainerRoleInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRoleBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a container role","tags":["Authorization: Container Roles"]}},"/v2/projects/{project_id}/containers/{container_id}/roles/{role_id}":{"delete":{"description":"Deletes a role from an authorization container.\n\nRequires `container:delete`, granted globally or on this project.","operationId":"deleteContainerRole","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRoleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a container role","tags":["Authorization: Container Roles"]},"get":{"description":"Returns a role defined for an authorization container by identifier.\n\nRequires `container:show`, granted globally or on this project.","operationId":"getContainerRole","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRoleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a container role","tags":["Authorization: Container Roles"]},"put":{"description":"Updates a role's name or label in an authorization container.\n\nRequires `container:update`, granted globally or on this project.","operationId":"updateContainerRole","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContainerRoleInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRoleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a container role","tags":["Authorization: Container Roles"]}},"/v2/projects/{project_id}/containers/{container_id}/roles/{role_id}/permissions":{"get":{"description":"Returns all permissions defined for the specified authorization container. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `container:list`, granted globally or on this project.","operationId":"listContainerPermissions","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListPermissionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List container permissions","tags":["Authorization: Container Role Permissions"]},"post":{"description":"Creates a permission in an authorization container.\n\nRequires `container:store`, granted globally or on this project.","operationId":"createContainerPermission","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContainerPermissionInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePermissionBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a container permission","tags":["Authorization: Container Role Permissions"]}},"/v2/projects/{project_id}/containers/{container_id}/roles/{role_id}/permissions/{permission_id}":{"delete":{"description":"Deletes a permission from an authorization container.\n\nRequires `container:delete`, granted globally or on this project.","operationId":"deleteContainerPermission","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Permission ID","in":"path","name":"permission_id","required":true,"schema":{"description":"Permission ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePermissionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a container permission","tags":["Authorization: Container Role Permissions"]},"get":{"description":"Returns a permission defined for an authorization container by identifier.\n\nRequires `container:show`, granted globally or on this project.","operationId":"getContainerPermission","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Permission ID","in":"path","name":"permission_id","required":true,"schema":{"description":"Permission ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePermissionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a container permission","tags":["Authorization: Container Role Permissions"]},"put":{"description":"Updates a permission's name or label in an authorization container.\n\nRequires `container:update`, granted globally or on this project.","operationId":"updateContainerPermission","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Container ID","in":"path","name":"container_id","required":true,"schema":{"description":"Container ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Role ID","in":"path","name":"role_id","required":true,"schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Permission ID","in":"path","name":"permission_id","required":true,"schema":{"description":"Permission ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateContainerPermissionInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePermissionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a container permission","tags":["Authorization: Container Role Permissions"]}},"/v2/projects/{project_id}/features/{code}":{"get":{"description":"Checks whether the requested feature is enabled for the specified project and current user, and returns any feature-specific options.\n\nRequires `project:show`, granted globally.","operationId":"checkProjectFeature","parameters":[{"description":"Project ID","in":"path","name":"project_id","required":true,"schema":{"description":"Project ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Feature Code (unique slug of the feature name)","in":"path","name":"code","required":true,"schema":{"description":"Feature Code (unique slug of the feature name)","examples":["F_DEMO"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFeatureResponseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Check a project feature","tags":["Features Flags"]}},"/v2/projects/{project_id}/functions":{"get":{"description":"Returns the functions available in the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `function:list`, granted globally or on this project.","operationId":"listFunction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListFunctionSummaryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project functions","tags":["Functions"]},"post":{"description":"Creates a function in the specified project from the supplied runtime, timeout, variable, connector, and scaling configuration.\n\nRequires `function:store`, granted globally or on this project.","operationId":"createFunction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFunctionInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFunctionDetailsBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a project function","tags":["Functions"]}},"/v2/projects/{project_id}/functions/{function_id}":{"delete":{"description":"Deletes a function and removes it from the specified project.\n\nRequires `function:delete`, granted globally or on this project.","operationId":"deleteFunction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"function ID","in":"path","name":"function_id","required":true,"schema":{"description":"function ID","examples":["abc"],"minimum":0,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFunctionDetailsBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a project function","tags":["Functions"]},"get":{"description":"Returns a function and its configuration, including whether executable code has been uploaded.\n\nRequires `function:show`, granted globally or on this project.","operationId":"getFunction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"function ID","in":"path","name":"function_id","required":true,"schema":{"description":"function ID","examples":["abc"],"minimum":0,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFunctionDetailsBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a project function","tags":["Functions"]},"put":{"description":"Updates the configuration of an existing function. This operation does not upload or replace the function's executable file.\n\nRequires `function:update`, granted globally or on this project.","operationId":"updateFunction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"function ID","in":"path","name":"function_id","required":true,"schema":{"description":"function ID","examples":["abc"],"minimum":0,"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateFunctionInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFunctionDetailsBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a project function","tags":["Functions"]}},"/v2/projects/{project_id}/functions/{function_id}/executions":{"get":{"description":"Returns the execution history for a function. Use the query parameters to filter, sort, and paginate executions.\n\nRequires `function:monitor`, granted globally or on this project.","operationId":"listFunctionExecutions","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}},{"description":"function ID","in":"path","name":"function_id","required":true,"schema":{"description":"function ID","examples":["1"],"minimum":0,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListFunctionExecutionBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List function executions","tags":["Functions"]}},"/v2/projects/{project_id}/functions/{function_id}/file":{"put":{"description":"Uploads or replaces the WebAssembly executable for a function. The uploaded file may be up to 1 GiB.\n\nRequires `function:upload`, granted globally or on this project.","operationId":"uploadFunction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"function ID","in":"path","name":"function_id","required":true,"schema":{"description":"function ID","examples":["abc"],"minimum":0,"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"encoding":{"function":{"contentType":"application/octet-stream"}},"schema":{"properties":{"function":{"contentEncoding":"binary","contentMediaType":"application/octet-stream","format":"binary","type":"string"}},"required":["function"],"type":"object"}}}},"responses":{"204":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFunctionUploadResultBody"}}},"description":"No Content"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Upload a function WebAssembly file","tags":["Functions"]}},"/v2/projects/{project_id}/functions/{function_id}:invoke":{"post":{"description":"Invokes a function synchronously with the supplied request payload and custom headers, then returns the function output and execution timing.\n\nRequires `function:invoke`, granted globally or on this project.","operationId":"invokeFunction","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"function ID","in":"path","name":"function_id","required":true,"schema":{"description":"function ID","examples":["abc"],"minimum":0,"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"contentMediaType":"application/octet-stream","format":"binary","type":"string"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseFunctionInvocationResultBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Invoke a project function","tags":["Functions"]}},"/v2/projects/{project_id}/instances":{"get":{"description":"Returns all Insight database instances in the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `insight:list`, granted globally or on this project.","operationId":"listInsightInstances","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInstanceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List Insight database instances","tags":["Insight"]},"post":{"description":"Creates an Insight database instance in the specified project using the supplied instance name.\n\nRequires `insight:store`, granted globally or on this project.","operationId":"createInsightInstance","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInstanceInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInstanceBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create an Insight database instance","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}":{"delete":{"description":"Deletes an Insight database instance from the specified project.\n\nRequires `insight:delete`, granted globally or on this project.","operationId":"deleteInsightInstance","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInstanceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete an Insight database instance","tags":["Insight"]},"get":{"description":"Returns the metadata and current status of a single Insight database instance.\n\nRequires `insight:show`, granted globally or on this project.","operationId":"getInsightInstance","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInstanceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get an Insight database instance","tags":["Insight"]},"put":{"description":"Updates the name or configuration of an existing Insight database instance.\n\nRequires `insight:update`, granted globally or on this project.","operationId":"updateInsightInstance","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInstanceInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInstanceBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update an Insight database instance","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}/pipeline":{"get":{"description":"Returns the saved data pipeline configuration for an Insight instance.\n\nRequires `insight:show`, granted globally or on this project.","operationId":"getInsightInstancePipeline","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePipelineStatusBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get an Insight data pipeline","tags":["Insight"]},"put":{"description":"Saves the data pipeline configuration for an Insight instance without submitting it for execution.\n\nRequires `insight:store`, granted globally or on this project.","operationId":"saveInsightInstancePipeline","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponsePipelineBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Save an Insight data pipeline","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}/pipeline:cancel":{"post":{"description":"Cancels the running or pending data pipeline for an Insight instance.\n\nRequires `insight:store`, granted globally or on this project.","operationId":"cancelInsightInstancePipeline","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyResponseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Cancel an Insight data pipeline","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}/pipeline:submit":{"post":{"description":"Submits the saved data pipeline for processing in an Insight instance.\n\nRequires `insight:store`, granted globally or on this project.","operationId":"submitInsightInstancePipeline","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EmptyResponseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Submit an Insight data pipeline","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}/tables":{"get":{"description":"Returns the tables defined in an Insight instance. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `insight:list`, granted globally or on this project.","operationId":"listInsightInstanceTables","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListTableBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List Insight database tables","tags":["Insight"]},"post":{"description":"Creates a table in an Insight instance from its schema, partitioning, bucketing, columns, and indexes.\n\nRequires `insight:store`, granted globally or on this project.","operationId":"createInsightInstanceTable","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TableInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseTableBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create an Insight database table","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}/tables/{table_id}":{"delete":{"description":"Deletes a table and its definition from an Insight instance.\n\nRequires `insight:delete`, granted globally or on this project.","operationId":"deleteInsightInstanceTable","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Table ID","in":"path","name":"table_id","required":true,"schema":{"description":"Table ID","examples":[42],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseTableBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete an Insight database table","tags":["Insight"]},"get":{"description":"Returns a table definition, including its columns and indexes, from an Insight instance.\n\nRequires `insight:show`, granted globally or on this project.","operationId":"getInsightInstanceTable","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Table ID","in":"path","name":"table_id","required":true,"schema":{"description":"Table ID","examples":[42],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseTableBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get an Insight database table","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}/users":{"get":{"description":"Returns the database users configured for an Insight instance. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `insight:list`, granted globally or on this project.","operationId":"listInsightInstanceUsers","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListDatabaseUserBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List Insight database users","tags":["Insight"]},"post":{"description":"Creates a database user in an Insight instance. The username and password must satisfy the constraints documented on the request schema.\n\nRequires `insight:store`, granted globally or on this project.","operationId":"createInsightUser","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DatabaseUserInput"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDatabaseUserBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create an Insight database user","tags":["Insight"]}},"/v2/projects/{project_id}/instances/{instance_id}/users/{username}":{"delete":{"description":"Deletes a database user from an Insight instance.\n\nRequires `insight:delete`, granted globally or on this project.","operationId":"deleteInsightUser","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Instance ID","in":"path","name":"instance_id","required":true,"schema":{"description":"Instance ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Username of the user to delete","in":"path","name":"username","required":true,"schema":{"description":"Username of the user to delete","examples":["johndoe"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseDatabaseUserBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete an Insight database user","tags":["Insight"]}},"/v2/projects/{project_id}/licenses":{"get":{"description":"Returns all licenses in the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `license:list`, granted globally or on this project.","operationId":"listLicenses","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListLicenseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project licenses","tags":["Licenses"]},"post":{"description":"Creates a license in the specified project from the supplied license type and options.\n\nRequires `license:store`, granted globally or on this project.","operationId":"createLicense","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLicenseInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseLicenseBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a project license","tags":["Licenses"]}},"/v2/projects/{project_id}/licenses/{license_id}":{"delete":{"description":"Deletes a license from the specified project.\n\nRequires `license:delete`, granted globally or on this project.","operationId":"deleteLicense","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseLicenseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a project license","tags":["Licenses"]},"get":{"description":"Returns a license and its options by identifier.\n\nRequires `license:show`, granted globally or on this project.","operationId":"getLicense","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseLicenseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a project license","tags":["Licenses"]},"put":{"description":"Updates the name, type, options, or metadata of an existing license.\n\nRequires `license:update`, granted globally or on this project.","operationId":"updateLicense","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLicenseInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseLicenseBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a project license","tags":["Licenses"]}},"/v2/projects/{project_id}/licenses/{license_id}/sites/{site_id}/users":{"get":{"description":"Returns users and pending invitations associated with the specified site. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `location:list`, granted globally or on this project.","operationId":"listSiteInvitations","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Site ID","in":"path","name":"site_id","required":true,"schema":{"description":"Site ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List site users and invitations","tags":["Sites: Users/Invitations"]},"post":{"description":"Creates a user or invitation under the specified site from the supplied invitation details.\n\nRequires `location:store`, granted globally or on this project.","operationId":"createSiteInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Site ID","in":"path","name":"site_id","required":true,"schema":{"description":"Site ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSiteInvitationInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a site user or invitation","tags":["Sites: Users/Invitations"]}},"/v2/projects/{project_id}/licenses/{license_id}/sites/{site_id}/users/{invitation_id}":{"delete":{"description":"Deletes a user or invitation from the specified site.\n\nRequires `location:delete`, granted globally or on this project.","operationId":"deleteSiteInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Site ID","in":"path","name":"site_id","required":true,"schema":{"description":"Site ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a site user or invitation","tags":["Sites: Users/Invitations"]},"get":{"description":"Returns a user or invitation by identifier from the specified site.\n\nRequires `location:show`, granted globally or on this project.","operationId":"getSiteInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Site ID","in":"path","name":"site_id","required":true,"schema":{"description":"Site ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a site user or invitation","tags":["Sites: Users/Invitations"]},"put":{"description":"Updates the invitation details for a user under the specified site.\n\nRequires `location:update`, granted globally or on this project.","operationId":"updateSiteInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Site ID","in":"path","name":"site_id","required":true,"schema":{"description":"Site ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSiteInvitationInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a site user or invitation","tags":["Sites: Users/Invitations"]}},"/v2/projects/{project_id}/licenses/{license_id}/sites/{site_id}/users/{user_id}/invitations":{"get":{"description":"Returns the invitations for a user under the specified site. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `location:list`, granted globally or on this project.","operationId":"listSiteInvitationsByUser","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Site ID","in":"path","name":"site_id","required":true,"schema":{"description":"Site ID","examples":[1],"format":"int64","type":"integer"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"description":"User ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List user site invitations","tags":["Sites: Users/Invitations"]}},"/v2/projects/{project_id}/licenses/{license_id}/users":{"get":{"description":"Returns users and pending invitations associated with the specified license. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `license:list`, granted globally or on this project.","operationId":"listLicenseInvitations","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List license users and invitations","tags":["Licenses: Users/Invitations"]},"post":{"description":"Creates a user or invitation under the specified license from the supplied invitation details.\n\nRequires `license:store`, granted globally or on this project.","operationId":"createLicenseInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLicenseInvitationInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a license user or invitation","tags":["Licenses: Users/Invitations"]}},"/v2/projects/{project_id}/licenses/{license_id}/users/{invitation_id}":{"delete":{"description":"Deletes a user or invitation from the specified license.\n\nRequires `license:delete`, granted globally or on this project.","operationId":"deleteLicenseInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a license user or invitation","tags":["Licenses: Users/Invitations"]},"get":{"description":"Returns a user or invitation by identifier from the specified license.\n\nRequires `license:show`, granted globally or on this project.","operationId":"getLicenseInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a license user or invitation","tags":["Licenses: Users/Invitations"]},"put":{"description":"Updates the invitation details for a user under the specified license.\n\nRequires `license:update`, granted globally or on this project.","operationId":"updateLicenseInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLicenseInvitationInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a license user or invitation","tags":["Licenses: Users/Invitations"]}},"/v2/projects/{project_id}/licenses/{license_id}/users/{user_id}/invitations":{"get":{"description":"Returns the invitations for a user under the specified license. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `license:list`, granted globally or on this project.","operationId":"listLicenseInvitationsByUser","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"description":"User ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List user license invitations","tags":["Licenses: Users/Invitations"]}},"/v2/projects/{project_id}/licenses/{license_id}/users/{user_id}/sites-invitations":{"get":{"description":"Returns the invitations for a user across all sites under the specified license. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `location:list`, granted globally or on this project.","operationId":"listUserSitesInvitations","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}},{"description":"License ID","in":"path","name":"license_id","required":true,"schema":{"description":"License ID","examples":[1],"format":"int64","type":"integer"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"description":"User ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List user invitations across license sites","tags":["Sites: Users/Invitations"]}},"/v2/projects/{project_id}/notifiable":{"get":{"description":"Returns the users and roles that can receive alert notifications for the specified project.\n\nRequires `alert_notifier:list`, granted globally or on this project.","operationId":"getNotifiable","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseNotifiableBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project notification recipients","tags":["Projects: Alert Notifier"]}},"/v2/projects/{project_id}/registries":{"get":{"description":"Returns all device registries configured for the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `device:list`, granted globally or on this project.","operationId":"listRegistries","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListRegistryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project registries","tags":["Registries"]},"post":{"description":"Creates a device registry in the specified project using the selected cloud provider and provisioning window.\n\nRequires `device:store`, granted globally or on this project.","operationId":"createRegistry","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRegistryInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a project registry","tags":["Registries"]}},"/v2/projects/{project_id}/registries/{registry_id}":{"get":{"description":"Returns a registry and its configured topics, cloud provider, and device types.\n\nRequires `device:show`, granted globally or on this project.","operationId":"getRegistry","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry ID","in":"path","name":"registry_id","required":true,"schema":{"description":"Registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a project registry","tags":["Registries"]},"put":{"description":"Updates the configuration or provisioning window of an existing device registry.\n\nRequires `device:update`, granted globally or on this project.","operationId":"updateRegistry","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry ID","in":"path","name":"registry_id","required":true,"schema":{"description":"Registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRegistryInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a project registry","tags":["Registries"]}},"/v2/projects/{project_id}/registries/{registry_id}/device_types":{"post":{"description":"Updates the provisioning quantity limits for device types associated with a registry.\n\nRequires `device:update`, granted globally or on this project.","operationId":"updateDeviceLimits","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry ID","in":"path","name":"registry_id","required":true,"schema":{"description":"Registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceLimitsInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListDeviceTypeBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update registry device limits","tags":["Registries"]}},"/v2/projects/{project_id}/registries/{registry_id}/topics":{"post":{"description":"Associates a Pub/Sub topic with a device registry using the supplied topic type and optional subtype.\n\nRequires `device:store`, granted globally or on this project.","operationId":"storeRegistryTopic","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry ID","in":"path","name":"registry_id","required":true,"schema":{"description":"Registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StoreRegistryTopicInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryTopicBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Add a topic to a registry","tags":["Registries"]}},"/v2/projects/{project_id}/registries/{registry_id}/topics/reset":{"post":{"description":"Replaces the registry's topic associations with the default topic configuration for the project.\n\nRequires `device:store`, granted globally or on this project.","operationId":"resetRegistryTopics","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry ID","in":"path","name":"registry_id","required":true,"schema":{"description":"Registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListRegistryTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Reset registry topics to defaults","tags":["Registries"]}},"/v2/projects/{project_id}/registries/{registry_id}/topics/{registry_topic_id}":{"delete":{"description":"Removes a topic association from a device registry. The underlying Pub/Sub topic is not deleted.\n\nRequires `device:delete`, granted globally or on this project.","operationId":"deleteRegistryTopic","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry ID","in":"path","name":"registry_id","required":true,"schema":{"description":"Registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry Topic ID","in":"path","name":"registry_topic_id","required":true,"schema":{"description":"Registry Topic ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a registry topic","tags":["Registries"]},"put":{"description":"Updates the type, subtype, or Pub/Sub topic associated with a registry topic.\n\nRequires `device:update`, granted globally or on this project.","operationId":"updateRegistryTopic","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry ID","in":"path","name":"registry_id","required":true,"schema":{"description":"Registry ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Registry Topic ID","in":"path","name":"registry_topic_id","required":true,"schema":{"description":"Registry Topic ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRegistryTopicInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseRegistryTopicBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a registry topic","tags":["Registries"]}},"/v2/projects/{project_id}/service-accounts":{"get":{"description":"Returns all service accounts in the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"listServiceAccounts","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListServiceAccountBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project service accounts","tags":["Service Accounts"]},"post":{"description":"Creates a service account in the specified project. The returned credentials should be stored securely.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"createServiceAccount","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateServiceAccountInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseServiceAccountBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a project service account","tags":["Service Accounts"]}},"/v2/projects/{project_id}/service-accounts/{service_account_id}":{"delete":{"description":"Deletes a service account and revokes its access to the project.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"deleteServiceAccount","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseServiceAccountBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a project service account","tags":["Service Accounts"]},"put":{"description":"Updates the display name of an existing service account.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"updateServiceAccount","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateServiceAccountInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseServiceAccountBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a project service account","tags":["Service Accounts"]}},"/v2/projects/{project_id}/service-accounts/{service_account_id}/roles":{"delete":{"description":"Removes a role assignment from a service account.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"deleteServiceAccountRole","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Role ID","explode":false,"in":"query","name":"role_id","schema":{"description":"Role ID","examples":[1],"format":"int64","type":"integer"}},{"description":"Container Item ID","explode":false,"in":"query","name":"container_item_id","schema":{"description":"Container Item ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseServiceAccountRoleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Remove a role from a service account","tags":["Service Accounts"]},"get":{"description":"Returns the roles currently assigned to a service account.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"listServiceAccountRoles","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListServiceAccountRoleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List service account roles","tags":["Service Accounts"]},"post":{"description":"Assigns a role to a service account, optionally scoped to a container item.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"createServiceAccountRole","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateServiceAccountRoleInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseServiceAccountRoleBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Assign a role to a service account","tags":["Service Accounts"]}},"/v2/projects/{project_id}/service-accounts/{service_account_id}/tokens":{"get":{"description":"Returns the tokens issued for a service account. Token secrets are not returned by this operation.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"listServiceAccountTokens","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseListTokenBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List service account tokens","tags":["Service Accounts"]},"post":{"description":"Creates a new access token for a service account. The token secret is returned only when it is created; store it securely.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"createServiceAccountToken","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateServiceAccountTokenInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseTokenResultBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a service account token","tags":["Service Accounts"]}},"/v2/projects/{project_id}/service-accounts/{service_account_id}/tokens/{token_id}":{"delete":{"description":"Revokes a token issued to a service account.\n\nRequires `project:manage-users`, granted globally or on this project.","operationId":"deleteServiceAccountToken","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Service Account ID","in":"path","name":"service_account_id","required":true,"schema":{"description":"Service Account ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Token ID","in":"path","name":"token_id","required":true,"schema":{"description":"Token ID","examples":["abc123"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseTokenBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a service account token","tags":["Service Accounts"]}},"/v2/projects/{project_id}/users":{"get":{"description":"Returns users and pending invitations associated with the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `project:list`, granted globally or on this project.","operationId":"listInvitations","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List project users and invitations","tags":["Projects: Users/Invitations"]}},"/v2/projects/{project_id}/users/":{"post":{"description":"Creates a user or invitation in the specified project from the supplied invitation details.\n\nRequires `project:store`, granted globally or on this project.","operationId":"createInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvitationInputBody"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"Created"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Create a project user or invitation","tags":["Projects: Users/Invitations"]}},"/v2/projects/{project_id}/users/{invitation_id}":{"delete":{"description":"Deletes a user or invitation from the specified project.\n\nRequires `project:delete`, granted globally or on this project.","operationId":"deleteInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Delete a project user or invitation","tags":["Projects: Users/Invitations"]},"get":{"description":"Returns a user or invitation by identifier from the specified project.\n\nRequires `project:show`, granted globally or on this project.","operationId":"getInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get a project user or invitation","tags":["Projects: Users/Invitations"]},"put":{"description":"Updates the invitation details for a user in the specified project.\n\nRequires `project:update`, granted globally or on this project.","operationId":"updateInvitation","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Invitation ID","in":"path","name":"invitation_id","required":true,"schema":{"description":"Invitation ID","examples":[1],"format":"int64","type":"integer"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateInvitationInputBody"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Update a project user or invitation","tags":["Projects: Users/Invitations"]}},"/v2/projects/{project_id}/users/{user_id}/licenses-invitations":{"get":{"description":"Returns the license invitations associated with a user in the specified project. Use the query parameters to filter, sort, and paginate the collection.\n\nRequires `project:list`, granted globally or on this project.","operationId":"listUserLicensesInvitations","parameters":[{"description":"project ID","in":"path","name":"project_id","required":true,"schema":{"description":"project ID","examples":[1],"format":"int64","minimum":0,"type":"integer"}},{"description":"Filter records using the supported where expression syntax","explode":false,"in":"query","name":"wheres","schema":{"description":"Filter records using the supported where expression syntax","examples":["status,eq,active"],"type":"string"}},{"description":"Filter records using an alternative where expression; results matching any expression are included","explode":false,"in":"query","name":"or_wheres","schema":{"description":"Filter records using an alternative where expression; results matching any expression are included","examples":["name,like,%25prod%25"],"type":"string"}},{"description":"Sort results by one or more fields","explode":false,"in":"query","name":"order_by","schema":{"description":"Sort results by one or more fields","examples":["created_at,desc"],"type":"string"}},{"description":"Include related resources in the response","explode":false,"in":"query","name":"with","schema":{"description":"Include related resources in the response","examples":["roles,container"],"type":"string"}},{"description":"One-based page number","explode":false,"in":"query","name":"page","schema":{"description":"One-based page number","examples":["1"],"type":"string"}},{"description":"Maximum number of records returned per page","explode":false,"in":"query","name":"item_per_page","schema":{"description":"Maximum number of records returned per page","examples":["25"],"type":"string"}},{"description":"Include soft-deleted records when set to true","explode":false,"in":"query","name":"with_trashed","schema":{"description":"Include soft-deleted records when set to true","examples":["false"],"type":"string"}},{"description":"User ID","in":"path","name":"user_id","required":true,"schema":{"description":"User ID","examples":[1],"format":"int64","type":"integer"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PaginatedResponseListInvitationBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"List user license invitations","tags":["Projects: Users/Invitations"]}},"/v2/users/introspect":{"get":{"description":"Returns the profile and authorization roles for the currently authenticated user.\n\nNo project permission is required; any authenticated caller may call this operation.","operationId":"introspectUser","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OutputResponseUserBody"}}},"description":"OK"},"400":{"content":{"application/json":{"example":{"status":"error","message":"There is an error with the request"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Bad Request"},"401":{"content":{"application/json":{"example":{"status":"error","message":"Unauthorized"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"example":{"status":"error","message":"No permission to do this action"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Forbidden"},"404":{"content":{"application/json":{"example":{"status":"error","message":"Not found"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Not Found"},"422":{"content":{"application/json":{"example":{"status":"error","message":"validation failed","errors":[{"message":"expected number \u003e= 60","location":"body.foo","value":6}]},"schema":{"additionalProperties":false,"properties":{"location":{"description":"Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'","type":"string"},"message":{"description":"Error message text","type":"string"},"value":{"description":"The value at the given location"}},"type":"object"}}},"description":"Unprocessable Entity"},"500":{"content":{"application/json":{"example":{"status":"error","message":"Internal server error message"},"schema":{"additionalProperties":false,"properties":{"message":{"examples":["Error message example"],"type":"string"},"status":{"examples":["Error Status"],"type":"string"}},"required":["status","message"],"type":"object"}}},"description":"Internal Server Error"}},"summary":"Get the current user","tags":["Users"]}}},"security":[{"OAuth2":[]}]}