lipu-pali/static/openapi.json

1 line
No EOL
19 KiB
JSON

{"openapi":"3.1.0","info":{"title":"Jasima API","description":"API for deploying and managing cloud resources","version":"0.0.0"},"paths":{"/api/v1/tofu/instances":{"get":{"tag":"OpenTofu","summary":"List Tofu Instances","operationId":"list_tofu_instances_api_v1_tofu_instances_get","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size","default":50,"title":"Size"},"description":"Page size"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_TofuInstanceSummary_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["OpenTofu"],"summary":"Create Tofu Instance","operationId":"create_tofu_instance_api_v1_tofu_instances_post","security":[{"OpenIdConnect":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TofuInstanceCreate"}}}},"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tofu/instances/{instance_id}":{"get":{"tags":["OpenTofu"],"summary":"Get Tofu Instance","operationId":"get_tofu_instance_api_v1_tofu_instances__instance_id__get","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TofuInstanceDetail"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"put":{"tags":["OpenTofu"],"summary":"Update Tofu Instance","operationId":"update_tofu_instance_api_v1_tofu_instances__instance_id__put","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TofuInstanceUpdate"}}}},"responses":{"202":{"description":"Update accepted (deployment task pending)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptedResponse"}}}},"200":{"description":"Update Successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptedResponse"}}}},"404":{"description":"Instance not found"},"412":{"description":"Update failed due to current status"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["OpenTofu"],"summary":"Destroy Tofu Instance","operationId":"destroy_tofu_instance_api_v1_tofu_instances__instance_id__delete","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}},{"name":"suppress_deployment","in":"query","required":true,"schema":{"type":"boolean","title":"Suppress Deployment"}}],"responses":{"202":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tofu/instances/{instance_id}/state":{"get":{"tags":["OpenTofu"],"summary":"Get Tofu Instance State Route","operationId":"get_tofu_instance_state_route_api_v1_tofu_instances__instance_id__state_get","security":[{"HTTPBasic":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TofuInstanceState"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["OpenTofu"],"summary":"Update Tofu Instance State","operationId":"update_tofu_instance_state_api_v1_tofu_instances__instance_id__state_post","security":[{"HTTPBasic":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}},{"name":"ID","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"State lock ID","title":"Id"},"description":"State lock ID"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TofuInstanceState"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"lock":{"tags":["OpenTofu"],"summary":"Lock Tofu Instance State","operationId":"lock_tofu_instance_state_api_v1_tofu_instances__instance_id__state_lock","security":[{"HTTPBasic":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"unlock":{"tags":["OpenTofu"],"summary":"Unlock Tofu Instance State","operationId":"unlock_tofu_instance_state_api_v1_tofu_instances__instance_id__state_unlock","security":[{"HTTPBasic":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}},{"name":"ID","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"State lock ID","title":"Id"},"description":"State lock ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"delete":{"tags":["OpenTofu"],"summary":"Purge Tofu Instance State","operationId":"purge_tofu_instance_state_api_v1_tofu_instances__instance_id__state_delete","security":[{"HTTPBasic":[]}],"parameters":[{"name":"instance_id","in":"path","required":true,"schema":{"type":"integer","title":"Instance Id"}},{"name":"ID","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"State lock ID","title":"Id"},"description":"State lock ID"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/OkResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tofu/logs/{task_id}":{"get":{"tags":["OpenTofu"],"summary":"Get Logs","operationId":"get_logs_api_v1_tofu_logs__task_id__get","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"task_id","in":"path","required":true,"schema":{"type":"integer","title":"Task Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/tofu/instances/process_queue":{"post":{"tags":["OpenTofu"],"summary":"Process pending tasks for Tofu","operationId":"process_tofu_queue_api_v1_tofu_instances_process_queue_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptedResponse"}}}}},"security":[{"OpenIdConnect":[]}]}},"/api/v1/mirrors/origins":{"get":{"tags":["Mirrors"],"summary":"Get Origins","operationId":"get_origins_api_v1_mirrors_origins_get","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"description":"Page number","default":1,"title":"Page"},"description":"Page number"},{"name":"size","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"description":"Page size","default":50,"title":"Size"},"description":"Page size"},{"name":"organisation-id","in":"header","required":false,"schema":{"type":"integer","default":"Jasima-Organisation","title":"Organisation-Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Page_MirrorsOriginSummary_"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["Mirrors"],"summary":"Create Origin","operationId":"create_origin_api_v1_mirrors_origins_post","security":[{"OpenIdConnect":[]}],"parameters":[{"name":"organisation-id","in":"header","required":false,"schema":{"type":"integer","default":"Jasima-Organisation","title":"Organisation-Id"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MirrorsOriginCreate"}}}},"responses":{"201":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptedResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"AcceptedResponse":{"properties":{"id":{"type":"integer","title":"Id"}},"type":"object","required":["id"],"title":"AcceptedResponse","description":"A generic payload to respond with where a request has been accepted but perhaps has not yet been processed.\nPairs well with HTTP status code 201."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"MirrorsOriginCreate":{"properties":{"description":{"type":"string","title":"Description"},"rewriter_configuration":{"$ref":"#/components/schemas/MirrorsRewriterConfigurationOrigin"},"host":{"type":"string","pattern":"[A-Za-z]\\Z","title":"Host"}},"type":"object","required":["description","rewriter_configuration","host"],"title":"MirrorsOriginCreate"},"MirrorsOriginSummary":{"properties":{"id":{"type":"integer","title":"Id"},"host":{"type":"string","title":"Host"},"default_mirror":{"type":"string","title":"Default Mirror"},"description":{"type":"string","title":"Description"},"deployment_status":{"$ref":"#/components/schemas/TofuInstanceStatus"},"created_at":{"type":"string","format":"date-time","title":"Created At"},"updated_at":{"type":"string","format":"date-time","title":"Updated At"}},"type":"object","required":["id","host","default_mirror","description","deployment_status","created_at","updated_at"],"title":"MirrorsOriginSummary"},"MirrorsRewriterConfigurationOrigin":{"properties":{"first_party_adobe":{"anyOf":[{"$ref":"#/components/schemas/MirrorsRewriterConfigurationOriginFirstParty"},{"type":"boolean","const":false}],"title":"First Party Adobe","default":false},"first_party_tealium":{"anyOf":[{"$ref":"#/components/schemas/MirrorsRewriterConfigurationOriginFirstParty"},{"type":"boolean","const":false}],"title":"First Party Tealium","default":false},"geo_redirect_disable":{"type":"boolean","title":"Geo Redirect Disable","default":false},"headers":{"additionalProperties":{"type":"string"},"type":"object","title":"Headers"},"host":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Host"},"host_connect":{"type":"string","title":"Host Connect"},"host_header":{"type":"string","title":"Host Header"},"host_ssl":{"type":"string","title":"Host Ssl"},"matomo_site_id":{"type":"integer","title":"Matomo Site Id","default":-1},"rewrite_disable":{"type":"boolean","title":"Rewrite Disable","default":false}},"type":"object","title":"MirrorsRewriterConfigurationOrigin"},"MirrorsRewriterConfigurationOriginFirstParty":{"properties":{"subdomain":{"type":"string","title":"Subdomain"},"account":{"type":"string","title":"Account"}},"type":"object","required":["subdomain","account"],"title":"MirrorsRewriterConfigurationOriginFirstParty"},"OkResponse":{"properties":{"ok":{"type":"boolean","const":true,"title":"Ok"}},"type":"object","required":["ok"],"title":"OkResponse","description":"A generic payload to respond with to indicate success where no other information is required or available.\nPairs well with HTTP status code 200."},"Page_MirrorsOriginSummary_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/MirrorsOriginSummary"},"type":"array","title":"Items"},"total":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Total"},"page":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Page"},"size":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Size"},"pages":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Pages"}},"type":"object","required":["items","page","size"],"title":"Page[MirrorsOriginSummary]"},"Page_TofuInstanceSummary_":{"properties":{"items":{"items":{"$ref":"#/components/schemas/TofuInstanceSummary"},"type":"array","title":"Items"},"total":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Total"},"page":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Page"},"size":{"anyOf":[{"type":"integer","minimum":1.0},{"type":"null"}],"title":"Size"},"pages":{"anyOf":[{"type":"integer","minimum":0.0},{"type":"null"}],"title":"Pages"}},"type":"object","required":["items","page","size"],"title":"Page[TofuInstanceSummary]"},"TofuInstanceCreate":{"properties":{"configuration":{"additionalProperties":true,"type":"object","title":"Configuration"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"suppress_deployment":{"type":"boolean","title":"Suppress Deployment","default":false}},"type":"object","required":["configuration"],"title":"TofuInstanceCreate"},"TofuInstanceDetail":{"properties":{"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"id":{"type":"integer","title":"Id"},"status":{"$ref":"#/components/schemas/TofuInstanceStatus"},"configuration":{"additionalProperties":true,"type":"object","title":"Configuration"},"outputs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Outputs"},"plan":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Plan"},"status_changed":{"type":"string","title":"Status Changed"},"drift_checked":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drift Checked"},"state_lock":{"anyOf":[{"$ref":"#/components/schemas/TofuInstanceStateLock"},{"type":"null"}]},"tasks":{"items":{"$ref":"#/components/schemas/TofuInstanceTask"},"type":"array","title":"Tasks"},"status_changes":{"items":{"$ref":"#/components/schemas/TofuInstanceStatusChange"},"type":"array","title":"Status Changes"}},"type":"object","required":["created_at","updated_at","id","status","configuration","outputs","plan","status_changed","drift_checked","state_lock","tasks","status_changes"],"title":"TofuInstanceDetail"},"TofuInstanceState":{"properties":{},"additionalProperties":true,"type":"object","title":"TofuInstanceState"},"TofuInstanceStateLock":{"properties":{"ID":{"type":"string","format":"uuid","title":"Id"},"Operation":{"$ref":"#/components/schemas/TofuOperationType"},"Info":{"type":"string","title":"Info"},"Who":{"type":"string","title":"Who"},"Version":{"type":"string","title":"Version"},"Created":{"type":"string","title":"Created"},"Path":{"type":"string","title":"Path"}},"additionalProperties":true,"type":"object","required":["ID","Operation","Info","Who","Version","Created","Path"],"title":"TofuInstanceStateLock"},"TofuInstanceStatus":{"type":"string","enum":["ACTIVE","DEPLOYING","DESTROYED","DESTROYING","DRIFTED","FAILED","FAILED_DESTROY","PENDING","PENDING_DESTROY","PENDING_DRIFT_CHECK"],"title":"TofuInstanceStatus"},"TofuInstanceStatusChange":{"properties":{"instance_task_id":{"type":"integer","title":"Instance Task Id"},"timestamp":{"type":"string","format":"date-time","title":"Timestamp"},"old_status":{"$ref":"#/components/schemas/TofuInstanceStatus"},"new_status":{"$ref":"#/components/schemas/TofuInstanceStatus"}},"type":"object","required":["instance_task_id","timestamp","old_status","new_status"],"title":"TofuInstanceStatusChange"},"TofuInstanceSummary":{"properties":{"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"id":{"type":"integer","title":"Id"},"status":{"$ref":"#/components/schemas/TofuInstanceStatus"},"status_changed":{"type":"string","title":"Status Changed"},"drift_checked":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Drift Checked"}},"type":"object","required":["created_at","updated_at","id","status","status_changed","drift_checked"],"title":"TofuInstanceSummary"},"TofuInstanceTask":{"properties":{"created_at":{"type":"string","title":"Created At"},"updated_at":{"type":"string","title":"Updated At"},"task":{"$ref":"#/components/schemas/TofuInstanceTaskType"},"status":{"$ref":"#/components/schemas/TofuInstanceTaskStatus"},"start_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Start Time"},"end_time":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"End Time"}},"type":"object","required":["created_at","updated_at","task","status","start_time","end_time"],"title":"TofuInstanceTask"},"TofuInstanceTaskStatus":{"type":"string","enum":["CANCELED","COMPLETED","FAILED","PENDING","RUNNING"],"title":"TofuInstanceTaskStatus"},"TofuInstanceTaskType":{"type":"string","enum":["CHECK_DRIFT","DEPLOY","DESTROY"],"title":"TofuInstanceTaskType"},"TofuInstanceUpdate":{"properties":{"configuration":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Configuration"},"password":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Password"},"suppress_deployment":{"type":"boolean","title":"Suppress Deployment","default":false}},"type":"object","title":"TofuInstanceUpdate"},"TofuOperationType":{"type":"string","enum":["OperationTypeInvalid","OperationTypeRefresh","OperationTypePlan","OperationTypeApply"],"title":"TofuOperationType"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"OpenIdConnect":{"type":"openIdConnect","openIdConnectUrl":"https://id.guardianproject.info/realms/gp/.well-known/openid-configuration"},"HTTPBasic":{"type":"http","scheme":"basic"}}}}