{"openapi":"3.1.0","info":{"title":"Cloud Resource ID Guard API","version":"1.0.0","description":"Parse, build, compare, batch-check, and apply explicit policy to AWS ARNs, Azure resource IDs, and Google Cloud full resource names. Processing is bounded and stateless. The API never contacts a cloud provider, verifies resource existence or authorization, performs an action, or stores payloads. Provider-native authorization, existence, and action checks remain mandatory."},"paths":{"/marketplace/rapid/cloud/v1/inspect":{"post":{"tags":["Cloud Identifier Inspect"],"summary":"Inspect cloud resource identifier","description":"Parse and canonicalize one AWS ARN, Azure resource ID, or Google Cloud full resource name without provider or network access.","operationId":"inspectCloudResourceIdentifier","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudIdentifierRequest"},"examples":{"example":{"summary":"Inspect cloud resource identifier","value":{"identifier":"arn:aws:lambda:us-east-2:123456789012:function:invoice-worker"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudIdentifierResult"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cloud/v1/build":{"post":{"tags":["Cloud Identifier Build"],"summary":"Build cloud resource identifier","description":"Build and immediately parse one canonical AWS, Azure, or Google Cloud identifier from structured components.","operationId":"buildCloudResourceIdentifier","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudBuildRequest"},"examples":{"example":{"summary":"Build cloud resource identifier","value":{"provider":"AZURE","subscription_id":"00000000-0000-0000-0000-000000000000","resource_group":"finance-prod","provider_namespace":"Microsoft.Storage","resource_path":["storageAccounts","invoicearchive"]}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudBuildResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cloud/v1/compare":{"post":{"tags":["Cloud Identifier Compare"],"summary":"Compare cloud resource identifiers","description":"Compare two identifiers with provider-aware canonical and scope evidence instead of unsafe raw-string assumptions.","operationId":"compareCloudResourceIdentifiers","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudCompareRequest"},"examples":{"example":{"summary":"Compare cloud resource identifiers","value":{"left":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/finance-prod/providers/Microsoft.Storage/storageAccounts/invoicearchive","right":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/finance-prod/providers/microsoft.storage/storageaccounts/invoicearchive"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudCompareResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cloud/v1/batch/inspect":{"post":{"tags":["Cloud Identifier Batch"],"summary":"Inspect cloud resource identifier batch","description":"Inspect up to 500 identifiers and return per-item validity, canonical duplicate groups, and review evidence.","operationId":"inspectCloudResourceBatch","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudBatchRequest"},"examples":{"example":{"summary":"Inspect cloud resource identifier batch","value":{"identifiers":["arn:aws:s3:::invoice-archive","//storage.googleapis.com/projects/_/buckets/invoice-archive"]}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudBatchResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/marketplace/rapid/cloud/v1/policy-check":{"post":{"tags":["Cloud Identifier Policy"],"summary":"Check cloud resource identifier policy","description":"Apply explicit provider, service, account, subscription, project, scope, and wildcard policy before an agent acts.","operationId":"checkCloudResourceIdentifierPolicy","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudPolicyRequest"},"examples":{"example":{"summary":"Check cloud resource identifier policy","value":{"identifier":"//run.googleapis.com/projects/ap-prod/locations/us-central1/services/invoice-api","allowed_providers":["GCP"],"allowed_services":["gcp:run.googleapis.com"],"allowed_gcp_projects":["ap-prod"]}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudPolicyResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"CloudBatchItem":{"properties":{"index":{"type":"integer","title":"Index"},"identifier":{"type":"string","title":"Identifier"},"valid":{"type":"boolean","title":"Valid"},"result":{"anyOf":[{"$ref":"#/components/schemas/CloudIdentifierResult"},{"type":"null"}]},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code"},"error":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error"}},"additionalProperties":false,"type":"object","required":["index","identifier","valid"],"title":"CloudBatchItem"},"CloudBatchRequest":{"properties":{"identifiers":{"items":{"type":"string"},"type":"array","maxItems":500,"minItems":1,"title":"Identifiers"}},"additionalProperties":false,"type":"object","required":["identifiers"],"title":"CloudBatchRequest"},"CloudBatchResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"input_count":{"type":"integer","title":"Input Count"},"valid_count":{"type":"integer","title":"Valid Count"},"invalid_count":{"type":"integer","title":"Invalid Count"},"duplicate_groups":{"items":{"items":{"type":"integer"},"type":"array"},"type":"array","title":"Duplicate Groups"},"items":{"items":{"$ref":"#/components/schemas/CloudBatchItem"},"type":"array","title":"Items"},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","input_count","valid_count","invalid_count","duplicate_groups","items","next_action"],"title":"CloudBatchResponse"},"CloudBuildRequest":{"properties":{"provider":{"type":"string","enum":["AWS","AZURE","GCP"],"title":"Provider"},"partition":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Partition"},"service":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"account_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Account Id"},"resource":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource"},"subscription_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Subscription Id"},"resource_group":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Group"},"provider_namespace":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Provider Namespace"},"resource_path":{"items":{"type":"string"},"type":"array","maxItems":128,"title":"Resource Path"},"path_segments":{"items":{"type":"string"},"type":"array","maxItems":128,"title":"Path Segments"}},"additionalProperties":false,"type":"object","required":["provider"],"title":"CloudBuildRequest"},"CloudBuildResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"identifier":{"type":"string","title":"Identifier"},"parsed":{"$ref":"#/components/schemas/CloudIdentifierResult"},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","identifier","parsed","next_action"],"title":"CloudBuildResponse"},"CloudCompareRequest":{"properties":{"left":{"type":"string","maxLength":2048,"minLength":1,"title":"Left"},"right":{"type":"string","maxLength":2048,"minLength":1,"title":"Right"}},"additionalProperties":false,"type":"object","required":["left","right"],"title":"CloudCompareRequest"},"CloudCompareResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"same_provider":{"type":"boolean","title":"Same Provider"},"exact_match":{"type":"boolean","title":"Exact Match"},"canonical_match":{"type":"boolean","title":"Canonical Match"},"same_scope":{"type":"boolean","title":"Same Scope"},"same_service":{"type":"boolean","title":"Same Service"},"same_resource_type":{"type":"boolean","title":"Same Resource Type"},"relationship":{"type":"string","enum":["EXACT","CANONICAL_EQUIVALENT","SAME_RESOURCE_FAMILY","DIFFERENT_RESOURCE","PROVIDER_MISMATCH"],"title":"Relationship"},"left":{"$ref":"#/components/schemas/CloudIdentifierResult"},"right":{"$ref":"#/components/schemas/CloudIdentifierResult"},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","same_provider","exact_match","canonical_match","same_scope","same_service","same_resource_type","relationship","left","right","next_action"],"title":"CloudCompareResponse"},"CloudFinding":{"properties":{"code":{"type":"string","title":"Code"},"severity":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"title":"Severity"},"message":{"type":"string","title":"Message"},"evidence":{"additionalProperties":true,"type":"object","title":"Evidence"},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["code","severity","message","next_action"],"title":"CloudFinding"},"CloudIdentifierRequest":{"properties":{"identifier":{"type":"string","maxLength":2048,"minLength":1,"title":"Identifier"}},"additionalProperties":false,"type":"object","required":["identifier"],"title":"CloudIdentifierRequest"},"CloudIdentifierResult":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","REVIEW_REQUIRED","BLOCKED"],"title":"Decision"},"provider":{"type":"string","enum":["AWS","AZURE","GCP"],"title":"Provider"},"normalized":{"type":"string","title":"Normalized"},"comparison_key":{"type":"string","title":"Comparison Key"},"input_was_canonical":{"type":"boolean","title":"Input Was Canonical"},"scope":{"additionalProperties":{"type":"string"},"type":"object","title":"Scope"},"service":{"type":"string","title":"Service"},"resource_type":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Type"},"resource_name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resource Name"},"components":{"additionalProperties":true,"type":"object","title":"Components"},"contains_wildcard":{"type":"boolean","title":"Contains Wildcard"},"findings":{"items":{"$ref":"#/components/schemas/CloudFinding"},"type":"array","title":"Findings"},"ruleset_version":{"type":"string","title":"Ruleset Version","default":"2026-08-10"},"static_analysis_only":{"type":"boolean","const":true,"title":"Static Analysis Only","default":true},"resource_existence_verified":{"type":"boolean","const":false,"title":"Resource Existence Verified","default":false},"authorization_checked":{"type":"boolean","const":false,"title":"Authorization Checked","default":false},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","provider","normalized","comparison_key","input_was_canonical","scope","service","components","contains_wildcard","findings","next_action"],"title":"CloudIdentifierResult"},"CloudPolicyRequest":{"properties":{"identifier":{"type":"string","maxLength":2048,"minLength":1,"title":"Identifier"},"allowed_providers":{"items":{"type":"string","enum":["AWS","AZURE","GCP"]},"type":"array","maxItems":3,"title":"Allowed Providers"},"allowed_services":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Allowed Services"},"denied_services":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Denied Services"},"allowed_aws_accounts":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Allowed Aws Accounts"},"denied_aws_accounts":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Denied Aws Accounts"},"allowed_azure_subscriptions":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Allowed Azure Subscriptions"},"denied_azure_subscriptions":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Denied Azure Subscriptions"},"allowed_gcp_projects":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Allowed Gcp Projects"},"denied_gcp_projects":{"items":{"type":"string"},"type":"array","maxItems":500,"title":"Denied Gcp Projects"},"require_scoped_identifier":{"type":"boolean","title":"Require Scoped Identifier","default":true},"allow_wildcards":{"type":"boolean","title":"Allow Wildcards","default":false}},"additionalProperties":false,"type":"object","required":["identifier"],"title":"CloudPolicyRequest"},"CloudPolicyResponse":{"properties":{"status":{"type":"string","const":"COMPLETED","title":"Status","default":"COMPLETED"},"decision":{"type":"string","enum":["CLEAR","BLOCKED"],"title":"Decision"},"permitted":{"type":"boolean","title":"Permitted"},"parsed":{"$ref":"#/components/schemas/CloudIdentifierResult"},"findings":{"items":{"$ref":"#/components/schemas/CloudFinding"},"type":"array","title":"Findings"},"ruleset_version":{"type":"string","title":"Ruleset Version","default":"2026-08-10"},"static_analysis_only":{"type":"boolean","const":true,"title":"Static Analysis Only","default":true},"authorization_checked":{"type":"boolean","const":false,"title":"Authorization Checked","default":false},"resource_existence_verified":{"type":"boolean","const":false,"title":"Resource Existence Verified","default":false},"network_access_performed":{"type":"boolean","const":false,"title":"Network Access Performed","default":false},"payload_stored":{"type":"boolean","const":false,"title":"Payload Stored","default":false},"next_action":{"type":"string","title":"Next Action"}},"additionalProperties":false,"type":"object","required":["decision","permitted","parsed","findings","next_action"],"title":"CloudPolicyResponse"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"tags":[{"name":"Cloud Identifier Inspect","description":"A bounded, stateless cloud-resource identifier utility for agents, IAM tooling, deployment automation, inventory pipelines, and CI workflows."},{"name":"Cloud Identifier Build","description":"A bounded, stateless cloud-resource identifier utility for agents, IAM tooling, deployment automation, inventory pipelines, and CI workflows."},{"name":"Cloud Identifier Compare","description":"A bounded, stateless cloud-resource identifier utility for agents, IAM tooling, deployment automation, inventory pipelines, and CI workflows."},{"name":"Cloud Identifier Batch","description":"A bounded, stateless cloud-resource identifier utility for agents, IAM tooling, deployment automation, inventory pipelines, and CI workflows."},{"name":"Cloud Identifier Policy","description":"A bounded, stateless cloud-resource identifier utility for agents, IAM tooling, deployment automation, inventory pipelines, and CI workflows."}],"servers":[{"url":"https://api-production-9502.up.railway.app"}]}