# Service Quotas **Protocol:** JSON 1.1 (`X-Amz-Target: ServiceQuotasV20190624.*`) **Endpoint:** `POST http://localhost:4566/` **Signing name:** `servicequotas` Floci answers Service Quotas lookups from a generated in-memory catalog. Every service code resolves to a quota list: a curated set with real AWS quota codes where tooling depends on them — CodeBuild's `L-2DC20C30` ("Concurrently running builds") and Lambda's `L-B99A9384` ("Concurrent executions") — plus a deterministic generic set for any other service code. All values are deliberately generous so local pipelines that gate on quota headroom, such as AWS Landing Zone Accelerator, never stall on a limit the emulator does not enforce. The Organizations `Maximum number of accounts` quota uses AWS quota code `L-E619E033` and a local value of 50. Applied quotas and AWS default quotas return the same data, and quota values are static. `RequestServiceQuotaIncrease` is accepted and validated but does not change any quota value — see Limitations. ## Supported Actions | Action | Description | | --- | --- | | `ListServiceQuotas` | Lists the quotas for a service code; generated quotas for unknown codes | | `GetServiceQuota` | Returns one quota by service and quota code, else `NoSuchResourceException` | | `GetAWSDefaultServiceQuota` | Same as GetServiceQuota; defaults equal applied values | | `ListAWSDefaultServiceQuotas` | Same as ListServiceQuotas; defaults equal applied values | | `RequestServiceQuotaIncrease` | Validates and echoes an increase request as `PENDING`; not persisted, quota unchanged | | `ListRequestedServiceQuotaChangeHistoryByQuota` | Validates the service/quota pair and returns the locally recorded request history; currently empty for the static catalog | ## Limitations - **Quota increase requests are not persisted.** `RequestServiceQuotaIncrease` validates its input, resolves the quota, and returns a well-formed `RequestedQuota`, but keeps no state. The request is observable only in the response that creates it. - **`Status` is always `PENDING` and never advances.** Nothing processes requests, so no request ever reaches `APPROVED`, `CASE_OPENED`, or `DENIED`. `PENDING` is what real AWS returns on creation, so a caller that only reads the creation response sees faithful data; a caller that polls for completion will wait forever. - **Unknown service codes generate a quota catalog rather than failing.** This is deliberate, so the code has to be well-formed to be trusted: `ServiceCode` is validated against the modeled `[a-zA-Z][a-zA-Z0-9-]{1,63}` (max 63 characters) and a malformed one is rejected with `IllegalArgumentException` instead of returning invented quotas. - **A requested increase does not change the quota.** `GetServiceQuota` continues to return the catalog value after a successful increase request. Quota values remain static by design so pipelines never stall on an unenforced limit. - `GetRequestedServiceQuotaChange` and `ListRequestedServiceQuotaChangeHistory` are not implemented — there is no request store for them to read. - `CaseId` is never returned; no support case is opened. `SupportCaseAllowed` in the request is accepted and ignored, as the emulator has no case-opening path either way. - The quota-increase template operations (`PutServiceQuotaIncreaseRequestIntoTemplate` and related) are not implemented. ## Configuration | Environment variable | Default | Description | | --- | --- | --- | | `FLOCI_SERVICES_SERVICEQUOTAS_ENABLED` | `true` | Enables the service | ## Example ```bash aws --endpoint-url http://localhost:4566 service-quotas list-service-quotas \ --service-code codebuild aws --endpoint-url http://localhost:4566 service-quotas get-service-quota \ --service-code codebuild --quota-code L-2DC20C30 ```