-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathopenapi.json
1 lines (1 loc) · 233 KB
/
openapi.json
1
{"components":{"schemas":{"alarm_rule":{"properties":{"activation":{"type":"object"},"check_interval":{"properties":{"magnitude":{"enum":["second","minute","hour","day","week","month","year"],"type":"string"},"value":{"minimum":0,"type":"number"}},"type":"object"},"data":{"type":"object"},"description":{"$ref":"#/components/schemas/resource_description"},"name":{"$ref":"#/components/schemas/resource_name"},"normalization":{"type":"object"},"reminder":{"type":"object"},"rule":{"$ref":"#/components/schemas/resource_id"},"severity":{"maximum":5,"minimum":0,"type":"number"}},"title":"Alarm Rule","type":"object"},"bucket_backend":{"description":"Specifies the database backend to use for storage, with an option for default (represented by an empty string), 'mongodb', or 'influxdb'.","enum":["","mongodb","influxdb","dynamodb"],"title":"Bucket Backend","type":"string"},"bucket_config":{"description":"Configuration schema for a data bucket specifying how data is sourced and updated. This schema supports multiple source types including devices and MQTT topics, each with its own set of required properties.","oneOf":[{"additionalProperties":false,"description":"Configuration for data sourced from a device. This requires specifying the device, user, resource, update interval, and optional tags.","properties":{"device":{"$ref":"#/components/schemas/resource_id","description":"The unique identifier for the device."},"interval":{"description":"The time between updates, in seconds.","type":"number"},"resource":{"description":"The specific resource from the device being tracked.","maxLength":255,"type":"string"},"source":{"description":"Indicates the data source is a device.","enum":["device"],"type":"string"},"tags":{"description":"A collection of tags for categorization, limited to 5.","items":{"$ref":"#/components/schemas/resource_id"},"maxItems":5,"type":"array"},"update":{"description":"Specifies that the bucket is updated at regular intervals.","enum":["interval"],"type":"string"},"user":{"$ref":"#/components/schemas/resource_id","description":"The unique identifier for the user associated with this bucket."}},"required":["source","device","resource","update","interval"],"type":"object"},{"additionalProperties":false,"description":"Configuration for data sourced from a device with event-based or no updates. This variation does not require an interval.","properties":{"device":{"$ref":"#/components/schemas/resource_id","description":"The unique identifier for the device."},"resource":{"description":"The specific resource from the device being tracked.","maxLength":255,"type":"string"},"source":{"description":"Indicates the data source is a device.","enum":["device"],"type":"string"},"tags":{"description":"A collection of tags for categorization, limited to 5.","items":{"$ref":"#/components/schemas/resource_id"},"maxItems":5,"type":"array"},"update":{"description":"Specifies how the bucket is updated: either by specific events or not updated automatically.","enum":["events","none"],"type":"string"},"user":{"$ref":"#/components/schemas/resource_id","description":"The unique identifier for the user associated with this bucket."}},"required":["source","device","resource","update"],"type":"object"},{"additionalProperties":false,"description":"Configuration for data sourced from an MQTT topic. This requires specifying the topic and allows optional tags.","properties":{"source":{"description":"Indicates the data source is an MQTT topic.","enum":["mqtt"],"type":"string"},"tags":{"description":"A collection of tags for categorization, limited to 5.","items":{"$ref":"#/components/schemas/resource_id"},"maxItems":5,"type":"array"},"topic":{"description":"The MQTT topic from which data is sourced.","maxLength":512,"type":"string"}},"required":["source","topic"],"type":"object"},{"additionalProperties":false,"description":"Configuration for data manually written or provided via an API. This variation only requires source specification and allows optional tags.","properties":{"source":{"description":"Indicates the data source is either manually written ('write') or sourced via an API ('api').","enum":["write","api"],"type":"string"},"tags":{"description":"A collection of tags for categorization, limited to 5.","items":{"$ref":"#/components/schemas/resource_id"},"maxItems":5,"type":"array"}},"required":["source"],"type":"object"}],"title":"Bucket Config"},"bucket_retention":{"description":"Configuration schema for data bucket retention policy.","properties":{"period":{"description":"The duration of the retention period. 0 for unlimited retention.","examples":[30],"minimum":0,"type":"integer"},"unit":{"description":"The unit of measurement for the retention period.","enum":["hours","days","weeks","months","years"],"examples":["days"],"type":"string"}},"required":[],"title":"Bucket Retention","type":"object"},"claim_config":{"additionalProperties":false,"properties":{"domain":{"pattern":"^([a-zA-Z0-9-_]+\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+\\.[a-zA-Z]{2,11}?$","type":"string"},"max_claims":{"minimum":0,"type":"integer"},"members":{"items":{"$ref":"#/components/schemas/resource_id"},"type":"array"},"members_roles":{"items":{"$ref":"#/components/schemas/resource_id"},"type":"array"},"projects":{"items":{"$ref":"#/components/schemas/resource_id"},"type":"array"},"resources":{"items":{"properties":{"identifiers":{"items":{"type":"string"},"type":"array"},"type":{"type":"string"}},"type":"object"},"type":"array"}},"required":["resources"],"title":"Claim Config","type":"object"},"comparison_expressions":{"description":"Comparison expressions for conditional evaluation","enum":["above","below","equal","not_equal","inside","outside"],"title":"Comparison Expressions","type":"string"},"operator_expressions":{"description":"Operator expressions for conditional evaluation","enum":["and","or"],"title":"Operator Expressions","type":"string"},"permission":{"patternProperties":{"^[a-zA-Z0-9_-]{1,32}$|^\\*$":{"minProperties":1,"patternProperties":{"^[a-zA-Z0-9_]{1,32}(?:@[a-zA-Z0-9_]{1,32})?$|^\\*$":{"oneOf":[{"pattern":"^[a-zA-Z0-9_\\*]{1,64}$|^\\*$","type":"string"},{"items":{"oneOf":[{"pattern":"^[a-zA-Z0-9_\\*]{1,64}$|^\\*$","type":"string"},{"patternProperties":{"^[a-zA-Z0-9_-]{1,32}$":{"oneOf":[{"pattern":"^[a-zA-Z0-9_\\*]{1,32}$|^\\*$","type":"string"},{"items":{"type":"string"},"type":"array"}]}},"type":"object"}]},"type":"array"}]}}}},"title":"Permission","type":"object"},"product_conditional_icon":{"additionalProperties":false,"description":"Conditional Icon schema for a product","properties":{"conditions":{"items":{"additionalProperties":false,"properties":{"comparison":{"$ref":"#/components/schemas/comparison_expressions"},"field":{"type":"string"},"operator":{"$ref":"#/components/schemas/operator_expressions"},"value":{"type":"string"}},"required":["comparison","field","operator","tag","value"],"type":"object"},"type":"array"},"icon":{"$ref":"#/components/schemas/product_icon"}},"required":["icon"],"title":"Product Conditional Icon","type":"object"},"product_config":{"additionalProperties":false,"description":"Configuration schema for a product","properties":{"fields":{"items":{"$ref":"#/components/schemas/product_field"},"type":"array"},"icons":{"items":{"$ref":"#/components/schemas/product_conditional_icon"},"type":"array"}},"required":[],"title":"Product Config","type":"object"},"product_field":{"additionalProperties":false,"description":"Field schema for a product","properties":{"icon":{"$ref":"#/components/schemas/product_icon"},"name":{"type":"string"},"primary":{"type":"boolean"},"type":{"type":"string"},"value":{"type":"string"}},"required":["name","value"],"title":"Product Field","type":"object"},"product_icon":{"additionalProperties":false,"description":"Icon schema for a product","properties":{"background":{"type":"string"},"color":{"type":"string"},"size":{"type":"number"},"source":{"type":"string"},"type":{"description":"Icon type: font-awesome or svg","enum":["fa","svg"],"type":"string"}},"required":["type","source"],"title":"Product Icon","type":"object"},"projects_ids":{"description":"A collection of unique project IDs, ensuring no duplicates within the array.","items":{"description":"An array of unique project identifiers, each following a 'username@project' format with each part limited to 32 alphanumeric characters, underscores or hyphens.","example":["project1@domain1","project2@domain2"],"pattern":"^[a-zA-Z0-9_-]{1,32}@[a-zA-Z0-9_-]{1,32}$","title":"Project IDs","type":"string"},"title":"Projects IDs Array","type":"array","uniqueItems":true},"property":{"description":"Schema for a property","properties":{"description":{"$ref":"#/components/schemas/resource_description"},"form":{"additionalProperties":false,"properties":{"fields":{}},"required":["fields"],"type":"object"},"name":{"$ref":"#/components/schemas/resource_name"},"property":{"$ref":"#/components/schemas/resource_id"},"type":{"enum":["","configuration"],"type":"string"},"value":{}},"title":"Property","type":"object"},"property_create":{"allOf":[{"$ref":"#/components/schemas/property"},{"required":["property","value"],"type":"object"}],"description":"Schema for creating a property","title":"Property Create"},"property_update":{"allOf":[{"$ref":"#/components/schemas/property"},{"required":["value"],"type":"object"}],"description":"Schema for updating a property","title":"Property Update"},"resource_description":{"description":"A brief description of the resource, providing context or additional information, limited to 255 characters.","example":["Bucket storing all device measurements.","Dashbord for main floor."],"maxLength":255,"title":"Resource Description","type":"string"},"resource_id":{"description":"A unique identifier for resources, consisting of alphanumeric characters, underscores, or hyphens, and limited to 32 characters.","example":["resource_123","abcd-1234"],"pattern":"^[a-zA-Z0-9_-]{1,32}$","title":"Resource ID","type":"string"},"resource_name":{"description":"The name of the resource, limited to 255 characters. It can include any character.","example":["Raspberry Pi","Arduino MKR1000"],"maxLength":255,"title":"Resource Name","type":"string"},"sync_config":{"oneOf":[{"additionalProperties":false,"properties":{"available":{"minimum":0,"type":"integer"},"timeout":{"minimum":0,"type":"integer"}},"required":["available"],"type":"object"}],"title":"Sync Config"}},"securitySchemes":{"bearerAuth":{"bearerFormat":"JWT","scheme":"bearer","type":"http"},"oauth":{"flows":{"password":{"scopes":{"basic":"manage user account"},"tokenUrl":"https://localhost:80/oauth/token"}},"type":"oauth2"}}},"info":{"description":"Thinger.io Server API","title":"Thinger.io Server API","version":"1.0.0"},"openapi":"3.1.1","paths":{"/.well-known/acme-challenge/{token}":{"parameters":[{"in":"path","name":"token","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]+","type":"string"}}]},"/brand/{file}":{"parameters":[{"in":"path","name":"file","required":true,"schema":{"pattern":"^.*$","type":"string"}}]},"/oauth/token":{"post":{"operationId":"Authentication_AuthenticateToken","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"Authenticate","tags":["Authentication"]}},"/openapi.json":{"get":{"operationId":"Server_ReadApiOpenapi.json","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"ReadServerApi","tags":["Server"]}},"/users/{user}/plugins/{plugin}{path}":{"delete":{"operationId":"Plugin_CallPluginEndpointDelete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"]},"get":{"operationId":"Plugin_CallPluginEndpointGet","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"]},"head":{"operationId":"Plugin_CallPluginEndpointHead","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"],"x-internal":true},"options":{"operationId":"Plugin_CallPluginEndpointOptions","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"],"x-internal":true},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}},{"in":"path","name":"path","required":true,"schema":{"pattern":"^.*$","type":"string"}}],"patch":{"operationId":"Plugin_CallPluginEndpointPatch","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"]},"post":{"operationId":"Plugin_CallPluginEndpointPost","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"]},"put":{"operationId":"Plugin_CallPluginEndpointPut","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"]},"trace":{"operationId":"Plugin_CallPluginEndpointTrace","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallPluginEndpoint","tags":["Plugins"],"x-internal":true}},"/v1/accounts/password":{"post":{"operationId":"User_CreatePassword","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"CreateUserPassword","tags":["Users"]}},"/v1/accounts/password/reset":{"post":{"operationId":"User_CreatePasswordReset","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"CreateUserPasswordReset","tags":["Users"]}},"/v1/brands":{"get":{"operationId":"Brand_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListBrands","tags":["Brands"]},"post":{"operationId":"Brand_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"brand":{"pattern":"^([a-zA-Z0-9-_]+\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+(?:\\.[a-zA-Z]{2,11})?$","type":"string"},"config":{"properties":{},"type":"object"},"description":{"type":"string"},"enabled":{"type":"boolean"},"name":{"type":"string"}},"required":["brand"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateBrand","tags":["Brands"]}},"/v1/brands/{brand}":{"delete":{"operationId":"Brand_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteBrand","tags":["Brands"]},"get":{"operationId":"Brand_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"ReadBrandConfig","tags":["Brands"]},"parameters":[{"in":"path","name":"brand","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}],"put":{"operationId":"Brand_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"properties":{},"type":"object"},"description":{"type":"string"},"email":{"properties":{},"type":"object"},"enabled":{"type":"boolean"},"name":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateBrand","tags":["Brands"]}},"/v1/brands/{brand}/email":{"parameters":[{"in":"path","name":"brand","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}]},"/v1/brands/{brand}/email/test":{"parameters":[{"in":"path","name":"brand","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}],"post":{"operationId":"Brand_TestEmail","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"template":{"$ref":"#/components/schemas/resource_id"}},"required":["template"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"TestBrandEmail","tags":["Brands"]}},"/v1/claims":{"post":{"operationId":"Claim_Request","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"code":{"$ref":"#/components/schemas/resource_id"},"project":{"$ref":"#/components/schemas/resource_id"}},"required":["code","project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"RequestClaim","tags":["Claims"]}},"/v1/claims/{code}":{"get":{"operationId":"Claim_Read","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadClaim","tags":["Claims"]},"parameters":[{"in":"path","name":"code","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/domains":{"get":{"operationId":"Domain_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDomains","tags":["Domains"]},"post":{"operationId":"Domain_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"domain":{"pattern":"^([a-zA-Z0-9-_]+\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+\\.[a-zA-Z]{2,11}?$","type":"string"},"name":{"type":"string"}},"required":["domain"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateDomain","tags":["Domains"]}},"/v1/domains/{domain}":{"delete":{"operationId":"Domain_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteDomain","tags":["Domains"]},"get":{"operationId":"Domain_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDomainConfig","tags":["Domains"]},"parameters":[{"in":"path","name":"domain","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+\\.[a-zA-Z]{2,11}?)","type":"string"}}],"put":{"operationId":"Domain_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDomain","tags":["Domains"]}},"/v1/domains/{domain}/verify":{"parameters":[{"in":"path","name":"domain","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+\\.[a-zA-Z]{2,11}?)","type":"string"}}],"post":{"operationId":"Domain_Verify","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"VerifyDomain","tags":["Domains"]}},"/v1/endpoints/templates":{"get":{"operationId":"Endpoint_ListTemplates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListEndpointTemplates","tags":["Endpoints"]}},"/v1/endpoints/templates/{endpoint}":{"get":{"operationId":"Endpoint_ReadTemplateConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadEndpointTemplateConfig","tags":["Endpoints"]},"parameters":[{"in":"path","name":"endpoint","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/hosts":{"get":{"operationId":"Host_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListHosts","tags":["Hosts"]},"post":{"operationId":"Host_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"domain":{"pattern":"^([a-zA-Z0-9-_]+\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+\\.[a-zA-Z]{2,11}?$","type":"string"}},"required":["domain"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateHost","tags":["Hosts"]}},"/v1/hosts/{host}":{"delete":{"operationId":"Host_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteHost","tags":["Hosts"]},"get":{"operationId":"Host_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadHostConfig","tags":["Hosts"]},"parameters":[{"in":"path","name":"host","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}],"put":{"operationId":"Host_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateHost","tags":["Hosts"]}},"/v1/hosts/{host}/logs":{"get":{"operationId":"Host_ReadLogs","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadHostLogs","tags":["Hosts"]},"parameters":[{"in":"path","name":"host","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}]},"/v1/hosts/{host}/resources":{"get":{"operationId":"Host_AccessResources","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessHostResources","tags":["Hosts"]},"parameters":[{"in":"path","name":"host","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}]},"/v1/hosts/{host}/resources/{resource}":{"get":{"operationId":"Host_AccessOutputResources","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessHostResources","tags":["Hosts"]},"parameters":[{"in":"path","name":"host","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}},{"in":"path","name":"resource","required":true,"schema":{"pattern":"^(?:.{1,32}\\/?+)","type":"string"}}]},"/v1/hosts/{host}/restart":{"parameters":[{"in":"path","name":"host","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}],"post":{"operationId":"Host_UpdateStateRestart","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateHostState","tags":["Hosts"]}},"/v1/hosts/{host}/settings":{"get":{"operationId":"Host_ReadSettings","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadHostSettings","tags":["Hosts"]},"parameters":[{"in":"path","name":"host","required":true,"schema":{"pattern":"^(?:[a-zA-Z0-9_-]+\\.*[a-zA-Z0-9][a-zA-Z0-9_-]+(?:\\.[a-zA-Z]{2,11})?)","type":"string"}}],"put":{"operationId":"Host_UpdateSettings","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateHostSettings","tags":["Hosts"]}},"/v1/oauth_clients":{"get":{"operationId":"OauthClient_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListOauthClients","tags":["OauthClients"]},"post":{"operationId":"OauthClient_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"name":{"type":"string"},"oauth_client":{"pattern":"^[a-zA-Z0-9-_]{1,32}$","type":"string"},"picture":{"type":"string"},"prompt":{"type":"string"},"redirect_uri":{"type":"string"},"scope":{"type":"object"},"secret":{"type":"string"}},"required":["oauth_client","name","secret","redirect_uri"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateOauthClient","tags":["OauthClients"]}},"/v1/oauth_clients/{oauth_client}":{"delete":{"operationId":"OauthClient_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteOauthClient","tags":["OauthClients"]},"get":{"operationId":"OauthClient_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadOauthClientConfig","tags":["OauthClients"]},"parameters":[{"in":"path","name":"oauth_client","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"OauthClient_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"enabled":{"type":"boolean"},"name":{"type":"string"},"picture":{"type":"string"},"prompt":{"type":"string"},"redirect_uri":{"type":"string"},"scope":{"type":"object"},"secret":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateOauthClient","tags":["OauthClients"]}},"/v1/oauth_clients/{oauth_client}/info":{"parameters":[{"in":"path","name":"oauth_client","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/proxies":{"get":{"operationId":"Proxy_ListProxies","responses":{"200":{"content":{"application/json":{"example":[{"created":1736266866543,"description":"TCP Proxy Description","enabled":true,"modified":1736266866543,"name":"TCP Proxy Name","proxy":"tcp_proxy_id"},{"created":1736266866543,"description":"TCP Proxy Description","enabled":true,"modified":1736266866543,"name":"TCP Proxy Name","proxy":"tcp_proxy_id"},{"created":1736266866543,"description":"UDP Proxy Description","enabled":true,"modified":1736266866543,"name":"UDP Proxy Name","proxy":"udp_proxy_id"},{"created":1736266866543,"description":"UDP Proxy Description","enabled":true,"modified":1736266866543,"name":"UDP Proxy Name","proxy":"udp_proxy_id"}],"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProxies","tags":["Proxies"]},"post":{"operationId":"Proxy_Create","requestBody":{"content":{"application/json":{"examples":{"TCP Proxy to Host":{"value":{"config":{"protocol":"tcp","source":{"port":8090,"secure":true},"target":{"address":"localhost","port":8086,"secure":false,"type":"address"}},"description":"TCP Proxy Description","enabled":true,"name":"TCP Proxy Name","proxy":"tcp_proxy_id"}},"TCP Proxy to Plugin":{"value":{"config":{"protocol":"tcp","source":{"port":8090,"secure":true},"target":{"plugin":"plugin_id","port":8086,"secure":false,"type":"plugin","user":"user_id"}},"description":"TCP Proxy Description","enabled":true,"name":"TCP Proxy Name","proxy":"tcp_proxy_id"}},"UDP Proxy to Host":{"value":{"config":{"protocol":"udp","source":{"port":9000},"target":{"address":"localhost","port":9000,"type":"address"}},"description":"UDP Proxy Description","enabled":true,"name":"UDP Proxy Name","proxy":"udp_proxy_id"}},"UDP Proxy to Plugin":{"value":{"config":{"protocol":"udp","source":{"port":9000},"target":{"plugin":"plugin_id","port":9000,"type":"plugin","user":"user_id"}},"description":"UDP Proxy Description","enabled":true,"name":"UDP Proxy Name","proxy":"udp_proxy_id"}}},"schema":{"additionalProperties":false,"properties":{"config":{"type":"object"},"description":{"type":"string"},"enabled":{"type":"boolean"},"name":{"type":"string"},"proxy":{"pattern":"^[a-zA-Z0-9-_]{1,32}$","type":"string"}},"required":["proxy","name","config"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProxy","tags":["Proxies"]}},"/v1/proxies/{proxy}":{"delete":{"operationId":"Proxy_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProxy","tags":["Proxies"]},"get":{"operationId":"Proxy_ReadConfig","responses":{"200":{"content":{"application/json":{"examples":{"TCP Proxy to Host":{"value":{"config":{"protocol":"tcp","source":{"port":8090,"secure":true},"target":{"address":"localhost","port":8086,"secure":false,"type":"address"}},"created":1736266866543,"description":"TCP Proxy Description","enabled":true,"modified":1736266866543,"name":"TCP Proxy Name","proxy":"tcp_proxy_id"}},"TCP Proxy to Plugin":{"value":{"config":{"protocol":"tcp","source":{"port":8090,"secure":true},"target":{"plugin":"plugin_id","port":8086,"secure":false,"type":"plugin","user":"user_id"}},"created":1736266866543,"description":"TCP Proxy Description","enabled":true,"modified":1736266866543,"name":"TCP Proxy Name","proxy":"tcp_proxy_id"}},"UDP Proxy to Host":{"value":{"config":{"protocol":"udp","source":{"port":9000},"target":{"address":"localhost","port":9000,"type":"address"}},"created":1736266866543,"description":"UDP Proxy Description","enabled":true,"modified":1736266866543,"name":"UDP Proxy Name","proxy":"udp_proxy_id"}},"UDP Proxy to Plugin":{"value":{"config":{"protocol":"udp","source":{"port":9000},"target":{"plugin":"plugin_id","port":9000,"type":"plugin","user":"user_id"}},"created":1736266866543,"description":"UDP Proxy Description","enabled":true,"modified":1736266866543,"name":"UDP Proxy Name","proxy":"udp_proxy_id"}}},"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProxyConfig","tags":["Proxies"]},"parameters":[{"in":"path","name":"proxy","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Proxy_Update","requestBody":{"content":{"application/json":{"examples":{"Full Update":{"value":{"config":{"protocol":"tcp","source":{"port":8090,"secure":true},"target":{"address":"localhost","port":8086,"secure":false,"type":"address"}},"description":"TCP Proxy Description","enabled":true,"name":"TCP Proxy Name","proxy":"tcp_proxy_id"}},"Update 'config'":{"value":{"config":{"protocol":"tcp","source":{"port":8090,"secure":true},"target":{"address":"localhost","port":8086,"secure":false,"type":"address"}}}},"Update 'description'":{"value":{"description":"TCP Proxy Description"}},"Update 'enabled'":{"value":{"enabled":true}},"Update 'name'":{"value":{"name":"TCP Proxy Name"}}},"schema":{"additionalProperties":false,"properties":{"config":{"type":"object"},"description":{"type":"string"},"enabled":{"type":"boolean"},"name":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProxy","tags":["Proxies"]}},"/v1/server/actions":{"get":{"operationId":"Server_ReadActions","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadServerActions","tags":["Server"]}},"/v1/server/assets":{"get":{"operationId":"Server_ReadAssets","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"ReadServerAssets","tags":["Server"]}},"/v1/server/buckets/backends":{"get":{"operationId":"Server_ReadBucketsBackends","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"ReadServerBucketsBackends","tags":["Server"]}},"/v1/server/events":{"get":{"operationId":"Server_ReadEvents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"ReadServerEvents","tags":["Server"]}},"/v1/server/healthcheck":{"get":{"operationId":"Server_ReadHealthcheck","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"ReadServerHealthcheck","tags":["Server"]}},"/v1/server/settings":{"get":{"operationId":"Server_ReadSettings","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadServerSettings","tags":["Server"]}},"/v1/server/statistics":{"get":{"operationId":"Server_ReadStatistics","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadServerStatistics","tags":["Server"]}},"/v1/server/swagger.json":{"get":{"operationId":"Server_ReadApiSwagger.json","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"ReadServerApi","tags":["Server"]}},"/v1/server/version":{"get":{"operationId":"Server_ReadVersion","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadServerVersion","tags":["Server"]}},"/v1/users":{"get":{"operationId":"User_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListUsers","tags":["Users"]},"post":{"operationId":"User_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"email":{"format":"email","type":"string"},"enabled":{"type":"boolean"},"options":{"additionalProperties":false,"properties":{"project":{"additionalProperties":false,"properties":{"default":{"$ref":"#/components/schemas/resource_id"}},"type":"object"}},"type":"object"},"password":{"maxLength":72,"type":"string"},"recaptcha":{"type":"string"},"role":{"enum":["user","admin","member","domain_admin"],"type":"string"},"user":{"$ref":"#/components/schemas/resource_id"},"verified":{"type":"boolean"}},"required":["user","email","password"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateUser","tags":["Users"]}},"/v1/users/email/verify":{"post":{"operationId":"User_VerifyEmail","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"}},"summary":"VerifyUserEmail","tags":["Users"]}},"/v1/users/{user}":{"delete":{"operationId":"User_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteUser","tags":["Users"]},"get":{"operationId":"User_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadUserConfig","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"User_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"email":{"type":"string"},"enabled":{"type":"boolean"},"host":{"items":{"pattern":"^(?:[a-zA-Z0-9-_]+\\.)*[a-zA-Z0-9][a-zA-Z0-9-_]+(?:\\.[a-zA-Z]{2,11})?$","type":"string"},"maxItems":10,"type":"array"},"limits":{"type":"object"},"options":{"additionalProperties":false,"properties":{"additionalProperties":false,"project":{"properties":{"default":{"$ref":"#/components/schemas/resource_id"}},"type":"object"}},"type":"object"},"password":{"maxLength":72,"minLength":6,"type":"string"},"role":{"enum":["user","admin","member","domain_admin"],"type":"string"},"verified":{"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateUser","tags":["Users"]}},"/v1/users/{user}/alarms/instances":{"get":{"operationId":"Alarm_ListInstances","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListAlarmInstances","tags":["Alarms"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Alarm_CreateInstance","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"properties":{"alarm":{"additionalProperties":false,"properties":{"rule":{"$ref":"#/components/schemas/resource_id"}},"type":"object"},"annotation":{"maxLength":512,"type":"string"},"asset_group":{"$ref":"#/components/schemas/resource_id"},"asset_type":{"$ref":"#/components/schemas/resource_id"},"description":{"$ref":"#/components/schemas/resource_description"},"evaluation":{"properties":{"last_completed":{"type":"number"},"last_values":{"type":"object"},"total_duration":{"type":"number"}},"type":"object"},"instance":{"$ref":"#/components/schemas/resource_id"},"name":{"$ref":"#/components/schemas/resource_name"},"origin":{"properties":{"id":{"$ref":"#/components/schemas/resource_id"},"name":{"$ref":"#/components/schemas/resource_name"},"source":{"enum":["device","user"],"type":"string"}},"required":["source","id","name"],"type":"object"},"reactivation":{"properties":{"timespan":{"properties":{"magnitude":{"enum":["second","minute","hour","day","week","month","year"],"type":"string"},"value":{"minimum":0,"type":"number"}},"type":"object"},"type":{"enum":["none","timespan"],"type":"string"}},"type":"object"},"severity":{"maximum":5,"minimum":0,"type":"number"},"state":{"maximum":4,"minimum":0,"type":"number"}},"required":["instance","alarm","name","state","severity","origin","evaluation"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateAlarmInstance","tags":["Alarms"]}},"/v1/users/{user}/alarms/instances/stats":{"get":{"operationId":"Alarm_ReadInstanceStats","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadAlarmInstanceStats","tags":["Alarms"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/alarms/instances/{instance}":{"delete":{"operationId":"Alarm_DeleteInstance","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteAlarmInstance","tags":["Alarms"]},"get":{"operationId":"Alarm_ReadInstanceConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadAlarmInstanceConfig","tags":["Alarms"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"instance","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Alarm_UpdateInstance","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"annotation":{"maxLength":512,"type":"string"},"description":{"$ref":"#/components/schemas/resource_description"},"name":{"$ref":"#/components/schemas/resource_name"},"reactivation":{"properties":{"timespan":{"properties":{"magnitude":{"enum":["second","minute","hour","day","week","month","year"],"type":"string"},"value":{"minimum":0,"type":"number"}},"type":"object"},"type":{"enum":["none","timespan"],"type":"string"}},"type":"object"},"state":{"maximum":6,"minimum":0,"type":"number"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateAlarmInstance","tags":["Alarms"]}},"/v1/users/{user}/alarms/instances/{instance}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"instance","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Alarm_UpdateInstanceProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateAlarmInstanceProjects","tags":["Alarms"]}},"/v1/users/{user}/alarms/rules":{"get":{"operationId":"Alarm_ListRules","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListAlarmRules","tags":["Alarms"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Alarm_CreateRule","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"$ref":"#/components/schemas/alarm_rule"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"rule":{"$ref":"#/components/schemas/resource_id"}},"required":["rule","name","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateAlarmRule","tags":["Alarms"]}},"/v1/users/{user}/alarms/rules/{rule}":{"delete":{"operationId":"Alarm_DeleteRule","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteAlarmRule","tags":["Alarms"]},"get":{"operationId":"Alarm_ReadRuleConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadAlarmRuleConfig","tags":["Alarms"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"rule","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Alarm_UpdateRule","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"$ref":"#/components/schemas/alarm_rule"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateAlarmRule","tags":["Alarms"]}},"/v1/users/{user}/alarms/rules/{rule}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"rule","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Alarm_CloneRule","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"rule":{"$ref":"#/components/schemas/resource_id"}},"required":["rule"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneAlarmRule","tags":["Alarms"]}},"/v1/users/{user}/alarms/rules/{rule}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"rule","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Alarm_UpdateRuleProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateAlarmRuleProjects","tags":["Alarms"]}},"/v1/users/{user}/assets/locations":{"get":{"operationId":"Asset_ReadLocations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadAssetsLocations","tags":["Assets"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/buckets":{"get":{"operationId":"Bucket_List","responses":{"200":{"content":{"application/json":{"example":[{"bucket":"api_write","config":{"source":"api"},"created":1736266866538,"description":"Bucket for API write","enabled":true,"modified":1736266866538,"name":"API Write"},{"bucket":"mqtt_bucket","config":{"source":"mqtt","topic":"house/+/temperature"},"created":1736266866538,"description":"Bucket for MQTT topic","enabled":true,"modified":1736266866538,"name":"MQTT Bucket"},{"bucket":"device_bucket","config":{"device":"macbook","interval":300,"resource":"data","source":"device","update":"interval"},"created":1736266866538,"description":"Bucket for Thinger.io device","enabled":true,"modified":1736266866538,"name":"Device Bucket"},{"bucket":"device_write","config":{"source":"write"},"created":1736266866538,"description":"Bucket dor device write","enabled":true,"modified":1736266866538,"name":"Device Write"}],"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListBuckets","tags":["Buckets"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Bucket_Create","requestBody":{"content":{"application/json":{"examples":{"From API Call":{"value":{"bucket":"api_write","config":{"source":"api"},"description":"Bucket for API write","enabled":true,"name":"API Write"}},"From MQTT Topic":{"value":{"bucket":"mqtt_bucket","config":{"source":"mqtt","topic":"house/+/temperature"},"description":"Bucket for MQTT topic","enabled":true,"name":"MQTT Bucket"}},"From Thinger Device":{"value":{"bucket":"device_bucket","config":{"device":"macbook","interval":300,"resource":"data","source":"device","update":"interval"},"description":"Bucket for Thinger.io device","enabled":true,"name":"Device Bucket"}},"From Thinger Device Write":{"value":{"bucket":"device_write","config":{"source":"write"},"description":"Bucket dor device write","enabled":true,"name":"Device Write"}}},"schema":{"additionalProperties":false,"properties":{"asset_group":{"$ref":"#/components/schemas/resource_id"},"asset_type":{"$ref":"#/components/schemas/resource_id"},"backend":{"$ref":"#/components/schemas/bucket_backend"},"bucket":{"$ref":"#/components/schemas/resource_id"},"config":{"$ref":"#/components/schemas/bucket_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"product":{"$ref":"#/components/schemas/resource_id"},"retention":{"$ref":"#/components/schemas/bucket_retention"}},"required":["bucket","name","config","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateBucket","tags":["Buckets"]}},"/v1/users/{user}/buckets/{bucket}":{"delete":{"operationId":"Bucket_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteBucket","tags":["Buckets"]},"get":{"operationId":"Bucket_ReadConfig","responses":{"200":{"content":{"application/json":{"examples":{"From API Call":{"value":{"bucket":"api_write","config":{"source":"api"},"created":1736266866538,"description":"Bucket for API write","enabled":true,"modified":1736266866538,"name":"API Write"}},"From MQTT Topic":{"value":{"bucket":"mqtt_bucket","config":{"source":"mqtt","topic":"house/+/temperature"},"created":1736266866538,"description":"Bucket for MQTT topic","enabled":true,"modified":1736266866538,"name":"MQTT Bucket"}},"From Thinger Device":{"value":{"bucket":"device_bucket","config":{"device":"macbook","interval":300,"resource":"data","source":"device","update":"interval"},"created":1736266866538,"description":"Bucket for Thinger.io device","enabled":true,"modified":1736266866538,"name":"Device Bucket"}},"From Thinger Device Write":{"value":{"bucket":"device_write","config":{"source":"write"},"created":1736266866538,"description":"Bucket dor device write","enabled":true,"modified":1736266866538,"name":"Device Write"}}},"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadBucketConfig","tags":["Buckets"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Bucket_Update","requestBody":{"content":{"application/json":{"examples":{"Full Update":{"value":{"bucket":"api_write","config":{"source":"api"},"description":"Bucket for API write","enabled":true,"name":"API Write"}},"Update 'config'":{"value":{"config":{"source":"api"}}},"Update 'description'":{"value":{"description":"Bucket for API write"}},"Update 'enabled'":{"value":{"enabled":true}},"Update 'name'":{"value":{"name":"API Write"}}},"schema":{"additionalProperties":false,"properties":{"asset_group":{"oneOf":[{"$ref":"#/components/schemas/resource_id"},{"maxLength":0,"type":"string"}]},"asset_type":{"oneOf":[{"$ref":"#/components/schemas/resource_id"},{"maxLength":0,"type":"string"}]},"backend":{"$ref":"#/components/schemas/bucket_backend"},"config":{"$ref":"#/components/schemas/bucket_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"product":{"oneOf":[{"$ref":"#/components/schemas/resource_id"},{"maxLength":0,"type":"string"}]},"retention":{"$ref":"#/components/schemas/bucket_retention"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateBucket","tags":["Buckets"]}},"/v1/users/{user}/buckets/{bucket}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Bucket_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"bucket":{"$ref":"#/components/schemas/resource_id"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"required":["bucket"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneBucket","tags":["Buckets"]}},"/v1/users/{user}/buckets/{bucket}/data":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Bucket_WriteData","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"WriteBucket","tags":["Buckets"]}},"/v1/users/{user}/buckets/{bucket}/exports":{"get":{"operationId":"Bucket_ListExports","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListBucketExports","tags":["Buckets"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Bucket_CreateExport","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"callback":{"enum":["email","endpoint"],"type":"string"},"data_type":{"enum":["csv","arff","json"],"type":"string"},"endpoint":{"$ref":"#/components/schemas/resource_id"},"max_ts":{"minimum":0,"type":"number"},"min_ts":{"minimum":0,"type":"number"},"timestamp_format":{"enum":["iso","seconds","milliseconds"],"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateBucketExport","tags":["Buckets"]}},"/v1/users/{user}/buckets/{bucket}/exports/{file}":{"delete":{"operationId":"Bucket_DeleteExport","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteBucketExport","tags":["Buckets"]},"get":{"operationId":"Bucket_ReadExport","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadBucketExport","tags":["Buckets"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"file","required":true,"schema":{"pattern":"^.*$","type":"string"}}]},"/v1/users/{user}/buckets/{bucket}/imports":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Bucket_CreateImport","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"file":{"type":"string"},"source":{"enum":["storage"],"type":"string"},"storage":{"$ref":"#/components/schemas/resource_id"}},"required":["source","storage","file"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateBucketImport","tags":["Buckets"]}},"/v1/users/{user}/buckets/{bucket}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Bucket_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateBucketProjects","tags":["Buckets"]}},"/v1/users/{user}/buckets/{bucket}/tags":{"get":{"operationId":"Bucket_ListTags","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListBucketTags","tags":["Buckets"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/buckets/{bucket}/tags/{tag}":{"get":{"operationId":"Bucket_ReadTag","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadBucketTag","tags":["Buckets"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"tag","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/claims":{"get":{"operationId":"Claim_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListClaims","tags":["Claims"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Claim_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"claim":{"$ref":"#/components/schemas/resource_id"},"config":{"$ref":"#/components/schemas/claim_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"required":["claim","name","enabled","config"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateClaim","tags":["Claims"]}},"/v1/users/{user}/claims/{claim}":{"delete":{"operationId":"Claim_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteClaim","tags":["Claims"]},"get":{"operationId":"Claim_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadClaimConfig","tags":["Claims"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"claim","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Claim_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"$ref":"#/components/schemas/claim_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateClaim","tags":["Claims"]}},"/v1/users/{user}/claims/{claim}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"claim","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Claim_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"claim":{"$ref":"#/components/schemas/resource_id"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"required":["claim"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneClaim","tags":["Claims"]}},"/v1/users/{user}/claims/{claim}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"claim","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Claim_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateClaimProjects","tags":["Claims"]}},"/v1/users/{user}/dashboards":{"get":{"operationId":"Dashboard_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDashboards","tags":["Dashboards"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Dashboard_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"controls":{},"dashboard":{"$ref":"#/components/schemas/resource_id"},"description":{"maxLength":255,"type":"string"},"functions":{},"name":{"maxLength":255,"minLength":1,"type":"string"},"placeholders":{},"properties":{},"tabs":{"items":{},"type":"array"},"widgets":{"items":{},"type":"array"}},"required":["dashboard","name","widgets"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateDashboard","tags":["Dashboards"]}},"/v1/users/{user}/dashboards/{dashboard}":{"delete":{"operationId":"Dashboard_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteDashboard","tags":["Dashboards"]},"get":{"operationId":"Dashboard_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDashboardConfig","tags":["Dashboards"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"dashboard","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Dashboard_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"controls":{},"description":{"maxLength":255,"type":"string"},"functions":{},"name":{"maxLength":255,"minLength":1,"type":"string"},"placeholders":{},"properties":{},"tabs":{"items":{},"type":"array"},"widgets":{"items":{},"type":"array"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDashboard","tags":["Dashboards"]}},"/v1/users/{user}/dashboards/{dashboard}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"dashboard","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Dashboard_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"dashboard":{"$ref":"#/components/schemas/resource_id"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"required":["dashboard"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneDashboard","tags":["Dashboards"]}},"/v1/users/{user}/dashboards/{dashboard}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"dashboard","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Dashboard_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDashboardProjects","tags":["Dashboards"]}},"/v1/users/{user}/devices":{"get":{"operationId":"Device_List","responses":{"200":{"content":{"application/json":{"example":[{"asset_group":"AssetGroup","asset_type":"AssetType","created":1736266866442,"description":"HTTP Device","device":"http_device","enabled":true,"modified":1736266866442,"name":"SN0300301","type":"HTTP"},{"asset_group":"AssetGroup","asset_type":"AssetType","created":1736266866442,"description":"MQTT Device","device":"mqtt_device","enabled":true,"modified":1736266866442,"name":"SN0300301","type":"MQTT"},{"asset_group":"AssetGroup","asset_type":"AssetType","created":1736266866442,"description":"Thinger Device","device":"thinger_device","enabled":true,"modified":1736266866442,"name":"SN0300301","type":"Generic"}],"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDevices","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Device_Create","requestBody":{"content":{"application/json":{"examples":{"HTTP Device":{"value":{"asset_group":"AssetGroup","asset_type":"AssetType","description":"HTTP Device","device":"http_device","enabled":true,"name":"SN0300301","type":"HTTP"}},"MQTT Device":{"value":{"asset_group":"AssetGroup","asset_type":"AssetType","credentials":"juvWgl9@y3CW","description":"MQTT Device","device":"mqtt_device","enabled":true,"name":"SN0300301","type":"MQTT"}},"Thinger Device":{"value":{"asset_group":"AssetGroup","asset_type":"AssetType","credentials":"juvWgl9@y3CW","description":"Thinger Device","device":"thinger_device","enabled":true,"name":"SN0300301","type":"Generic"}}},"schema":{"oneOf":[{"additionalProperties":false,"properties":{"asset_group":{"$ref":"#/components/schemas/resource_id"},"asset_type":{"$ref":"#/components/schemas/resource_id"},"credentials":{"maxLength":255,"minLength":6,"type":"string"},"description":{"maxLength":255,"minLength":0,"type":"string"},"device":{"$ref":"#/components/schemas/resource_id"},"enabled":{"type":"boolean"},"name":{"maxLength":255,"minLength":0,"type":"string"},"product":{"$ref":"#/components/schemas/resource_id"},"type":{"enum":["Generic","MQTT"],"type":"string"}},"required":["device","credentials"],"type":"object"},{"additionalProperties":false,"properties":{"asset_group":{"$ref":"#/components/schemas/resource_id"},"asset_type":{"$ref":"#/components/schemas/resource_id"},"description":{"maxLength":255,"minLength":1,"type":"string"},"device":{"$ref":"#/components/schemas/resource_id"},"enabled":{"type":"boolean"},"name":{"maxLength":255,"minLength":0,"type":"string"},"product":{"$ref":"#/components/schemas/resource_id"},"type":{"enum":["HTTP"],"type":"string"}},"required":["device"],"type":"object"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateDevice","tags":["Devices"]}},"/v1/users/{user}/devices/{device}":{"delete":{"operationId":"Device_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteDevice","tags":["Devices"]},"get":{"operationId":"Device_ReadStatus","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceStatus","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Device_Update","requestBody":{"content":{"application/json":{"examples":{"Full Update":{"value":{"asset_group":"AssetGroup","asset_type":"AssetType","description":"HTTP Device","device":"http_device","enabled":true,"name":"SN0300301","type":"HTTP"}},"Update 'asset_group'":{"value":{"asset_group":"AssetGroup"}},"Update 'asset_type'":{"value":{"asset_type":"AssetType"}},"Update 'description'":{"value":{"description":"HTTP Device"}},"Update 'enabled'":{"value":{"enabled":true}},"Update 'name'":{"value":{"name":"SN0300301"}},"Update 'type'":{"value":{"type":"HTTP"}}},"schema":{"additionalProperties":false,"properties":{"asset_group":{"oneOf":[{"$ref":"#/components/schemas/resource_id"},{"maxLength":0,"type":"string"}]},"asset_type":{"oneOf":[{"$ref":"#/components/schemas/resource_id"},{"maxLength":0,"type":"string"}]},"credentials":{"maxLength":255,"minLength":1,"type":"string"},"description":{"maxLength":255,"minLength":0,"type":"string"},"enabled":{"type":"boolean"},"name":{"maxLength":255,"minLength":0,"type":"string"},"product":{"oneOf":[{"$ref":"#/components/schemas/resource_id"},{"maxLength":0,"type":"string"}]}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDevice","tags":["Devices"]}},"/v1/users/{user}/devices/{device}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Device_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"device":{"$ref":"#/components/schemas/resource_id"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"required":["device"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneDevice","tags":["Devices"]}},"/v1/users/{user}/devices/{device}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Device_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDeviceProjects","tags":["Devices"]}},"/v1/users/{user}/devices/{device}/stats":{"get":{"deprecated":true,"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceStatistics","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/devices/{device}/tokens":{"get":{"operationId":"Device_ListTokens","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDeviceTokens","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Device_CreateToken","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateDeviceToken","tags":["Devices"]}},"/v1/users/{user}/devices/{device}/tokens/{token}":{"delete":{"operationId":"Device_DeleteToken","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteDeviceToken","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,50}","type":"string"}}]},"/v1/users/{user}/devices/{device}/{resource}":{"get":{"deprecated":true,"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceResources","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"resource","required":true,"schema":{"pattern":"^(?:.{1,32}\\/?+)","type":"string"}}],"post":{"deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceResources","tags":["Devices"]}},"/v1/users/{user}/email":{"get":{"operationId":"User_ReadEmail","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadUserEmail","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/endpoints":{"get":{"operationId":"Endpoint_List","responses":{"200":{"content":{"application/json":{"example":[{"created":1736266866449,"description":"Email Endpoint","enabled":true,"endpoint":"email_endpoint","modified":1736266866449,"name":"Email","type":"email"},{"created":1736266866449,"description":"HTTP Request","enabled":true,"endpoint":"http_request","modified":1736266866449,"name":"HTTP","type":"http_request"},{"created":1736266866449,"description":"HTTP request","enabled":true,"endpoint":"http_request","modified":1736266866449,"name":"HTTP","type":"http_request"}],"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListEndpoints","tags":["Endpoints"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Endpoint_Create","requestBody":{"content":{"application/json":{"examples":{"Email":{"description":"Creates an endpoint that sends an email when called. The calling data can be used in the body or the subject using placeholders like {{temperature}}.","value":{"config":{"body":"<p>The current temperature and humidity are: {{temperature}}, {{humidity}}</p>","body_type":"html","recipient":"[email protected]","reply_to":"[email protected]","subject":"Endpoint Testing"},"description":"Email Endpoint","enabled":true,"endpoint":"email_endpoint","name":"Email","type":"email"}},"HTTP Request":{"description":"Creates an endpoint that resend the call JSON data to the target endpoint, both from api or device calls. The calling data can be used in the url or headers using placeholders like {{temperature}}.","value":{"config":{"body":"","body_type":"json","headers":[{"key":"Authorization","value":"Bearer xyz"}],"method":"POST","url":"https://api.acme.com/sensor"},"description":"HTTP Request","enabled":true,"endpoint":"http_request","name":"HTTP","type":"http_request"}},"HTTP Request Custom Body":{"description":"Creates an endpoint that composes a new paylaod with the source variables passed to the call, both from api or device calls. The calling data can be used in the body, url, or headers using placeholders like {{temperature}}.","value":{"config":{"body":"{\n \"val1\" : {{temperature}},\n \"val2\": {{humidity}}\n}","body_type":"custom","headers":[{"key":"Content-Type","value":"application/json"}],"method":"POST","url":"https://api.acme.com/sensor"},"description":"HTTP request","enabled":true,"endpoint":"http_request","name":"HTTP","type":"http_request"}}},"schema":{"additionalProperties":false,"properties":{"config":{"type":"object"},"description":{"maxLength":255,"type":"string"},"enabled":{"type":"boolean"},"endpoint":{"$ref":"#/components/schemas/resource_id"},"name":{"maxLength":255,"type":"string"},"type":{"maxLength":255,"minLength":1,"type":"string"}},"required":["endpoint","type","config"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateEndpoint","tags":["Endpoints"]}},"/v1/users/{user}/endpoints/{endpoint}":{"delete":{"operationId":"Endpoint_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteEndpoint","tags":["Endpoints"]},"get":{"operationId":"Endpoint_ReadConfig","responses":{"200":{"content":{"application/json":{"examples":{"Email":{"description":"Creates an endpoint that sends an email when called. The calling data can be used in the body or the subject using placeholders like {{temperature}}.","value":{"config":{"body":"<p>The current temperature and humidity are: {{temperature}}, {{humidity}}</p>","body_type":"html","recipient":"[email protected]","reply_to":"[email protected]","subject":"Endpoint Testing"},"created":1736266866449,"description":"Email Endpoint","enabled":true,"endpoint":"email_endpoint","modified":1736266866449,"name":"Email","type":"email"}},"HTTP Request":{"description":"Creates an endpoint that resend the call JSON data to the target endpoint, both from api or device calls. The calling data can be used in the url or headers using placeholders like {{temperature}}.","value":{"config":{"body":"","body_type":"json","headers":[{"key":"Authorization","value":"Bearer xyz"}],"method":"POST","url":"https://api.acme.com/sensor"},"created":1736266866449,"description":"HTTP Request","enabled":true,"endpoint":"http_request","modified":1736266866449,"name":"HTTP","type":"http_request"}},"HTTP Request Custom Body":{"description":"Creates an endpoint that composes a new paylaod with the source variables passed to the call, both from api or device calls. The calling data can be used in the body, url, or headers using placeholders like {{temperature}}.","value":{"config":{"body":"{\n \"val1\" : {{temperature}},\n \"val2\": {{humidity}}\n}","body_type":"custom","headers":[{"key":"Content-Type","value":"application/json"}],"method":"POST","url":"https://api.acme.com/sensor"},"created":1736266866449,"description":"HTTP request","enabled":true,"endpoint":"http_request","modified":1736266866449,"name":"HTTP","type":"http_request"}}},"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadEndpointConfig","tags":["Endpoints"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"endpoint","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Endpoint_Update","requestBody":{"content":{"application/json":{"examples":{"Full Update":{"value":{"config":{"body":"<p>The current temperature and humidity are: {{temperature}}, {{humidity}}</p>","body_type":"html","recipient":"[email protected]","reply_to":"[email protected]","subject":"Endpoint Testing"},"description":"Email Endpoint","enabled":true,"endpoint":"email_endpoint","name":"Email","type":"email"}},"Update 'config'":{"value":{"config":{"body":"<p>The current temperature and humidity are: {{temperature}}, {{humidity}}</p>","body_type":"html","recipient":"[email protected]","reply_to":"[email protected]","subject":"Endpoint Testing"}}},"Update 'description'":{"value":{"description":"Email Endpoint"}},"Update 'enabled'":{"value":{"enabled":true}},"Update 'name'":{"value":{"name":"Email"}},"Update 'type'":{"value":{"type":"email"}}},"schema":{"additionalProperties":false,"properties":{"config":{"type":"object"},"description":{"maxLength":255,"type":"string"},"enabled":{"type":"boolean"},"name":{"maxLength":255,"type":"string"},"type":{"maxLength":255,"minLength":1,"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateEndpoint","tags":["Endpoints"]}},"/v1/users/{user}/endpoints/{endpoint}/call":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"endpoint","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Endpoint_Call","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallEndpoint","tags":["Endpoints"]}},"/v1/users/{user}/endpoints/{endpoint}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"endpoint","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Endpoint_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"endpoint":{"$ref":"#/components/schemas/resource_id"},"name":{"$ref":"#/components/schemas/resource_name"}},"required":["endpoint"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneEndpoint","tags":["Endpoints"]}},"/v1/users/{user}/endpoints/{endpoint}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"endpoint","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Endpoint_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateEndpointProjects","tags":["Endpoints"]}},"/v1/users/{user}/events":{"get":{"deprecated":true,"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"SubscribeUserEvents","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/groups":{"get":{"operationId":"Group_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListGroups","tags":["Groups"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Group_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"group":{"$ref":"#/components/schemas/resource_id"},"name":{"type":"string"}},"required":["group"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateGroup","tags":["Groups"]}},"/v1/users/{user}/groups/{group}":{"delete":{"operationId":"Group_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteGroup","tags":["Groups"]},"get":{"operationId":"Group_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadGroupConfig","tags":["Groups"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"group","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Group_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateGroup","tags":["Groups"]}},"/v1/users/{user}/groups/{group}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"group","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Group_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"group":{"$ref":"#/components/schemas/resource_id"},"name":{"$ref":"#/components/schemas/resource_name"}},"required":["group"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneGroup","tags":["Groups"]}},"/v1/users/{user}/groups/{group}/locations":{"get":{"operationId":"Group_ReadAssetsLocations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadAssetsLocations","tags":["Groups"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"group","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/groups/{group}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"group","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Group_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateGroupProjects","tags":["Groups"]}},"/v1/users/{user}/groups/{group}/properties":{"get":{"operationId":"Group_ListProperties","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListGroupProperties","tags":["Groups"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"group","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Group_CreateProperty","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/property_create"},"type":"array"},{"$ref":"#/components/schemas/property_create"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateGroupProperty","tags":["Groups"]}},"/v1/users/{user}/groups/{group}/properties/{property}":{"delete":{"operationId":"Group_DeleteProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteGroupProperty","tags":["Groups"]},"get":{"operationId":"Group_ReadProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadGroupProperty","tags":["Groups"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"group","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"patch":{"operationId":"Group_PatchProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateGroupProperty","tags":["Groups"]},"put":{"operationId":"Group_UpdateProperty","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/property_update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateGroupProperty","tags":["Groups"]}},"/v1/users/{user}/groups/{group}/properties/{property}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"group","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Group_CloneProperty","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"property":{"$ref":"#/components/schemas/resource_id"}},"required":["property"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneGroupProperty","tags":["Groups"]}},"/v1/users/{user}/info/device_locations":{"get":{"operationId":"User_ListDeviceLocationsDevice_location","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDeviceLocations","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/info/devices/locations":{"get":{"operationId":"User_ListDeviceLocations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDeviceLocations","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/info/devices/stats":{"get":{"operationId":"Device_ReadDevicesStatistics","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceStatistics","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/limits":{"get":{"operationId":"User_ReadLimits","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadUserLimits","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/limits/{resource}":{"get":{"operationId":"User_ReadResourceLimits","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadUserLimits","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"resource","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/membership/{project_owner}/{project_id}/permissions":{"get":{"operationId":"User_ReadProjectPermissions","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProjectPermissions","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project_owner","required":true,"schema":{"pattern":"^[a-zA-Z0-9_]{1,32}","type":"string"}},{"in":"path","name":"project_id","required":true,"schema":{"pattern":"^[a-zA-Z0-9_]{1,32}","type":"string"}}]},"/v1/users/{user}/oauth/authorize":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"User_AuthorizeOauth","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"client_id":{"type":"string"},"login_hint":{"type":"string"},"nonce":{"type":"string"},"prompt":{"type":"string"},"redirect_uri":{"type":"string"},"response_mode":{"type":"string"},"response_type":{"enum":["code"]},"scope":{"type":"string"},"state":{"type":"string"},"ui_locales":{"type":"string"}},"required":["client_id","response_type"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AuthorizeOauth","tags":["Users"]}},"/v1/users/{user}/password":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"User_UpdatePassword","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateUserPassword","tags":["Users"]}},"/v1/users/{user}/plugins":{"get":{"operationId":"Plugin_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListPlugins","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/plugins/{plugin}":{"get":{"operationId":"Plugin_ReadInfo","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadPluginInfo","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}}],"post":{"operationId":"Plugin_ManageState","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ManagePluginState","tags":["Plugins"]}},"/v1/users/{user}/plugins/{plugin}/files/{file}":{"get":{"operationId":"Plugin_ReadFiles","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadPluginFiles","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}},{"in":"path","name":"file","required":true,"schema":{"pattern":"^.*$","type":"string"}}]},"/v1/users/{user}/plugins/{plugin}/properties":{"get":{"operationId":"Plugin_ListProperties","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListPluginProperties","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}}],"post":{"operationId":"Plugin_CreateProperty","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/property_create"},"type":"array"},{"$ref":"#/components/schemas/property_create"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreatePluginProperty","tags":["Plugins"]}},"/v1/users/{user}/plugins/{plugin}/properties/{property}":{"delete":{"operationId":"Plugin_DeleteProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeletePluginProperty","tags":["Plugins"]},"get":{"operationId":"Plugin_ReadProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadPluginProperty","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"patch":{"operationId":"Plugin_PatchProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdatePluginProperty","tags":["Plugins"]},"put":{"operationId":"Plugin_UpdateProperty","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/property_update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdatePluginProperty","tags":["Plugins"]}},"/v1/users/{user}/plugins/{plugin}/properties/{property}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Plugin_CloneProperty","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"property":{"$ref":"#/components/schemas/resource_id"}},"required":["property"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ClonePluginProperty","tags":["Plugins"]}},"/v1/users/{user}/plugins/{plugin}/terminal":{"get":{"operationId":"Plugin_RunCommandTerminal","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"RunPluginCommand","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}}]},"/v1/users/{user}/plugins/{plugin}/terminal/logs":{"get":{"operationId":"Plugin_ReadLogs","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadPluginLogs","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}}]},"/v1/users/{user}/plugins/{plugin}/terminal/shell":{"get":{"operationId":"Plugin_RunShell","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"RunPluginShell","tags":["Plugins"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"plugin","required":true,"schema":{"pattern":"^[a-zA-Z0-9_\\-\\:]{1,32}","type":"string"}}]},"/v1/users/{user}/products":{"get":{"operationId":"Product_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProducts","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Product_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"$ref":"#/components/schemas/product_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"product":{"$ref":"#/components/schemas/resource_id"},"profile":{"type":"object"},"services":{"type":"object"}},"required":["product","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProduct","tags":["Products"]}},"/v1/users/{user}/products/{product}":{"delete":{"operationId":"Product_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProduct","tags":["Products"]},"get":{"operationId":"Product_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProductConfig","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Product_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"$ref":"#/components/schemas/product_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProduct","tags":["Products"]}},"/v1/users/{user}/products/{product}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Product_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"product":{"$ref":"#/components/schemas/resource_id"}},"required":["product"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneProduct","tags":["Products"]}},"/v1/users/{user}/products/{product}/export":{"get":{"operationId":"Product_Export","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ExportProduct","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/products/{product}/firmwares":{"get":{"operationId":"Product_ListFirmwares","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProductFirmwares","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Product_CreateFirmware","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"firmware":{"pattern":"^[a-zA-Z0-9_]{1,25}$","type":"string"},"name":{"maxLength":255,"type":"string"},"version":{"pattern":"(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\da-z-]+(?:\\.[\\da-z-]+)*)?(?:\\+[\\da-z-]+(?:\\.[\\da-z-]+)*)?","type":"string"}},"required":["firmware","version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProductFirmware","tags":["Products"]}},"/v1/users/{user}/products/{product}/firmwares/{firmware}/{firmware_version}":{"delete":{"operationId":"Product_DeleteFirmware","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProductFirmware","tags":["Products"]},"get":{"operationId":"Product_ReadFirmwareConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProductFirmwareConfig","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware_version","required":true,"schema":{"pattern":"^(?:0|[1-9]\\d*\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\da-z-]+(?:\\.[\\da-z-]+)*)?(?:\\+[\\da-z-]+(?:\\.[\\da-z-]+)*)?)","type":"string"}}],"put":{"operationId":"Product_UpdateFirmware","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductFirmware","tags":["Products"],"x-internal":true}},"/v1/users/{user}/products/{product}/firmwares/{firmware}/{firmware_version}/flash":{"get":{"operationId":"Product_FlashFirmware","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"FlashProductFirmware","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware_version","required":true,"schema":{"pattern":"^(?:0|[1-9]\\d*\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\da-z-]+(?:\\.[\\da-z-]+)*)?(?:\\+[\\da-z-]+(?:\\.[\\da-z-]+)*)?)","type":"string"}}]},"/v1/users/{user}/products/{product}/firmwares/{firmware}/{firmware_version}/stream":{"get":{"operationId":"Product_UpdateFirmwareStream","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductFirmware","tags":["Products"],"x-internal":true},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware_version","required":true,"schema":{"pattern":"^(?:0|[1-9]\\d*\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\da-z-]+(?:\\.[\\da-z-]+)*)?(?:\\+[\\da-z-]+(?:\\.[\\da-z-]+)*)?)","type":"string"}}]},"/v1/users/{user}/products/{product}/firmwares/{firmware}/{firmware_version}/toolchain":{"get":{"operationId":"Product_UpdateFirmwareToolchain","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductFirmware","tags":["Products"],"x-internal":true},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"firmware_version","required":true,"schema":{"pattern":"^(?:0|[1-9]\\d*\\.(?:0|[1-9]\\d*)\\.(?:0|[1-9]\\d*)(?:-[\\da-z-]+(?:\\.[\\da-z-]+)*)?(?:\\+[\\da-z-]+(?:\\.[\\da-z-]+)*)?)","type":"string"}}]},"/v1/users/{user}/products/{product}/profile/code":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Product_UpdateProfileCode","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductProfile","tags":["Products"]}},"/v1/users/{user}/products/{product}/profile/{resource}":{"get":{"operationId":"Product_ReadProfile","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProductProfile","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"resource","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Product_UpdateProfile","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductProfile","tags":["Products"]}},"/v1/users/{user}/products/{product}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Product_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductProjects","tags":["Products"]}},"/v1/users/{user}/products/{product}/properties":{"get":{"operationId":"Product_ListProperties","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProductProperties","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Product_CreateProperty","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/property_create"},"type":"array"},{"$ref":"#/components/schemas/property_create"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProductProperty","tags":["Products"]}},"/v1/users/{user}/products/{product}/properties/{property}":{"delete":{"operationId":"Product_DeleteProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProductProperty","tags":["Products"]},"get":{"operationId":"Product_ReadProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProductProperty","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"patch":{"operationId":"Product_PatchProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductProperty","tags":["Products"]},"put":{"operationId":"Product_UpdateProperty","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/property_update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductProperty","tags":["Products"]}},"/v1/users/{user}/products/{product}/properties/{property}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Product_CloneProperty","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"property":{"$ref":"#/components/schemas/resource_id"}},"required":["property"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneProductProperty","tags":["Products"]}},"/v1/users/{user}/products/{product}/services/{resource}":{"get":{"operationId":"Product_ReadServices","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProductServices","tags":["Products"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"product","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"resource","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Product_UpdateServices","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProductServices","tags":["Products"]}},"/v1/users/{user}/profile":{"get":{"operationId":"User_ReadProfile","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadUserProfile","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"User_UpdateProfile","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"company":{"maxLength":255,"minLength":0,"type":"string"},"location":{"maxLength":255,"minLength":0,"type":"string"},"name":{"maxLength":255,"minLength":0,"type":"string"},"picture":{"maxLength":50000,"pattern":"^data:image/(?:png|jpeg|webp);base64,(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$","type":"string"},"url":{"maxLength":255,"minLength":0,"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateUserProfile","tags":["Users"]}},"/v1/users/{user}/projects":{"get":{"operationId":"Project_List","responses":{"200":{"content":{"application/json":{"example":[{"created":1736266866451,"description":"Description","modified":1736266866451,"name":"Project","project":"project"}],"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProjects","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Project_Create","requestBody":{"content":{"application/json":{"examples":{"Create Project":{"description":"Creates a new project.","value":{"description":"Description","name":"Project","project":"project"}}},"schema":{"additionalProperties":false,"properties":{"config":{"properties":{"limit_bucket_access":{"type":"boolean"}},"type":"object"},"description":{"$ref":"#/components/schemas/resource_description"},"name":{"$ref":"#/components/schemas/resource_name"},"project":{"$ref":"#/components/schemas/resource_id"}},"required":["project","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProject","tags":["Projects"]}},"/v1/users/{user}/projects/{project}":{"delete":{"operationId":"Project_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProject","tags":["Projects"]},"get":{"operationId":"Project_ReadConfig","responses":{"200":{"content":{"application/json":{"examples":{"Create Project":{"description":"Creates a new project.","value":{"created":1736266866451,"description":"Description","modified":1736266866451,"name":"Project","project":"project"}}},"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProjectConfig","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Project_Update","requestBody":{"content":{"application/json":{"examples":{"Full Update":{"value":{"description":"Description","name":"Project","project":"project"}},"Update 'description'":{"value":{"description":"Description"}},"Update 'name'":{"value":{"name":"Project"}}},"schema":{"additionalProperties":false,"properties":{"config":{"properties":{"limit_bucket_access":{"type":"boolean"}},"type":"object"},"description":{"$ref":"#/components/schemas/resource_description"},"name":{"$ref":"#/components/schemas/resource_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProject","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Project_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"project":{"$ref":"#/components/schemas/resource_id"}},"required":["project"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneProject","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/members":{"get":{"operationId":"Project_ListMembers","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProjectMembers","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Project_CreateMember","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"account":{"properties":{"email":{"format":"email","type":"string"},"password":{"type":"string"}},"type":"object"},"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"enabled":{"type":"boolean"},"global_roles":{"items":{"$ref":"#/components/schemas/resource_id"},"maxItems":10,"type":"array"},"hide_menu":{"type":"boolean"},"member":{"$ref":"#/components/schemas/resource_id"},"roles":{"items":{"$ref":"#/components/schemas/resource_id"},"maxItems":10,"type":"array"}},"required":["member","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProjectMember","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/members/{member}":{"delete":{"operationId":"Project_DeleteMember","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProjectMember","tags":["Projects"]},"get":{"operationId":"Project_ReadMemberConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProjectMemberConfig","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"member","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Project_UpdateMember","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"enabled":{"type":"boolean"},"global_roles":{"items":{"$ref":"#/components/schemas/resource_id"},"maxItems":10,"type":"array"},"hide_menu":{"type":"boolean"},"roles":{"items":{"$ref":"#/components/schemas/resource_id"},"maxItems":10,"type":"array"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProjectMember","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/properties":{"get":{"operationId":"Project_ListProperties","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProjectProperties","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Project_CreateProperty","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/property_create"},"type":"array"},{"$ref":"#/components/schemas/property_create"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProjectProperty","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/properties/{property}":{"delete":{"operationId":"Project_DeleteProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProjectProperty","tags":["Projects"]},"get":{"operationId":"Project_ReadProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProjectProperty","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"patch":{"operationId":"Project_PatchProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProjectProperty","tags":["Projects"]},"put":{"operationId":"Project_UpdateProperty","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/property_update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProjectProperty","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/properties/{property}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Project_CloneProperty","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"property":{"$ref":"#/components/schemas/resource_id"}},"required":["property"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneProjectProperty","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/roles":{"get":{"operationId":"Project_ListRoles","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListProjectRoles","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Project_CreateRole","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"enabled":{"type":"boolean"},"role":{"$ref":"#/components/schemas/resource_id"}},"required":["role","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateProjectRole","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/roles/{role}":{"delete":{"operationId":"Project_DeleteRole","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteProjectRole","tags":["Projects"]},"get":{"operationId":"Project_ReadRoleConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadProjectRoleConfig","tags":["Projects"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"role","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Project_UpdateRole","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"enabled":{"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateProjectRole","tags":["Projects"]}},"/v1/users/{user}/projects/{project}/roles/{role}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"project","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"role","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Project_CloneRole","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"role":{"$ref":"#/components/schemas/resource_id"}},"required":["role"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneProjectRole","tags":["Projects"]}},"/v1/users/{user}/roles":{"get":{"operationId":"Role_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListRoles","tags":["Roles"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Role_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"enabled":{"type":"boolean"},"role":{"$ref":"#/components/schemas/resource_id"}},"required":["role","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateRole","tags":["Roles"]}},"/v1/users/{user}/roles/{role}":{"delete":{"operationId":"Role_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteRole","tags":["Roles"]},"get":{"operationId":"Role_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadRoleConfig","tags":["Roles"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"role","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Role_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"enabled":{"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateRole","tags":["Roles"]}},"/v1/users/{user}/roles/{role}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"role","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Role_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"role":{"$ref":"#/components/schemas/resource_id"}},"required":["role"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneRole","tags":["Roles"]}},"/v1/users/{user}/stats":{"get":{"operationId":"User_ReadStatistics","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadUserStatistics","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/storages":{"get":{"operationId":"Storage_List","responses":{"200":{"content":{"application/json":{"example":[{"created":1736266866524,"description":"Storages","index":"index.html","modified":1736266866524,"name":"File Storage","public":true,"storage":"file_storage"}],"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListStorages","tags":["Storages"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Storage_Create","requestBody":{"content":{"application/json":{"examples":{"Create Storage":{"description":"Creates a new file storage with public access. It can act as a web server and it is possible to serve a default file, i.e., index.html","value":{"description":"Storages","index":"index.html","name":"File Storage","public":true,"storage":"file_storage"}}},"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"index":{"maxLength":255,"type":"string"},"name":{"$ref":"#/components/schemas/resource_name"},"public":{"type":"boolean"},"storage":{"$ref":"#/components/schemas/resource_id"}},"required":["storage","name"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateStorage","tags":["Storages"]}},"/v1/users/{user}/storages/{storage}":{"delete":{"operationId":"Storage_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteStorage","tags":["Storages"]},"get":{"operationId":"Storage_ReadConfig","responses":{"200":{"content":{"application/json":{"examples":{"Create Storage":{"description":"Creates a new file storage with public access. It can act as a web server and it is possible to serve a default file, i.e., index.html","value":{"created":1736266866524,"description":"Storages","index":"index.html","modified":1736266866524,"name":"File Storage","public":true,"storage":"file_storage"}}},"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadStorageConfig","tags":["Storages"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"storage","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Storage_Update","requestBody":{"content":{"application/json":{"examples":{"Full Update":{"value":{"description":"Storages","index":"index.html","name":"File Storage","public":true,"storage":"file_storage"}},"Update 'description'":{"value":{"description":"Storages"}},"Update 'index'":{"value":{"index":"index.html"}},"Update 'name'":{"value":{"name":"File Storage"}},"Update 'public'":{"value":{"public":true}}},"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"index":{"maxLength":255,"type":"string"},"name":{"$ref":"#/components/schemas/resource_name"},"public":{"type":"boolean"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateStorage","tags":["Storages"]}},"/v1/users/{user}/storages/{storage}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"storage","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Storage_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"storage":{"$ref":"#/components/schemas/resource_id"}},"required":["storage"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneStorage","tags":["Storages"]}},"/v1/users/{user}/storages/{storage}/files":{"get":{"operationId":"Storage_ListFiles","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListStorageFiles","tags":["Storages"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"storage","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/storages/{storage}/files/{file}":{"delete":{"operationId":"Storage_DeleteFiles","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteStorageFiles","tags":["Storages"]},"get":{"operationId":"Storage_ReadFiles","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadStorageFiles","tags":["Storages"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"storage","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"file","required":true,"schema":{"pattern":"^.*$","type":"string"}}],"put":{"operationId":"Storage_UpdateFiles","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateStorageFiles","tags":["Storages"]}},"/v1/users/{user}/storages/{storage}/files{path}":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"storage","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"path","required":true,"schema":{"pattern":"^(?:\\/.+?)","type":"string"}}],"patch":{"operationId":"Storage_RenameFiles.+)?)","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"RenameStorageFiles","tags":["Storages"]},"post":{"operationId":"Storage_CreateFiles.+)?)","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateStorageFiles","tags":["Storages"]}},"/v1/users/{user}/storages/{storage}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"storage","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Storage_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateStorageProjects","tags":["Storages"]}},"/v1/users/{user}/syncs":{"get":{"operationId":"Sync_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListSyncs","tags":["Syncs"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Sync_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"$ref":"#/components/schemas/sync_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"sync":{"$ref":"#/components/schemas/resource_id"}},"required":["sync","name","enabled","config"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateSync","tags":["Syncs"]}},"/v1/users/{user}/syncs/{sync}":{"delete":{"operationId":"Sync_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteSync","tags":["Syncs"]},"get":{"operationId":"Sync_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadSyncConfig","tags":["Syncs"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"sync","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Sync_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"config":{"$ref":"#/components/schemas/sync_config"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateSync","tags":["Syncs"]}},"/v1/users/{user}/syncs/{sync}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"sync","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Sync_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"sync":{"$ref":"#/components/schemas/resource_id"}},"required":["sync"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneSync","tags":["Syncs"]}},"/v1/users/{user}/syncs/{sync}/locks":{"get":{"operationId":"Sync_ListLocks","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListSyncLocks","tags":["Syncs"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"sync","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Sync_CreateLock","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"lock":{"$ref":"#/components/schemas/resource_id"},"name":{"$ref":"#/components/schemas/resource_name"},"slots":{"type":"number"},"timeout":{"type":"number"}},"required":[],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateSyncLock","tags":["Syncs"]}},"/v1/users/{user}/syncs/{sync}/locks/{lock}":{"delete":{"operationId":"Sync_DeleteLock","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteSyncLock","tags":["Syncs"]},"get":{"operationId":"Sync_ReadLockConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadSyncLockConfig","tags":["Syncs"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"sync","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"lock","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Sync_UpdateLock","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"name":{"$ref":"#/components/schemas/resource_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateSyncLock","tags":["Syncs"]}},"/v1/users/{user}/syncs/{sync}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"sync","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Sync_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateSyncProjects","tags":["Syncs"]}},"/v1/users/{user}/timezone":{"get":{"operationId":"User_ReadTimezone","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadUserTimezone","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"User_UpdateTimezone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"timezone":{"maxLength":255,"minLength":1,"type":"string"}},"required":["timezone"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateUserTimezone","tags":["Users"]}},"/v1/users/{user}/tokens":{"get":{"operationId":"Token_List","responses":{"200":{"content":{"application/json":{"example":[{"created":1736266866528,"enabled":true,"modified":1736266866528,"name":"Admin Access","token":"admin_access"},{"created":1736266866528,"enabled":true,"modified":1736266866528,"name":"Shared Access","token":"shared_access"}],"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListTokens","tags":["Tokens"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Token_Create","requestBody":{"content":{"application/json":{"examples":{"Admin Access":{"description":"Creates a token with admin access. (For every resource, with any name, execute any action).","value":{"allow":{"*":{"*":"*"}},"enabled":true,"name":"Admin Access","token":"admin_access"}},"Custom Access":{"description":"Creates a token with permissions for reading an specific bucket 'mqtt_bucket', and to access any device resource.","value":{"allow":{"Bucket":{"mqtt_bucket":["ReadBucket"]},"Device":{"*":["AccessDeviceResources"]}},"enabled":true,"name":"Shared Access","token":"shared_access"}}},"schema":{"additionalProperties":false,"properties":{"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"expire":{"type":"number"},"name":{"$ref":"#/components/schemas/resource_name"},"token":{"pattern":"^[a-zA-Z0-9_]{1,50}$","type":"string"}},"required":["token","name","enabled"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateToken","tags":["Tokens"]}},"/v1/users/{user}/tokens/{token}":{"delete":{"operationId":"Token_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteToken","tags":["Tokens"]},"get":{"operationId":"Token_ReadConfig","responses":{"200":{"content":{"application/json":{"examples":{"Admin Access":{"description":"Creates a token with admin access. (For every resource, with any name, execute any action).","value":{"allow":{"*":{"*":"*"}},"created":1736266866529,"enabled":true,"modified":1736266866529,"name":"Admin Access","token":"admin_access"}},"Custom Access":{"description":"Creates a token with permissions for reading an specific bucket 'mqtt_bucket', and to access any device resource.","value":{"allow":{"Bucket":{"mqtt_bucket":["ReadBucket"]},"Device":{"*":["AccessDeviceResources"]}},"created":1736266866529,"enabled":true,"modified":1736266866529,"name":"Shared Access","token":"shared_access"}}},"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadTokenConfig","tags":["Tokens"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,50}","type":"string"}}],"put":{"operationId":"Token_Update","requestBody":{"content":{"application/json":{"examples":{"Full Update":{"value":{"allow":{"*":{"*":"*"}},"enabled":true,"name":"Admin Access","token":"admin_access"}},"Update 'allow'":{"value":{"allow":{"*":{"*":"*"}}}},"Update 'enabled'":{"value":{"enabled":true}},"Update 'name'":{"value":{"name":"Admin Access"}}},"schema":{"additionalProperties":false,"properties":{"allow":{"$ref":"#/components/schemas/permission"},"deny":{"$ref":"#/components/schemas/permission"},"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"expire":{"type":"number"},"name":{"$ref":"#/components/schemas/resource_name"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateToken","tags":["Tokens"]}},"/v1/users/{user}/tokens/{token}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,50}","type":"string"}}],"post":{"operationId":"Token_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"token":{"$ref":"#/components/schemas/resource_id"}},"required":["token"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneToken","tags":["Tokens"]}},"/v1/users/{user}/tokens/{token}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"token","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,50}","type":"string"}}],"put":{"operationId":"Token_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateTokenProjects","tags":["Tokens"]}},"/v1/users/{user}/types":{"get":{"operationId":"Type_List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListTypes","tags":["Types"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Type_Create","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"},"type":{"$ref":"#/components/schemas/resource_id"}},"required":["type"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateType","tags":["Types"]}},"/v1/users/{user}/types/{type}":{"delete":{"operationId":"Type_Delete","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteType","tags":["Types"]},"get":{"operationId":"Type_ReadConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadTypeConfig","tags":["Types"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"type","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Type_Update","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"type":"string"},"name":{"type":"string"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateType","tags":["Types"]}},"/v1/users/{user}/types/{type}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"type","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Type_Clone","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"type":{"$ref":"#/components/schemas/resource_id"}},"required":["type"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneType","tags":["Types"]}},"/v1/users/{user}/types/{type}/locations":{"get":{"operationId":"Type_ReadAssetsLocations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadAssetsLocations","tags":["Types"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"type","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v1/users/{user}/types/{type}/projects":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"type","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Type_UpdateProjects","requestBody":{"content":{"application/json":{"schema":{"items":{"pattern":"^[a-zA-Z0-9_]{1,32}@[a-zA-Z0-9_]{1,32}$","type":"string"},"type":"array"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateTypeProjects","tags":["Types"]}},"/v1/users/{user}/types/{type}/properties":{"get":{"operationId":"Type_ListProperties","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListTypeProperties","tags":["Types"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"type","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Type_CreateProperty","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/property_create"},"type":"array"},{"$ref":"#/components/schemas/property_create"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateTypeProperty","tags":["Types"]}},"/v1/users/{user}/types/{type}/properties/{property}":{"delete":{"operationId":"Type_DeleteProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteTypeProperty","tags":["Types"]},"get":{"operationId":"Type_ReadProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadTypeProperty","tags":["Types"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"type","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"patch":{"operationId":"Type_PatchProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateTypeProperty","tags":["Types"]},"put":{"operationId":"Type_UpdateProperty","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/property_update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateTypeProperty","tags":["Types"]}},"/v1/users/{user}/types/{type}/properties/{property}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"type","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Type_CloneProperty","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"property":{"$ref":"#/components/schemas/resource_id"}},"required":["property"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneTypeProperty","tags":["Types"]}},"/v2/users/{user}/devices/{device}/{resource}":{"get":{"deprecated":true,"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceResources","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"resource","required":true,"schema":{"pattern":"^(?:.{1,32}\\/?+)","type":"string"}}],"post":{"deprecated":true,"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceResources","tags":["Devices"]}},"/v2/users/{user}/events":{"get":{"operationId":"User_SubscribeEvents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"SubscribeUserEvents","tags":["Users"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/buckets":{"get":{"operationId":"Device_ListBuckets","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDeviceBuckets","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/buckets/{bucket}/tags":{"get":{"operationId":"Device_ListBucketTags","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDeviceBucketTags","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/buckets/{bucket}/tags/{tag}":{"get":{"operationId":"Device_ReadBucketTag","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceBucketTag","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"tag","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/callback":{"get":{"operationId":"Device_ReadCallbackConfig","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceCallbackConfig","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"put":{"operationId":"Device_UpdateCallback","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"actions":{"additionalProperties":false,"properties":{"call_endpoint":{"$ref":"#/components/schemas/resource_id"},"send_property":{"$ref":"#/components/schemas/resource_id"},"set_property":{"$ref":"#/components/schemas/resource_id"},"write_bucket":{"$ref":"#/components/schemas/resource_id"}},"type":"object"},"properties":{"additionalProperties":false,"properties":{"timeout":{"type":"integer"}},"type":"object"}},"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDeviceCallback","tags":["Devices"]}},"/v3/users/{user}/devices/{device}/callback/data":{"get":{"operationId":"Device_ReadCallbackResponseData","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceCallbackResponse","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Device_CallCallbackData","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CallDeviceCallback","tags":["Devices"]}},"/v3/users/{user}/devices/{device}/properties":{"get":{"operationId":"Device_ListProperties","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDeviceProperties","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Device_CreateProperty","requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"items":{"$ref":"#/components/schemas/property_create"},"type":"array"},{"$ref":"#/components/schemas/property_create"}]}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CreateDeviceProperty","tags":["Devices"]}},"/v3/users/{user}/devices/{device}/properties/{property}":{"delete":{"operationId":"Device_DeleteProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"DeleteDeviceProperty","tags":["Devices"]},"get":{"operationId":"Device_ReadProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceProperty","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"patch":{"operationId":"Device_PatchProperty","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDeviceProperty","tags":["Devices"]},"put":{"operationId":"Device_UpdateProperty","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/property_update"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"UpdateDeviceProperty","tags":["Devices"]}},"/v3/users/{user}/devices/{device}/properties/{property}/clone":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"property","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}],"post":{"operationId":"Device_CloneProperty","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"description":{"$ref":"#/components/schemas/resource_description"},"enabled":{"type":"boolean"},"name":{"$ref":"#/components/schemas/resource_name"},"property":{"$ref":"#/components/schemas/resource_id"}},"required":["property"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"CloneDeviceProperty","tags":["Devices"]}},"/v3/users/{user}/devices/{device}/resources":{"get":{"operationId":"Device_AccessResources","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceResources","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/resources/{resource}":{"get":{"operationId":"Device_AccessOutputResources","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceResources","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"resource","required":true,"schema":{"pattern":"^(?:.{1,32}\\/?+)","type":"string"}}],"post":{"operationId":"Device_AccessInputResources","requestBody":{"content":{"application/json":{"schema":{"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceResources","tags":["Devices"]}},"/v3/users/{user}/devices/{device}/services":{"get":{"operationId":"Device_ListServices","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ListDeviceServices","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/services/webs/{service}":{"get":{"operationId":"Device_AccessWebServices","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"AccessDeviceWebServices","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"service","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/stats":{"get":{"operationId":"Device_ReadStatistics","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceStatistics","tags":["Devices"]},"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/v3/users/{user}/devices/{device}/ws_proxy":{"parameters":[{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/{version}/users/{user}/buckets/{bucket}/data":{"get":{"operationId":"Bucket_ReadData","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadBucket","tags":["Buckets"]},"parameters":[{"in":"path","name":"version","required":true,"schema":{"pattern":"^(?:v1|v2)","type":"string"}},{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]},"/{version}/users/{user}/devices/{device}/buckets/{bucket}/data":{"get":{"operationId":"Device_ReadBucketData","responses":{"200":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"ok"},"401":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"forbidden"}},"security":[{"bearerAuth":[],"oauth":["basic"]}],"summary":"ReadDeviceBucket","tags":["Devices"]},"parameters":[{"in":"path","name":"version","required":true,"schema":{"pattern":"^(?:v1|v2|v3)","type":"string"}},{"in":"path","name":"user","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"device","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}},{"in":"path","name":"bucket","required":true,"schema":{"pattern":"^[a-zA-Z0-9_-]{1,32}","type":"string"}}]}},"servers":[{"url":"https://localhost:80"}]}