diff --git a/changes/unreleased/Added-20260809-120000.yaml b/changes/unreleased/Added-20260809-120000.yaml new file mode 100644 index 0000000..b15def8 --- /dev/null +++ b/changes/unreleased/Added-20260809-120000.yaml @@ -0,0 +1,5 @@ +kind: Added +body: Per-operation fidelity manifest declaring every operation as hand-verified, auto-crud or unimplemented, exposed at `GET /devcloud/api/fidelity` and enforced by a build-failing coverage test +time: 2026-08-09T12:00:00.000000+09:00 +custom: + Issue: "" diff --git a/changes/unreleased/Added-20260809-140000.yaml b/changes/unreleased/Added-20260809-140000.yaml new file mode 100644 index 0000000..50620c6 --- /dev/null +++ b/changes/unreleased/Added-20260809-140000.yaml @@ -0,0 +1,5 @@ +kind: Added +body: Real tag support for KMS, CloudWatch and EventBridge — TagResource, UntagResource and ListTagsForResource/ListResourceTags now persist tags per resource ARN instead of being echoed by the generic CRUD engine +time: 2026-08-09T14:00:00.000000+09:00 +custom: + Issue: "" diff --git a/changes/unreleased/Fixed-20260809-120100.yaml b/changes/unreleased/Fixed-20260809-120100.yaml new file mode 100644 index 0000000..7d4df19 --- /dev/null +++ b/changes/unreleased/Fixed-20260809-120100.yaml @@ -0,0 +1,5 @@ +kind: Fixed +body: Codegen now parses operations bound to Smithy resource shapes, recovering 285 operations that were invisible to the generator (bedrock 0 of 101, lambda 19 of 85, ecs 12 of 76, transfer 29 of 71, sso-admin 67 of 79) +time: 2026-08-09T12:01:00.000000+09:00 +custom: + Issue: "" diff --git a/changes/unreleased/Fixed-20260809-140100.yaml b/changes/unreleased/Fixed-20260809-140100.yaml new file mode 100644 index 0000000..522bcb8 --- /dev/null +++ b/changes/unreleased/Fixed-20260809-140100.yaml @@ -0,0 +1,5 @@ +kind: Fixed +body: The fidelity manifest now reads each provider's actual dispatch instead of intersecting with the Smithy model, recovering 226 served operations it had hidden (dynamodbstreams listed 4 of its 22, acm's UpdateCertificate, bedrock's InvokeModelWithResponseStream) and dropping 5 non-operations it had invented (identitystore Description/DisplayName/Emails, pipes DELETE/POST) +time: 2026-08-09T14:01:00.000000+09:00 +custom: + Issue: "" diff --git a/changes/unreleased/Fixed-20260809-160000.yaml b/changes/unreleased/Fixed-20260809-160000.yaml new file mode 100644 index 0000000..ff5a908 --- /dev/null +++ b/changes/unreleased/Fixed-20260809-160000.yaml @@ -0,0 +1,5 @@ +kind: Fixed +body: EventBridge now drops a bus's or rule's tags when it is deleted. ARNs are derived from the name, so recreating a deleted resource reused its ARN and inherited the previous tags +time: 2026-08-09T16:00:00.000000+09:00 +custom: + Issue: "" diff --git a/changes/unreleased/Fixed-20260809-160100.yaml b/changes/unreleased/Fixed-20260809-160100.yaml new file mode 100644 index 0000000..13fd2f2 --- /dev/null +++ b/changes/unreleased/Fixed-20260809-160100.yaml @@ -0,0 +1,5 @@ +kind: Fixed +body: Restored CloudWatch's 17 CRUD-engine operations. The gateway picks the protocol from the request, not from the provider, so CloudWatch reaches the engine whenever a client speaks JSON — filtering the registry by the provider's declared protocol had removed that coverage outright +time: 2026-08-09T16:01:00.000000+09:00 +custom: + Issue: "" diff --git a/changes/unreleased/Fixed-20260809-170000.yaml b/changes/unreleased/Fixed-20260809-170000.yaml new file mode 100644 index 0000000..1eb0996 --- /dev/null +++ b/changes/unreleased/Fixed-20260809-170000.yaml @@ -0,0 +1,5 @@ +kind: Fixed +body: EventBridge rule ARNs now name their event bus, as AWS does. A rule name is unique per bus, so same-named rules on two custom buses previously shared one ARN — and with it, one tag set, where tagging one rule changed the other's and deleting one wiped the survivor's +time: 2026-08-09T17:00:00.000000+09:00 +custom: + Issue: "" diff --git a/changes/unreleased/Fixed-20260809-170100.yaml b/changes/unreleased/Fixed-20260809-170100.yaml new file mode 100644 index 0000000..0b5793d --- /dev/null +++ b/changes/unreleased/Fixed-20260809-170100.yaml @@ -0,0 +1,5 @@ +kind: Fixed +body: CloudWatch now drops an alarm's tags when the alarm is deleted, so recreating an alarm under the same name no longer inherits the old one's tags +time: 2026-08-09T17:01:00.000000+09:00 +custom: + Issue: "" diff --git a/cmd/codegen/main.go b/cmd/codegen/main.go index b2aa4d8..3939b6b 100644 --- a/cmd/codegen/main.go +++ b/cmd/codegen/main.go @@ -27,6 +27,7 @@ func main() { services := flag.String("services", "", "Comma-separated list of services to generate (empty = all)") templateDir := flag.String("templates", "./internal/codegen/templates", "Directory containing Go templates") scaffoldDir := flag.String("scaffold-output", "", "Output directory for scaffold files (provider.go, register.go)") + servicesDir := flag.String("services-dir", "./internal/services", "Directory containing hand-written providers, scanned for the fidelity manifest") flag.Parse() entries, err := os.ReadDir(*modelsDir) @@ -45,6 +46,7 @@ func main() { gen := codegen.NewGenerator(*templateDir) var crudServices []codegen.CRUDServiceData + modelOps := make(map[string][]string) for _, entry := range entries { if entry.IsDir() || !strings.HasSuffix(entry.Name(), ".json") { @@ -63,6 +65,15 @@ func main() { continue } + // Recorded before the filters below: the fidelity manifest needs the + // operation universe of every modelled service, including the ones whose + // provider is hand-written and generates no package. + names := make([]string, 0, len(model.Operations)) + for _, op := range model.Operations { + names = append(names, op.Name) + } + modelOps[model.ServiceID] = names + if len(allowedServices) > 0 && !allowedServices[model.ServiceID] { continue } @@ -86,6 +97,12 @@ func main() { // Write the aggregate CRUD registry only when generating the full fleet // (a filtered run would otherwise clobber it with a partial registry). if len(allowedServices) == 0 { + providers, err := codegen.ScanProviders(*servicesDir) + if err != nil { + fmt.Fprintf(os.Stderr, "Error scanning providers: %v\n", err) + os.Exit(1) + } + sort.Slice(crudServices, func(i, j int) bool { return crudServices[i].ServiceID < crudServices[j].ServiceID }) @@ -103,7 +120,41 @@ func main() { fmt.Fprintf(os.Stderr, "Error writing CRUD registry: %v\n", err) os.Exit(1) } + + if err := writeFidelityManifest(gen, *outputDir, modelOps, providers, crudServices); err != nil { + fmt.Fprintf(os.Stderr, "Error writing fidelity manifest: %v\n", err) + os.Exit(1) + } } fmt.Println("Code generation complete.") } + +// writeFidelityManifest emits the per-operation fidelity manifest. Like the CRUD +// registry it is only written on a full-fleet run, since a filtered run would +// produce a partial manifest. +func writeFidelityManifest( + gen *codegen.Generator, + outputDir string, + modelOps map[string][]string, + providers map[string]codegen.ProviderScan, + crudServices []codegen.CRUDServiceData, +) error { + handVerified := make(map[string][]string, len(providers)) + for id, scan := range providers { + handVerified[id] = scan.Operations + } + + content, err := gen.GenerateFidelityManifest( + codegen.BuildFidelityData(modelOps, handVerified, crudServices), + ) + if err != nil { + return err + } + + dir := filepath.Join(outputDir, "fidelity") + if err := os.MkdirAll(dir, 0755); err != nil { + return err + } + return codegen.WriteGo(filepath.Join(dir, "manifest_gen.go"), content) +} diff --git a/cmd/devcloud/fidelity_test.go b/cmd/devcloud/fidelity_test.go new file mode 100644 index 0000000..5c90415 --- /dev/null +++ b/cmd/devcloud/fidelity_test.go @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: Apache-2.0 + +package main + +import ( + "testing" + + "github.com/skyoo2003/devcloud/internal/generated/fidelity" + "github.com/skyoo2003/devcloud/internal/plugin" + "github.com/skyoo2003/devcloud/internal/shared/crud" +) + +// validTiers is the closed set of fidelity tiers. See docs/fidelity-manifest.md. +var validTiers = map[fidelity.Tier]bool{ + fidelity.TierHandVerified: true, + fidelity.TierAutoCRUD: true, + fidelity.TierUnimplemented: true, +} + +// TestFidelityManifestCoverage is the guarantee behind v1.0's fidelity claim: +// every operation DevCloud can serve carries a declared tier. It runs after +// package init, so both the plugin registry and the CRUD registry hold their +// full surface. Regenerate with `make codegen` when it fails. +func TestFidelityManifestCoverage(t *testing.T) { + // Conservative floors, in the spirit of TestServicePluginConformance: a + // mangled generator or a dropped scan collapses these far below the real + // numbers without the fragility of asserting an exact count. + const ( + minServices = 100 + minOperations = 6000 + ) + + if len(fidelity.Services) < minServices { + t.Fatalf("manifest covers %d services, want >= %d", len(fidelity.Services), minServices) + } + + operations := 0 + for id, svc := range fidelity.Services { + if len(svc.Operations) == 0 { + t.Errorf("%s: manifest lists no operations", id) + continue + } + operations += len(svc.Operations) + + handVerified := 0 + for op, tier := range svc.Operations { + if !validTiers[tier] { + t.Errorf("%s/%s: tier %q is not a declared tier", id, op, tier) + } + if tier == fidelity.TierHandVerified { + handVerified++ + } + } + // A service with nothing hand-verified means the scan lost its provider — + // most likely a new path-routing provider that needs a pathRoutedOps + // entry in internal/codegen/scan_handverified.go. + if handVerified == 0 { + t.Errorf("%s: no hand-verified operations; the dispatch scan probably missed this provider", id) + } + } + if operations < minOperations { + t.Errorf("manifest covers %d operations, want >= %d", operations, minOperations) + } +} + +// TestFidelityManifestCoversRegisteredServices keeps the manifest honest about +// the live surface: anything the gateway routes to must be classified. +func TestFidelityManifestCoversRegisteredServices(t *testing.T) { + for _, id := range plugin.DefaultRegistry.RegisteredServices() { + if _, ok := fidelity.Services[id]; !ok { + t.Errorf("%s: registered service is absent from the fidelity manifest", id) + } + } +} + +// TestFidelityManifestCoversCRUDRegistry checks the other direction: every +// operation the CRUD engine would serve is declared, and never as unimplemented +// — that would promise an InvalidAction the runtime does not return. +func TestFidelityManifestCoversCRUDRegistry(t *testing.T) { + for _, id := range plugin.DefaultRegistry.RegisteredServices() { + for op := range crud.RegisteredOps(id) { + tier, ok := fidelity.Lookup(id, op) + if !ok { + t.Errorf("%s/%s: engine-registered operation is absent from the manifest", id, op) + continue + } + if tier == fidelity.TierUnimplemented { + t.Errorf("%s/%s: declared unimplemented but the CRUD engine serves it", id, op) + } + } + } +} + +// TestAutoCRUDIsServedOverJSON pins what makes an auto-crud tier true. The +// gateway derives the protocol from the *request* (gateway.DetectProtocol), not +// from the provider, so a service whose provider declares Query still reaches +// the engine when a client speaks JSON. cloudwatch is the case that matters: its +// provider answers Query for boto3 and falls through to the engine for +// X-Amz-Target callers. Filtering the registry by the provider's declared +// protocol once removed that coverage outright. +func TestAutoCRUDIsServedOverJSON(t *testing.T) { + for id, svc := range fidelity.Services { + for op, tier := range svc.Operations { + if tier != fidelity.TierAutoCRUD { + continue + } + if _, err := crud.Handle(id, op, "json-1.1", []byte("{}")); err != nil { + t.Errorf("%s/%s: declared auto-crud but the engine refused it: %v", id, op, err) + } + } + } +} + +// TestFidelityLookup pins the accessor's contract: an unknown service and an +// unknown operation are both misses, not a zero-value tier. +func TestFidelityLookup(t *testing.T) { + if tier, ok := fidelity.Lookup("s3", "PutObject"); !ok || tier != fidelity.TierHandVerified { + t.Errorf("Lookup(s3, PutObject) = %q, %v; want hand-verified, true", tier, ok) + } + if _, ok := fidelity.Lookup("nosuchservice", "PutObject"); ok { + t.Error("Lookup on an unknown service reported a hit") + } + if _, ok := fidelity.Lookup("s3", "NoSuchOperation"); ok { + t.Error("Lookup on an unknown operation reported a hit") + } +} diff --git a/docs/crud-engine.md b/docs/crud-engine.md index 769a09b..87f6cd1 100644 --- a/docs/crud-engine.md +++ b/docs/crud-engine.md @@ -32,7 +32,7 @@ operations as scaffolding for local wiring, not as behavioural parity. |------|---------| | **hand-verified** | Implemented by the service's provider (explicit dispatch `case`). Highest fidelity. | | **auto-crud** | Served by the engine with plausible, store-backed responses. Reaches the engine only for engine-wired services (below). | -| **unimplemented** | Not implemented and not CRUD-classifiable — returns an honest `InvalidAction` error. | +| **unimplemented** | Not implemented and not CRUD-classifiable — the call is refused, never faked. JSON and Query services return `InvalidAction`; the path-routed providers (`s3`, `lambda`, `bedrock`) use their own error vocabulary. | Hand-written operations always win: the engine is only reached when a request falls through to the provider's `default:` case, so it never shadows a real @@ -61,3 +61,13 @@ implementation. To promote an operation from `auto-crud` to `hand-verified`, implement it as an explicit `case` in the service provider following existing patterns. + +## Which tier is *this* operation? + +The tiers above are declared per operation by the generated +[fidelity manifest](fidelity-manifest.md). Ask it directly rather than inferring +from this page (requires `admin.enabled: true`): + +```bash +curl -s 'localhost:4747/devcloud/api/fidelity?service=dynamodb' +``` diff --git a/docs/fidelity-manifest.md b/docs/fidelity-manifest.md new file mode 100644 index 0000000..1466c86 --- /dev/null +++ b/docs/fidelity-manifest.md @@ -0,0 +1,156 @@ +# Fidelity Manifest + +DevCloud serves 104 AWS services, but not every operation is served the same +way. The **fidelity manifest** answers, per operation, *how much you can trust +this call* — so you never have to guess whether a green response means DevCloud +implemented the operation or merely made something plausible up. + +It is generated, never hand-written: `make codegen` derives it from the in-tree +Smithy models, the CRUD registry, and each provider's dispatch code. + +## Tiers + +| Tier | Meaning | Trust it for | +|------|---------|--------------| +| `hand-verified` | The service's provider implements the operation explicitly. | Behaviour, not just shape. Covered by the boto3 compatibility suite where tests exist. | +| `auto-crud` | Served by the [generic CRUD engine](crud-engine.md) with plausible, store-backed responses. No validation, no business logic, no cross-resource integrity. | Wiring your SDK calls and round-tripping create → get → list → delete. Nothing else. | +| `unimplemented` | Not served — the call fails instead of inventing a success. The error is the provider's own: JSON and Query services return `InvalidAction` (HTTP 400), while the path-routed providers answer in their own vocabulary (`s3` `MethodNotAllowed` 405, `lambda` `ResourceNotFoundException` 404, `bedrock` `UnsupportedOperation` 400). | Knowing early that DevCloud will not serve this call. | + +`hand-verified` always wins: the CRUD engine is reached only when a provider's +dispatch falls through, so a hand-written implementation is never shadowed. + +## Current coverage + +| Tier | Operations | +|------|-----------:| +| `hand-verified` | 4,496 | +| `auto-crud` | 948 | +| `unimplemented` | 2,031 | +| **Total** | **7,475** across 104 services | + +Examples: + +| Service | hand-verified | auto-crud | unimplemented | +|---------|--------------:|----------:|--------------:| +| sqs | 23 | 0 | 0 | +| ecs | 57 | 22 | 3 | +| s3 | 37 | 0 | 70 | +| lambda | 25 | 0 | 60 | +| dynamodb | 20 | 28 | 9 | +| cloudwatch | 23 | 17 | 6 | +| bedrock | 19 | 0 | 84 | + +_Regenerate with `make codegen`; these numbers change with the surface._ + +## Reading it + +**At runtime** — the admin API, which is off by default. Enable it in your +`devcloud.yaml` ([configuration](configuration.md)): + +```yaml +admin: + enabled: true +``` + +```bash +# Tier counts for every service +curl -s localhost:4747/devcloud/api/fidelity + +# Per-operation tiers for one service +curl -s 'localhost:4747/devcloud/api/fidelity?service=s3' +``` + +```json +{ + "s3": { + "modelBacked": true, + "counts": {"hand-verified": 37, "unimplemented": 70}, + "operations": {"PutObject": "hand-verified", "SelectObjectContent": "unimplemented"} + } +} +``` + +The unfiltered response omits `operations` — the full manifest is ~7,000 entries. + +**In Go** — [`internal/generated/fidelity`](../internal/generated/fidelity/manifest_gen.go): + +```go +tier, ok := fidelity.Lookup("s3", "PutObject") // TierHandVerified, true +``` + +`ok` is false for a service or operation DevCloud does not know at all, which is +not the same as `unimplemented`: an unknown service is not routed at all, +whereas an unimplemented operation reaches its provider and is refused. + +## Limits + +- **11 services have no in-tree Smithy model** (`account`, `cloudcontrol`, + `codeconnections`, `dms`, `identitystore`, `mediaconvert`, `pipes`, `s3tables`, + `scheduler`, `serverlessrepo`, `verifiedpermissions`). Their `modelBacked` flag + is `false` and the manifest lists only what DevCloud serves — the + unimplemented tail is not enumerable without a model. +- **`hand-verified` means "the provider dispatches this operation"**, not "this + operation matches AWS byte for byte". Depth varies; the boto3 compatibility + suite (`make test-compat`) is the stronger signal for the services it covers. +- The manifest describes the **whole registered surface**, not the services + enabled in your config. + +## How it is derived + +| Input | Source | Contributes | +|-------|--------|-------------| +| Operation universe | `smithy-models/*.json`, parsed including resource-attached operations | every known operation | +| `auto-crud` | the generated [CRUD registry](crud-engine.md) | engine-servable operations | +| `hand-verified` | the case literals of the dispatch switches inside each provider's `HandleRequest` | implemented operations | + +Three providers (`s3`, `lambda`, `bedrock`) route on HTTP method and path rather +than an operation name, so they declare their operations explicitly in +`pathRoutedOps` (`internal/codegen/scan_handverified.go`). + +The universe is *model ∪ hand-verified*: a provider may serve an operation the +model does not declare — `bedrock` serves `InvokeModel`, which AWS models under +bedrock-runtime, and `dynamodbstreams` dispatches 22 operations against a +4-operation model — and hiding them would understate what DevCloud does. So a +`hand-verified` entry is a statement about **DevCloud**, not about AWS: it can +name an operation your SDK has never heard of. + +The scan is scoped to `HandleRequest` (and whatever it delegates dispatch to) +for a reason. That is the only place an operation name means "operation": +elsewhere in the same package, `identitystore` switches on `"DisplayName"` to +apply an attribute patch and `pipes` switches on `"POST"` to resolve a path. +Reading the whole package would file both as operations. + +## Getting an operation promoted + +Promotion from `auto-crud` (or `unimplemented`) to `hand-verified` happens **on request, +with a use case** — [open a feature request](https://github.com/skyoo2003/devcloud/issues/new?template=feature_request.yml) +naming the service, the operation, and what you are trying to run locally. Check the tier +first with the endpoint above so the request is concrete. + +Requests beat guesswork here. Reading what the unpromoted operations *are* shows why: they +are overwhelmingly operational surface — DynamoDB backups, global tables and Contributor +Insights; KMS custom key stores and key rotation; CloudWatch Insight Rules and Metric +Streams; ECR pull-through cache and registry policy. A local inner loop does not call them, +and the operations it does call — S3, SQS, Lambda, IAM and STS in full — are already +`hand-verified` with **zero** `auto-crud` operations between them. + +So v1.0 ships the long tail **declared rather than implemented**, and lets real use decide +what gets promoted in 1.x. + +## Guarantees + +`TestFidelityManifestCoverage` (`cmd/devcloud/fidelity_test.go`) fails the build +when: + +- any operation carries a tier outside the closed set, +- any registered service is missing from the manifest, +- any CRUD-registered operation is missing or marked `unimplemented`, +- any service resolves zero `hand-verified` operations — the signal that a new + path-routing provider needs a `pathRoutedOps` entry, +- any `auto-crud` operation is one the engine will not actually serve + (`TestAutoCRUDIsServedOverJSON`). + +The engine reads the protocol from the **request**, not from the provider, so +`auto-crud` survives a Query-speaking provider: `cloudwatch` answers boto3 over +Query and falls through to the engine for `X-Amz-Target` callers. Filtering the +registry by the provider's declared protocol would delete that coverage. diff --git a/docs/services-matrix.md b/docs/services-matrix.md index 4be3ed9..579fec7 100644 --- a/docs/services-matrix.md +++ b/docs/services-matrix.md @@ -1,6 +1,6 @@ # DevCloud Services Matrix -**Total**: 104 services (run `make stats`). The boto3 compatibility suite — 729 tests in `tests/compatibility/` — passes in CI. +**Total**: 104 services (run `make stats`). The boto3 compatibility suite — 775 tests in `tests/compatibility/` — passes in CI. > To refresh these numbers, run `make stats` (service/handler counts) and `make test-compat` (compatibility suite), then update the line above. Note: `make stats`' "Operations" counts dispatch cases (a service carrying both Query and JSON protocols counts each), not distinct AWS operations. @@ -61,7 +61,7 @@ DevCloud is a Go-based local cloud environment with AWS API compatibility. This ## boto3 compatibility -- Tests: `tests/compatibility/` (729 tests) +- Tests: `tests/compatibility/` (775 tests) - Status: the full suite passes in CI (`.github/workflows/compat.yml`); any failing test fails the build - Run: `make test-compat` @@ -75,14 +75,22 @@ AWS error rather than a false success, so an SDK always gets a truthful response ## Operation coverage & the CRUD fallback engine Hand-written providers implement each service's common operations. For the long -tail of standard CRUD-shaped operations (~2,200 across 46 JSON-protocol -services), a generic engine can serve plausible, store-backed responses so SDK -calls round-trip. This coverage is **plausible, not faithful** — no validation or -business logic — and is opt-in per service. See -[crud-engine.md](crud-engine.md) for the fidelity tiers, wired services, and +tail of standard CRUD-shaped operations across 46 JSON-protocol services, a +generic engine can serve plausible, store-backed responses so SDK calls +round-trip. This coverage is **plausible, not faithful** — no validation or +business logic. See [crud-engine.md](crud-engine.md) for the wired services and limits. Operations that are neither hand-written nor CRUD-classifiable return an honest `InvalidAction` error, never a fabricated success. +Every operation's tier is declared in the generated +[fidelity manifest](fidelity-manifest.md) — 4,496 `hand-verified`, 948 +`auto-crud`, 2,031 `unimplemented` across 7,475 operations. Query it per service +(requires `admin.enabled: true`): + +```bash +curl -s 'localhost:4747/devcloud/api/fidelity?service=s3' +``` + ## Supported protocols - **JSON 1.0** (`application/x-amz-json-1.0`): DynamoDB, DynamoDB Streams, Kinesis diff --git a/internal/admin/api.go b/internal/admin/api.go index 9ab31dc..614fdff 100644 --- a/internal/admin/api.go +++ b/internal/admin/api.go @@ -9,6 +9,7 @@ import ( "strconv" "strings" + "github.com/skyoo2003/devcloud/internal/generated/fidelity" "github.com/skyoo2003/devcloud/internal/plugin" ) @@ -33,10 +34,64 @@ func (d *API) Handler() http.Handler { mux.HandleFunc("/devcloud/api/services", d.handleServices) mux.HandleFunc("/devcloud/api/services/", d.handleServiceResources) mux.HandleFunc("/devcloud/api/logs", d.handleLogs) + mux.HandleFunc("/devcloud/api/fidelity", d.handleFidelity) return mux } +// fidelityService is one service's entry in GET /devcloud/api/fidelity. +type fidelityService struct { + ModelBacked bool `json:"modelBacked"` + Counts map[string]int `json:"counts"` + Operations map[string]string `json:"operations,omitempty"` +} + +// handleFidelity handles GET /devcloud/api/fidelity[?service=s3]. +// +// Without a service filter it returns per-service tier counts only: the full +// manifest is ~7,000 operations, too much to push at a caller whose usual +// question is "how much of this service can I trust?". Naming a service adds +// that service's per-operation tiers. +func (d *API) handleFidelity(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + http.Error(w, "method not allowed", http.StatusMethodNotAllowed) + return + } + + if id := r.URL.Query().Get("service"); id != "" { + svc, ok := fidelity.Services[id] + if !ok { + writeJSON(w, http.StatusNotFound, map[string]string{"error": "unknown service: " + id}) + return + } + writeJSON(w, http.StatusOK, map[string]fidelityService{id: fidelitySummary(svc, true)}) + return + } + + out := make(map[string]fidelityService, len(fidelity.Services)) + for id, svc := range fidelity.Services { + out[id] = fidelitySummary(svc, false) + } + writeJSON(w, http.StatusOK, out) +} + +func fidelitySummary(svc fidelity.Service, withOperations bool) fidelityService { + entry := fidelityService{ + ModelBacked: svc.ModelBacked, + Counts: map[string]int{}, + } + if withOperations { + entry.Operations = make(map[string]string, len(svc.Operations)) + } + for op, tier := range svc.Operations { + entry.Counts[string(tier)]++ + if withOperations { + entry.Operations[op] = string(tier) + } + } + return entry +} + // writeJSON serialises v as JSON and writes it to w with the appropriate // Content-Type header. func writeJSON(w http.ResponseWriter, status int, v any) { diff --git a/internal/admin/api_test.go b/internal/admin/api_test.go index 0ebd2ea..c41bafa 100644 --- a/internal/admin/api_test.go +++ b/internal/admin/api_test.go @@ -82,6 +82,45 @@ func TestAPI_Services(t *testing.T) { assert.Equal(t, 2, svc.ResourceCount) } +// TestAPI_Fidelity covers both shapes of the endpoint: the unfiltered summary +// carries counts but no operation list, and naming a service adds its tiers. +func TestAPI_Fidelity(t *testing.T) { + api := NewAPI(newTestRegistry(&mockServicePlugin{id: "s3", name: "Amazon S3"}), NewLogCollector(10)) + + req := httptest.NewRequest(http.MethodGet, "/devcloud/api/fidelity", nil) + w := httptest.NewRecorder() + api.Handler().ServeHTTP(w, req) + + assert.Equal(t, http.StatusOK, w.Code) + assert.Equal(t, "application/json", w.Header().Get("Content-Type")) + + var summary map[string]fidelityService + require.NoError(t, json.NewDecoder(w.Body).Decode(&summary)) + require.Contains(t, summary, "s3") + assert.True(t, summary["s3"].ModelBacked) + assert.Greater(t, summary["s3"].Counts["hand-verified"], 0) + assert.Empty(t, summary["s3"].Operations, "the summary must not carry every operation") + + req = httptest.NewRequest(http.MethodGet, "/devcloud/api/fidelity?service=s3", nil) + w = httptest.NewRecorder() + api.Handler().ServeHTTP(w, req) + + assert.Equal(t, http.StatusOK, w.Code) + var detail map[string]fidelityService + require.NoError(t, json.NewDecoder(w.Body).Decode(&detail)) + assert.Equal(t, "hand-verified", detail["s3"].Operations["PutObject"]) +} + +func TestAPI_FidelityUnknownService(t *testing.T) { + api := NewAPI(newTestRegistry(&mockServicePlugin{id: "s3", name: "Amazon S3"}), NewLogCollector(10)) + + req := httptest.NewRequest(http.MethodGet, "/devcloud/api/fidelity?service=nosuchservice", nil) + w := httptest.NewRecorder() + api.Handler().ServeHTTP(w, req) + + assert.Equal(t, http.StatusNotFound, w.Code) +} + // TestAPI_Logs adds log entries to the collector and verifies the // /devcloud/api/logs endpoint returns them newest-first. func TestAPI_Logs(t *testing.T) { diff --git a/internal/codegen/gen_fidelity.go b/internal/codegen/gen_fidelity.go new file mode 100644 index 0000000..3054c4a --- /dev/null +++ b/internal/codegen/gen_fidelity.go @@ -0,0 +1,126 @@ +// SPDX-License-Identifier: Apache-2.0 + +// internal/codegen/gen_fidelity.go +package codegen + +import ( + "fmt" + "go/format" + "sort" +) + +// FidelityData drives fidelity_manifest.go.tmpl: every service DevCloud +// registers, with each of its operations labelled by tier. +type FidelityData struct { + Services []FidelityServiceData +} + +// FidelityServiceData is one service's classified operations. +type FidelityServiceData struct { + ServiceID string + ModelBacked bool + Ops []FidelityOpData +} + +// FidelityOpData is one operation and the template constant naming its tier. +type FidelityOpData struct { + Name string + // TierConst is the suffix of the generated Tier constant: HandVerified, + // AutoCRUD or Unimplemented. + TierConst string +} + +// BuildFidelityData joins the three inputs that decide an operation's tier. +// +// The universe of a service is its model's operations *union* what the provider +// actually serves: a provider may implement an operation the in-tree model does +// not declare (bedrock serves InvokeModel, which AWS models under +// bedrock-runtime), and dropping it would hide a served operation. +// +// Precedence is hand-verified > auto-crud > unimplemented, mirroring the runtime: +// the CRUD engine is reached only when a provider's dispatch falls through, so a +// hand-written implementation always wins. See docs/crud-engine.md. +func BuildFidelityData( + modelOps map[string][]string, + handVerified map[string][]string, + autoCRUD []CRUDServiceData, +) FidelityData { + crudOps := make(map[string]map[string]bool, len(autoCRUD)) + for _, svc := range autoCRUD { + ops := make(map[string]bool, len(svc.Ops)) + for _, op := range svc.Ops { + ops[op.Op] = true + } + crudOps[svc.ServiceID] = ops + } + + data := FidelityData{} + for _, serviceID := range sortedKeys(handVerified) { + hand := make(map[string]bool, len(handVerified[serviceID])) + universe := make(map[string]bool) + for _, op := range handVerified[serviceID] { + hand[op] = true + universe[op] = true + } + for _, op := range modelOps[serviceID] { + universe[op] = true + } + for op := range crudOps[serviceID] { + universe[op] = true + } + + names := make([]string, 0, len(universe)) + for op := range universe { + names = append(names, op) + } + sort.Strings(names) + + ops := make([]FidelityOpData, 0, len(names)) + for _, name := range names { + ops = append(ops, FidelityOpData{ + Name: name, + TierConst: tierFor(name, hand, crudOps[serviceID]), + }) + } + + data.Services = append(data.Services, FidelityServiceData{ + ServiceID: serviceID, + ModelBacked: len(modelOps[serviceID]) > 0, + Ops: ops, + }) + } + return data +} + +func tierFor(op string, hand, crud map[string]bool) string { + switch { + case hand[op]: + return "HandVerified" + case crud[op]: + return "AutoCRUD" + default: + return "Unimplemented" + } +} + +func sortedKeys(m map[string][]string) []string { + keys := make([]string, 0, len(m)) + for k := range m { + keys = append(keys, k) + } + sort.Strings(keys) + return keys +} + +// GenerateFidelityManifest renders the single aggregate manifest file. +func (g *Generator) GenerateFidelityManifest(data FidelityData) (string, error) { + rendered, err := g.renderTemplate("fidelity_manifest.go.tmpl", data) + if err != nil { + return "", err + } + formatted, err := format.Source([]byte(rendered)) + if err != nil { + return "", fmt.Errorf("gofmt fidelity_manifest.go: %w", err) + } + return string(formatted), nil +} diff --git a/internal/codegen/parser.go b/internal/codegen/parser.go index de1044c..8ca171f 100644 --- a/internal/codegen/parser.go +++ b/internal/codegen/parser.go @@ -28,6 +28,18 @@ type rawShape struct { Value *rawMember `json:"value"` Version string `json:"version"` Traits map[string]json.RawMessage `json:"traits"` + + // Resource bindings. Services and resources both nest resources, and a + // resource binds operations through `operations`, `collectionOperations` and + // the lifecycle slots below. + Resources []rawTarget `json:"resources"` + CollectionOperations []rawTarget `json:"collectionOperations"` + Create *rawTarget `json:"create"` + Put *rawTarget `json:"put"` + Read *rawTarget `json:"read"` + Update *rawTarget `json:"update"` + Delete *rawTarget `json:"delete"` + List *rawTarget `json:"list"` } type rawTarget struct { @@ -80,12 +92,12 @@ func ParseSmithyJSON(data []byte) (*SmithyModel, error) { } // Parse operations - for _, opRef := range serviceShape.Operations { - opShape, ok := parsed[opRef.Target] + for _, opFQN := range collectOperationTargets(parsed, serviceShape) { + opShape, ok := parsed[opFQN] if !ok { continue } - op := Operation{Name: shortName(opRef.Target)} + op := Operation{Name: shortName(opFQN)} if opShape.Input != nil { if opShape.Input.Target == "smithy.api#Unit" { op.InputName = "SmithyUnit" @@ -261,6 +273,55 @@ func resolveSimpleType(shapes map[string]*Shape) { } } +// collectOperationTargets returns the FQN of every operation the service binds, +// walking both the service's own operations list and every resource reachable +// from it. Smithy lets a resource carry operations through `operations`, +// `collectionOperations` and the lifecycle slots, so a model built around +// resources (lambda, ecs, bedrock) exposes only a fraction of its API when the +// service list is read alone. Resources are visited once, so a cyclic resource +// graph terminates. +func collectOperationTargets(shapes map[string]*rawShape, service *rawShape) []string { + var targets []string + seen := make(map[string]bool) + add := func(refs ...*rawTarget) { + for _, ref := range refs { + if ref == nil || ref.Target == "" || seen[ref.Target] { + continue + } + seen[ref.Target] = true + targets = append(targets, ref.Target) + } + } + addAll := func(refs []rawTarget) { + for i := range refs { + add(&refs[i]) + } + } + + addAll(service.Operations) + + visited := make(map[string]bool) + queue := append([]rawTarget(nil), service.Resources...) + for len(queue) > 0 { + ref := queue[0] + queue = queue[1:] + if visited[ref.Target] { + continue + } + visited[ref.Target] = true + + res, ok := shapes[ref.Target] + if !ok || res.Type != "resource" { + continue + } + addAll(res.Operations) + addAll(res.CollectionOperations) + add(res.Create, res.Put, res.Read, res.Update, res.Delete, res.List) + queue = append(queue, res.Resources...) + } + return targets +} + func shortName(fqn string) string { parts := strings.Split(fqn, "#") if len(parts) == 2 { diff --git a/internal/codegen/parser_test.go b/internal/codegen/parser_test.go index b0bffcb..878adb1 100644 --- a/internal/codegen/parser_test.go +++ b/internal/codegen/parser_test.go @@ -72,3 +72,96 @@ func TestParseSmithyJSON(t *testing.T) { require.True(t, ok) assert.Equal(t, ShapeList, bucketList.Type) } + +// resourceModel is a minimal model whose operations hang off resource shapes +// rather than the service's own operations list — the shape real AWS models like +// lambda, ecs and bedrock use. +const resourceModel = `{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.demo#Demo": { + "type": "service", + "version": "2020-01-01", + "operations": [{"target": "com.amazonaws.demo#DirectOp"}], + "resources": [{"target": "com.amazonaws.demo#Widget"}], + "traits": {"aws.protocols#awsJson1_1": {}} + }, + "com.amazonaws.demo#Widget": { + "type": "resource", + "read": {"target": "com.amazonaws.demo#GetWidget"}, + "delete": {"target": "com.amazonaws.demo#DeleteWidget"}, + "list": {"target": "com.amazonaws.demo#ListWidgets"}, + "operations": [{"target": "com.amazonaws.demo#TagWidget"}], + "collectionOperations": [{"target": "com.amazonaws.demo#PurgeWidgets"}], + "resources": [{"target": "com.amazonaws.demo#Gadget"}] + }, + "com.amazonaws.demo#Gadget": { + "type": "resource", + "read": {"target": "com.amazonaws.demo#GetGadget"} + }, + "com.amazonaws.demo#DirectOp": {"type": "operation"}, + "com.amazonaws.demo#GetWidget": {"type": "operation", "output": {"target": "com.amazonaws.demo#GetWidgetOutput"}}, + "com.amazonaws.demo#DeleteWidget": {"type": "operation"}, + "com.amazonaws.demo#ListWidgets": {"type": "operation"}, + "com.amazonaws.demo#TagWidget": {"type": "operation"}, + "com.amazonaws.demo#PurgeWidgets": {"type": "operation"}, + "com.amazonaws.demo#GetGadget": {"type": "operation"}, + "com.amazonaws.demo#GetWidgetOutput": {"type": "structure", "members": {}} + } +}` + +func TestParseSmithyJSON_ResourceAttachedOperations(t *testing.T) { + model, err := ParseSmithyJSON([]byte(resourceModel)) + require.NoError(t, err) + + names := make([]string, 0, len(model.Operations)) + for _, op := range model.Operations { + names = append(names, op.Name) + } + + // Lifecycle bindings, operations, collectionOperations and nested resources + // all contribute; the service's own list still counts. + assert.Equal(t, []string{ + "DeleteWidget", "DirectOp", "GetGadget", "GetWidget", + "ListWidgets", "PurgeWidgets", "TagWidget", + }, names, "operations must be collected from resources and sorted") + + // Output wiring survives the resource walk. + var getWidget *Operation + for i := range model.Operations { + if model.Operations[i].Name == "GetWidget" { + getWidget = &model.Operations[i] + } + } + require.NotNil(t, getWidget) + assert.Equal(t, "GetWidgetOutput", getWidget.OutputName) +} + +func TestParseSmithyJSON_ResourceCycleTerminates(t *testing.T) { + const cyclic = `{ + "smithy": "2.0", + "shapes": { + "com.amazonaws.demo#Demo": { + "type": "service", + "version": "2020-01-01", + "resources": [{"target": "com.amazonaws.demo#A"}], + "traits": {"aws.protocols#awsJson1_1": {}} + }, + "com.amazonaws.demo#A": { + "type": "resource", + "read": {"target": "com.amazonaws.demo#GetA"}, + "resources": [{"target": "com.amazonaws.demo#B"}] + }, + "com.amazonaws.demo#B": { + "type": "resource", + "resources": [{"target": "com.amazonaws.demo#A"}] + }, + "com.amazonaws.demo#GetA": {"type": "operation"} + } + }` + + model, err := ParseSmithyJSON([]byte(cyclic)) + require.NoError(t, err) + require.Len(t, model.Operations, 1) + assert.Equal(t, "GetA", model.Operations[0].Name) +} diff --git a/internal/codegen/scan_handverified.go b/internal/codegen/scan_handverified.go new file mode 100644 index 0000000..ab9d70f --- /dev/null +++ b/internal/codegen/scan_handverified.go @@ -0,0 +1,352 @@ +// SPDX-License-Identifier: Apache-2.0 + +// internal/codegen/scan_handverified.go +package codegen + +import ( + "fmt" + "go/ast" + "go/parser" + "go/token" + "os" + "path/filepath" + "regexp" + "sort" + "strconv" + "strings" +) + +// opNamePattern is the shape of an AWS operation name: PascalCase, letters and +// digits only. It rejects the odd non-operation literal that shares a dispatch +// switch with real operations (HTTP verbs, content types, protocol tokens). +var opNamePattern = regexp.MustCompile(`^[A-Z][A-Za-z0-9]{3,}$`) + +// pathRoutedOps lists the operations of providers that route on HTTP method and +// path instead of an operation name, so no operation-name literal appears in +// their HandleRequest for the scan to find. Keep in sync by hand when these +// providers gain operations — the fidelity manifest test fails loudly if a +// fourth provider starts routing this way, since it would resolve to an empty +// operation set. +// +// ponytail: hand-maintained for three services; if the list keeps growing, +// derive the mapping from the generated OperationRoutes table instead. +var pathRoutedOps = map[string][]string{ + "s3": { + "AbortMultipartUpload", "CompleteMultipartUpload", "CopyObject", "CreateBucket", + "CreateMultipartUpload", "DeleteBucket", "DeleteBucketCors", "DeleteBucketPolicy", + "DeleteBucketTagging", "DeleteObject", "DeleteObjectTagging", "DeleteObjects", + "GetBucketAcl", "GetBucketCors", "GetBucketLocation", + "GetBucketNotificationConfiguration", "GetBucketPolicy", "GetBucketTagging", + "GetBucketVersioning", "GetObject", "GetObjectTagging", "HeadBucket", "HeadObject", + "ListBuckets", "ListMultipartUploads", "ListObjects", "ListObjectsV2", "ListParts", + "PutBucketAcl", "PutBucketCors", "PutBucketNotificationConfiguration", + "PutBucketPolicy", "PutBucketTagging", "PutBucketVersioning", "PutObject", + "PutObjectTagging", "UploadPart", + }, + "lambda": { + "AddPermission", "CreateAlias", "CreateEventSourceMapping", "CreateFunction", + "DeleteAlias", "DeleteEventSourceMapping", "DeleteFunction", "GetAlias", + "GetEventSourceMapping", "GetFunction", "GetPolicy", "Invoke", "ListAliases", + "ListEventSourceMappings", "ListFunctions", "ListTags", "ListVersionsByFunction", + "PublishVersion", "RemovePermission", "TagResource", "UntagResource", + "UpdateAlias", "UpdateEventSourceMapping", "UpdateFunctionCode", + "UpdateFunctionConfiguration", + }, + // InvokeModel and InvokeModelWithResponseStream belong to bedrock-runtime in + // AWS but are served by this provider, so they are hand-verified even though + // bedrock.json does not declare them. The manifest's universe is + // model ∪ hand-verified for exactly this case. + "bedrock": { + "CreateGuardrail", "CreateModelCustomizationJob", "DeleteCustomModel", + "DeleteGuardrail", "GetCustomModel", "GetFoundationModel", "GetGuardrail", + "GetModelCustomizationJob", "InvokeModel", "InvokeModelWithResponseStream", + "ListCustomModels", "ListFoundationModels", "ListGuardrails", + "ListModelCustomizationJobs", "ListTagsForResource", + "StopModelCustomizationJob", "TagResource", "UntagResource", "UpdateGuardrail", + }, +} + +// ProviderScan is what a service's source tells us about how it serves requests. +type ProviderScan struct { + // Operations are the operation names the provider dispatches by hand. + Operations []string +} + +// ScanProviders returns, per registered service ID, the operations its provider +// dispatches by hand. +// +// The scan is deliberately narrow: it reads only the case literals of the keyed +// switches inside a provider's HandleRequest, keyed by the receiver type that +// Register binds to the service ID. That scoping is what makes a literal scan +// trustworthy — attribute-path switches in helpers (identitystore matches on +// "DisplayName") and HTTP-verb switches in path resolvers (pipes matches on +// "POST") live outside HandleRequest and never contribute, and a package +// registering two services (iam also registers sts) splits by receiver type +// rather than by guesswork. +// +// It deliberately does *not* intersect with the Smithy model: providers serve +// operations no in-tree model declares, and discarding them would understate +// the surface. dynamodbstreams alone dispatches 22 operations against a model +// that declares 4. +func ScanProviders(servicesDir string) (map[string]ProviderScan, error) { + entries, err := os.ReadDir(servicesDir) + if err != nil { + return nil, fmt.Errorf("read services dir: %w", err) + } + + result := make(map[string]ProviderScan) + for _, entry := range entries { + if !entry.IsDir() { + continue + } + pkg, err := scanServiceDir(filepath.Join(servicesDir, entry.Name())) + if err != nil { + return nil, err + } + for id, recvType := range pkg.serviceTypes { + result[id] = ProviderScan{Operations: opsFor(id, pkg.dispatchedOps(recvType))} + } + } + return result, nil +} + +// opsFor resolves one service's operations, preferring the hand-maintained list +// for providers whose dispatch carries no operation-name literals. +func opsFor(serviceID string, scanned map[string]bool) []string { + if declared, ok := pathRoutedOps[serviceID]; ok { + return append([]string(nil), declared...) + } + ops := make([]string, 0, len(scanned)) + for op := range scanned { + ops = append(ops, op) + } + sort.Strings(ops) + return ops +} + +// packageScan is one service package's providers, keyed by receiver type name. +type packageScan struct { + // serviceTypes maps a registered service ID to the provider type Register + // returns for it. + serviceTypes map[string]string + // methods maps a provider type to its methods by name, so the scan can + // follow HandleRequest into whatever it delegates dispatch to. + methods map[string]map[string]*ast.FuncDecl +} + +func scanServiceDir(dir string) (packageScan, error) { + entries, err := os.ReadDir(dir) + if err != nil { + return packageScan{}, fmt.Errorf("read %s: %w", dir, err) + } + + pkg := packageScan{ + serviceTypes: make(map[string]string), + methods: make(map[string]map[string]*ast.FuncDecl), + } + fset := token.NewFileSet() + + for _, entry := range entries { + name := entry.Name() + if entry.IsDir() || !strings.HasSuffix(name, ".go") || strings.HasSuffix(name, "_test.go") { + continue + } + path := filepath.Join(dir, name) + file, err := parser.ParseFile(fset, path, nil, 0) + if err != nil { + return packageScan{}, fmt.Errorf("parse %s: %w", path, err) + } + + ast.Inspect(file, func(n ast.Node) bool { + switch node := n.(type) { + case *ast.CallExpr: + if id, typeName, ok := registeredService(node); ok { + pkg.serviceTypes[id] = typeName + } + case *ast.FuncDecl: + if recv, ok := receiverType(node); ok { + if pkg.methods[recv] == nil { + pkg.methods[recv] = make(map[string]*ast.FuncDecl) + } + pkg.methods[recv][node.Name.Name] = node + } + } + return true + }) + } + return pkg, nil +} + +// dispatchedOps collects the operations a provider type dispatches, starting at +// its HandleRequest and following the methods it delegates to. Not every +// provider switches in HandleRequest itself: sqs branches on protocol into +// handleQueryRequest/handleJSONRequest, and kafka wraps handleRequest to +// camelCase the response. +func (p packageScan) dispatchedOps(recvType string) map[string]bool { + ops := make(map[string]bool) + visited := make(map[string]bool) + + var walk func(name string) + walk = func(name string) { + fn := p.methods[recvType][name] + if fn == nil || fn.Body == nil || visited[name] { + return + } + visited[name] = true + + collectCaseLiterals(fn.Body, ops) + for _, delegate := range delegateCalls(fn) { + walk(delegate) + } + } + walk("HandleRequest") + return ops +} + +// collectCaseLiterals reads the case literals of every keyed switch in a body. +// Keyed is the point: `switch op { case "GetItem": }` dispatches, whereas a +// tagless `switch { case remaining == 0: }` is control flow whose cases are +// expressions, not operation names. +func collectCaseLiterals(body *ast.BlockStmt, ops map[string]bool) { + ast.Inspect(body, func(n ast.Node) bool { + sw, ok := n.(*ast.SwitchStmt) + if !ok || sw.Tag == nil { + return true + } + for _, stmt := range sw.Body.List { + clause, ok := stmt.(*ast.CaseClause) + if !ok { + continue + } + for _, expr := range clause.List { + if lit, ok := stringLiteral(expr); ok && opNamePattern.MatchString(lit) { + ops[lit] = true + } + } + } + return true + }) +} + +// delegateCalls returns the names of same-receiver methods a function hands +// dispatch off to, so the scan can follow them. +// +// Inside a dispatch switch only the default clause counts. `case "GetApi": +// p.getApi(…)` is a per-operation handler, and following it would drag every +// helper's internal switch into the operation set; `default: p.handleStub(op)` +// is the rest of the dispatch, and appsync serves 37 operations through one. +func delegateCalls(fn *ast.FuncDecl) []string { + recv := receiverName(fn) + if recv == "" { + return nil + } + var names []string + var visit func(n ast.Node) bool + visit = func(n ast.Node) bool { + switch node := n.(type) { + case *ast.SwitchStmt: + for _, stmt := range node.Body.List { + clause, ok := stmt.(*ast.CaseClause) + if !ok || clause.List != nil { + continue + } + for _, s := range clause.Body { + ast.Inspect(s, visit) + } + } + return false + case *ast.TypeSwitchStmt: + return false + case *ast.CallExpr: + if sel, ok := node.Fun.(*ast.SelectorExpr); ok { + if ident, ok := sel.X.(*ast.Ident); ok && ident.Name == recv { + names = append(names, sel.Sel.Name) + } + } + } + return true + } + ast.Inspect(fn.Body, visit) + return names +} + +// receiverName returns "p" from `func (p *SQSProvider) …`. +func receiverName(fn *ast.FuncDecl) string { + if fn.Recv == nil || len(fn.Recv.List) != 1 || len(fn.Recv.List[0].Names) != 1 { + return "" + } + return fn.Recv.List[0].Names[0].Name +} + +// receiverType returns "SQSProvider" from `func (p *SQSProvider) …`. +func receiverType(fn *ast.FuncDecl) (string, bool) { + if fn.Recv == nil || len(fn.Recv.List) != 1 { + return "", false + } + expr := fn.Recv.List[0].Type + if star, ok := expr.(*ast.StarExpr); ok { + expr = star.X + } + ident, ok := expr.(*ast.Ident) + if !ok { + return "", false + } + return ident.Name, true +} + +// registeredService extracts ("sqs", "SQSProvider") from +// `plugin.DefaultRegistry.Register("sqs", func() plugin.ServicePlugin { return &SQSProvider{} })`. +func registeredService(call *ast.CallExpr) (serviceID, typeName string, ok bool) { + sel, isSel := call.Fun.(*ast.SelectorExpr) + if !isSel || sel.Sel.Name != "Register" || len(call.Args) != 2 { + return "", "", false + } + serviceID, ok = stringLiteral(call.Args[0]) + if !ok { + return "", "", false + } + factory, isFunc := call.Args[1].(*ast.FuncLit) + if !isFunc || factory.Body == nil { + return "", "", false + } + for _, stmt := range factory.Body.List { + ret, isRet := stmt.(*ast.ReturnStmt) + if !isRet || len(ret.Results) != 1 { + continue + } + if name, found := constructedType(ret.Results[0]); found { + return serviceID, name, true + } + } + return "", "", false +} + +// constructedType returns "SQSProvider" from `&SQSProvider{…}` or `NewSQSProvider()`. +func constructedType(expr ast.Expr) (string, bool) { + if unary, ok := expr.(*ast.UnaryExpr); ok { + expr = unary.X + } + switch node := expr.(type) { + case *ast.CompositeLit: + if ident, ok := node.Type.(*ast.Ident); ok { + return ident.Name, true + } + case *ast.CallExpr: + if ident, ok := node.Fun.(*ast.Ident); ok { + return strings.TrimPrefix(ident.Name, "New"), true + } + } + return "", false +} + +func stringLiteral(expr ast.Expr) (string, bool) { + lit, ok := expr.(*ast.BasicLit) + if !ok || lit.Kind != token.STRING { + return "", false + } + s, err := strconv.Unquote(lit.Value) + if err != nil { + return "", false + } + return s, true +} diff --git a/internal/codegen/scan_handverified_test.go b/internal/codegen/scan_handverified_test.go new file mode 100644 index 0000000..e418c5b --- /dev/null +++ b/internal/codegen/scan_handverified_test.go @@ -0,0 +1,178 @@ +// SPDX-License-Identifier: Apache-2.0 + +// internal/codegen/scan_handverified_test.go +package codegen + +import ( + "encoding/json" + "os" + "path/filepath" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +// modelOperationsForTest reads the real Smithy models so the scan is checked +// against the same input the generator uses. +func modelOperationsForTest(t *testing.T) map[string][]string { + t.Helper() + entries, err := os.ReadDir("../../smithy-models") + require.NoError(t, err) + + ops := make(map[string][]string) + for _, e := range entries { + if e.IsDir() || filepath.Ext(e.Name()) != ".json" { + continue + } + data, err := os.ReadFile(filepath.Join("../../smithy-models", e.Name())) + require.NoError(t, err) + model, err := ParseSmithyJSON(data) + if err != nil { + continue + } + names := make([]string, 0, len(model.Operations)) + for _, op := range model.Operations { + names = append(names, op.Name) + } + ops[model.ServiceID] = names + } + return ops +} + +func TestScanProviders(t *testing.T) { + scans, err := ScanProviders("../services") + require.NoError(t, err) + got := make(map[string][]string, len(scans)) + for id, scan := range scans { + got[id] = scan.Operations + } + + // Every registered service resolves; the count tracks internal/services. + assert.GreaterOrEqual(t, len(got), 100, "expected the full service fleet") + + // Query and JSON providers resolve from their dispatch literals. + assert.Contains(t, got["acm"], "DescribeCertificate") + assert.Contains(t, got["sqs"], "SendMessage") + assert.Contains(t, got["dynamodb"], "PutItem") + + // A package registering two services splits by receiver type: sts lives in + // internal/services/iam, and neither service claims the other's operations. + assert.Contains(t, got["sts"], "AssumeRole") + assert.NotContains(t, got["iam"], "AssumeRole") + assert.Contains(t, got["iam"], "CreateUser") + + // Path-routed providers come from the override. + assert.Contains(t, got["s3"], "PutObject") + assert.Contains(t, got["bedrock"], "InvokeModel") + + // No service is silently empty — an empty set means the scan lost a provider. + for id, ops := range got { + assert.NotEmpty(t, ops, "%s resolved no hand-verified operations", id) + } +} + +// TestScanProvidersKeepsOperationsTheModelOmits is the regression that made the +// scan drop real coverage: it used to intersect with the Smithy model, so every +// operation a provider serves beyond its in-tree model vanished from the +// manifest. dynamodbstreams dispatches 22 operations against a 4-operation +// model; acm serves UpdateCertificate, which its model does not declare. +func TestScanProvidersKeepsOperationsTheModelOmits(t *testing.T) { + scans, err := ScanProviders("../services") + require.NoError(t, err) + models := modelOperationsForTest(t) + + assert.Greater(t, len(scans["dynamodbstreams"].Operations), len(models["dynamodbstreams"]), + "the provider serves more than the model declares") + assert.Contains(t, scans["dynamodbstreams"].Operations, "ListStreamArns") + assert.Contains(t, scans["acm"].Operations, "UpdateCertificate") +} + +// TestScanProvidersIgnoresLiteralsOutsideDispatch is the other half of dropping +// the model intersection: without it, the only thing keeping non-operation +// strings out of the manifest is the scan's scope. Attribute-path switches and +// HTTP-verb switches live in helpers, not HandleRequest, and must not leak — +// identitystore matched on "DisplayName", pipes on "POST". +func TestScanProvidersIgnoresLiteralsOutsideDispatch(t *testing.T) { + dir := t.TempDir() + pkg := filepath.Join(dir, "demo") + require.NoError(t, os.MkdirAll(pkg, 0o755)) + + src := `package demo + +func init() { + plugin.DefaultRegistry.Register("demo", func() plugin.ServicePlugin { return &Provider{} }) +} + +func (p *Provider) HandleRequest(op string) string { + switch op { + case "GetWidget": + return "get" + case "ListWidgets": + return "list" + case "GET", "id": + return "not an operation name" + } + return "" +} + +func applyPatch(path string) string { + switch path { + case "DisplayName", "Description": + return "attribute, not an operation" + } + return "" +} +` + require.NoError(t, os.WriteFile(filepath.Join(pkg, "provider.go"), []byte(src), 0o600)) + + got, err := ScanProviders(dir) + require.NoError(t, err) + assert.Equal(t, []string{"GetWidget", "ListWidgets"}, got["demo"].Operations) +} + +func TestScanProvidersRealServicesCarryNoStrays(t *testing.T) { + scans, err := ScanProviders("../services") + require.NoError(t, err) + + for _, stray := range []string{"DisplayName", "Description", "Emails"} { + assert.NotContains(t, scans["identitystore"].Operations, stray) + } + for _, stray := range []string{"POST", "DELETE"} { + assert.NotContains(t, scans["pipes"].Operations, stray) + } +} + +// TestPathRoutedOverridesAreReal guards the hand-maintained override: every +// declared operation must exist in the service's model, except the documented +// bedrock-runtime borrows. +func TestPathRoutedOverridesAreReal(t *testing.T) { + models := modelOperationsForTest(t) + // bedrock-runtime operations, served by the bedrock provider. See pathRoutedOps. + known := map[string]bool{"InvokeModel": true, "InvokeModelWithResponseStream": true} + + for id, declared := range pathRoutedOps { + modelSet := make(map[string]bool, len(models[id])) + for _, op := range models[id] { + modelSet[op] = true + } + for _, op := range declared { + if known[op] { + continue + } + assert.True(t, modelSet[op], "%s: %q is not an operation in the model", id, op) + } + } +} + +// TestScanProvidersIsDeterministic keeps generated output stable across runs. +func TestScanProvidersIsDeterministic(t *testing.T) { + first, err := ScanProviders("../services") + require.NoError(t, err) + second, err := ScanProviders("../services") + require.NoError(t, err) + + a, _ := json.Marshal(first) + b, _ := json.Marshal(second) + assert.JSONEq(t, string(a), string(b)) +} diff --git a/internal/codegen/templates/fidelity_manifest.go.tmpl b/internal/codegen/templates/fidelity_manifest.go.tmpl new file mode 100644 index 0000000..237e044 --- /dev/null +++ b/internal/codegen/templates/fidelity_manifest.go.tmpl @@ -0,0 +1,73 @@ +// Code generated by devcloud codegen. DO NOT EDIT. +// SPDX-License-Identifier: Apache-2.0 + +// Package fidelity declares, for every operation DevCloud knows about, how much +// of AWS's behaviour it actually reproduces. It is the machine-readable answer +// to "can I trust this call?" — see docs/fidelity-manifest.md. +// +// The manifest is derived, never hand-written: the operation universe comes from +// the in-tree Smithy models unioned with what providers serve, auto-crud from +// the generated CRUD registry, and hand-verified from the dispatch literals of +// each provider's HandleRequest. +package fidelity + +// Tier is how faithfully an operation is served. +type Tier string + +const ( + // TierHandVerified is implemented by the service's provider. Highest fidelity. + TierHandVerified Tier = "hand-verified" + // TierAutoCRUD is served by the generic CRUD engine with plausible, + // store-backed responses: no validation, no business logic. + TierAutoCRUD Tier = "auto-crud" + // TierUnimplemented is not served: the call fails with an error rather than + // a made-up success. The error is the provider's own, not one shared code — + // JSON and Query services fall through to InvalidAction (HTTP 400), while + // the path-routed providers answer in their own vocabulary (s3 + // MethodNotAllowed, lambda ResourceNotFoundException, bedrock + // UnsupportedOperation). + TierUnimplemented Tier = "unimplemented" +) + +// Service is one service's operations and their tiers. +type Service struct { + // ModelBacked reports whether an in-tree Smithy model enumerates this + // service's API. When false the unimplemented tail is not knowable, so the + // manifest lists only what DevCloud serves. + ModelBacked bool + Operations map[string]Tier +} + +// Services maps a registered service ID to its operations. +var Services = map[string]Service{ +{{- range .Services }} + "{{ .ServiceID }}": {ModelBacked: {{ .ModelBacked }}, Operations: map[string]Tier{ +{{- range .Ops }} + "{{ .Name }}": Tier{{ .TierConst }}, +{{- end }} + }}, +{{- end }} +} + +// Lookup returns the tier of one operation. The second result is false when the +// service or operation is unknown to DevCloud — which is not the same as +// unimplemented, since an unknown service is not served at all. +func Lookup(service, op string) (Tier, bool) { + svc, ok := Services[service] + if !ok { + return "", false + } + tier, ok := svc.Operations[op] + return tier, ok +} + +// Counts returns the number of operations per tier across every service. +func Counts() map[Tier]int { + counts := make(map[Tier]int, 3) + for _, svc := range Services { + for _, tier := range svc.Operations { + counts[tier]++ + } + } + return counts +} diff --git a/internal/generated/bedrock/base_provider.go b/internal/generated/bedrock/base_provider.go index ee98a33..a2f5341 100644 --- a/internal/generated/bedrock/base_provider.go +++ b/internal/generated/bedrock/base_provider.go @@ -3,9 +3,414 @@ package bedrock import ( + "context" "fmt" ) var ErrNotImplemented = fmt.Errorf("operation not implemented") type BaseProvider struct{} + +func (b *BaseProvider) BatchDeleteEvaluationJob(ctx context.Context, input *BatchDeleteEvaluationJobRequest) (*BatchDeleteEvaluationJobResponse, error) { + return nil, fmt.Errorf("BatchDeleteEvaluationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CancelAutomatedReasoningPolicyBuildWorkflow(ctx context.Context, input *CancelAutomatedReasoningPolicyBuildWorkflowRequest) (*CancelAutomatedReasoningPolicyBuildWorkflowResponse, error) { + return nil, fmt.Errorf("CancelAutomatedReasoningPolicyBuildWorkflow: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateAutomatedReasoningPolicy(ctx context.Context, input *CreateAutomatedReasoningPolicyRequest) (*CreateAutomatedReasoningPolicyResponse, error) { + return nil, fmt.Errorf("CreateAutomatedReasoningPolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateAutomatedReasoningPolicyTestCase(ctx context.Context, input *CreateAutomatedReasoningPolicyTestCaseRequest) (*CreateAutomatedReasoningPolicyTestCaseResponse, error) { + return nil, fmt.Errorf("CreateAutomatedReasoningPolicyTestCase: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateAutomatedReasoningPolicyVersion(ctx context.Context, input *CreateAutomatedReasoningPolicyVersionRequest) (*CreateAutomatedReasoningPolicyVersionResponse, error) { + return nil, fmt.Errorf("CreateAutomatedReasoningPolicyVersion: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateCustomModel(ctx context.Context, input *CreateCustomModelRequest) (*CreateCustomModelResponse, error) { + return nil, fmt.Errorf("CreateCustomModel: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateCustomModelDeployment(ctx context.Context, input *CreateCustomModelDeploymentRequest) (*CreateCustomModelDeploymentResponse, error) { + return nil, fmt.Errorf("CreateCustomModelDeployment: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateEvaluationJob(ctx context.Context, input *CreateEvaluationJobRequest) (*CreateEvaluationJobResponse, error) { + return nil, fmt.Errorf("CreateEvaluationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateFoundationModelAgreement(ctx context.Context, input *CreateFoundationModelAgreementRequest) (*CreateFoundationModelAgreementResponse, error) { + return nil, fmt.Errorf("CreateFoundationModelAgreement: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateGuardrail(ctx context.Context, input *CreateGuardrailRequest) (*CreateGuardrailResponse, error) { + return nil, fmt.Errorf("CreateGuardrail: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateGuardrailVersion(ctx context.Context, input *CreateGuardrailVersionRequest) (*CreateGuardrailVersionResponse, error) { + return nil, fmt.Errorf("CreateGuardrailVersion: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateInferenceProfile(ctx context.Context, input *CreateInferenceProfileRequest) (*CreateInferenceProfileResponse, error) { + return nil, fmt.Errorf("CreateInferenceProfile: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateMarketplaceModelEndpoint(ctx context.Context, input *CreateMarketplaceModelEndpointRequest) (*CreateMarketplaceModelEndpointResponse, error) { + return nil, fmt.Errorf("CreateMarketplaceModelEndpoint: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateModelCopyJob(ctx context.Context, input *CreateModelCopyJobRequest) (*CreateModelCopyJobResponse, error) { + return nil, fmt.Errorf("CreateModelCopyJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateModelCustomizationJob(ctx context.Context, input *CreateModelCustomizationJobRequest) (*CreateModelCustomizationJobResponse, error) { + return nil, fmt.Errorf("CreateModelCustomizationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateModelImportJob(ctx context.Context, input *CreateModelImportJobRequest) (*CreateModelImportJobResponse, error) { + return nil, fmt.Errorf("CreateModelImportJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateModelInvocationJob(ctx context.Context, input *CreateModelInvocationJobRequest) (*CreateModelInvocationJobResponse, error) { + return nil, fmt.Errorf("CreateModelInvocationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreatePromptRouter(ctx context.Context, input *CreatePromptRouterRequest) (*CreatePromptRouterResponse, error) { + return nil, fmt.Errorf("CreatePromptRouter: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateProvisionedModelThroughput(ctx context.Context, input *CreateProvisionedModelThroughputRequest) (*CreateProvisionedModelThroughputResponse, error) { + return nil, fmt.Errorf("CreateProvisionedModelThroughput: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteAutomatedReasoningPolicy(ctx context.Context, input *DeleteAutomatedReasoningPolicyRequest) (*DeleteAutomatedReasoningPolicyResponse, error) { + return nil, fmt.Errorf("DeleteAutomatedReasoningPolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteAutomatedReasoningPolicyBuildWorkflow(ctx context.Context, input *DeleteAutomatedReasoningPolicyBuildWorkflowRequest) (*DeleteAutomatedReasoningPolicyBuildWorkflowResponse, error) { + return nil, fmt.Errorf("DeleteAutomatedReasoningPolicyBuildWorkflow: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteAutomatedReasoningPolicyTestCase(ctx context.Context, input *DeleteAutomatedReasoningPolicyTestCaseRequest) (*DeleteAutomatedReasoningPolicyTestCaseResponse, error) { + return nil, fmt.Errorf("DeleteAutomatedReasoningPolicyTestCase: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteCustomModel(ctx context.Context, input *DeleteCustomModelRequest) (*DeleteCustomModelResponse, error) { + return nil, fmt.Errorf("DeleteCustomModel: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteCustomModelDeployment(ctx context.Context, input *DeleteCustomModelDeploymentRequest) (*DeleteCustomModelDeploymentResponse, error) { + return nil, fmt.Errorf("DeleteCustomModelDeployment: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteEnforcedGuardrailConfiguration(ctx context.Context, input *DeleteEnforcedGuardrailConfigurationRequest) (*DeleteEnforcedGuardrailConfigurationResponse, error) { + return nil, fmt.Errorf("DeleteEnforcedGuardrailConfiguration: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteFoundationModelAgreement(ctx context.Context, input *DeleteFoundationModelAgreementRequest) (*DeleteFoundationModelAgreementResponse, error) { + return nil, fmt.Errorf("DeleteFoundationModelAgreement: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteGuardrail(ctx context.Context, input *DeleteGuardrailRequest) (*DeleteGuardrailResponse, error) { + return nil, fmt.Errorf("DeleteGuardrail: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteImportedModel(ctx context.Context, input *DeleteImportedModelRequest) (*DeleteImportedModelResponse, error) { + return nil, fmt.Errorf("DeleteImportedModel: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteInferenceProfile(ctx context.Context, input *DeleteInferenceProfileRequest) (*DeleteInferenceProfileResponse, error) { + return nil, fmt.Errorf("DeleteInferenceProfile: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteMarketplaceModelEndpoint(ctx context.Context, input *DeleteMarketplaceModelEndpointRequest) (*DeleteMarketplaceModelEndpointResponse, error) { + return nil, fmt.Errorf("DeleteMarketplaceModelEndpoint: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteModelInvocationLoggingConfiguration(ctx context.Context, input *DeleteModelInvocationLoggingConfigurationRequest) (*DeleteModelInvocationLoggingConfigurationResponse, error) { + return nil, fmt.Errorf("DeleteModelInvocationLoggingConfiguration: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeletePromptRouter(ctx context.Context, input *DeletePromptRouterRequest) (*DeletePromptRouterResponse, error) { + return nil, fmt.Errorf("DeletePromptRouter: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteProvisionedModelThroughput(ctx context.Context, input *DeleteProvisionedModelThroughputRequest) (*DeleteProvisionedModelThroughputResponse, error) { + return nil, fmt.Errorf("DeleteProvisionedModelThroughput: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteResourcePolicy(ctx context.Context, input *DeleteResourcePolicyRequest) (*DeleteResourcePolicyResponse, error) { + return nil, fmt.Errorf("DeleteResourcePolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeregisterMarketplaceModelEndpoint(ctx context.Context, input *DeregisterMarketplaceModelEndpointRequest) (*DeregisterMarketplaceModelEndpointResponse, error) { + return nil, fmt.Errorf("DeregisterMarketplaceModelEndpoint: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ExportAutomatedReasoningPolicyVersion(ctx context.Context, input *ExportAutomatedReasoningPolicyVersionRequest) (*ExportAutomatedReasoningPolicyVersionResponse, error) { + return nil, fmt.Errorf("ExportAutomatedReasoningPolicyVersion: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetAutomatedReasoningPolicy(ctx context.Context, input *GetAutomatedReasoningPolicyRequest) (*GetAutomatedReasoningPolicyResponse, error) { + return nil, fmt.Errorf("GetAutomatedReasoningPolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetAutomatedReasoningPolicyAnnotations(ctx context.Context, input *GetAutomatedReasoningPolicyAnnotationsRequest) (*GetAutomatedReasoningPolicyAnnotationsResponse, error) { + return nil, fmt.Errorf("GetAutomatedReasoningPolicyAnnotations: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetAutomatedReasoningPolicyBuildWorkflow(ctx context.Context, input *GetAutomatedReasoningPolicyBuildWorkflowRequest) (*GetAutomatedReasoningPolicyBuildWorkflowResponse, error) { + return nil, fmt.Errorf("GetAutomatedReasoningPolicyBuildWorkflow: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetAutomatedReasoningPolicyBuildWorkflowResultAssets(ctx context.Context, input *GetAutomatedReasoningPolicyBuildWorkflowResultAssetsRequest) (*GetAutomatedReasoningPolicyBuildWorkflowResultAssetsResponse, error) { + return nil, fmt.Errorf("GetAutomatedReasoningPolicyBuildWorkflowResultAssets: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetAutomatedReasoningPolicyNextScenario(ctx context.Context, input *GetAutomatedReasoningPolicyNextScenarioRequest) (*GetAutomatedReasoningPolicyNextScenarioResponse, error) { + return nil, fmt.Errorf("GetAutomatedReasoningPolicyNextScenario: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetAutomatedReasoningPolicyTestCase(ctx context.Context, input *GetAutomatedReasoningPolicyTestCaseRequest) (*GetAutomatedReasoningPolicyTestCaseResponse, error) { + return nil, fmt.Errorf("GetAutomatedReasoningPolicyTestCase: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetAutomatedReasoningPolicyTestResult(ctx context.Context, input *GetAutomatedReasoningPolicyTestResultRequest) (*GetAutomatedReasoningPolicyTestResultResponse, error) { + return nil, fmt.Errorf("GetAutomatedReasoningPolicyTestResult: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetCustomModel(ctx context.Context, input *GetCustomModelRequest) (*GetCustomModelResponse, error) { + return nil, fmt.Errorf("GetCustomModel: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetCustomModelDeployment(ctx context.Context, input *GetCustomModelDeploymentRequest) (*GetCustomModelDeploymentResponse, error) { + return nil, fmt.Errorf("GetCustomModelDeployment: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetEvaluationJob(ctx context.Context, input *GetEvaluationJobRequest) (*GetEvaluationJobResponse, error) { + return nil, fmt.Errorf("GetEvaluationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFoundationModel(ctx context.Context, input *GetFoundationModelRequest) (*GetFoundationModelResponse, error) { + return nil, fmt.Errorf("GetFoundationModel: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFoundationModelAvailability(ctx context.Context, input *GetFoundationModelAvailabilityRequest) (*GetFoundationModelAvailabilityResponse, error) { + return nil, fmt.Errorf("GetFoundationModelAvailability: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetGuardrail(ctx context.Context, input *GetGuardrailRequest) (*GetGuardrailResponse, error) { + return nil, fmt.Errorf("GetGuardrail: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetImportedModel(ctx context.Context, input *GetImportedModelRequest) (*GetImportedModelResponse, error) { + return nil, fmt.Errorf("GetImportedModel: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetInferenceProfile(ctx context.Context, input *GetInferenceProfileRequest) (*GetInferenceProfileResponse, error) { + return nil, fmt.Errorf("GetInferenceProfile: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetMarketplaceModelEndpoint(ctx context.Context, input *GetMarketplaceModelEndpointRequest) (*GetMarketplaceModelEndpointResponse, error) { + return nil, fmt.Errorf("GetMarketplaceModelEndpoint: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetModelCopyJob(ctx context.Context, input *GetModelCopyJobRequest) (*GetModelCopyJobResponse, error) { + return nil, fmt.Errorf("GetModelCopyJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetModelCustomizationJob(ctx context.Context, input *GetModelCustomizationJobRequest) (*GetModelCustomizationJobResponse, error) { + return nil, fmt.Errorf("GetModelCustomizationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetModelImportJob(ctx context.Context, input *GetModelImportJobRequest) (*GetModelImportJobResponse, error) { + return nil, fmt.Errorf("GetModelImportJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetModelInvocationJob(ctx context.Context, input *GetModelInvocationJobRequest) (*GetModelInvocationJobResponse, error) { + return nil, fmt.Errorf("GetModelInvocationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetModelInvocationLoggingConfiguration(ctx context.Context, input *GetModelInvocationLoggingConfigurationRequest) (*GetModelInvocationLoggingConfigurationResponse, error) { + return nil, fmt.Errorf("GetModelInvocationLoggingConfiguration: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetPromptRouter(ctx context.Context, input *GetPromptRouterRequest) (*GetPromptRouterResponse, error) { + return nil, fmt.Errorf("GetPromptRouter: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetProvisionedModelThroughput(ctx context.Context, input *GetProvisionedModelThroughputRequest) (*GetProvisionedModelThroughputResponse, error) { + return nil, fmt.Errorf("GetProvisionedModelThroughput: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetResourcePolicy(ctx context.Context, input *GetResourcePolicyRequest) (*GetResourcePolicyResponse, error) { + return nil, fmt.Errorf("GetResourcePolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetUseCaseForModelAccess(ctx context.Context, input *GetUseCaseForModelAccessRequest) (*GetUseCaseForModelAccessResponse, error) { + return nil, fmt.Errorf("GetUseCaseForModelAccess: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListAutomatedReasoningPolicies(ctx context.Context, input *ListAutomatedReasoningPoliciesRequest) (*ListAutomatedReasoningPoliciesResponse, error) { + return nil, fmt.Errorf("ListAutomatedReasoningPolicies: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListAutomatedReasoningPolicyBuildWorkflows(ctx context.Context, input *ListAutomatedReasoningPolicyBuildWorkflowsRequest) (*ListAutomatedReasoningPolicyBuildWorkflowsResponse, error) { + return nil, fmt.Errorf("ListAutomatedReasoningPolicyBuildWorkflows: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListAutomatedReasoningPolicyTestCases(ctx context.Context, input *ListAutomatedReasoningPolicyTestCasesRequest) (*ListAutomatedReasoningPolicyTestCasesResponse, error) { + return nil, fmt.Errorf("ListAutomatedReasoningPolicyTestCases: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListAutomatedReasoningPolicyTestResults(ctx context.Context, input *ListAutomatedReasoningPolicyTestResultsRequest) (*ListAutomatedReasoningPolicyTestResultsResponse, error) { + return nil, fmt.Errorf("ListAutomatedReasoningPolicyTestResults: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListCustomModelDeployments(ctx context.Context, input *ListCustomModelDeploymentsRequest) (*ListCustomModelDeploymentsResponse, error) { + return nil, fmt.Errorf("ListCustomModelDeployments: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListCustomModels(ctx context.Context, input *ListCustomModelsRequest) (*ListCustomModelsResponse, error) { + return nil, fmt.Errorf("ListCustomModels: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListEnforcedGuardrailsConfiguration(ctx context.Context, input *ListEnforcedGuardrailsConfigurationRequest) (*ListEnforcedGuardrailsConfigurationResponse, error) { + return nil, fmt.Errorf("ListEnforcedGuardrailsConfiguration: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListEvaluationJobs(ctx context.Context, input *ListEvaluationJobsRequest) (*ListEvaluationJobsResponse, error) { + return nil, fmt.Errorf("ListEvaluationJobs: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListFoundationModelAgreementOffers(ctx context.Context, input *ListFoundationModelAgreementOffersRequest) (*ListFoundationModelAgreementOffersResponse, error) { + return nil, fmt.Errorf("ListFoundationModelAgreementOffers: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListFoundationModels(ctx context.Context, input *ListFoundationModelsRequest) (*ListFoundationModelsResponse, error) { + return nil, fmt.Errorf("ListFoundationModels: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListGuardrails(ctx context.Context, input *ListGuardrailsRequest) (*ListGuardrailsResponse, error) { + return nil, fmt.Errorf("ListGuardrails: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListImportedModels(ctx context.Context, input *ListImportedModelsRequest) (*ListImportedModelsResponse, error) { + return nil, fmt.Errorf("ListImportedModels: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListInferenceProfiles(ctx context.Context, input *ListInferenceProfilesRequest) (*ListInferenceProfilesResponse, error) { + return nil, fmt.Errorf("ListInferenceProfiles: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListMarketplaceModelEndpoints(ctx context.Context, input *ListMarketplaceModelEndpointsRequest) (*ListMarketplaceModelEndpointsResponse, error) { + return nil, fmt.Errorf("ListMarketplaceModelEndpoints: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListModelCopyJobs(ctx context.Context, input *ListModelCopyJobsRequest) (*ListModelCopyJobsResponse, error) { + return nil, fmt.Errorf("ListModelCopyJobs: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListModelCustomizationJobs(ctx context.Context, input *ListModelCustomizationJobsRequest) (*ListModelCustomizationJobsResponse, error) { + return nil, fmt.Errorf("ListModelCustomizationJobs: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListModelImportJobs(ctx context.Context, input *ListModelImportJobsRequest) (*ListModelImportJobsResponse, error) { + return nil, fmt.Errorf("ListModelImportJobs: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListModelInvocationJobs(ctx context.Context, input *ListModelInvocationJobsRequest) (*ListModelInvocationJobsResponse, error) { + return nil, fmt.Errorf("ListModelInvocationJobs: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListPromptRouters(ctx context.Context, input *ListPromptRoutersRequest) (*ListPromptRoutersResponse, error) { + return nil, fmt.Errorf("ListPromptRouters: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListProvisionedModelThroughputs(ctx context.Context, input *ListProvisionedModelThroughputsRequest) (*ListProvisionedModelThroughputsResponse, error) { + return nil, fmt.Errorf("ListProvisionedModelThroughputs: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListTagsForResource(ctx context.Context, input *ListTagsForResourceRequest) (*ListTagsForResourceResponse, error) { + return nil, fmt.Errorf("ListTagsForResource: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutEnforcedGuardrailConfiguration(ctx context.Context, input *PutEnforcedGuardrailConfigurationRequest) (*PutEnforcedGuardrailConfigurationResponse, error) { + return nil, fmt.Errorf("PutEnforcedGuardrailConfiguration: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutModelInvocationLoggingConfiguration(ctx context.Context, input *PutModelInvocationLoggingConfigurationRequest) (*PutModelInvocationLoggingConfigurationResponse, error) { + return nil, fmt.Errorf("PutModelInvocationLoggingConfiguration: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutResourcePolicy(ctx context.Context, input *PutResourcePolicyRequest) (*PutResourcePolicyResponse, error) { + return nil, fmt.Errorf("PutResourcePolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutUseCaseForModelAccess(ctx context.Context, input *PutUseCaseForModelAccessRequest) (*PutUseCaseForModelAccessResponse, error) { + return nil, fmt.Errorf("PutUseCaseForModelAccess: %w", ErrNotImplemented) +} + +func (b *BaseProvider) RegisterMarketplaceModelEndpoint(ctx context.Context, input *RegisterMarketplaceModelEndpointRequest) (*RegisterMarketplaceModelEndpointResponse, error) { + return nil, fmt.Errorf("RegisterMarketplaceModelEndpoint: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StartAutomatedReasoningPolicyBuildWorkflow(ctx context.Context, input *StartAutomatedReasoningPolicyBuildWorkflowRequest) (*StartAutomatedReasoningPolicyBuildWorkflowResponse, error) { + return nil, fmt.Errorf("StartAutomatedReasoningPolicyBuildWorkflow: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StartAutomatedReasoningPolicyTestWorkflow(ctx context.Context, input *StartAutomatedReasoningPolicyTestWorkflowRequest) (*StartAutomatedReasoningPolicyTestWorkflowResponse, error) { + return nil, fmt.Errorf("StartAutomatedReasoningPolicyTestWorkflow: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StopEvaluationJob(ctx context.Context, input *StopEvaluationJobRequest) (*StopEvaluationJobResponse, error) { + return nil, fmt.Errorf("StopEvaluationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StopModelCustomizationJob(ctx context.Context, input *StopModelCustomizationJobRequest) (*StopModelCustomizationJobResponse, error) { + return nil, fmt.Errorf("StopModelCustomizationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StopModelInvocationJob(ctx context.Context, input *StopModelInvocationJobRequest) (*StopModelInvocationJobResponse, error) { + return nil, fmt.Errorf("StopModelInvocationJob: %w", ErrNotImplemented) +} + +func (b *BaseProvider) TagResource(ctx context.Context, input *TagResourceRequest) (*TagResourceResponse, error) { + return nil, fmt.Errorf("TagResource: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UntagResource(ctx context.Context, input *UntagResourceRequest) (*UntagResourceResponse, error) { + return nil, fmt.Errorf("UntagResource: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateAutomatedReasoningPolicy(ctx context.Context, input *UpdateAutomatedReasoningPolicyRequest) (*UpdateAutomatedReasoningPolicyResponse, error) { + return nil, fmt.Errorf("UpdateAutomatedReasoningPolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateAutomatedReasoningPolicyAnnotations(ctx context.Context, input *UpdateAutomatedReasoningPolicyAnnotationsRequest) (*UpdateAutomatedReasoningPolicyAnnotationsResponse, error) { + return nil, fmt.Errorf("UpdateAutomatedReasoningPolicyAnnotations: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateAutomatedReasoningPolicyTestCase(ctx context.Context, input *UpdateAutomatedReasoningPolicyTestCaseRequest) (*UpdateAutomatedReasoningPolicyTestCaseResponse, error) { + return nil, fmt.Errorf("UpdateAutomatedReasoningPolicyTestCase: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateCustomModelDeployment(ctx context.Context, input *UpdateCustomModelDeploymentRequest) (*UpdateCustomModelDeploymentResponse, error) { + return nil, fmt.Errorf("UpdateCustomModelDeployment: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateGuardrail(ctx context.Context, input *UpdateGuardrailRequest) (*UpdateGuardrailResponse, error) { + return nil, fmt.Errorf("UpdateGuardrail: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateMarketplaceModelEndpoint(ctx context.Context, input *UpdateMarketplaceModelEndpointRequest) (*UpdateMarketplaceModelEndpointResponse, error) { + return nil, fmt.Errorf("UpdateMarketplaceModelEndpoint: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateProvisionedModelThroughput(ctx context.Context, input *UpdateProvisionedModelThroughputRequest) (*UpdateProvisionedModelThroughputResponse, error) { + return nil, fmt.Errorf("UpdateProvisionedModelThroughput: %w", ErrNotImplemented) +} diff --git a/internal/generated/bedrock/router.go b/internal/generated/bedrock/router.go index 02ef340..f1a2cb6 100644 --- a/internal/generated/bedrock/router.go +++ b/internal/generated/bedrock/router.go @@ -15,7 +15,109 @@ type OperationRoute struct { } // OperationRoutes is the list of all routes for this service. -var OperationRoutes = []OperationRoute{} +var OperationRoutes = []OperationRoute{ + {Method: "POST", Pattern: "/evaluation-jobs/batch-delete", Operation: "BatchDeleteEvaluationJob"}, + {Method: "POST", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/cancel", Operation: "CancelAutomatedReasoningPolicyBuildWorkflow"}, + {Method: "POST", Pattern: "/automated-reasoning-policies", Operation: "CreateAutomatedReasoningPolicy"}, + {Method: "POST", Pattern: "/automated-reasoning-policies/{policyArn}/test-cases", Operation: "CreateAutomatedReasoningPolicyTestCase"}, + {Method: "POST", Pattern: "/automated-reasoning-policies/{policyArn}/versions", Operation: "CreateAutomatedReasoningPolicyVersion"}, + {Method: "POST", Pattern: "/custom-models/create-custom-model", Operation: "CreateCustomModel"}, + {Method: "POST", Pattern: "/model-customization/custom-model-deployments", Operation: "CreateCustomModelDeployment"}, + {Method: "POST", Pattern: "/evaluation-jobs", Operation: "CreateEvaluationJob"}, + {Method: "POST", Pattern: "/create-foundation-model-agreement", Operation: "CreateFoundationModelAgreement"}, + {Method: "POST", Pattern: "/guardrails", Operation: "CreateGuardrail"}, + {Method: "POST", Pattern: "/guardrails/{guardrailIdentifier}", Operation: "CreateGuardrailVersion"}, + {Method: "POST", Pattern: "/inference-profiles", Operation: "CreateInferenceProfile"}, + {Method: "POST", Pattern: "/marketplace-model/endpoints", Operation: "CreateMarketplaceModelEndpoint"}, + {Method: "POST", Pattern: "/model-copy-jobs", Operation: "CreateModelCopyJob"}, + {Method: "POST", Pattern: "/model-customization-jobs", Operation: "CreateModelCustomizationJob"}, + {Method: "POST", Pattern: "/model-import-jobs", Operation: "CreateModelImportJob"}, + {Method: "POST", Pattern: "/model-invocation-job", Operation: "CreateModelInvocationJob"}, + {Method: "POST", Pattern: "/prompt-routers", Operation: "CreatePromptRouter"}, + {Method: "POST", Pattern: "/provisioned-model-throughput", Operation: "CreateProvisionedModelThroughput"}, + {Method: "DELETE", Pattern: "/automated-reasoning-policies/{policyArn}", Operation: "DeleteAutomatedReasoningPolicy"}, + {Method: "DELETE", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}", Operation: "DeleteAutomatedReasoningPolicyBuildWorkflow"}, + {Method: "DELETE", Pattern: "/automated-reasoning-policies/{policyArn}/test-cases/{testCaseId}", Operation: "DeleteAutomatedReasoningPolicyTestCase"}, + {Method: "DELETE", Pattern: "/custom-models/{modelIdentifier}", Operation: "DeleteCustomModel"}, + {Method: "DELETE", Pattern: "/model-customization/custom-model-deployments/{customModelDeploymentIdentifier}", Operation: "DeleteCustomModelDeployment"}, + {Method: "DELETE", Pattern: "/enforcedGuardrailsConfiguration/{configId}", Operation: "DeleteEnforcedGuardrailConfiguration"}, + {Method: "POST", Pattern: "/delete-foundation-model-agreement", Operation: "DeleteFoundationModelAgreement"}, + {Method: "DELETE", Pattern: "/guardrails/{guardrailIdentifier}", Operation: "DeleteGuardrail"}, + {Method: "DELETE", Pattern: "/imported-models/{modelIdentifier}", Operation: "DeleteImportedModel"}, + {Method: "DELETE", Pattern: "/inference-profiles/{inferenceProfileIdentifier}", Operation: "DeleteInferenceProfile"}, + {Method: "DELETE", Pattern: "/marketplace-model/endpoints/{endpointArn}", Operation: "DeleteMarketplaceModelEndpoint"}, + {Method: "DELETE", Pattern: "/logging/modelinvocations", Operation: "DeleteModelInvocationLoggingConfiguration"}, + {Method: "DELETE", Pattern: "/prompt-routers/{promptRouterArn}", Operation: "DeletePromptRouter"}, + {Method: "DELETE", Pattern: "/provisioned-model-throughput/{provisionedModelId}", Operation: "DeleteProvisionedModelThroughput"}, + {Method: "DELETE", Pattern: "/resource-policy/{resourceArn}", Operation: "DeleteResourcePolicy"}, + {Method: "DELETE", Pattern: "/marketplace-model/endpoints/{endpointArn}/registration", Operation: "DeregisterMarketplaceModelEndpoint"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/export", Operation: "ExportAutomatedReasoningPolicyVersion"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}", Operation: "GetAutomatedReasoningPolicy"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/annotations", Operation: "GetAutomatedReasoningPolicyAnnotations"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}", Operation: "GetAutomatedReasoningPolicyBuildWorkflow"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/result-assets", Operation: "GetAutomatedReasoningPolicyBuildWorkflowResultAssets"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/scenarios", Operation: "GetAutomatedReasoningPolicyNextScenario"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/test-cases/{testCaseId}", Operation: "GetAutomatedReasoningPolicyTestCase"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/test-cases/{testCaseId}/test-results", Operation: "GetAutomatedReasoningPolicyTestResult"}, + {Method: "GET", Pattern: "/custom-models/{modelIdentifier}", Operation: "GetCustomModel"}, + {Method: "GET", Pattern: "/model-customization/custom-model-deployments/{customModelDeploymentIdentifier}", Operation: "GetCustomModelDeployment"}, + {Method: "GET", Pattern: "/evaluation-jobs/{jobIdentifier}", Operation: "GetEvaluationJob"}, + {Method: "GET", Pattern: "/foundation-models/{modelIdentifier}", Operation: "GetFoundationModel"}, + {Method: "GET", Pattern: "/foundation-model-availability/{modelId}", Operation: "GetFoundationModelAvailability"}, + {Method: "GET", Pattern: "/guardrails/{guardrailIdentifier}", Operation: "GetGuardrail"}, + {Method: "GET", Pattern: "/imported-models/{modelIdentifier}", Operation: "GetImportedModel"}, + {Method: "GET", Pattern: "/inference-profiles/{inferenceProfileIdentifier}", Operation: "GetInferenceProfile"}, + {Method: "GET", Pattern: "/marketplace-model/endpoints/{endpointArn}", Operation: "GetMarketplaceModelEndpoint"}, + {Method: "GET", Pattern: "/model-copy-jobs/{jobArn}", Operation: "GetModelCopyJob"}, + {Method: "GET", Pattern: "/model-customization-jobs/{jobIdentifier}", Operation: "GetModelCustomizationJob"}, + {Method: "GET", Pattern: "/model-import-jobs/{jobIdentifier}", Operation: "GetModelImportJob"}, + {Method: "GET", Pattern: "/model-invocation-job/{jobIdentifier}", Operation: "GetModelInvocationJob"}, + {Method: "GET", Pattern: "/logging/modelinvocations", Operation: "GetModelInvocationLoggingConfiguration"}, + {Method: "GET", Pattern: "/prompt-routers/{promptRouterArn}", Operation: "GetPromptRouter"}, + {Method: "GET", Pattern: "/provisioned-model-throughput/{provisionedModelId}", Operation: "GetProvisionedModelThroughput"}, + {Method: "GET", Pattern: "/resource-policy/{resourceArn}", Operation: "GetResourcePolicy"}, + {Method: "GET", Pattern: "/use-case-for-model-access", Operation: "GetUseCaseForModelAccess"}, + {Method: "GET", Pattern: "/automated-reasoning-policies", Operation: "ListAutomatedReasoningPolicies"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows", Operation: "ListAutomatedReasoningPolicyBuildWorkflows"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/test-cases", Operation: "ListAutomatedReasoningPolicyTestCases"}, + {Method: "GET", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/test-results", Operation: "ListAutomatedReasoningPolicyTestResults"}, + {Method: "GET", Pattern: "/model-customization/custom-model-deployments", Operation: "ListCustomModelDeployments"}, + {Method: "GET", Pattern: "/custom-models", Operation: "ListCustomModels"}, + {Method: "GET", Pattern: "/enforcedGuardrailsConfiguration", Operation: "ListEnforcedGuardrailsConfiguration"}, + {Method: "GET", Pattern: "/evaluation-jobs", Operation: "ListEvaluationJobs"}, + {Method: "GET", Pattern: "/list-foundation-model-agreement-offers/{modelId}", Operation: "ListFoundationModelAgreementOffers"}, + {Method: "GET", Pattern: "/foundation-models", Operation: "ListFoundationModels"}, + {Method: "GET", Pattern: "/guardrails", Operation: "ListGuardrails"}, + {Method: "GET", Pattern: "/imported-models", Operation: "ListImportedModels"}, + {Method: "GET", Pattern: "/inference-profiles", Operation: "ListInferenceProfiles"}, + {Method: "GET", Pattern: "/marketplace-model/endpoints", Operation: "ListMarketplaceModelEndpoints"}, + {Method: "GET", Pattern: "/model-copy-jobs", Operation: "ListModelCopyJobs"}, + {Method: "GET", Pattern: "/model-customization-jobs", Operation: "ListModelCustomizationJobs"}, + {Method: "GET", Pattern: "/model-import-jobs", Operation: "ListModelImportJobs"}, + {Method: "GET", Pattern: "/model-invocation-jobs", Operation: "ListModelInvocationJobs"}, + {Method: "GET", Pattern: "/prompt-routers", Operation: "ListPromptRouters"}, + {Method: "GET", Pattern: "/provisioned-model-throughputs", Operation: "ListProvisionedModelThroughputs"}, + {Method: "POST", Pattern: "/listTagsForResource", Operation: "ListTagsForResource"}, + {Method: "PUT", Pattern: "/enforcedGuardrailsConfiguration", Operation: "PutEnforcedGuardrailConfiguration"}, + {Method: "PUT", Pattern: "/logging/modelinvocations", Operation: "PutModelInvocationLoggingConfiguration"}, + {Method: "POST", Pattern: "/resource-policy", Operation: "PutResourcePolicy"}, + {Method: "POST", Pattern: "/use-case-for-model-access", Operation: "PutUseCaseForModelAccess"}, + {Method: "POST", Pattern: "/marketplace-model/endpoints/{endpointIdentifier}/registration", Operation: "RegisterMarketplaceModelEndpoint"}, + {Method: "POST", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowType}/start", Operation: "StartAutomatedReasoningPolicyBuildWorkflow"}, + {Method: "POST", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/test-workflows", Operation: "StartAutomatedReasoningPolicyTestWorkflow"}, + {Method: "POST", Pattern: "/evaluation-job/{jobIdentifier}/stop", Operation: "StopEvaluationJob"}, + {Method: "POST", Pattern: "/model-customization-jobs/{jobIdentifier}/stop", Operation: "StopModelCustomizationJob"}, + {Method: "POST", Pattern: "/model-invocation-job/{jobIdentifier}/stop", Operation: "StopModelInvocationJob"}, + {Method: "POST", Pattern: "/tagResource", Operation: "TagResource"}, + {Method: "POST", Pattern: "/untagResource", Operation: "UntagResource"}, + {Method: "PATCH", Pattern: "/automated-reasoning-policies/{policyArn}", Operation: "UpdateAutomatedReasoningPolicy"}, + {Method: "PATCH", Pattern: "/automated-reasoning-policies/{policyArn}/build-workflows/{buildWorkflowId}/annotations", Operation: "UpdateAutomatedReasoningPolicyAnnotations"}, + {Method: "PATCH", Pattern: "/automated-reasoning-policies/{policyArn}/test-cases/{testCaseId}", Operation: "UpdateAutomatedReasoningPolicyTestCase"}, + {Method: "PATCH", Pattern: "/model-customization/custom-model-deployments/{customModelDeploymentIdentifier}", Operation: "UpdateCustomModelDeployment"}, + {Method: "PUT", Pattern: "/guardrails/{guardrailIdentifier}", Operation: "UpdateGuardrail"}, + {Method: "PATCH", Pattern: "/marketplace-model/endpoints/{endpointArn}", Operation: "UpdateMarketplaceModelEndpoint"}, + {Method: "PATCH", Pattern: "/provisioned-model-throughput/{provisionedModelId}", Operation: "UpdateProvisionedModelThroughput"}, +} // MatchOperation returns the operation name and extracted path parameters for // the given HTTP method and URI path. It returns ("", nil) if no route matches. diff --git a/internal/generated/crudregistry/registry_gen.go b/internal/generated/crudregistry/registry_gen.go index e3e0ab9..a1d13e8 100644 --- a/internal/generated/crudregistry/registry_gen.go +++ b/internal/generated/crudregistry/registry_gen.go @@ -824,17 +824,73 @@ func init() { "UpdateRepositoryCreationTemplate": {Verb: "Update", Resource: "RepositoryCreationTemplate", OutputListKey: "", OutputItemKey: "repositoryCreationTemplate"}, }) crud.Register("ecs", map[string]crud.OpMeta{ - "DeleteAccountSetting": {Verb: "Delete", Resource: "AccountSetting", OutputListKey: "", OutputItemKey: "setting"}, - "DeregisterTaskDefinition": {Verb: "Delete", Resource: "TaskDefinition", OutputListKey: "", OutputItemKey: "taskDefinition"}, - "DescribeTaskDefinition": {Verb: "Get", Resource: "TaskDefinition", OutputListKey: "tags", OutputItemKey: "taskDefinition"}, - "ListAccountSettings": {Verb: "List", Resource: "AccountSetting", OutputListKey: "settings", OutputItemKey: ""}, - "ListServicesByNamespace": {Verb: "List", Resource: "ServicesByNamespace", OutputListKey: "serviceArns", OutputItemKey: ""}, - "ListTagsForResource": {Verb: "List", Resource: "TagsForResource", OutputListKey: "tags", OutputItemKey: ""}, - "ListTaskDefinitionFamilies": {Verb: "List", Resource: "TaskDefinitionFamily", OutputListKey: "families", OutputItemKey: ""}, - "PutAccountSetting": {Verb: "Update", Resource: "AccountSetting", OutputListKey: "", OutputItemKey: "setting"}, - "PutAccountSettingDefault": {Verb: "Update", Resource: "AccountSettingDefault", OutputListKey: "", OutputItemKey: "setting"}, - "TagResource": {Verb: "Tag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, - "UntagResource": {Verb: "Untag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, + "CreateCapacityProvider": {Verb: "Create", Resource: "CapacityProvider", OutputListKey: "", OutputItemKey: "capacityProvider"}, + "CreateCluster": {Verb: "Create", Resource: "Cluster", OutputListKey: "", OutputItemKey: "cluster"}, + "CreateDaemon": {Verb: "Create", Resource: "Daemon", OutputListKey: "", OutputItemKey: ""}, + "CreateExpressGatewayService": {Verb: "Create", Resource: "ExpressGatewayService", OutputListKey: "", OutputItemKey: "service"}, + "CreateService": {Verb: "Create", Resource: "Service", OutputListKey: "", OutputItemKey: "service"}, + "CreateTaskSet": {Verb: "Create", Resource: "TaskSet", OutputListKey: "", OutputItemKey: "taskSet"}, + "DeleteAccountSetting": {Verb: "Delete", Resource: "AccountSetting", OutputListKey: "", OutputItemKey: "setting"}, + "DeleteAttributes": {Verb: "Delete", Resource: "Attribute", OutputListKey: "attributes", OutputItemKey: ""}, + "DeleteCapacityProvider": {Verb: "Delete", Resource: "CapacityProvider", OutputListKey: "", OutputItemKey: "capacityProvider"}, + "DeleteCluster": {Verb: "Delete", Resource: "Cluster", OutputListKey: "", OutputItemKey: "cluster"}, + "DeleteDaemon": {Verb: "Delete", Resource: "Daemon", OutputListKey: "", OutputItemKey: ""}, + "DeleteDaemonTaskDefinition": {Verb: "Delete", Resource: "DaemonTaskDefinition", OutputListKey: "", OutputItemKey: ""}, + "DeleteExpressGatewayService": {Verb: "Delete", Resource: "ExpressGatewayService", OutputListKey: "", OutputItemKey: "service"}, + "DeleteService": {Verb: "Delete", Resource: "Service", OutputListKey: "", OutputItemKey: "service"}, + "DeleteTaskDefinitions": {Verb: "Delete", Resource: "TaskDefinition", OutputListKey: "failures", OutputItemKey: ""}, + "DeleteTaskSet": {Verb: "Delete", Resource: "TaskSet", OutputListKey: "", OutputItemKey: "taskSet"}, + "DeregisterContainerInstance": {Verb: "Delete", Resource: "ContainerInstance", OutputListKey: "", OutputItemKey: "containerInstance"}, + "DeregisterTaskDefinition": {Verb: "Delete", Resource: "TaskDefinition", OutputListKey: "", OutputItemKey: "taskDefinition"}, + "DescribeCapacityProviders": {Verb: "Get", Resource: "CapacityProvider", OutputListKey: "capacityProviders", OutputItemKey: ""}, + "DescribeClusters": {Verb: "Get", Resource: "Cluster", OutputListKey: "clusters", OutputItemKey: ""}, + "DescribeContainerInstances": {Verb: "Get", Resource: "ContainerInstance", OutputListKey: "containerInstances", OutputItemKey: ""}, + "DescribeDaemon": {Verb: "Get", Resource: "Daemon", OutputListKey: "", OutputItemKey: "daemon"}, + "DescribeDaemonDeployments": {Verb: "Get", Resource: "DaemonDeployment", OutputListKey: "daemonDeployments", OutputItemKey: ""}, + "DescribeDaemonRevisions": {Verb: "Get", Resource: "DaemonRevision", OutputListKey: "daemonRevisions", OutputItemKey: ""}, + "DescribeDaemonTaskDefinition": {Verb: "Get", Resource: "DaemonTaskDefinition", OutputListKey: "", OutputItemKey: "daemonTaskDefinition"}, + "DescribeExpressGatewayService": {Verb: "Get", Resource: "ExpressGatewayService", OutputListKey: "", OutputItemKey: "service"}, + "DescribeServiceDeployments": {Verb: "Get", Resource: "ServiceDeployment", OutputListKey: "failures", OutputItemKey: ""}, + "DescribeServiceRevisions": {Verb: "Get", Resource: "ServiceRevision", OutputListKey: "failures", OutputItemKey: ""}, + "DescribeServices": {Verb: "Get", Resource: "Service", OutputListKey: "failures", OutputItemKey: ""}, + "DescribeTaskDefinition": {Verb: "Get", Resource: "TaskDefinition", OutputListKey: "tags", OutputItemKey: "taskDefinition"}, + "DescribeTaskSets": {Verb: "Get", Resource: "TaskSet", OutputListKey: "failures", OutputItemKey: ""}, + "DescribeTasks": {Verb: "Get", Resource: "Task", OutputListKey: "failures", OutputItemKey: ""}, + "GetTaskProtection": {Verb: "Get", Resource: "TaskProtection", OutputListKey: "failures", OutputItemKey: ""}, + "ListAccountSettings": {Verb: "List", Resource: "AccountSetting", OutputListKey: "settings", OutputItemKey: ""}, + "ListAttributes": {Verb: "List", Resource: "Attribute", OutputListKey: "attributes", OutputItemKey: ""}, + "ListClusters": {Verb: "List", Resource: "Cluster", OutputListKey: "clusterArns", OutputItemKey: ""}, + "ListContainerInstances": {Verb: "List", Resource: "ContainerInstance", OutputListKey: "containerInstanceArns", OutputItemKey: ""}, + "ListDaemonDeployments": {Verb: "List", Resource: "DaemonDeployment", OutputListKey: "daemonDeployments", OutputItemKey: ""}, + "ListDaemonTaskDefinitions": {Verb: "List", Resource: "DaemonTaskDefinition", OutputListKey: "daemonTaskDefinitions", OutputItemKey: ""}, + "ListDaemons": {Verb: "List", Resource: "Daemon", OutputListKey: "daemonSummariesList", OutputItemKey: ""}, + "ListServiceDeployments": {Verb: "List", Resource: "ServiceDeployment", OutputListKey: "serviceDeployments", OutputItemKey: ""}, + "ListServices": {Verb: "List", Resource: "Service", OutputListKey: "serviceArns", OutputItemKey: ""}, + "ListServicesByNamespace": {Verb: "List", Resource: "ServicesByNamespace", OutputListKey: "serviceArns", OutputItemKey: ""}, + "ListTagsForResource": {Verb: "List", Resource: "TagsForResource", OutputListKey: "tags", OutputItemKey: ""}, + "ListTaskDefinitionFamilies": {Verb: "List", Resource: "TaskDefinitionFamily", OutputListKey: "families", OutputItemKey: ""}, + "ListTaskDefinitions": {Verb: "List", Resource: "TaskDefinition", OutputListKey: "taskDefinitionArns", OutputItemKey: ""}, + "ListTasks": {Verb: "List", Resource: "Task", OutputListKey: "taskArns", OutputItemKey: ""}, + "PutAccountSetting": {Verb: "Update", Resource: "AccountSetting", OutputListKey: "", OutputItemKey: "setting"}, + "PutAccountSettingDefault": {Verb: "Update", Resource: "AccountSettingDefault", OutputListKey: "", OutputItemKey: "setting"}, + "PutAttributes": {Verb: "Update", Resource: "Attribute", OutputListKey: "attributes", OutputItemKey: ""}, + "PutClusterCapacityProviders": {Verb: "Update", Resource: "ClusterCapacityProvider", OutputListKey: "", OutputItemKey: "cluster"}, + "RegisterContainerInstance": {Verb: "Create", Resource: "ContainerInstance", OutputListKey: "", OutputItemKey: "containerInstance"}, + "RegisterDaemonTaskDefinition": {Verb: "Create", Resource: "DaemonTaskDefinition", OutputListKey: "", OutputItemKey: ""}, + "RegisterTaskDefinition": {Verb: "Create", Resource: "TaskDefinition", OutputListKey: "tags", OutputItemKey: "taskDefinition"}, + "TagResource": {Verb: "Tag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, + "UntagResource": {Verb: "Untag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, + "UpdateCapacityProvider": {Verb: "Update", Resource: "CapacityProvider", OutputListKey: "", OutputItemKey: "capacityProvider"}, + "UpdateCluster": {Verb: "Update", Resource: "Cluster", OutputListKey: "", OutputItemKey: "cluster"}, + "UpdateClusterSettings": {Verb: "Update", Resource: "ClusterSetting", OutputListKey: "", OutputItemKey: "cluster"}, + "UpdateContainerAgent": {Verb: "Update", Resource: "ContainerAgent", OutputListKey: "", OutputItemKey: "containerInstance"}, + "UpdateContainerInstancesState": {Verb: "Update", Resource: "ContainerInstancesState", OutputListKey: "containerInstances", OutputItemKey: ""}, + "UpdateDaemon": {Verb: "Update", Resource: "Daemon", OutputListKey: "", OutputItemKey: ""}, + "UpdateExpressGatewayService": {Verb: "Update", Resource: "ExpressGatewayService", OutputListKey: "", OutputItemKey: "service"}, + "UpdateService": {Verb: "Update", Resource: "Service", OutputListKey: "", OutputItemKey: "service"}, + "UpdateServicePrimaryTaskSet": {Verb: "Update", Resource: "ServicePrimaryTaskSet", OutputListKey: "", OutputItemKey: "taskSet"}, + "UpdateTaskProtection": {Verb: "Update", Resource: "TaskProtection", OutputListKey: "failures", OutputItemKey: ""}, + "UpdateTaskSet": {Verb: "Update", Resource: "TaskSet", OutputListKey: "", OutputItemKey: "taskSet"}, }) crud.Register("emr", map[string]crud.OpMeta{ "CreatePersistentAppUI": {Verb: "Create", Resource: "PersistentAppUI", OutputListKey: "", OutputItemKey: ""}, @@ -2004,7 +2060,10 @@ func init() { "CreateTrustedTokenIssuer": {Verb: "Create", Resource: "TrustedTokenIssuer", OutputListKey: "", OutputItemKey: ""}, "DeleteAccountAssignment": {Verb: "Delete", Resource: "AccountAssignment", OutputListKey: "", OutputItemKey: "AccountAssignmentDeletionStatus"}, "DeleteApplication": {Verb: "Delete", Resource: "Application", OutputListKey: "", OutputItemKey: ""}, + "DeleteApplicationAccessScope": {Verb: "Delete", Resource: "ApplicationAccessScope", OutputListKey: "", OutputItemKey: ""}, "DeleteApplicationAssignment": {Verb: "Delete", Resource: "ApplicationAssignment", OutputListKey: "", OutputItemKey: ""}, + "DeleteApplicationAuthenticationMethod": {Verb: "Delete", Resource: "ApplicationAuthenticationMethod", OutputListKey: "", OutputItemKey: ""}, + "DeleteApplicationGrant": {Verb: "Delete", Resource: "ApplicationGrant", OutputListKey: "", OutputItemKey: ""}, "DeleteInlinePolicyFromPermissionSet": {Verb: "Delete", Resource: "InlinePolicyFromPermissionSet", OutputListKey: "", OutputItemKey: ""}, "DeleteInstance": {Verb: "Delete", Resource: "Instance", OutputListKey: "", OutputItemKey: ""}, "DeleteInstanceAccessControlAttributeConfiguration": {Verb: "Delete", Resource: "InstanceAccessControlAttributeConfiguration", OutputListKey: "", OutputItemKey: ""}, @@ -2022,7 +2081,10 @@ func init() { "DescribePermissionSetProvisioningStatus": {Verb: "Get", Resource: "PermissionSetProvisioningStatu", OutputListKey: "", OutputItemKey: "PermissionSetProvisioningStatus"}, "DescribeRegion": {Verb: "Get", Resource: "Region", OutputListKey: "", OutputItemKey: ""}, "DescribeTrustedTokenIssuer": {Verb: "Get", Resource: "TrustedTokenIssuer", OutputListKey: "", OutputItemKey: ""}, + "GetApplicationAccessScope": {Verb: "Get", Resource: "ApplicationAccessScope", OutputListKey: "AuthorizedTargets", OutputItemKey: ""}, "GetApplicationAssignmentConfiguration": {Verb: "Get", Resource: "ApplicationAssignmentConfiguration", OutputListKey: "", OutputItemKey: ""}, + "GetApplicationAuthenticationMethod": {Verb: "Get", Resource: "ApplicationAuthenticationMethod", OutputListKey: "", OutputItemKey: ""}, + "GetApplicationGrant": {Verb: "Get", Resource: "ApplicationGrant", OutputListKey: "", OutputItemKey: ""}, "GetApplicationSessionConfiguration": {Verb: "Get", Resource: "ApplicationSessionConfiguration", OutputListKey: "", OutputItemKey: ""}, "GetInlinePolicyForPermissionSet": {Verb: "Get", Resource: "InlinePolicyForPermissionSet", OutputListKey: "", OutputItemKey: ""}, "GetPermissionsBoundaryForPermissionSet": {Verb: "Get", Resource: "PermissionsBoundaryForPermissionSet", OutputListKey: "", OutputItemKey: "PermissionsBoundary"}, @@ -2031,8 +2093,11 @@ func init() { "ListAccountAssignments": {Verb: "List", Resource: "AccountAssignment", OutputListKey: "AccountAssignments", OutputItemKey: ""}, "ListAccountAssignmentsForPrincipal": {Verb: "List", Resource: "AccountAssignmentsForPrincipal", OutputListKey: "AccountAssignments", OutputItemKey: ""}, "ListAccountsForProvisionedPermissionSet": {Verb: "List", Resource: "AccountsForProvisionedPermissionSet", OutputListKey: "AccountIds", OutputItemKey: ""}, + "ListApplicationAccessScopes": {Verb: "List", Resource: "ApplicationAccessScope", OutputListKey: "Scopes", OutputItemKey: ""}, "ListApplicationAssignments": {Verb: "List", Resource: "ApplicationAssignment", OutputListKey: "ApplicationAssignments", OutputItemKey: ""}, "ListApplicationAssignmentsForPrincipal": {Verb: "List", Resource: "ApplicationAssignmentsForPrincipal", OutputListKey: "ApplicationAssignments", OutputItemKey: ""}, + "ListApplicationAuthenticationMethods": {Verb: "List", Resource: "ApplicationAuthenticationMethod", OutputListKey: "AuthenticationMethods", OutputItemKey: ""}, + "ListApplicationGrants": {Verb: "List", Resource: "ApplicationGrant", OutputListKey: "Grants", OutputItemKey: ""}, "ListApplicationProviders": {Verb: "List", Resource: "ApplicationProvider", OutputListKey: "ApplicationProviders", OutputItemKey: ""}, "ListApplications": {Verb: "List", Resource: "Application", OutputListKey: "Applications", OutputItemKey: ""}, "ListCustomerManagedPolicyReferencesInPermissionSet": {Verb: "List", Resource: "CustomerManagedPolicyReferencesInPermissionSet", OutputListKey: "CustomerManagedPolicyReferences", OutputItemKey: ""}, @@ -2044,7 +2109,10 @@ func init() { "ListRegions": {Verb: "List", Resource: "Region", OutputListKey: "Regions", OutputItemKey: ""}, "ListTagsForResource": {Verb: "List", Resource: "TagsForResource", OutputListKey: "Tags", OutputItemKey: ""}, "ListTrustedTokenIssuers": {Verb: "List", Resource: "TrustedTokenIssuer", OutputListKey: "TrustedTokenIssuers", OutputItemKey: ""}, + "PutApplicationAccessScope": {Verb: "Update", Resource: "ApplicationAccessScope", OutputListKey: "", OutputItemKey: ""}, "PutApplicationAssignmentConfiguration": {Verb: "Update", Resource: "ApplicationAssignmentConfiguration", OutputListKey: "", OutputItemKey: ""}, + "PutApplicationAuthenticationMethod": {Verb: "Update", Resource: "ApplicationAuthenticationMethod", OutputListKey: "", OutputItemKey: ""}, + "PutApplicationGrant": {Verb: "Update", Resource: "ApplicationGrant", OutputListKey: "", OutputItemKey: ""}, "PutApplicationSessionConfiguration": {Verb: "Update", Resource: "ApplicationSessionConfiguration", OutputListKey: "", OutputItemKey: ""}, "PutInlinePolicyToPermissionSet": {Verb: "Update", Resource: "InlinePolicyToPermissionSet", OutputListKey: "", OutputItemKey: ""}, "PutPermissionsBoundaryToPermissionSet": {Verb: "Update", Resource: "PermissionsBoundaryToPermissionSet", OutputListKey: "", OutputItemKey: ""}, @@ -2170,24 +2238,65 @@ func init() { "UpdateVocabularyFilter": {Verb: "Update", Resource: "VocabularyFilter", OutputListKey: "", OutputItemKey: ""}, }) crud.Register("transfer", map[string]crud.OpMeta{ - "CreateAccess": {Verb: "Create", Resource: "Access", OutputListKey: "", OutputItemKey: ""}, - "DeleteAccess": {Verb: "Delete", Resource: "Access", OutputListKey: "", OutputItemKey: ""}, - "DeleteHostKey": {Verb: "Delete", Resource: "HostKey", OutputListKey: "", OutputItemKey: ""}, - "DeleteSshPublicKey": {Verb: "Delete", Resource: "SshPublicKey", OutputListKey: "", OutputItemKey: ""}, - "DescribeAccess": {Verb: "Get", Resource: "Access", OutputListKey: "", OutputItemKey: "Access"}, - "DescribeExecution": {Verb: "Get", Resource: "Execution", OutputListKey: "", OutputItemKey: "Execution"}, - "DescribeHostKey": {Verb: "Get", Resource: "HostKey", OutputListKey: "", OutputItemKey: "HostKey"}, - "DescribeSecurityPolicy": {Verb: "Get", Resource: "SecurityPolicy", OutputListKey: "", OutputItemKey: "SecurityPolicy"}, - "ListAccesses": {Verb: "List", Resource: "Access", OutputListKey: "Accesses", OutputItemKey: ""}, - "ListExecutions": {Verb: "List", Resource: "Execution", OutputListKey: "Executions", OutputItemKey: ""}, - "ListFileTransferResults": {Verb: "List", Resource: "FileTransferResult", OutputListKey: "FileTransferResults", OutputItemKey: ""}, - "ListHostKeys": {Verb: "List", Resource: "HostKey", OutputListKey: "HostKeys", OutputItemKey: ""}, - "ListSecurityPolicies": {Verb: "List", Resource: "SecurityPolicy", OutputListKey: "SecurityPolicyNames", OutputItemKey: ""}, - "ListTagsForResource": {Verb: "List", Resource: "TagsForResource", OutputListKey: "Tags", OutputItemKey: ""}, - "TagResource": {Verb: "Tag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, - "UntagResource": {Verb: "Untag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, - "UpdateAccess": {Verb: "Update", Resource: "Access", OutputListKey: "", OutputItemKey: ""}, - "UpdateHostKey": {Verb: "Update", Resource: "HostKey", OutputListKey: "", OutputItemKey: ""}, + "CreateAccess": {Verb: "Create", Resource: "Access", OutputListKey: "", OutputItemKey: ""}, + "CreateAgreement": {Verb: "Create", Resource: "Agreement", OutputListKey: "", OutputItemKey: ""}, + "CreateConnector": {Verb: "Create", Resource: "Connector", OutputListKey: "", OutputItemKey: ""}, + "CreateProfile": {Verb: "Create", Resource: "Profile", OutputListKey: "", OutputItemKey: ""}, + "CreateServer": {Verb: "Create", Resource: "Server", OutputListKey: "", OutputItemKey: ""}, + "CreateUser": {Verb: "Create", Resource: "User", OutputListKey: "", OutputItemKey: ""}, + "CreateWebApp": {Verb: "Create", Resource: "WebApp", OutputListKey: "", OutputItemKey: ""}, + "CreateWorkflow": {Verb: "Create", Resource: "Workflow", OutputListKey: "", OutputItemKey: ""}, + "DeleteAccess": {Verb: "Delete", Resource: "Access", OutputListKey: "", OutputItemKey: ""}, + "DeleteAgreement": {Verb: "Delete", Resource: "Agreement", OutputListKey: "", OutputItemKey: ""}, + "DeleteCertificate": {Verb: "Delete", Resource: "Certificate", OutputListKey: "", OutputItemKey: ""}, + "DeleteConnector": {Verb: "Delete", Resource: "Connector", OutputListKey: "", OutputItemKey: ""}, + "DeleteHostKey": {Verb: "Delete", Resource: "HostKey", OutputListKey: "", OutputItemKey: ""}, + "DeleteProfile": {Verb: "Delete", Resource: "Profile", OutputListKey: "", OutputItemKey: ""}, + "DeleteServer": {Verb: "Delete", Resource: "Server", OutputListKey: "", OutputItemKey: ""}, + "DeleteSshPublicKey": {Verb: "Delete", Resource: "SshPublicKey", OutputListKey: "", OutputItemKey: ""}, + "DeleteUser": {Verb: "Delete", Resource: "User", OutputListKey: "", OutputItemKey: ""}, + "DeleteWebApp": {Verb: "Delete", Resource: "WebApp", OutputListKey: "", OutputItemKey: ""}, + "DeleteWebAppCustomization": {Verb: "Delete", Resource: "WebAppCustomization", OutputListKey: "", OutputItemKey: ""}, + "DeleteWorkflow": {Verb: "Delete", Resource: "Workflow", OutputListKey: "", OutputItemKey: ""}, + "DescribeAccess": {Verb: "Get", Resource: "Access", OutputListKey: "", OutputItemKey: "Access"}, + "DescribeAgreement": {Verb: "Get", Resource: "Agreement", OutputListKey: "", OutputItemKey: "Agreement"}, + "DescribeCertificate": {Verb: "Get", Resource: "Certificate", OutputListKey: "", OutputItemKey: "Certificate"}, + "DescribeConnector": {Verb: "Get", Resource: "Connector", OutputListKey: "", OutputItemKey: "Connector"}, + "DescribeExecution": {Verb: "Get", Resource: "Execution", OutputListKey: "", OutputItemKey: "Execution"}, + "DescribeHostKey": {Verb: "Get", Resource: "HostKey", OutputListKey: "", OutputItemKey: "HostKey"}, + "DescribeProfile": {Verb: "Get", Resource: "Profile", OutputListKey: "", OutputItemKey: "Profile"}, + "DescribeSecurityPolicy": {Verb: "Get", Resource: "SecurityPolicy", OutputListKey: "", OutputItemKey: "SecurityPolicy"}, + "DescribeServer": {Verb: "Get", Resource: "Server", OutputListKey: "", OutputItemKey: "Server"}, + "DescribeUser": {Verb: "Get", Resource: "User", OutputListKey: "", OutputItemKey: "User"}, + "DescribeWebApp": {Verb: "Get", Resource: "WebApp", OutputListKey: "", OutputItemKey: "WebApp"}, + "DescribeWebAppCustomization": {Verb: "Get", Resource: "WebAppCustomization", OutputListKey: "", OutputItemKey: "WebAppCustomization"}, + "DescribeWorkflow": {Verb: "Get", Resource: "Workflow", OutputListKey: "", OutputItemKey: "Workflow"}, + "ListAccesses": {Verb: "List", Resource: "Access", OutputListKey: "Accesses", OutputItemKey: ""}, + "ListAgreements": {Verb: "List", Resource: "Agreement", OutputListKey: "Agreements", OutputItemKey: ""}, + "ListCertificates": {Verb: "List", Resource: "Certificate", OutputListKey: "Certificates", OutputItemKey: ""}, + "ListConnectors": {Verb: "List", Resource: "Connector", OutputListKey: "Connectors", OutputItemKey: ""}, + "ListExecutions": {Verb: "List", Resource: "Execution", OutputListKey: "Executions", OutputItemKey: ""}, + "ListFileTransferResults": {Verb: "List", Resource: "FileTransferResult", OutputListKey: "FileTransferResults", OutputItemKey: ""}, + "ListHostKeys": {Verb: "List", Resource: "HostKey", OutputListKey: "HostKeys", OutputItemKey: ""}, + "ListProfiles": {Verb: "List", Resource: "Profile", OutputListKey: "Profiles", OutputItemKey: ""}, + "ListSecurityPolicies": {Verb: "List", Resource: "SecurityPolicy", OutputListKey: "SecurityPolicyNames", OutputItemKey: ""}, + "ListServers": {Verb: "List", Resource: "Server", OutputListKey: "Servers", OutputItemKey: ""}, + "ListTagsForResource": {Verb: "List", Resource: "TagsForResource", OutputListKey: "Tags", OutputItemKey: ""}, + "ListUsers": {Verb: "List", Resource: "User", OutputListKey: "Users", OutputItemKey: ""}, + "ListWebApps": {Verb: "List", Resource: "WebApp", OutputListKey: "WebApps", OutputItemKey: ""}, + "ListWorkflows": {Verb: "List", Resource: "Workflow", OutputListKey: "Workflows", OutputItemKey: ""}, + "TagResource": {Verb: "Tag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, + "UntagResource": {Verb: "Untag", Resource: "Resource", OutputListKey: "", OutputItemKey: ""}, + "UpdateAccess": {Verb: "Update", Resource: "Access", OutputListKey: "", OutputItemKey: ""}, + "UpdateAgreement": {Verb: "Update", Resource: "Agreement", OutputListKey: "", OutputItemKey: ""}, + "UpdateCertificate": {Verb: "Update", Resource: "Certificate", OutputListKey: "", OutputItemKey: ""}, + "UpdateConnector": {Verb: "Update", Resource: "Connector", OutputListKey: "", OutputItemKey: ""}, + "UpdateHostKey": {Verb: "Update", Resource: "HostKey", OutputListKey: "", OutputItemKey: ""}, + "UpdateProfile": {Verb: "Update", Resource: "Profile", OutputListKey: "", OutputItemKey: ""}, + "UpdateServer": {Verb: "Update", Resource: "Server", OutputListKey: "", OutputItemKey: ""}, + "UpdateUser": {Verb: "Update", Resource: "User", OutputListKey: "", OutputItemKey: ""}, + "UpdateWebApp": {Verb: "Update", Resource: "WebApp", OutputListKey: "", OutputItemKey: ""}, + "UpdateWebAppCustomization": {Verb: "Update", Resource: "WebAppCustomization", OutputListKey: "", OutputItemKey: ""}, }) crud.Register("waf", map[string]crud.OpMeta{ "CreateByteMatchSet": {Verb: "Create", Resource: "ByteMatchSet", OutputListKey: "", OutputItemKey: "ByteMatchSet"}, diff --git a/internal/generated/ecs/base_provider.go b/internal/generated/ecs/base_provider.go index 3f340b6..b508625 100644 --- a/internal/generated/ecs/base_provider.go +++ b/internal/generated/ecs/base_provider.go @@ -11,26 +11,182 @@ var ErrNotImplemented = fmt.Errorf("operation not implemented") type BaseProvider struct{} +func (b *BaseProvider) CreateCapacityProvider(ctx context.Context, input *CreateCapacityProviderRequest) (*CreateCapacityProviderResponse, error) { + return nil, fmt.Errorf("CreateCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateCluster(ctx context.Context, input *CreateClusterRequest) (*CreateClusterResponse, error) { + return nil, fmt.Errorf("CreateCluster: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateDaemon(ctx context.Context, input *CreateDaemonRequest) (*CreateDaemonResponse, error) { + return nil, fmt.Errorf("CreateDaemon: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateExpressGatewayService(ctx context.Context, input *CreateExpressGatewayServiceRequest) (*CreateExpressGatewayServiceResponse, error) { + return nil, fmt.Errorf("CreateExpressGatewayService: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateService(ctx context.Context, input *CreateServiceRequest) (*CreateServiceResponse, error) { + return nil, fmt.Errorf("CreateService: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateTaskSet(ctx context.Context, input *CreateTaskSetRequest) (*CreateTaskSetResponse, error) { + return nil, fmt.Errorf("CreateTaskSet: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteAccountSetting(ctx context.Context, input *DeleteAccountSettingRequest) (*DeleteAccountSettingResponse, error) { return nil, fmt.Errorf("DeleteAccountSetting: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteAttributes(ctx context.Context, input *DeleteAttributesRequest) (*DeleteAttributesResponse, error) { + return nil, fmt.Errorf("DeleteAttributes: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteCapacityProvider(ctx context.Context, input *DeleteCapacityProviderRequest) (*DeleteCapacityProviderResponse, error) { + return nil, fmt.Errorf("DeleteCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteCluster(ctx context.Context, input *DeleteClusterRequest) (*DeleteClusterResponse, error) { + return nil, fmt.Errorf("DeleteCluster: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteDaemon(ctx context.Context, input *DeleteDaemonRequest) (*DeleteDaemonResponse, error) { + return nil, fmt.Errorf("DeleteDaemon: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteDaemonTaskDefinition(ctx context.Context, input *DeleteDaemonTaskDefinitionRequest) (*DeleteDaemonTaskDefinitionResponse, error) { + return nil, fmt.Errorf("DeleteDaemonTaskDefinition: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteExpressGatewayService(ctx context.Context, input *DeleteExpressGatewayServiceRequest) (*DeleteExpressGatewayServiceResponse, error) { + return nil, fmt.Errorf("DeleteExpressGatewayService: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteService(ctx context.Context, input *DeleteServiceRequest) (*DeleteServiceResponse, error) { + return nil, fmt.Errorf("DeleteService: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteTaskDefinitions(ctx context.Context, input *DeleteTaskDefinitionsRequest) (*DeleteTaskDefinitionsResponse, error) { + return nil, fmt.Errorf("DeleteTaskDefinitions: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteTaskSet(ctx context.Context, input *DeleteTaskSetRequest) (*DeleteTaskSetResponse, error) { + return nil, fmt.Errorf("DeleteTaskSet: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeregisterContainerInstance(ctx context.Context, input *DeregisterContainerInstanceRequest) (*DeregisterContainerInstanceResponse, error) { + return nil, fmt.Errorf("DeregisterContainerInstance: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeregisterTaskDefinition(ctx context.Context, input *DeregisterTaskDefinitionRequest) (*DeregisterTaskDefinitionResponse, error) { return nil, fmt.Errorf("DeregisterTaskDefinition: %w", ErrNotImplemented) } +func (b *BaseProvider) DescribeCapacityProviders(ctx context.Context, input *DescribeCapacityProvidersRequest) (*DescribeCapacityProvidersResponse, error) { + return nil, fmt.Errorf("DescribeCapacityProviders: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeClusters(ctx context.Context, input *DescribeClustersRequest) (*DescribeClustersResponse, error) { + return nil, fmt.Errorf("DescribeClusters: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeContainerInstances(ctx context.Context, input *DescribeContainerInstancesRequest) (*DescribeContainerInstancesResponse, error) { + return nil, fmt.Errorf("DescribeContainerInstances: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeDaemon(ctx context.Context, input *DescribeDaemonRequest) (*DescribeDaemonResponse, error) { + return nil, fmt.Errorf("DescribeDaemon: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeDaemonDeployments(ctx context.Context, input *DescribeDaemonDeploymentsRequest) (*DescribeDaemonDeploymentsResponse, error) { + return nil, fmt.Errorf("DescribeDaemonDeployments: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeDaemonRevisions(ctx context.Context, input *DescribeDaemonRevisionsRequest) (*DescribeDaemonRevisionsResponse, error) { + return nil, fmt.Errorf("DescribeDaemonRevisions: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeDaemonTaskDefinition(ctx context.Context, input *DescribeDaemonTaskDefinitionRequest) (*DescribeDaemonTaskDefinitionResponse, error) { + return nil, fmt.Errorf("DescribeDaemonTaskDefinition: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeExpressGatewayService(ctx context.Context, input *DescribeExpressGatewayServiceRequest) (*DescribeExpressGatewayServiceResponse, error) { + return nil, fmt.Errorf("DescribeExpressGatewayService: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeServiceDeployments(ctx context.Context, input *DescribeServiceDeploymentsRequest) (*DescribeServiceDeploymentsResponse, error) { + return nil, fmt.Errorf("DescribeServiceDeployments: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeServiceRevisions(ctx context.Context, input *DescribeServiceRevisionsRequest) (*DescribeServiceRevisionsResponse, error) { + return nil, fmt.Errorf("DescribeServiceRevisions: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeServices(ctx context.Context, input *DescribeServicesRequest) (*DescribeServicesResponse, error) { + return nil, fmt.Errorf("DescribeServices: %w", ErrNotImplemented) +} + func (b *BaseProvider) DescribeTaskDefinition(ctx context.Context, input *DescribeTaskDefinitionRequest) (*DescribeTaskDefinitionResponse, error) { return nil, fmt.Errorf("DescribeTaskDefinition: %w", ErrNotImplemented) } +func (b *BaseProvider) DescribeTaskSets(ctx context.Context, input *DescribeTaskSetsRequest) (*DescribeTaskSetsResponse, error) { + return nil, fmt.Errorf("DescribeTaskSets: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeTasks(ctx context.Context, input *DescribeTasksRequest) (*DescribeTasksResponse, error) { + return nil, fmt.Errorf("DescribeTasks: %w", ErrNotImplemented) +} + func (b *BaseProvider) DiscoverPollEndpoint(ctx context.Context, input *DiscoverPollEndpointRequest) (*DiscoverPollEndpointResponse, error) { return nil, fmt.Errorf("DiscoverPollEndpoint: %w", ErrNotImplemented) } +func (b *BaseProvider) ExecuteCommand(ctx context.Context, input *ExecuteCommandRequest) (*ExecuteCommandResponse, error) { + return nil, fmt.Errorf("ExecuteCommand: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetTaskProtection(ctx context.Context, input *GetTaskProtectionRequest) (*GetTaskProtectionResponse, error) { + return nil, fmt.Errorf("GetTaskProtection: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListAccountSettings(ctx context.Context, input *ListAccountSettingsRequest) (*ListAccountSettingsResponse, error) { return nil, fmt.Errorf("ListAccountSettings: %w", ErrNotImplemented) } +func (b *BaseProvider) ListAttributes(ctx context.Context, input *ListAttributesRequest) (*ListAttributesResponse, error) { + return nil, fmt.Errorf("ListAttributes: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListClusters(ctx context.Context, input *ListClustersRequest) (*ListClustersResponse, error) { + return nil, fmt.Errorf("ListClusters: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListContainerInstances(ctx context.Context, input *ListContainerInstancesRequest) (*ListContainerInstancesResponse, error) { + return nil, fmt.Errorf("ListContainerInstances: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListDaemonDeployments(ctx context.Context, input *ListDaemonDeploymentsRequest) (*ListDaemonDeploymentsResponse, error) { + return nil, fmt.Errorf("ListDaemonDeployments: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListDaemonTaskDefinitions(ctx context.Context, input *ListDaemonTaskDefinitionsRequest) (*ListDaemonTaskDefinitionsResponse, error) { + return nil, fmt.Errorf("ListDaemonTaskDefinitions: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListDaemons(ctx context.Context, input *ListDaemonsRequest) (*ListDaemonsResponse, error) { + return nil, fmt.Errorf("ListDaemons: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListServiceDeployments(ctx context.Context, input *ListServiceDeploymentsRequest) (*ListServiceDeploymentsResponse, error) { + return nil, fmt.Errorf("ListServiceDeployments: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListServices(ctx context.Context, input *ListServicesRequest) (*ListServicesResponse, error) { + return nil, fmt.Errorf("ListServices: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListServicesByNamespace(ctx context.Context, input *ListServicesByNamespaceRequest) (*ListServicesByNamespaceResponse, error) { return nil, fmt.Errorf("ListServicesByNamespace: %w", ErrNotImplemented) } @@ -43,6 +199,14 @@ func (b *BaseProvider) ListTaskDefinitionFamilies(ctx context.Context, input *Li return nil, fmt.Errorf("ListTaskDefinitionFamilies: %w", ErrNotImplemented) } +func (b *BaseProvider) ListTaskDefinitions(ctx context.Context, input *ListTaskDefinitionsRequest) (*ListTaskDefinitionsResponse, error) { + return nil, fmt.Errorf("ListTaskDefinitions: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListTasks(ctx context.Context, input *ListTasksRequest) (*ListTasksResponse, error) { + return nil, fmt.Errorf("ListTasks: %w", ErrNotImplemented) +} + func (b *BaseProvider) PutAccountSetting(ctx context.Context, input *PutAccountSettingRequest) (*PutAccountSettingResponse, error) { return nil, fmt.Errorf("PutAccountSetting: %w", ErrNotImplemented) } @@ -51,6 +215,54 @@ func (b *BaseProvider) PutAccountSettingDefault(ctx context.Context, input *PutA return nil, fmt.Errorf("PutAccountSettingDefault: %w", ErrNotImplemented) } +func (b *BaseProvider) PutAttributes(ctx context.Context, input *PutAttributesRequest) (*PutAttributesResponse, error) { + return nil, fmt.Errorf("PutAttributes: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutClusterCapacityProviders(ctx context.Context, input *PutClusterCapacityProvidersRequest) (*PutClusterCapacityProvidersResponse, error) { + return nil, fmt.Errorf("PutClusterCapacityProviders: %w", ErrNotImplemented) +} + +func (b *BaseProvider) RegisterContainerInstance(ctx context.Context, input *RegisterContainerInstanceRequest) (*RegisterContainerInstanceResponse, error) { + return nil, fmt.Errorf("RegisterContainerInstance: %w", ErrNotImplemented) +} + +func (b *BaseProvider) RegisterDaemonTaskDefinition(ctx context.Context, input *RegisterDaemonTaskDefinitionRequest) (*RegisterDaemonTaskDefinitionResponse, error) { + return nil, fmt.Errorf("RegisterDaemonTaskDefinition: %w", ErrNotImplemented) +} + +func (b *BaseProvider) RegisterTaskDefinition(ctx context.Context, input *RegisterTaskDefinitionRequest) (*RegisterTaskDefinitionResponse, error) { + return nil, fmt.Errorf("RegisterTaskDefinition: %w", ErrNotImplemented) +} + +func (b *BaseProvider) RunTask(ctx context.Context, input *RunTaskRequest) (*RunTaskResponse, error) { + return nil, fmt.Errorf("RunTask: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StartTask(ctx context.Context, input *StartTaskRequest) (*StartTaskResponse, error) { + return nil, fmt.Errorf("StartTask: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StopServiceDeployment(ctx context.Context, input *StopServiceDeploymentRequest) (*StopServiceDeploymentResponse, error) { + return nil, fmt.Errorf("StopServiceDeployment: %w", ErrNotImplemented) +} + +func (b *BaseProvider) StopTask(ctx context.Context, input *StopTaskRequest) (*StopTaskResponse, error) { + return nil, fmt.Errorf("StopTask: %w", ErrNotImplemented) +} + +func (b *BaseProvider) SubmitAttachmentStateChanges(ctx context.Context, input *SubmitAttachmentStateChangesRequest) (*SubmitAttachmentStateChangesResponse, error) { + return nil, fmt.Errorf("SubmitAttachmentStateChanges: %w", ErrNotImplemented) +} + +func (b *BaseProvider) SubmitContainerStateChange(ctx context.Context, input *SubmitContainerStateChangeRequest) (*SubmitContainerStateChangeResponse, error) { + return nil, fmt.Errorf("SubmitContainerStateChange: %w", ErrNotImplemented) +} + +func (b *BaseProvider) SubmitTaskStateChange(ctx context.Context, input *SubmitTaskStateChangeRequest) (*SubmitTaskStateChangeResponse, error) { + return nil, fmt.Errorf("SubmitTaskStateChange: %w", ErrNotImplemented) +} + func (b *BaseProvider) TagResource(ctx context.Context, input *TagResourceRequest) (*TagResourceResponse, error) { return nil, fmt.Errorf("TagResource: %w", ErrNotImplemented) } @@ -58,3 +270,47 @@ func (b *BaseProvider) TagResource(ctx context.Context, input *TagResourceReques func (b *BaseProvider) UntagResource(ctx context.Context, input *UntagResourceRequest) (*UntagResourceResponse, error) { return nil, fmt.Errorf("UntagResource: %w", ErrNotImplemented) } + +func (b *BaseProvider) UpdateCapacityProvider(ctx context.Context, input *UpdateCapacityProviderRequest) (*UpdateCapacityProviderResponse, error) { + return nil, fmt.Errorf("UpdateCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateCluster(ctx context.Context, input *UpdateClusterRequest) (*UpdateClusterResponse, error) { + return nil, fmt.Errorf("UpdateCluster: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateClusterSettings(ctx context.Context, input *UpdateClusterSettingsRequest) (*UpdateClusterSettingsResponse, error) { + return nil, fmt.Errorf("UpdateClusterSettings: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateContainerAgent(ctx context.Context, input *UpdateContainerAgentRequest) (*UpdateContainerAgentResponse, error) { + return nil, fmt.Errorf("UpdateContainerAgent: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateContainerInstancesState(ctx context.Context, input *UpdateContainerInstancesStateRequest) (*UpdateContainerInstancesStateResponse, error) { + return nil, fmt.Errorf("UpdateContainerInstancesState: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateDaemon(ctx context.Context, input *UpdateDaemonRequest) (*UpdateDaemonResponse, error) { + return nil, fmt.Errorf("UpdateDaemon: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateExpressGatewayService(ctx context.Context, input *UpdateExpressGatewayServiceRequest) (*UpdateExpressGatewayServiceResponse, error) { + return nil, fmt.Errorf("UpdateExpressGatewayService: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateService(ctx context.Context, input *UpdateServiceRequest) (*UpdateServiceResponse, error) { + return nil, fmt.Errorf("UpdateService: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateServicePrimaryTaskSet(ctx context.Context, input *UpdateServicePrimaryTaskSetRequest) (*UpdateServicePrimaryTaskSetResponse, error) { + return nil, fmt.Errorf("UpdateServicePrimaryTaskSet: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateTaskProtection(ctx context.Context, input *UpdateTaskProtectionRequest) (*UpdateTaskProtectionResponse, error) { + return nil, fmt.Errorf("UpdateTaskProtection: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateTaskSet(ctx context.Context, input *UpdateTaskSetRequest) (*UpdateTaskSetResponse, error) { + return nil, fmt.Errorf("UpdateTaskSet: %w", ErrNotImplemented) +} diff --git a/internal/generated/ecs/router.go b/internal/generated/ecs/router.go index 077313a..839e5df 100644 --- a/internal/generated/ecs/router.go +++ b/internal/generated/ecs/router.go @@ -16,18 +16,82 @@ type OperationRoute struct { // OperationRoutes is the list of all routes for this service. var OperationRoutes = []OperationRoute{ + {Method: "", Pattern: "", Operation: "CreateCapacityProvider"}, + {Method: "", Pattern: "", Operation: "CreateCluster"}, + {Method: "", Pattern: "", Operation: "CreateDaemon"}, + {Method: "", Pattern: "", Operation: "CreateExpressGatewayService"}, + {Method: "", Pattern: "", Operation: "CreateService"}, + {Method: "", Pattern: "", Operation: "CreateTaskSet"}, {Method: "", Pattern: "", Operation: "DeleteAccountSetting"}, + {Method: "", Pattern: "", Operation: "DeleteAttributes"}, + {Method: "", Pattern: "", Operation: "DeleteCapacityProvider"}, + {Method: "", Pattern: "", Operation: "DeleteCluster"}, + {Method: "", Pattern: "", Operation: "DeleteDaemon"}, + {Method: "", Pattern: "", Operation: "DeleteDaemonTaskDefinition"}, + {Method: "", Pattern: "", Operation: "DeleteExpressGatewayService"}, + {Method: "", Pattern: "", Operation: "DeleteService"}, + {Method: "", Pattern: "", Operation: "DeleteTaskDefinitions"}, + {Method: "", Pattern: "", Operation: "DeleteTaskSet"}, + {Method: "", Pattern: "", Operation: "DeregisterContainerInstance"}, {Method: "", Pattern: "", Operation: "DeregisterTaskDefinition"}, + {Method: "", Pattern: "", Operation: "DescribeCapacityProviders"}, + {Method: "", Pattern: "", Operation: "DescribeClusters"}, + {Method: "", Pattern: "", Operation: "DescribeContainerInstances"}, + {Method: "", Pattern: "", Operation: "DescribeDaemon"}, + {Method: "", Pattern: "", Operation: "DescribeDaemonDeployments"}, + {Method: "", Pattern: "", Operation: "DescribeDaemonRevisions"}, + {Method: "", Pattern: "", Operation: "DescribeDaemonTaskDefinition"}, + {Method: "", Pattern: "", Operation: "DescribeExpressGatewayService"}, + {Method: "", Pattern: "", Operation: "DescribeServiceDeployments"}, + {Method: "", Pattern: "", Operation: "DescribeServiceRevisions"}, + {Method: "", Pattern: "", Operation: "DescribeServices"}, {Method: "", Pattern: "", Operation: "DescribeTaskDefinition"}, + {Method: "", Pattern: "", Operation: "DescribeTaskSets"}, + {Method: "", Pattern: "", Operation: "DescribeTasks"}, {Method: "", Pattern: "", Operation: "DiscoverPollEndpoint"}, + {Method: "", Pattern: "", Operation: "ExecuteCommand"}, + {Method: "", Pattern: "", Operation: "GetTaskProtection"}, {Method: "", Pattern: "", Operation: "ListAccountSettings"}, + {Method: "", Pattern: "", Operation: "ListAttributes"}, + {Method: "", Pattern: "", Operation: "ListClusters"}, + {Method: "", Pattern: "", Operation: "ListContainerInstances"}, + {Method: "", Pattern: "", Operation: "ListDaemonDeployments"}, + {Method: "", Pattern: "", Operation: "ListDaemonTaskDefinitions"}, + {Method: "", Pattern: "", Operation: "ListDaemons"}, + {Method: "", Pattern: "", Operation: "ListServiceDeployments"}, + {Method: "", Pattern: "", Operation: "ListServices"}, {Method: "", Pattern: "", Operation: "ListServicesByNamespace"}, {Method: "", Pattern: "", Operation: "ListTagsForResource"}, {Method: "", Pattern: "", Operation: "ListTaskDefinitionFamilies"}, + {Method: "", Pattern: "", Operation: "ListTaskDefinitions"}, + {Method: "", Pattern: "", Operation: "ListTasks"}, {Method: "", Pattern: "", Operation: "PutAccountSetting"}, {Method: "", Pattern: "", Operation: "PutAccountSettingDefault"}, + {Method: "", Pattern: "", Operation: "PutAttributes"}, + {Method: "", Pattern: "", Operation: "PutClusterCapacityProviders"}, + {Method: "", Pattern: "", Operation: "RegisterContainerInstance"}, + {Method: "", Pattern: "", Operation: "RegisterDaemonTaskDefinition"}, + {Method: "", Pattern: "", Operation: "RegisterTaskDefinition"}, + {Method: "", Pattern: "", Operation: "RunTask"}, + {Method: "", Pattern: "", Operation: "StartTask"}, + {Method: "", Pattern: "", Operation: "StopServiceDeployment"}, + {Method: "", Pattern: "", Operation: "StopTask"}, + {Method: "", Pattern: "", Operation: "SubmitAttachmentStateChanges"}, + {Method: "", Pattern: "", Operation: "SubmitContainerStateChange"}, + {Method: "", Pattern: "", Operation: "SubmitTaskStateChange"}, {Method: "", Pattern: "", Operation: "TagResource"}, {Method: "", Pattern: "", Operation: "UntagResource"}, + {Method: "", Pattern: "", Operation: "UpdateCapacityProvider"}, + {Method: "", Pattern: "", Operation: "UpdateCluster"}, + {Method: "", Pattern: "", Operation: "UpdateClusterSettings"}, + {Method: "", Pattern: "", Operation: "UpdateContainerAgent"}, + {Method: "", Pattern: "", Operation: "UpdateContainerInstancesState"}, + {Method: "", Pattern: "", Operation: "UpdateDaemon"}, + {Method: "", Pattern: "", Operation: "UpdateExpressGatewayService"}, + {Method: "", Pattern: "", Operation: "UpdateService"}, + {Method: "", Pattern: "", Operation: "UpdateServicePrimaryTaskSet"}, + {Method: "", Pattern: "", Operation: "UpdateTaskProtection"}, + {Method: "", Pattern: "", Operation: "UpdateTaskSet"}, } // MatchOperation returns the operation name and extracted path parameters for diff --git a/internal/generated/fidelity/manifest_gen.go b/internal/generated/fidelity/manifest_gen.go new file mode 100644 index 0000000..99e93c1 --- /dev/null +++ b/internal/generated/fidelity/manifest_gen.go @@ -0,0 +1,7743 @@ +// Code generated by devcloud codegen. DO NOT EDIT. +// SPDX-License-Identifier: Apache-2.0 + +// Package fidelity declares, for every operation DevCloud knows about, how much +// of AWS's behaviour it actually reproduces. It is the machine-readable answer +// to "can I trust this call?" — see docs/fidelity-manifest.md. +// +// The manifest is derived, never hand-written: the operation universe comes from +// the in-tree Smithy models, auto-crud from the generated CRUD registry, and +// hand-verified from the dispatch literals of each provider. +package fidelity + +// Tier is how faithfully an operation is served. +type Tier string + +const ( + // TierHandVerified is implemented by the service's provider. Highest fidelity. + TierHandVerified Tier = "hand-verified" + // TierAutoCRUD is served by the generic CRUD engine with plausible, + // store-backed responses: no validation, no business logic. + TierAutoCRUD Tier = "auto-crud" + // TierUnimplemented returns an honest InvalidAction error. + TierUnimplemented Tier = "unimplemented" +) + +// Service is one service's operations and their tiers. +type Service struct { + // ModelBacked reports whether an in-tree Smithy model enumerates this + // service's API. When false the unimplemented tail is not knowable, so the + // manifest lists only what DevCloud serves. + ModelBacked bool + Operations map[string]Tier +} + +// Services maps a registered service ID to its operations. +var Services = map[string]Service{ + "account": {ModelBacked: false, Operations: map[string]Tier{ + "AcceptPrimaryEmailUpdate": TierHandVerified, + "DeleteAlternateContact": TierHandVerified, + "DeleteContactInformation": TierHandVerified, + "DisableRegion": TierHandVerified, + "EnableRegion": TierHandVerified, + "GetAccount": TierHandVerified, + "GetAlternateContact": TierHandVerified, + "GetContactInformation": TierHandVerified, + "GetPrimaryEmail": TierHandVerified, + "GetRegionOptStatus": TierHandVerified, + "ListAccountManagedUsers": TierHandVerified, + "ListRegions": TierHandVerified, + "PutAlternateContact": TierHandVerified, + "PutContactInformation": TierHandVerified, + "StartPrimaryEmailUpdate": TierHandVerified, + }}, + "acm": {ModelBacked: true, Operations: map[string]Tier{ + "AddTagsToCertificate": TierHandVerified, + "CancelCertificateIssuance": TierHandVerified, + "CreatePermission": TierHandVerified, + "DeleteCertificate": TierHandVerified, + "DeletePermission": TierHandVerified, + "DescribeCertificate": TierHandVerified, + "DescribeCertificateAuthority": TierHandVerified, + "DescribeCertificateEvents": TierHandVerified, + "DescribeCertificateValidation": TierHandVerified, + "ExportCertificate": TierHandVerified, + "GetAccountConfiguration": TierHandVerified, + "GetCSR": TierHandVerified, + "GetCertificate": TierHandVerified, + "GetCertificateAuthorityCertificate": TierHandVerified, + "GetCertificateAuthorityCsr": TierHandVerified, + "GetCertificateChain": TierHandVerified, + "GetCertificateRenewal": TierHandVerified, + "GetIssuerCertificate": TierHandVerified, + "ImportCertificate": TierHandVerified, + "ListCertificateAuthorities": TierHandVerified, + "ListCertificateTransparency": TierHandVerified, + "ListCertificates": TierHandVerified, + "ListIssuers": TierHandVerified, + "ListPermissions": TierHandVerified, + "ListRenewalEvents": TierHandVerified, + "ListTagsForCertificate": TierHandVerified, + "PutAccountConfiguration": TierHandVerified, + "PutConfigurationRecorder": TierHandVerified, + "RemoveTagsFromCertificate": TierHandVerified, + "RenewCertificate": TierHandVerified, + "RequestCertificate": TierHandVerified, + "ResendValidationEmail": TierHandVerified, + "RevokeCertificate": TierHandVerified, + "SearchCertificates": TierUnimplemented, + "StartCertificateIssuance": TierHandVerified, + "UpdateCertificate": TierHandVerified, + "UpdateCertificateOptions": TierHandVerified, + "WaitForValidation": TierHandVerified, + }}, + "acmpca": {ModelBacked: true, Operations: map[string]Tier{ + "CreateCertificateAuthority": TierHandVerified, + "CreateCertificateAuthorityAuditReport": TierHandVerified, + "CreatePermission": TierHandVerified, + "DeleteCertificateAuthority": TierHandVerified, + "DeletePermission": TierHandVerified, + "DeletePolicy": TierHandVerified, + "DescribeCertificateAuthority": TierHandVerified, + "DescribeCertificateAuthorityAuditReport": TierHandVerified, + "GetCertificate": TierHandVerified, + "GetCertificateAuthorityCertificate": TierHandVerified, + "GetCertificateAuthorityCsr": TierHandVerified, + "GetPolicy": TierHandVerified, + "ImportCertificateAuthorityCertificate": TierHandVerified, + "IssueCertificate": TierHandVerified, + "ListCertificateAuthorities": TierHandVerified, + "ListPermissions": TierHandVerified, + "ListTags": TierHandVerified, + "PutPolicy": TierHandVerified, + "RestoreCertificateAuthority": TierHandVerified, + "RevokeCertificate": TierHandVerified, + "TagCertificateAuthority": TierHandVerified, + "UntagCertificateAuthority": TierHandVerified, + "UpdateCertificateAuthority": TierHandVerified, + }}, + "amplify": {ModelBacked: true, Operations: map[string]Tier{ + "CreateApp": TierHandVerified, + "CreateBackendEnvironment": TierHandVerified, + "CreateBranch": TierHandVerified, + "CreateDeployment": TierHandVerified, + "CreateDomainAssociation": TierHandVerified, + "CreateWebhook": TierHandVerified, + "DeleteApp": TierHandVerified, + "DeleteBackendEnvironment": TierHandVerified, + "DeleteBranch": TierHandVerified, + "DeleteDomainAssociation": TierHandVerified, + "DeleteJob": TierHandVerified, + "DeleteWebhook": TierHandVerified, + "GenerateAccessLogs": TierHandVerified, + "GetApp": TierHandVerified, + "GetArtifactUrl": TierHandVerified, + "GetBackendEnvironment": TierHandVerified, + "GetBranch": TierHandVerified, + "GetDomainAssociation": TierHandVerified, + "GetJob": TierHandVerified, + "GetWebhook": TierHandVerified, + "ListApps": TierHandVerified, + "ListArtifacts": TierHandVerified, + "ListBackendEnvironments": TierHandVerified, + "ListBranches": TierHandVerified, + "ListDomainAssociations": TierHandVerified, + "ListJobs": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListWebhooks": TierHandVerified, + "StartDeployment": TierHandVerified, + "StartJob": TierHandVerified, + "StopJob": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApp": TierHandVerified, + "UpdateBranch": TierHandVerified, + "UpdateDomainAssociation": TierHandVerified, + "UpdateWebhook": TierHandVerified, + }}, + "apigatewayv2": {ModelBacked: true, Operations: map[string]Tier{ + "CreateApi": TierHandVerified, + "CreateApiMapping": TierHandVerified, + "CreateAuthorizer": TierHandVerified, + "CreateDeployment": TierHandVerified, + "CreateDomainName": TierHandVerified, + "CreateIntegration": TierHandVerified, + "CreateIntegrationResponse": TierHandVerified, + "CreateModel": TierHandVerified, + "CreatePortal": TierUnimplemented, + "CreatePortalProduct": TierUnimplemented, + "CreateProductPage": TierUnimplemented, + "CreateProductRestEndpointPage": TierUnimplemented, + "CreateRoute": TierHandVerified, + "CreateRouteResponse": TierHandVerified, + "CreateRoutingRule": TierUnimplemented, + "CreateStage": TierHandVerified, + "CreateVpcLink": TierHandVerified, + "DeleteAccessLogSettings": TierHandVerified, + "DeleteApi": TierHandVerified, + "DeleteApiMapping": TierHandVerified, + "DeleteAuthorizer": TierHandVerified, + "DeleteCorsConfiguration": TierHandVerified, + "DeleteDeployment": TierHandVerified, + "DeleteDomainName": TierHandVerified, + "DeleteIntegration": TierHandVerified, + "DeleteIntegrationResponse": TierHandVerified, + "DeleteModel": TierHandVerified, + "DeletePortal": TierUnimplemented, + "DeletePortalProduct": TierUnimplemented, + "DeletePortalProductSharingPolicy": TierUnimplemented, + "DeleteProductPage": TierUnimplemented, + "DeleteProductRestEndpointPage": TierUnimplemented, + "DeleteRoute": TierHandVerified, + "DeleteRouteRequestParameter": TierHandVerified, + "DeleteRouteResponse": TierHandVerified, + "DeleteRouteSettings": TierHandVerified, + "DeleteRoutingRule": TierUnimplemented, + "DeleteStage": TierHandVerified, + "DeleteVpcLink": TierHandVerified, + "DisablePortal": TierUnimplemented, + "ExportApi": TierHandVerified, + "GetApi": TierHandVerified, + "GetApiMapping": TierHandVerified, + "GetApiMappings": TierHandVerified, + "GetApis": TierHandVerified, + "GetAuthorizer": TierHandVerified, + "GetAuthorizers": TierHandVerified, + "GetDeployment": TierHandVerified, + "GetDeployments": TierHandVerified, + "GetDomainName": TierHandVerified, + "GetDomainNames": TierHandVerified, + "GetIntegration": TierHandVerified, + "GetIntegrationResponse": TierHandVerified, + "GetIntegrationResponses": TierHandVerified, + "GetIntegrations": TierHandVerified, + "GetModel": TierHandVerified, + "GetModelTemplate": TierHandVerified, + "GetModels": TierHandVerified, + "GetPortal": TierUnimplemented, + "GetPortalProduct": TierUnimplemented, + "GetPortalProductSharingPolicy": TierUnimplemented, + "GetProductPage": TierUnimplemented, + "GetProductRestEndpointPage": TierUnimplemented, + "GetRoute": TierHandVerified, + "GetRouteResponse": TierHandVerified, + "GetRouteResponses": TierHandVerified, + "GetRoutes": TierHandVerified, + "GetRoutingRule": TierUnimplemented, + "GetStage": TierHandVerified, + "GetStages": TierHandVerified, + "GetTags": TierHandVerified, + "GetVpcLink": TierHandVerified, + "GetVpcLinks": TierHandVerified, + "ImportApi": TierHandVerified, + "ListPortalProducts": TierUnimplemented, + "ListPortals": TierUnimplemented, + "ListProductPages": TierUnimplemented, + "ListProductRestEndpointPages": TierUnimplemented, + "ListRoutingRules": TierUnimplemented, + "PreviewPortal": TierUnimplemented, + "PublishPortal": TierUnimplemented, + "PutPortalProductSharingPolicy": TierUnimplemented, + "PutRoutingRule": TierUnimplemented, + "ReimportApi": TierHandVerified, + "ResetAuthorizersCache": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApi": TierHandVerified, + "UpdateApiMapping": TierHandVerified, + "UpdateAuthorizer": TierHandVerified, + "UpdateDeployment": TierHandVerified, + "UpdateDomainName": TierHandVerified, + "UpdateIntegration": TierHandVerified, + "UpdateIntegrationResponse": TierHandVerified, + "UpdateModel": TierHandVerified, + "UpdatePortal": TierUnimplemented, + "UpdatePortalProduct": TierUnimplemented, + "UpdateProductPage": TierUnimplemented, + "UpdateProductRestEndpointPage": TierUnimplemented, + "UpdateRoute": TierHandVerified, + "UpdateRouteResponse": TierUnimplemented, + "UpdateStage": TierHandVerified, + "UpdateVpcLink": TierHandVerified, + }}, + "appconfig": {ModelBacked: true, Operations: map[string]Tier{ + "CreateApplication": TierHandVerified, + "CreateConfigurationProfile": TierHandVerified, + "CreateDeploymentStrategy": TierHandVerified, + "CreateEnvironment": TierHandVerified, + "CreateExtension": TierHandVerified, + "CreateExtensionAssociation": TierHandVerified, + "CreateHostedConfigurationVersion": TierHandVerified, + "DeleteApplication": TierHandVerified, + "DeleteConfigurationProfile": TierHandVerified, + "DeleteDeploymentStrategy": TierHandVerified, + "DeleteEnvironment": TierHandVerified, + "DeleteExtension": TierHandVerified, + "DeleteExtensionAssociation": TierHandVerified, + "DeleteHostedConfigurationVersion": TierHandVerified, + "GetAccountSettings": TierHandVerified, + "GetApplication": TierHandVerified, + "GetConfiguration": TierHandVerified, + "GetConfigurationProfile": TierHandVerified, + "GetDeployment": TierHandVerified, + "GetDeploymentStrategy": TierHandVerified, + "GetEnvironment": TierHandVerified, + "GetExtension": TierHandVerified, + "GetExtensionAssociation": TierHandVerified, + "GetHostedConfigurationVersion": TierHandVerified, + "ListApplications": TierHandVerified, + "ListConfigurationProfiles": TierHandVerified, + "ListDeploymentStrategies": TierHandVerified, + "ListDeployments": TierHandVerified, + "ListEnvironments": TierHandVerified, + "ListExtensionAssociations": TierHandVerified, + "ListExtensions": TierHandVerified, + "ListHostedConfigurationVersions": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "StartDeployment": TierHandVerified, + "StopDeployment": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAccountSettings": TierHandVerified, + "UpdateApplication": TierHandVerified, + "UpdateConfigurationProfile": TierHandVerified, + "UpdateDeploymentStrategy": TierHandVerified, + "UpdateEnvironment": TierHandVerified, + "UpdateExtension": TierHandVerified, + "UpdateExtensionAssociation": TierHandVerified, + "ValidateConfiguration": TierHandVerified, + }}, + "applicationautoscaling": {ModelBacked: true, Operations: map[string]Tier{ + "BatchDeleteScalingPolicy": TierHandVerified, + "BatchDeleteScheduledAction": TierHandVerified, + "BatchDeregisterScalableTarget": TierHandVerified, + "BatchPutScalingPolicy": TierHandVerified, + "BatchPutScheduledAction": TierHandVerified, + "BatchRegisterScalableTarget": TierHandVerified, + "DeleteCustomizedMetricStatistics": TierHandVerified, + "DeleteScalingPolicy": TierHandVerified, + "DeleteScheduledAction": TierHandVerified, + "DeleteTargetTrackingScalingPolicy": TierHandVerified, + "DeregisterScalableTarget": TierHandVerified, + "DescribeAccountLimits": TierHandVerified, + "DescribeCustomizedMetricStatistics": TierHandVerified, + "DescribePredictiveScalingForecast": TierHandVerified, + "DescribeResourceActions": TierHandVerified, + "DescribeScalableTargets": TierHandVerified, + "DescribeScalingActivities": TierHandVerified, + "DescribeScalingPolicies": TierHandVerified, + "DescribeScheduledActions": TierHandVerified, + "DescribeServiceQuotas": TierHandVerified, + "DescribeStatistics": TierHandVerified, + "GetMetricStatistics": TierHandVerified, + "GetPredictiveScalingForecast": TierHandVerified, + "GetScalingHealth": TierHandVerified, + "GetScalingStatus": TierHandVerified, + "GetTargetTrackingScalingPolicy": TierHandVerified, + "ListScalableTargetsByService": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PutCustomizedMetricStatistics": TierHandVerified, + "PutPredictiveScalingForecast": TierHandVerified, + "PutScalingPolicy": TierHandVerified, + "PutScheduledAction": TierHandVerified, + "PutTargetTrackingScalingPolicy": TierHandVerified, + "RecordScalingActivity": TierHandVerified, + "RegisterScalableTarget": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateScalableTarget": TierHandVerified, + "UpdateScalingPolicy": TierHandVerified, + "UpdateScheduledAction": TierHandVerified, + }}, + "appsync": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateApi": TierHandVerified, + "AssociateMergedGraphqlApi": TierHandVerified, + "AssociateSourceGraphqlApi": TierHandVerified, + "CreateApi": TierHandVerified, + "CreateApiCache": TierHandVerified, + "CreateApiKey": TierHandVerified, + "CreateChannelNamespace": TierHandVerified, + "CreateDataSource": TierHandVerified, + "CreateDomainName": TierHandVerified, + "CreateFunction": TierHandVerified, + "CreateGraphqlApi": TierHandVerified, + "CreateMergedApiAssociation": TierHandVerified, + "CreateResolver": TierHandVerified, + "CreateType": TierHandVerified, + "DeleteApi": TierHandVerified, + "DeleteApiCache": TierHandVerified, + "DeleteApiKey": TierHandVerified, + "DeleteChannelNamespace": TierHandVerified, + "DeleteDataSource": TierHandVerified, + "DeleteDomainName": TierHandVerified, + "DeleteFunction": TierHandVerified, + "DeleteGraphqlApi": TierHandVerified, + "DeleteMergedApiAssociation": TierHandVerified, + "DeleteResolver": TierHandVerified, + "DeleteType": TierHandVerified, + "DisassociateApi": TierHandVerified, + "DisassociateMergedGraphqlApi": TierHandVerified, + "DisassociateSourceGraphqlApi": TierHandVerified, + "EvaluateCode": TierHandVerified, + "EvaluateMappingTemplate": TierHandVerified, + "FlushApiCache": TierHandVerified, + "GetApi": TierHandVerified, + "GetApiAssociation": TierHandVerified, + "GetApiCache": TierHandVerified, + "GetChannelNamespace": TierHandVerified, + "GetDataSource": TierHandVerified, + "GetDataSourceIntrospection": TierHandVerified, + "GetDomainName": TierHandVerified, + "GetFunction": TierHandVerified, + "GetGraphqlApi": TierHandVerified, + "GetGraphqlApiEnvironmentVariables": TierHandVerified, + "GetIntrospectionSchema": TierHandVerified, + "GetResolver": TierHandVerified, + "GetSchemaCreationStatus": TierHandVerified, + "GetSchemaError": TierHandVerified, + "GetSourceApiAssociation": TierHandVerified, + "GetType": TierHandVerified, + "ListApiKeys": TierHandVerified, + "ListApis": TierHandVerified, + "ListChannelNamespaces": TierHandVerified, + "ListDataSources": TierHandVerified, + "ListDomainNames": TierHandVerified, + "ListFunctions": TierHandVerified, + "ListGraphqlApis": TierHandVerified, + "ListMergedApiAssociations": TierHandVerified, + "ListResolvers": TierHandVerified, + "ListResolversByFunction": TierHandVerified, + "ListSourceApiAssociations": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTypes": TierHandVerified, + "ListTypesByAssociation": TierUnimplemented, + "PutGraphqlApiEnvironmentVariables": TierHandVerified, + "StartDataSourceIntrospection": TierHandVerified, + "StartSchemaCreation": TierHandVerified, + "StartSchemaMerge": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApi": TierHandVerified, + "UpdateApiCache": TierHandVerified, + "UpdateApiKey": TierHandVerified, + "UpdateChannelNamespace": TierHandVerified, + "UpdateDataSource": TierHandVerified, + "UpdateDomainName": TierHandVerified, + "UpdateFunction": TierHandVerified, + "UpdateGraphqlApi": TierHandVerified, + "UpdateResolver": TierHandVerified, + "UpdateSourceApiAssociation": TierHandVerified, + "UpdateType": TierHandVerified, + }}, + "athena": {ModelBacked: true, Operations: map[string]Tier{ + "BatchGetNamedQuery": TierHandVerified, + "BatchGetPreparedStatement": TierHandVerified, + "BatchGetQueryExecution": TierHandVerified, + "CancelCapacityReservation": TierHandVerified, + "CreateCapacityReservation": TierHandVerified, + "CreateDataCatalog": TierHandVerified, + "CreateNamedQuery": TierHandVerified, + "CreateNotebook": TierHandVerified, + "CreatePreparedStatement": TierHandVerified, + "CreatePresignedNotebookUrl": TierHandVerified, + "CreateWorkGroup": TierHandVerified, + "DeleteCapacityReservation": TierHandVerified, + "DeleteDataCatalog": TierHandVerified, + "DeleteNamedQuery": TierHandVerified, + "DeleteNotebook": TierHandVerified, + "DeletePreparedStatement": TierHandVerified, + "DeleteWorkGroup": TierHandVerified, + "ExportNotebook": TierHandVerified, + "GetCalculationExecution": TierHandVerified, + "GetCalculationExecutionCode": TierHandVerified, + "GetCalculationExecutionStatus": TierHandVerified, + "GetCapacityAssignmentConfiguration": TierHandVerified, + "GetCapacityReservation": TierHandVerified, + "GetDataCatalog": TierHandVerified, + "GetDatabase": TierHandVerified, + "GetNamedQuery": TierHandVerified, + "GetNotebookMetadata": TierHandVerified, + "GetPreparedStatement": TierHandVerified, + "GetQueryExecution": TierHandVerified, + "GetQueryResults": TierHandVerified, + "GetQueryRuntimeStatistics": TierHandVerified, + "GetResourceDashboard": TierHandVerified, + "GetSession": TierHandVerified, + "GetSessionEndpoint": TierHandVerified, + "GetSessionStatus": TierHandVerified, + "GetTableMetadata": TierHandVerified, + "GetWorkGroup": TierHandVerified, + "ImportNotebook": TierHandVerified, + "ListApplicationDPUSizes": TierHandVerified, + "ListCalculationExecutions": TierHandVerified, + "ListCapacityReservations": TierHandVerified, + "ListDataCatalogs": TierHandVerified, + "ListDatabases": TierHandVerified, + "ListEngineVersions": TierHandVerified, + "ListExecutors": TierHandVerified, + "ListNamedQueries": TierHandVerified, + "ListNotebookMetadata": TierHandVerified, + "ListNotebookSessions": TierHandVerified, + "ListPreparedStatements": TierHandVerified, + "ListQueryExecutions": TierHandVerified, + "ListSessions": TierHandVerified, + "ListTableMetadata": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListWorkGroups": TierHandVerified, + "PutCapacityAssignmentConfiguration": TierHandVerified, + "StartCalculationExecution": TierHandVerified, + "StartQueryExecution": TierHandVerified, + "StartSession": TierHandVerified, + "StopCalculationExecution": TierHandVerified, + "StopQueryExecution": TierHandVerified, + "TagResource": TierHandVerified, + "TerminateSession": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateCapacityReservation": TierHandVerified, + "UpdateDataCatalog": TierHandVerified, + "UpdateNamedQuery": TierHandVerified, + "UpdateNotebook": TierHandVerified, + "UpdateNotebookMetadata": TierHandVerified, + "UpdatePreparedStatement": TierHandVerified, + "UpdateWorkGroup": TierHandVerified, + }}, + "autoscaling": {ModelBacked: true, Operations: map[string]Tier{ + "AttachInstances": TierHandVerified, + "AttachLoadBalancerTargetGroups": TierHandVerified, + "AttachLoadBalancers": TierHandVerified, + "AttachTrafficSources": TierHandVerified, + "BatchDeleteScheduledAction": TierHandVerified, + "BatchPutScheduledUpdateGroupAction": TierHandVerified, + "CancelInstanceRefresh": TierHandVerified, + "CompleteLifecycleAction": TierHandVerified, + "CreateAutoScalingGroup": TierHandVerified, + "CreateLaunchConfiguration": TierHandVerified, + "CreateOrUpdateTags": TierHandVerified, + "DeleteAutoScalingGroup": TierHandVerified, + "DeleteLaunchConfiguration": TierHandVerified, + "DeleteLifecycleHook": TierHandVerified, + "DeleteNotificationConfiguration": TierUnimplemented, + "DeletePolicy": TierHandVerified, + "DeleteScheduledAction": TierHandVerified, + "DeleteTags": TierHandVerified, + "DeleteWarmPool": TierUnimplemented, + "DescribeAccountLimits": TierHandVerified, + "DescribeAdjustmentTypes": TierUnimplemented, + "DescribeAutoScalingGroups": TierHandVerified, + "DescribeAutoScalingInstances": TierHandVerified, + "DescribeAutoScalingNotificationTypes": TierUnimplemented, + "DescribeInstanceRefreshes": TierHandVerified, + "DescribeLaunchConfigurations": TierHandVerified, + "DescribeLifecycleHookTypes": TierUnimplemented, + "DescribeLifecycleHooks": TierHandVerified, + "DescribeLoadBalancerTargetGroups": TierUnimplemented, + "DescribeLoadBalancers": TierUnimplemented, + "DescribeMetricCollectionTypes": TierUnimplemented, + "DescribeNotificationConfigurations": TierUnimplemented, + "DescribePolicies": TierHandVerified, + "DescribeScalingActivities": TierUnimplemented, + "DescribeScalingProcessTypes": TierUnimplemented, + "DescribeScheduledActions": TierHandVerified, + "DescribeTags": TierHandVerified, + "DescribeTerminationPolicyTypes": TierUnimplemented, + "DescribeTrafficSources": TierUnimplemented, + "DescribeWarmPool": TierUnimplemented, + "DetachInstances": TierHandVerified, + "DetachLoadBalancerTargetGroups": TierHandVerified, + "DetachLoadBalancers": TierHandVerified, + "DetachTrafficSources": TierHandVerified, + "DisableMetricsCollection": TierHandVerified, + "EnableMetricsCollection": TierHandVerified, + "EnterStandby": TierHandVerified, + "ExecutePolicy": TierHandVerified, + "ExitStandby": TierHandVerified, + "GetPredictiveScalingForecast": TierUnimplemented, + "LaunchInstances": TierUnimplemented, + "PutLifecycleHook": TierHandVerified, + "PutNotificationConfiguration": TierUnimplemented, + "PutScalingPolicy": TierHandVerified, + "PutScheduledUpdateGroupAction": TierHandVerified, + "PutWarmPool": TierUnimplemented, + "RecordLifecycleActionHeartbeat": TierHandVerified, + "ResumeProcesses": TierHandVerified, + "RollbackInstanceRefresh": TierHandVerified, + "SetDesiredCapacity": TierHandVerified, + "SetInstanceHealth": TierHandVerified, + "SetInstanceProtection": TierHandVerified, + "StartInstanceRefresh": TierHandVerified, + "SuspendProcesses": TierHandVerified, + "TerminateInstanceInAutoScalingGroup": TierHandVerified, + "UpdateAutoScalingGroup": TierHandVerified, + }}, + "backup": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateBackupVaultMpaApprovalTeam": TierUnimplemented, + "CancelLegalHold": TierUnimplemented, + "CreateBackupPlan": TierHandVerified, + "CreateBackupSelection": TierHandVerified, + "CreateBackupVault": TierHandVerified, + "CreateFramework": TierHandVerified, + "CreateLegalHold": TierUnimplemented, + "CreateLogicallyAirGappedBackupVault": TierUnimplemented, + "CreateReportPlan": TierHandVerified, + "CreateRestoreAccessBackupVault": TierUnimplemented, + "CreateRestoreTestingPlan": TierHandVerified, + "CreateRestoreTestingSelection": TierHandVerified, + "CreateTieringConfiguration": TierUnimplemented, + "DeleteBackupPlan": TierHandVerified, + "DeleteBackupSelection": TierHandVerified, + "DeleteBackupVault": TierHandVerified, + "DeleteBackupVaultAccessPolicy": TierHandVerified, + "DeleteBackupVaultLockConfiguration": TierHandVerified, + "DeleteBackupVaultNotifications": TierHandVerified, + "DeleteFramework": TierHandVerified, + "DeleteRecoveryPoint": TierHandVerified, + "DeleteReportPlan": TierHandVerified, + "DeleteRestoreTestingPlan": TierHandVerified, + "DeleteRestoreTestingSelection": TierHandVerified, + "DeleteTieringConfiguration": TierUnimplemented, + "DescribeBackupJob": TierHandVerified, + "DescribeBackupVault": TierHandVerified, + "DescribeCopyJob": TierUnimplemented, + "DescribeFramework": TierHandVerified, + "DescribeGlobalSettings": TierHandVerified, + "DescribeProtectedResource": TierHandVerified, + "DescribeRecoveryPoint": TierHandVerified, + "DescribeRegionSettings": TierHandVerified, + "DescribeReportJob": TierHandVerified, + "DescribeReportPlan": TierHandVerified, + "DescribeRestoreJob": TierHandVerified, + "DescribeScanJob": TierUnimplemented, + "DisassociateBackupVaultMpaApprovalTeam": TierUnimplemented, + "DisassociateRecoveryPoint": TierUnimplemented, + "DisassociateRecoveryPointFromParent": TierUnimplemented, + "ExportBackupPlanTemplate": TierHandVerified, + "GetBackupPlan": TierHandVerified, + "GetBackupPlanFromJSON": TierHandVerified, + "GetBackupPlanFromTemplate": TierHandVerified, + "GetBackupSelection": TierHandVerified, + "GetBackupVaultAccessPolicy": TierHandVerified, + "GetBackupVaultNotifications": TierHandVerified, + "GetLegalHold": TierUnimplemented, + "GetRecoveryPointIndexDetails": TierHandVerified, + "GetRecoveryPointRestoreMetadata": TierHandVerified, + "GetRestoreJobMetadata": TierHandVerified, + "GetRestoreTestingInferredMetadata": TierHandVerified, + "GetRestoreTestingPlan": TierHandVerified, + "GetRestoreTestingSelection": TierHandVerified, + "GetSupportedResourceTypes": TierHandVerified, + "GetTieringConfiguration": TierUnimplemented, + "ListBackupJobSummaries": TierHandVerified, + "ListBackupJobs": TierHandVerified, + "ListBackupPlanTemplates": TierHandVerified, + "ListBackupPlanVersions": TierHandVerified, + "ListBackupPlans": TierHandVerified, + "ListBackupSelections": TierHandVerified, + "ListBackupVaults": TierHandVerified, + "ListCopyJobSummaries": TierUnimplemented, + "ListCopyJobs": TierUnimplemented, + "ListFrameworks": TierHandVerified, + "ListIndexedRecoveryPoints": TierHandVerified, + "ListLegalHolds": TierUnimplemented, + "ListProtectedResources": TierHandVerified, + "ListProtectedResourcesByBackupVault": TierHandVerified, + "ListRecoveryPointsByBackupVault": TierHandVerified, + "ListRecoveryPointsByLegalHold": TierUnimplemented, + "ListRecoveryPointsByResource": TierHandVerified, + "ListReportJobs": TierHandVerified, + "ListReportPlans": TierHandVerified, + "ListRestoreAccessBackupVaults": TierUnimplemented, + "ListRestoreJobSummaries": TierHandVerified, + "ListRestoreJobs": TierHandVerified, + "ListRestoreJobsByProtectedResource": TierHandVerified, + "ListRestoreTestingPlans": TierHandVerified, + "ListRestoreTestingSelections": TierHandVerified, + "ListScanJobSummaries": TierUnimplemented, + "ListScanJobs": TierUnimplemented, + "ListTags": TierHandVerified, + "ListTieringConfigurations": TierUnimplemented, + "PutBackupVaultAccessPolicy": TierHandVerified, + "PutBackupVaultLockConfiguration": TierHandVerified, + "PutBackupVaultNotifications": TierHandVerified, + "PutRestoreValidationResult": TierHandVerified, + "RevokeRestoreAccessBackupVault": TierUnimplemented, + "StartBackupJob": TierHandVerified, + "StartCopyJob": TierUnimplemented, + "StartReportJob": TierHandVerified, + "StartRestoreJob": TierHandVerified, + "StartScanJob": TierUnimplemented, + "StopBackupJob": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateBackupPlan": TierHandVerified, + "UpdateFramework": TierHandVerified, + "UpdateGlobalSettings": TierHandVerified, + "UpdateRecoveryPointIndexSettings": TierHandVerified, + "UpdateRecoveryPointLifecycle": TierHandVerified, + "UpdateRegionSettings": TierHandVerified, + "UpdateReportPlan": TierHandVerified, + "UpdateRestoreTestingPlan": TierHandVerified, + "UpdateRestoreTestingSelection": TierHandVerified, + "UpdateTieringConfiguration": TierUnimplemented, + }}, + "batch": {ModelBacked: true, Operations: map[string]Tier{ + "CancelJob": TierHandVerified, + "CreateComputeEnvironment": TierHandVerified, + "CreateConsumableResource": TierHandVerified, + "CreateJobQueue": TierHandVerified, + "CreateQuotaShare": TierHandVerified, + "CreateSchedulingPolicy": TierHandVerified, + "CreateServiceEnvironment": TierHandVerified, + "DeleteComputeEnvironment": TierHandVerified, + "DeleteConsumableResource": TierHandVerified, + "DeleteJobQueue": TierHandVerified, + "DeleteQuotaShare": TierHandVerified, + "DeleteSchedulingPolicy": TierHandVerified, + "DeleteServiceEnvironment": TierHandVerified, + "DeregisterJobDefinition": TierHandVerified, + "DescribeComputeEnvironments": TierHandVerified, + "DescribeConsumableResource": TierHandVerified, + "DescribeJobDefinitions": TierHandVerified, + "DescribeJobQueues": TierHandVerified, + "DescribeJobs": TierHandVerified, + "DescribeQuotaShare": TierHandVerified, + "DescribeSchedulingPolicies": TierHandVerified, + "DescribeServiceEnvironments": TierHandVerified, + "DescribeServiceJob": TierHandVerified, + "GetJobQueueSnapshot": TierHandVerified, + "ListConsumableResources": TierHandVerified, + "ListJobs": TierHandVerified, + "ListJobsByConsumableResource": TierHandVerified, + "ListQuotaShares": TierHandVerified, + "ListSchedulingPolicies": TierHandVerified, + "ListServiceJobs": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "RegisterJobDefinition": TierHandVerified, + "SubmitJob": TierHandVerified, + "SubmitServiceJob": TierHandVerified, + "TagResource": TierHandVerified, + "TerminateJob": TierHandVerified, + "TerminateServiceJob": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateComputeEnvironment": TierHandVerified, + "UpdateConsumableResource": TierHandVerified, + "UpdateJobQueue": TierHandVerified, + "UpdateQuotaShare": TierHandVerified, + "UpdateSchedulingPolicy": TierHandVerified, + "UpdateServiceEnvironment": TierHandVerified, + "UpdateServiceJob": TierHandVerified, + }}, + "bedrock": {ModelBacked: true, Operations: map[string]Tier{ + "BatchDeleteEvaluationJob": TierUnimplemented, + "CancelAutomatedReasoningPolicyBuildWorkflow": TierUnimplemented, + "CreateAutomatedReasoningPolicy": TierUnimplemented, + "CreateAutomatedReasoningPolicyTestCase": TierUnimplemented, + "CreateAutomatedReasoningPolicyVersion": TierUnimplemented, + "CreateCustomModel": TierUnimplemented, + "CreateCustomModelDeployment": TierUnimplemented, + "CreateEvaluationJob": TierUnimplemented, + "CreateFoundationModelAgreement": TierUnimplemented, + "CreateGuardrail": TierHandVerified, + "CreateGuardrailVersion": TierUnimplemented, + "CreateInferenceProfile": TierUnimplemented, + "CreateMarketplaceModelEndpoint": TierUnimplemented, + "CreateModelCopyJob": TierUnimplemented, + "CreateModelCustomizationJob": TierHandVerified, + "CreateModelImportJob": TierUnimplemented, + "CreateModelInvocationJob": TierUnimplemented, + "CreatePromptRouter": TierUnimplemented, + "CreateProvisionedModelThroughput": TierUnimplemented, + "DeleteAutomatedReasoningPolicy": TierUnimplemented, + "DeleteAutomatedReasoningPolicyBuildWorkflow": TierUnimplemented, + "DeleteAutomatedReasoningPolicyTestCase": TierUnimplemented, + "DeleteCustomModel": TierHandVerified, + "DeleteCustomModelDeployment": TierUnimplemented, + "DeleteEnforcedGuardrailConfiguration": TierUnimplemented, + "DeleteFoundationModelAgreement": TierUnimplemented, + "DeleteGuardrail": TierHandVerified, + "DeleteImportedModel": TierUnimplemented, + "DeleteInferenceProfile": TierUnimplemented, + "DeleteMarketplaceModelEndpoint": TierUnimplemented, + "DeleteModelInvocationLoggingConfiguration": TierUnimplemented, + "DeletePromptRouter": TierUnimplemented, + "DeleteProvisionedModelThroughput": TierUnimplemented, + "DeleteResourcePolicy": TierUnimplemented, + "DeregisterMarketplaceModelEndpoint": TierUnimplemented, + "ExportAutomatedReasoningPolicyVersion": TierUnimplemented, + "GetAutomatedReasoningPolicy": TierUnimplemented, + "GetAutomatedReasoningPolicyAnnotations": TierUnimplemented, + "GetAutomatedReasoningPolicyBuildWorkflow": TierUnimplemented, + "GetAutomatedReasoningPolicyBuildWorkflowResultAssets": TierUnimplemented, + "GetAutomatedReasoningPolicyNextScenario": TierUnimplemented, + "GetAutomatedReasoningPolicyTestCase": TierUnimplemented, + "GetAutomatedReasoningPolicyTestResult": TierUnimplemented, + "GetCustomModel": TierHandVerified, + "GetCustomModelDeployment": TierUnimplemented, + "GetEvaluationJob": TierUnimplemented, + "GetFoundationModel": TierHandVerified, + "GetFoundationModelAvailability": TierUnimplemented, + "GetGuardrail": TierHandVerified, + "GetImportedModel": TierUnimplemented, + "GetInferenceProfile": TierUnimplemented, + "GetMarketplaceModelEndpoint": TierUnimplemented, + "GetModelCopyJob": TierUnimplemented, + "GetModelCustomizationJob": TierHandVerified, + "GetModelImportJob": TierUnimplemented, + "GetModelInvocationJob": TierUnimplemented, + "GetModelInvocationLoggingConfiguration": TierUnimplemented, + "GetPromptRouter": TierUnimplemented, + "GetProvisionedModelThroughput": TierUnimplemented, + "GetResourcePolicy": TierUnimplemented, + "GetUseCaseForModelAccess": TierUnimplemented, + "InvokeModel": TierHandVerified, + "InvokeModelWithResponseStream": TierHandVerified, + "ListAutomatedReasoningPolicies": TierUnimplemented, + "ListAutomatedReasoningPolicyBuildWorkflows": TierUnimplemented, + "ListAutomatedReasoningPolicyTestCases": TierUnimplemented, + "ListAutomatedReasoningPolicyTestResults": TierUnimplemented, + "ListCustomModelDeployments": TierUnimplemented, + "ListCustomModels": TierHandVerified, + "ListEnforcedGuardrailsConfiguration": TierUnimplemented, + "ListEvaluationJobs": TierUnimplemented, + "ListFoundationModelAgreementOffers": TierUnimplemented, + "ListFoundationModels": TierHandVerified, + "ListGuardrails": TierHandVerified, + "ListImportedModels": TierUnimplemented, + "ListInferenceProfiles": TierUnimplemented, + "ListMarketplaceModelEndpoints": TierUnimplemented, + "ListModelCopyJobs": TierUnimplemented, + "ListModelCustomizationJobs": TierHandVerified, + "ListModelImportJobs": TierUnimplemented, + "ListModelInvocationJobs": TierUnimplemented, + "ListPromptRouters": TierUnimplemented, + "ListProvisionedModelThroughputs": TierUnimplemented, + "ListTagsForResource": TierHandVerified, + "PutEnforcedGuardrailConfiguration": TierUnimplemented, + "PutModelInvocationLoggingConfiguration": TierUnimplemented, + "PutResourcePolicy": TierUnimplemented, + "PutUseCaseForModelAccess": TierUnimplemented, + "RegisterMarketplaceModelEndpoint": TierUnimplemented, + "StartAutomatedReasoningPolicyBuildWorkflow": TierUnimplemented, + "StartAutomatedReasoningPolicyTestWorkflow": TierUnimplemented, + "StopEvaluationJob": TierUnimplemented, + "StopModelCustomizationJob": TierHandVerified, + "StopModelInvocationJob": TierUnimplemented, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAutomatedReasoningPolicy": TierUnimplemented, + "UpdateAutomatedReasoningPolicyAnnotations": TierUnimplemented, + "UpdateAutomatedReasoningPolicyTestCase": TierUnimplemented, + "UpdateCustomModelDeployment": TierUnimplemented, + "UpdateGuardrail": TierHandVerified, + "UpdateMarketplaceModelEndpoint": TierUnimplemented, + "UpdateProvisionedModelThroughput": TierUnimplemented, + }}, + "cloudcontrol": {ModelBacked: false, Operations: map[string]Tier{ + "BatchGetResources": TierHandVerified, + "CancelResourceRequest": TierHandVerified, + "CloneResource": TierHandVerified, + "CreateResource": TierHandVerified, + "DeleteResource": TierHandVerified, + "DescribeResource": TierHandVerified, + "ExportResources": TierHandVerified, + "GetHookResults": TierHandVerified, + "GetResource": TierHandVerified, + "GetResourceRequestStatus": TierHandVerified, + "GetResourceSchema": TierHandVerified, + "GetResourceType": TierHandVerified, + "ImportResource": TierHandVerified, + "ListResourceOperations": TierHandVerified, + "ListResourceRequests": TierHandVerified, + "ListResourceSchemas": TierHandVerified, + "ListResourceTypes": TierHandVerified, + "ListResources": TierHandVerified, + "ListStackResources": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "RefreshResource": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateResource": TierHandVerified, + "ValidateResource": TierHandVerified, + "WaitForResource": TierHandVerified, + }}, + "cloudformation": {ModelBacked: true, Operations: map[string]Tier{ + "ActivateOrganizationsAccess": TierUnimplemented, + "ActivateType": TierHandVerified, + "BatchDescribeTypeConfigurations": TierHandVerified, + "CancelUpdateStack": TierUnimplemented, + "ContinueUpdateRollback": TierHandVerified, + "CreateChangeSet": TierHandVerified, + "CreateGeneratedTemplate": TierUnimplemented, + "CreateStack": TierHandVerified, + "CreateStackInstances": TierHandVerified, + "CreateStackRefactor": TierUnimplemented, + "CreateStackSet": TierHandVerified, + "DeactivateOrganizationsAccess": TierUnimplemented, + "DeactivateType": TierHandVerified, + "DeleteChangeSet": TierHandVerified, + "DeleteGeneratedTemplate": TierUnimplemented, + "DeleteStack": TierHandVerified, + "DeleteStackInstances": TierHandVerified, + "DeleteStackSet": TierHandVerified, + "DeregisterType": TierHandVerified, + "DescribeAccountLimits": TierHandVerified, + "DescribeChangeSet": TierHandVerified, + "DescribeChangeSetHooks": TierUnimplemented, + "DescribeEvents": TierUnimplemented, + "DescribeGeneratedTemplate": TierUnimplemented, + "DescribeOrganizationsAccess": TierUnimplemented, + "DescribePublisher": TierHandVerified, + "DescribeResourceScan": TierUnimplemented, + "DescribeStackDriftDetectionStatus": TierHandVerified, + "DescribeStackEvents": TierHandVerified, + "DescribeStackInstance": TierHandVerified, + "DescribeStackRefactor": TierUnimplemented, + "DescribeStackResource": TierHandVerified, + "DescribeStackResourceDrifts": TierHandVerified, + "DescribeStackResources": TierHandVerified, + "DescribeStackSet": TierHandVerified, + "DescribeStackSetOperation": TierHandVerified, + "DescribeStacks": TierHandVerified, + "DescribeType": TierHandVerified, + "DescribeTypeRegistration": TierHandVerified, + "DetectStackDrift": TierHandVerified, + "DetectStackResourceDrift": TierHandVerified, + "DetectStackSetDrift": TierUnimplemented, + "EstimateTemplateCost": TierUnimplemented, + "ExecuteChangeSet": TierHandVerified, + "ExecuteStackRefactor": TierUnimplemented, + "GetGeneratedTemplate": TierUnimplemented, + "GetHookResult": TierUnimplemented, + "GetStackPolicy": TierHandVerified, + "GetTemplate": TierHandVerified, + "GetTemplateSummary": TierHandVerified, + "ImportStacksToStackSet": TierHandVerified, + "ListChangeSets": TierHandVerified, + "ListExports": TierHandVerified, + "ListGeneratedTemplates": TierUnimplemented, + "ListHookResults": TierUnimplemented, + "ListImports": TierHandVerified, + "ListResourceScanRelatedResources": TierUnimplemented, + "ListResourceScanResources": TierUnimplemented, + "ListResourceScans": TierUnimplemented, + "ListStackInstanceResourceDrifts": TierUnimplemented, + "ListStackInstances": TierHandVerified, + "ListStackRefactorActions": TierUnimplemented, + "ListStackRefactors": TierUnimplemented, + "ListStackResources": TierHandVerified, + "ListStackSetAutoDeploymentTargets": TierUnimplemented, + "ListStackSetOperationResults": TierHandVerified, + "ListStackSetOperations": TierHandVerified, + "ListStackSets": TierHandVerified, + "ListStacks": TierHandVerified, + "ListTypeRegistrations": TierHandVerified, + "ListTypeVersions": TierHandVerified, + "ListTypes": TierHandVerified, + "PublishType": TierHandVerified, + "RecordHandlerProgress": TierUnimplemented, + "RegisterPublisher": TierHandVerified, + "RegisterType": TierHandVerified, + "RollbackStack": TierHandVerified, + "SetStackPolicy": TierHandVerified, + "SetTypeConfiguration": TierHandVerified, + "SetTypeDefaultVersion": TierHandVerified, + "SignalResource": TierHandVerified, + "StartResourceScan": TierUnimplemented, + "StopStackSetOperation": TierHandVerified, + "TestType": TierHandVerified, + "UpdateGeneratedTemplate": TierUnimplemented, + "UpdateStack": TierHandVerified, + "UpdateStackInstances": TierHandVerified, + "UpdateStackSet": TierHandVerified, + "UpdateTerminationProtection": TierHandVerified, + "ValidateTemplate": TierHandVerified, + }}, + "cloudfront": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateAlias": TierUnimplemented, + "AssociateDistributionTenantWebACL": TierUnimplemented, + "AssociateDistributionWebACL": TierUnimplemented, + "CopyDistribution": TierUnimplemented, + "CreateAnycastIpList": TierUnimplemented, + "CreateCachePolicy": TierHandVerified, + "CreateCloudFrontOriginAccessIdentity": TierUnimplemented, + "CreateConnectionFunction": TierUnimplemented, + "CreateConnectionGroup": TierUnimplemented, + "CreateContinuousDeploymentPolicy": TierUnimplemented, + "CreateDistribution": TierHandVerified, + "CreateDistributionTenant": TierUnimplemented, + "CreateDistributionWithTags": TierHandVerified, + "CreateFieldLevelEncryptionConfig": TierUnimplemented, + "CreateFieldLevelEncryptionProfile": TierUnimplemented, + "CreateFunction": TierHandVerified, + "CreateInvalidation": TierHandVerified, + "CreateInvalidationForDistributionTenant": TierUnimplemented, + "CreateKeyGroup": TierUnimplemented, + "CreateKeyValueStore": TierUnimplemented, + "CreateMonitoringSubscription": TierUnimplemented, + "CreateOriginAccessControl": TierHandVerified, + "CreateOriginRequestPolicy": TierHandVerified, + "CreatePublicKey": TierUnimplemented, + "CreateRealtimeLogConfig": TierUnimplemented, + "CreateResponseHeadersPolicy": TierHandVerified, + "CreateStreamingDistribution": TierUnimplemented, + "CreateStreamingDistributionWithTags": TierUnimplemented, + "CreateTrustStore": TierUnimplemented, + "CreateVpcOrigin": TierUnimplemented, + "DeleteAnycastIpList": TierUnimplemented, + "DeleteCachePolicy": TierHandVerified, + "DeleteCloudFrontOriginAccessIdentity": TierUnimplemented, + "DeleteConnectionFunction": TierUnimplemented, + "DeleteConnectionGroup": TierUnimplemented, + "DeleteContinuousDeploymentPolicy": TierUnimplemented, + "DeleteDistribution": TierHandVerified, + "DeleteDistributionTenant": TierUnimplemented, + "DeleteFieldLevelEncryptionConfig": TierUnimplemented, + "DeleteFieldLevelEncryptionProfile": TierUnimplemented, + "DeleteFunction": TierHandVerified, + "DeleteKeyGroup": TierUnimplemented, + "DeleteKeyValueStore": TierUnimplemented, + "DeleteMonitoringSubscription": TierUnimplemented, + "DeleteOriginAccessControl": TierHandVerified, + "DeleteOriginRequestPolicy": TierHandVerified, + "DeletePublicKey": TierUnimplemented, + "DeleteRealtimeLogConfig": TierUnimplemented, + "DeleteResourcePolicy": TierUnimplemented, + "DeleteResponseHeadersPolicy": TierHandVerified, + "DeleteStreamingDistribution": TierUnimplemented, + "DeleteTrustStore": TierUnimplemented, + "DeleteVpcOrigin": TierUnimplemented, + "DescribeConnectionFunction": TierUnimplemented, + "DescribeFunction": TierHandVerified, + "DescribeKeyValueStore": TierUnimplemented, + "DisassociateDistributionTenantWebACL": TierUnimplemented, + "DisassociateDistributionWebACL": TierUnimplemented, + "GetAnycastIpList": TierUnimplemented, + "GetCachePolicy": TierHandVerified, + "GetCachePolicyConfig": TierHandVerified, + "GetCloudFrontOriginAccessIdentity": TierUnimplemented, + "GetCloudFrontOriginAccessIdentityConfig": TierUnimplemented, + "GetConnectionFunction": TierUnimplemented, + "GetConnectionGroup": TierUnimplemented, + "GetConnectionGroupByRoutingEndpoint": TierUnimplemented, + "GetContinuousDeploymentPolicy": TierUnimplemented, + "GetContinuousDeploymentPolicyConfig": TierUnimplemented, + "GetDistribution": TierHandVerified, + "GetDistributionConfig": TierHandVerified, + "GetDistributionTenant": TierUnimplemented, + "GetDistributionTenantByDomain": TierUnimplemented, + "GetFieldLevelEncryption": TierUnimplemented, + "GetFieldLevelEncryptionConfig": TierUnimplemented, + "GetFieldLevelEncryptionProfile": TierUnimplemented, + "GetFieldLevelEncryptionProfileConfig": TierUnimplemented, + "GetFunction": TierHandVerified, + "GetInvalidation": TierHandVerified, + "GetInvalidationForDistributionTenant": TierUnimplemented, + "GetKeyGroup": TierUnimplemented, + "GetKeyGroupConfig": TierUnimplemented, + "GetManagedCertificateDetails": TierUnimplemented, + "GetMonitoringSubscription": TierUnimplemented, + "GetOriginAccessControl": TierHandVerified, + "GetOriginAccessControlConfig": TierHandVerified, + "GetOriginRequestPolicy": TierHandVerified, + "GetOriginRequestPolicyConfig": TierHandVerified, + "GetPublicKey": TierUnimplemented, + "GetPublicKeyConfig": TierUnimplemented, + "GetRealtimeLogConfig": TierUnimplemented, + "GetResourcePolicy": TierUnimplemented, + "GetResponseHeadersPolicy": TierHandVerified, + "GetResponseHeadersPolicyConfig": TierHandVerified, + "GetStreamingDistribution": TierUnimplemented, + "GetStreamingDistributionConfig": TierUnimplemented, + "GetTrustStore": TierUnimplemented, + "GetVpcOrigin": TierUnimplemented, + "ListAnycastIpLists": TierUnimplemented, + "ListCachePolicies": TierHandVerified, + "ListCloudFrontOriginAccessIdentities": TierUnimplemented, + "ListConflictingAliases": TierUnimplemented, + "ListConnectionFunctions": TierUnimplemented, + "ListConnectionGroups": TierUnimplemented, + "ListContinuousDeploymentPolicies": TierUnimplemented, + "ListDistributionTenants": TierUnimplemented, + "ListDistributionTenantsByCustomization": TierUnimplemented, + "ListDistributions": TierHandVerified, + "ListDistributionsByAnycastIpListId": TierUnimplemented, + "ListDistributionsByCachePolicyId": TierUnimplemented, + "ListDistributionsByConnectionFunction": TierUnimplemented, + "ListDistributionsByConnectionMode": TierUnimplemented, + "ListDistributionsByKeyGroup": TierUnimplemented, + "ListDistributionsByOriginRequestPolicyId": TierUnimplemented, + "ListDistributionsByOwnedResource": TierUnimplemented, + "ListDistributionsByRealtimeLogConfig": TierUnimplemented, + "ListDistributionsByResponseHeadersPolicyId": TierUnimplemented, + "ListDistributionsByTrustStore": TierUnimplemented, + "ListDistributionsByVpcOriginId": TierUnimplemented, + "ListDistributionsByWebACLId": TierUnimplemented, + "ListDomainConflicts": TierUnimplemented, + "ListFieldLevelEncryptionConfigs": TierUnimplemented, + "ListFieldLevelEncryptionProfiles": TierUnimplemented, + "ListFunctions": TierHandVerified, + "ListInvalidations": TierHandVerified, + "ListInvalidationsForDistributionTenant": TierUnimplemented, + "ListKeyGroups": TierUnimplemented, + "ListKeyValueStores": TierUnimplemented, + "ListOriginAccessControls": TierHandVerified, + "ListOriginRequestPolicies": TierHandVerified, + "ListPublicKeys": TierUnimplemented, + "ListRealtimeLogConfigs": TierUnimplemented, + "ListResponseHeadersPolicies": TierHandVerified, + "ListStreamingDistributions": TierUnimplemented, + "ListTagsForResource": TierHandVerified, + "ListTrustStores": TierUnimplemented, + "ListVpcOrigins": TierUnimplemented, + "PublishConnectionFunction": TierUnimplemented, + "PublishFunction": TierHandVerified, + "PutResourcePolicy": TierUnimplemented, + "TagResource": TierHandVerified, + "TestConnectionFunction": TierUnimplemented, + "TestFunction": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAnycastIpList": TierUnimplemented, + "UpdateCachePolicy": TierHandVerified, + "UpdateCloudFrontOriginAccessIdentity": TierUnimplemented, + "UpdateConnectionFunction": TierUnimplemented, + "UpdateConnectionGroup": TierUnimplemented, + "UpdateContinuousDeploymentPolicy": TierUnimplemented, + "UpdateDistribution": TierHandVerified, + "UpdateDistributionTenant": TierUnimplemented, + "UpdateDistributionWithStagingConfig": TierUnimplemented, + "UpdateDomainAssociation": TierUnimplemented, + "UpdateFieldLevelEncryptionConfig": TierUnimplemented, + "UpdateFieldLevelEncryptionProfile": TierUnimplemented, + "UpdateFunction": TierHandVerified, + "UpdateKeyGroup": TierUnimplemented, + "UpdateKeyValueStore": TierUnimplemented, + "UpdateOriginAccessControl": TierHandVerified, + "UpdateOriginRequestPolicy": TierHandVerified, + "UpdatePublicKey": TierUnimplemented, + "UpdateRealtimeLogConfig": TierUnimplemented, + "UpdateResponseHeadersPolicy": TierHandVerified, + "UpdateStreamingDistribution": TierUnimplemented, + "UpdateTrustStore": TierUnimplemented, + "UpdateVpcOrigin": TierUnimplemented, + "VerifyDnsConfiguration": TierUnimplemented, + }}, + "cloudsearch": {ModelBacked: true, Operations: map[string]Tier{ + "BuildSuggesters": TierHandVerified, + "CreateDomain": TierHandVerified, + "DefineAnalysisScheme": TierHandVerified, + "DefineExpression": TierHandVerified, + "DefineIndexField": TierHandVerified, + "DefineSuggester": TierHandVerified, + "DeleteAnalysisScheme": TierHandVerified, + "DeleteDomain": TierHandVerified, + "DeleteExpression": TierHandVerified, + "DeleteIndexField": TierHandVerified, + "DeleteSuggester": TierHandVerified, + "DescribeAnalysisSchemes": TierHandVerified, + "DescribeAvailabilityOptions": TierHandVerified, + "DescribeDomainEndpointOptions": TierHandVerified, + "DescribeDomains": TierHandVerified, + "DescribeExpressions": TierHandVerified, + "DescribeIndexFields": TierHandVerified, + "DescribeScalingParameters": TierHandVerified, + "DescribeServiceAccessPolicies": TierHandVerified, + "DescribeSuggesters": TierHandVerified, + "IndexDocuments": TierHandVerified, + "ListDomainNames": TierHandVerified, + "UpdateAvailabilityOptions": TierHandVerified, + "UpdateDomainEndpointOptions": TierHandVerified, + "UpdateScalingParameters": TierHandVerified, + "UpdateServiceAccessPolicies": TierHandVerified, + }}, + "cloudtrail": {ModelBacked: true, Operations: map[string]Tier{ + "AddTags": TierHandVerified, + "CancelQuery": TierHandVerified, + "CreateChannel": TierHandVerified, + "CreateDashboard": TierHandVerified, + "CreateEventDataStore": TierHandVerified, + "CreateTrail": TierHandVerified, + "DeleteChannel": TierHandVerified, + "DeleteDashboard": TierHandVerified, + "DeleteEventDataStore": TierHandVerified, + "DeleteResourcePolicy": TierHandVerified, + "DeleteTrail": TierHandVerified, + "DeregisterOrganizationDelegatedAdmin": TierHandVerified, + "DescribeQuery": TierHandVerified, + "DescribeTrails": TierHandVerified, + "DisableFederation": TierHandVerified, + "EnableFederation": TierHandVerified, + "GenerateQuery": TierHandVerified, + "GetChannel": TierHandVerified, + "GetDashboard": TierHandVerified, + "GetEventConfiguration": TierHandVerified, + "GetEventDataStore": TierHandVerified, + "GetEventSelectors": TierHandVerified, + "GetImport": TierHandVerified, + "GetInsightSelectors": TierHandVerified, + "GetQueryResults": TierHandVerified, + "GetResourcePolicy": TierHandVerified, + "GetTrail": TierHandVerified, + "GetTrailStatus": TierHandVerified, + "ListChannels": TierHandVerified, + "ListDashboards": TierHandVerified, + "ListEventDataStores": TierHandVerified, + "ListImportFailures": TierHandVerified, + "ListImports": TierHandVerified, + "ListInsightsData": TierHandVerified, + "ListInsightsMetricData": TierHandVerified, + "ListPublicKeys": TierHandVerified, + "ListQueries": TierHandVerified, + "ListTags": TierHandVerified, + "ListTrails": TierHandVerified, + "LookupEvents": TierHandVerified, + "PutEventConfiguration": TierHandVerified, + "PutEventSelectors": TierHandVerified, + "PutInsightSelectors": TierHandVerified, + "PutResourcePolicy": TierHandVerified, + "RegisterOrganizationDelegatedAdmin": TierHandVerified, + "RemoveTags": TierHandVerified, + "RestoreEventDataStore": TierHandVerified, + "SearchSampleQueries": TierHandVerified, + "StartDashboardRefresh": TierHandVerified, + "StartEventDataStoreIngestion": TierHandVerified, + "StartImport": TierHandVerified, + "StartLogging": TierHandVerified, + "StartQuery": TierHandVerified, + "StopEventDataStoreIngestion": TierHandVerified, + "StopImport": TierHandVerified, + "StopLogging": TierHandVerified, + "UpdateChannel": TierHandVerified, + "UpdateDashboard": TierHandVerified, + "UpdateEventDataStore": TierHandVerified, + "UpdateTrail": TierHandVerified, + }}, + "cloudwatch": {ModelBacked: true, Operations: map[string]Tier{ + "DeleteAlarmMuteRule": TierAutoCRUD, + "DeleteAlarms": TierHandVerified, + "DeleteAnomalyDetector": TierHandVerified, + "DeleteDashboards": TierHandVerified, + "DeleteInsightRules": TierAutoCRUD, + "DeleteMetricStream": TierAutoCRUD, + "DescribeAlarmContributors": TierAutoCRUD, + "DescribeAlarmHistory": TierHandVerified, + "DescribeAlarms": TierHandVerified, + "DescribeAlarmsForMetric": TierHandVerified, + "DescribeAnomalyDetectors": TierHandVerified, + "DescribeInsightRules": TierAutoCRUD, + "DisableAlarmActions": TierHandVerified, + "DisableInsightRules": TierUnimplemented, + "EnableAlarmActions": TierHandVerified, + "EnableInsightRules": TierUnimplemented, + "GetAlarmMuteRule": TierAutoCRUD, + "GetDashboard": TierHandVerified, + "GetInsightRuleReport": TierAutoCRUD, + "GetMetricData": TierHandVerified, + "GetMetricStatistics": TierHandVerified, + "GetMetricStream": TierAutoCRUD, + "GetMetricWidgetImage": TierAutoCRUD, + "GetOTelEnrichment": TierAutoCRUD, + "ListAlarmMuteRules": TierAutoCRUD, + "ListDashboards": TierHandVerified, + "ListManagedInsightRules": TierAutoCRUD, + "ListMetricStreams": TierAutoCRUD, + "ListMetrics": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PutAlarmMuteRule": TierAutoCRUD, + "PutAnomalyDetector": TierHandVerified, + "PutCompositeAlarm": TierHandVerified, + "PutDashboard": TierHandVerified, + "PutInsightRule": TierAutoCRUD, + "PutManagedInsightRules": TierAutoCRUD, + "PutMetricAlarm": TierHandVerified, + "PutMetricData": TierHandVerified, + "PutMetricStream": TierAutoCRUD, + "SetAlarmState": TierHandVerified, + "StartMetricStreams": TierUnimplemented, + "StartOTelEnrichment": TierUnimplemented, + "StopMetricStreams": TierUnimplemented, + "StopOTelEnrichment": TierUnimplemented, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + }}, + "cloudwatchlogs": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateKmsKey": TierUnimplemented, + "AssociateSourceToS3TableIntegration": TierUnimplemented, + "CancelExportTask": TierUnimplemented, + "CancelImportTask": TierUnimplemented, + "CreateDelivery": TierAutoCRUD, + "CreateExportTask": TierAutoCRUD, + "CreateImportTask": TierAutoCRUD, + "CreateLogAnomalyDetector": TierAutoCRUD, + "CreateLogGroup": TierHandVerified, + "CreateLogStream": TierHandVerified, + "CreateLookupTable": TierAutoCRUD, + "CreateScheduledQuery": TierAutoCRUD, + "DeleteAccountPolicy": TierAutoCRUD, + "DeleteDataProtectionPolicy": TierAutoCRUD, + "DeleteDelivery": TierAutoCRUD, + "DeleteDeliveryDestination": TierAutoCRUD, + "DeleteDeliveryDestinationPolicy": TierAutoCRUD, + "DeleteDeliverySource": TierAutoCRUD, + "DeleteDestination": TierAutoCRUD, + "DeleteIndexPolicy": TierAutoCRUD, + "DeleteIntegration": TierAutoCRUD, + "DeleteLogAnomalyDetector": TierAutoCRUD, + "DeleteLogGroup": TierHandVerified, + "DeleteLogStream": TierHandVerified, + "DeleteLookupTable": TierAutoCRUD, + "DeleteMetricFilter": TierHandVerified, + "DeleteQueryDefinition": TierAutoCRUD, + "DeleteResourcePolicy": TierAutoCRUD, + "DeleteRetentionPolicy": TierHandVerified, + "DeleteScheduledQuery": TierAutoCRUD, + "DeleteSubscriptionFilter": TierHandVerified, + "DeleteTransformer": TierAutoCRUD, + "DescribeAccountPolicies": TierAutoCRUD, + "DescribeConfigurationTemplates": TierAutoCRUD, + "DescribeDeliveries": TierAutoCRUD, + "DescribeDeliveryDestinations": TierAutoCRUD, + "DescribeDeliverySources": TierAutoCRUD, + "DescribeDestinations": TierAutoCRUD, + "DescribeExportTasks": TierAutoCRUD, + "DescribeFieldIndexes": TierAutoCRUD, + "DescribeImportTaskBatches": TierAutoCRUD, + "DescribeImportTasks": TierAutoCRUD, + "DescribeIndexPolicies": TierAutoCRUD, + "DescribeLogGroups": TierHandVerified, + "DescribeLogStreams": TierHandVerified, + "DescribeLookupTables": TierAutoCRUD, + "DescribeMetricFilters": TierHandVerified, + "DescribeQueries": TierAutoCRUD, + "DescribeQueryDefinitions": TierAutoCRUD, + "DescribeResourcePolicies": TierAutoCRUD, + "DescribeSubscriptionFilters": TierHandVerified, + "DisassociateKmsKey": TierUnimplemented, + "DisassociateSourceFromS3TableIntegration": TierUnimplemented, + "FilterLogEvents": TierHandVerified, + "GetDataProtectionPolicy": TierAutoCRUD, + "GetDelivery": TierAutoCRUD, + "GetDeliveryDestination": TierAutoCRUD, + "GetDeliveryDestinationPolicy": TierAutoCRUD, + "GetDeliverySource": TierAutoCRUD, + "GetIntegration": TierAutoCRUD, + "GetLogAnomalyDetector": TierAutoCRUD, + "GetLogEvents": TierHandVerified, + "GetLogFields": TierAutoCRUD, + "GetLogGroupFields": TierAutoCRUD, + "GetLogObject": TierAutoCRUD, + "GetLogRecord": TierAutoCRUD, + "GetLookupTable": TierAutoCRUD, + "GetQueryResults": TierAutoCRUD, + "GetScheduledQuery": TierAutoCRUD, + "GetScheduledQueryHistory": TierAutoCRUD, + "GetTransformer": TierAutoCRUD, + "ListAggregateLogGroupSummaries": TierAutoCRUD, + "ListAnomalies": TierAutoCRUD, + "ListIntegrations": TierAutoCRUD, + "ListLogAnomalyDetectors": TierAutoCRUD, + "ListLogGroups": TierAutoCRUD, + "ListLogGroupsForQuery": TierAutoCRUD, + "ListScheduledQueries": TierAutoCRUD, + "ListSourcesForS3TableIntegration": TierAutoCRUD, + "ListTagsForResource": TierHandVerified, + "ListTagsLogGroup": TierHandVerified, + "PutAccountPolicy": TierAutoCRUD, + "PutBearerTokenAuthentication": TierAutoCRUD, + "PutDataProtectionPolicy": TierAutoCRUD, + "PutDeliveryDestination": TierAutoCRUD, + "PutDeliveryDestinationPolicy": TierAutoCRUD, + "PutDeliverySource": TierAutoCRUD, + "PutDestination": TierAutoCRUD, + "PutDestinationPolicy": TierAutoCRUD, + "PutIndexPolicy": TierAutoCRUD, + "PutIntegration": TierAutoCRUD, + "PutLogEvents": TierHandVerified, + "PutLogGroupDeletionProtection": TierAutoCRUD, + "PutMetricFilter": TierHandVerified, + "PutQueryDefinition": TierAutoCRUD, + "PutResourcePolicy": TierAutoCRUD, + "PutRetentionPolicy": TierHandVerified, + "PutSubscriptionFilter": TierHandVerified, + "PutTransformer": TierAutoCRUD, + "StartLiveTail": TierUnimplemented, + "StartQuery": TierUnimplemented, + "StopQuery": TierUnimplemented, + "TagLogGroup": TierHandVerified, + "TagResource": TierHandVerified, + "TestMetricFilter": TierUnimplemented, + "TestTransformer": TierUnimplemented, + "UntagLogGroup": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAnomaly": TierAutoCRUD, + "UpdateDeliveryConfiguration": TierAutoCRUD, + "UpdateLogAnomalyDetector": TierAutoCRUD, + "UpdateLookupTable": TierAutoCRUD, + "UpdateScheduledQuery": TierAutoCRUD, + }}, + "codeartifact": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateExternalConnection": TierHandVerified, + "CopyPackageVersions": TierHandVerified, + "CreateDomain": TierHandVerified, + "CreatePackageGroup": TierHandVerified, + "CreateRepository": TierHandVerified, + "DeleteDomain": TierHandVerified, + "DeleteDomainPermissionsPolicy": TierHandVerified, + "DeletePackage": TierHandVerified, + "DeletePackageGroup": TierHandVerified, + "DeletePackageVersions": TierHandVerified, + "DeleteRepository": TierHandVerified, + "DeleteRepositoryPermissionsPolicy": TierHandVerified, + "DescribeDomain": TierHandVerified, + "DescribePackage": TierHandVerified, + "DescribePackageGroup": TierHandVerified, + "DescribePackageVersion": TierHandVerified, + "DescribeRepository": TierHandVerified, + "DisassociateExternalConnection": TierHandVerified, + "DisposePackageVersions": TierHandVerified, + "GetAssociatedPackageGroup": TierHandVerified, + "GetAuthorizationToken": TierHandVerified, + "GetDomainPermissionsPolicy": TierHandVerified, + "GetPackageVersionAsset": TierHandVerified, + "GetPackageVersionReadme": TierHandVerified, + "GetRepositoryEndpoint": TierHandVerified, + "GetRepositoryPermissionsPolicy": TierHandVerified, + "ListAllowedRepositoriesForGroup": TierHandVerified, + "ListAssociatedPackages": TierHandVerified, + "ListDomains": TierHandVerified, + "ListPackageGroups": TierHandVerified, + "ListPackageVersionAssets": TierHandVerified, + "ListPackageVersionDependencies": TierHandVerified, + "ListPackageVersions": TierHandVerified, + "ListPackages": TierHandVerified, + "ListRepositories": TierHandVerified, + "ListRepositoriesInDomain": TierHandVerified, + "ListSubPackageGroups": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PublishPackageVersion": TierHandVerified, + "PutDomainPermissionsPolicy": TierHandVerified, + "PutPackageOriginConfiguration": TierHandVerified, + "PutRepositoryPermissionsPolicy": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdatePackageGroup": TierHandVerified, + "UpdatePackageGroupOriginConfiguration": TierHandVerified, + "UpdatePackageVersionsStatus": TierHandVerified, + "UpdateRepository": TierHandVerified, + }}, + "codebuild": {ModelBacked: true, Operations: map[string]Tier{ + "BatchDeleteBuilds": TierHandVerified, + "BatchGetBuildBatches": TierAutoCRUD, + "BatchGetBuilds": TierHandVerified, + "BatchGetCommandExecutions": TierAutoCRUD, + "BatchGetFleets": TierHandVerified, + "BatchGetProjects": TierHandVerified, + "BatchGetReportGroups": TierHandVerified, + "BatchGetReports": TierAutoCRUD, + "BatchGetSandboxes": TierAutoCRUD, + "CreateFleet": TierHandVerified, + "CreateProject": TierHandVerified, + "CreateReportGroup": TierHandVerified, + "CreateWebhook": TierAutoCRUD, + "DeleteBuildBatch": TierAutoCRUD, + "DeleteFleet": TierHandVerified, + "DeleteProject": TierHandVerified, + "DeleteReport": TierAutoCRUD, + "DeleteReportGroup": TierHandVerified, + "DeleteResourcePolicy": TierAutoCRUD, + "DeleteSourceCredentials": TierHandVerified, + "DeleteWebhook": TierAutoCRUD, + "DescribeCodeCoverages": TierAutoCRUD, + "DescribeTestCases": TierAutoCRUD, + "GetReportGroupTrend": TierAutoCRUD, + "GetResourcePolicy": TierAutoCRUD, + "ImportSourceCredentials": TierHandVerified, + "InvalidateProjectCache": TierHandVerified, + "ListBuildBatches": TierAutoCRUD, + "ListBuildBatchesForProject": TierAutoCRUD, + "ListBuilds": TierHandVerified, + "ListBuildsForProject": TierHandVerified, + "ListCommandExecutionsForSandbox": TierAutoCRUD, + "ListCuratedEnvironmentImages": TierHandVerified, + "ListFleets": TierHandVerified, + "ListProjects": TierHandVerified, + "ListReportGroups": TierHandVerified, + "ListReports": TierHandVerified, + "ListReportsForReportGroup": TierHandVerified, + "ListSandboxes": TierAutoCRUD, + "ListSandboxesForProject": TierAutoCRUD, + "ListSharedProjects": TierAutoCRUD, + "ListSharedReportGroups": TierAutoCRUD, + "ListSourceCredentials": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PutResourcePolicy": TierAutoCRUD, + "RetryBuild": TierHandVerified, + "RetryBuildBatch": TierUnimplemented, + "StartBuild": TierHandVerified, + "StartBuildBatch": TierUnimplemented, + "StartCommandExecution": TierUnimplemented, + "StartSandbox": TierUnimplemented, + "StartSandboxConnection": TierUnimplemented, + "StopBuild": TierHandVerified, + "StopBuildBatch": TierUnimplemented, + "StopSandbox": TierUnimplemented, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateFleet": TierHandVerified, + "UpdateProject": TierHandVerified, + "UpdateProjectVisibility": TierAutoCRUD, + "UpdateReportGroup": TierHandVerified, + "UpdateWebhook": TierAutoCRUD, + }}, + "codecommit": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateApprovalRuleTemplateWithRepository": TierHandVerified, + "BatchAssociateApprovalRuleTemplateWithRepositories": TierHandVerified, + "BatchDescribeMergeConflicts": TierHandVerified, + "BatchDisassociateApprovalRuleTemplateFromRepositories": TierHandVerified, + "BatchGetCommits": TierHandVerified, + "BatchGetRepositories": TierHandVerified, + "CreateApprovalRuleTemplate": TierHandVerified, + "CreateBranch": TierHandVerified, + "CreateCommit": TierHandVerified, + "CreatePullRequest": TierHandVerified, + "CreatePullRequestApprovalRule": TierHandVerified, + "CreateRepository": TierHandVerified, + "CreateUnreferencedMergeCommit": TierHandVerified, + "DeleteApprovalRuleTemplate": TierHandVerified, + "DeleteBranch": TierHandVerified, + "DeleteCommentContent": TierHandVerified, + "DeleteFile": TierHandVerified, + "DeletePullRequestApprovalRule": TierHandVerified, + "DeleteRepository": TierHandVerified, + "DescribeMergeConflicts": TierHandVerified, + "DescribePullRequestEvents": TierHandVerified, + "DisassociateApprovalRuleTemplateFromRepository": TierHandVerified, + "EvaluatePullRequestApprovalRules": TierHandVerified, + "GetApprovalRuleTemplate": TierHandVerified, + "GetBlob": TierHandVerified, + "GetBranch": TierHandVerified, + "GetComment": TierHandVerified, + "GetCommentReactions": TierHandVerified, + "GetCommentsForComparedCommit": TierHandVerified, + "GetCommentsForPullRequest": TierHandVerified, + "GetCommit": TierHandVerified, + "GetDifferences": TierHandVerified, + "GetFile": TierHandVerified, + "GetFolder": TierHandVerified, + "GetMergeCommit": TierHandVerified, + "GetMergeConflicts": TierHandVerified, + "GetMergeOptions": TierHandVerified, + "GetPullRequest": TierHandVerified, + "GetPullRequestApprovalStates": TierHandVerified, + "GetPullRequestOverrideState": TierHandVerified, + "GetRepository": TierHandVerified, + "GetRepositoryTriggers": TierHandVerified, + "ListApprovalRuleTemplates": TierHandVerified, + "ListAssociatedApprovalRuleTemplatesForRepository": TierHandVerified, + "ListBranches": TierHandVerified, + "ListFileCommitHistory": TierHandVerified, + "ListPullRequests": TierHandVerified, + "ListRepositories": TierHandVerified, + "ListRepositoriesForApprovalRuleTemplate": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "MergeBranchesByFastForward": TierHandVerified, + "MergeBranchesBySquash": TierHandVerified, + "MergeBranchesByThreeWay": TierHandVerified, + "MergePullRequestByFastForward": TierHandVerified, + "MergePullRequestBySquash": TierHandVerified, + "MergePullRequestByThreeWay": TierHandVerified, + "OverridePullRequestApprovalRules": TierHandVerified, + "PostCommentForComparedCommit": TierHandVerified, + "PostCommentForPullRequest": TierHandVerified, + "PostCommentReply": TierHandVerified, + "PutCommentReaction": TierHandVerified, + "PutFile": TierHandVerified, + "PutRepositoryTriggers": TierHandVerified, + "TagResource": TierHandVerified, + "TestRepositoryTriggers": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApprovalRuleTemplateContent": TierHandVerified, + "UpdateApprovalRuleTemplateDescription": TierHandVerified, + "UpdateApprovalRuleTemplateName": TierHandVerified, + "UpdateComment": TierHandVerified, + "UpdateDefaultBranch": TierHandVerified, + "UpdatePullRequestApprovalRuleContent": TierHandVerified, + "UpdatePullRequestApprovalState": TierHandVerified, + "UpdatePullRequestDescription": TierHandVerified, + "UpdatePullRequestStatus": TierHandVerified, + "UpdatePullRequestTitle": TierHandVerified, + "UpdateRepositoryDescription": TierHandVerified, + "UpdateRepositoryEncryptionKey": TierHandVerified, + "UpdateRepositoryName": TierHandVerified, + }}, + "codeconnections": {ModelBacked: false, Operations: map[string]Tier{ + "CreateConnection": TierHandVerified, + "CreateHost": TierHandVerified, + "CreateRepositoryLink": TierHandVerified, + "CreateSyncBlocker": TierHandVerified, + "CreateSyncConfiguration": TierHandVerified, + "DeleteConnection": TierHandVerified, + "DeleteHost": TierHandVerified, + "DeleteRepositoryLink": TierHandVerified, + "DeleteSyncConfiguration": TierHandVerified, + "DescribeConnection": TierHandVerified, + "GetConnection": TierHandVerified, + "GetHost": TierHandVerified, + "GetRepositoryLink": TierHandVerified, + "GetRepositorySyncStatus": TierHandVerified, + "GetResourceSyncStatus": TierHandVerified, + "GetSyncBlockerSummary": TierHandVerified, + "GetSyncConfiguration": TierHandVerified, + "ListConnectionOwners": TierHandVerified, + "ListConnections": TierHandVerified, + "ListHosts": TierHandVerified, + "ListRepositoryLinks": TierHandVerified, + "ListRepositorySyncDefinitions": TierHandVerified, + "ListSyncBlockerSummaries": TierHandVerified, + "ListSyncConfigurations": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PassConnection": TierHandVerified, + "PassRepository": TierHandVerified, + "StartRepositoryLink": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateConnection": TierHandVerified, + "UpdateHost": TierHandVerified, + "UpdateRepositoryLink": TierHandVerified, + "UpdateSyncBlocker": TierHandVerified, + "UpdateSyncConfiguration": TierHandVerified, + }}, + "codedeploy": {ModelBacked: true, Operations: map[string]Tier{ + "AddTagsToOnPremisesInstances": TierUnimplemented, + "BatchGetApplicationRevisions": TierAutoCRUD, + "BatchGetApplications": TierHandVerified, + "BatchGetDeploymentGroups": TierHandVerified, + "BatchGetDeploymentInstances": TierAutoCRUD, + "BatchGetDeploymentTargets": TierAutoCRUD, + "BatchGetDeployments": TierHandVerified, + "BatchGetOnPremisesInstances": TierAutoCRUD, + "ContinueDeployment": TierUnimplemented, + "CreateApplication": TierHandVerified, + "CreateDeployment": TierHandVerified, + "CreateDeploymentConfig": TierHandVerified, + "CreateDeploymentGroup": TierHandVerified, + "DeleteApplication": TierHandVerified, + "DeleteDeploymentConfig": TierHandVerified, + "DeleteDeploymentGroup": TierHandVerified, + "DeleteGitHubAccountToken": TierAutoCRUD, + "DeleteResourcesByExternalId": TierAutoCRUD, + "DeregisterOnPremisesInstance": TierAutoCRUD, + "GetApplication": TierHandVerified, + "GetApplicationRevision": TierHandVerified, + "GetDeployment": TierHandVerified, + "GetDeploymentConfig": TierHandVerified, + "GetDeploymentGroup": TierHandVerified, + "GetDeploymentInstance": TierAutoCRUD, + "GetDeploymentTarget": TierAutoCRUD, + "GetOnPremisesInstance": TierAutoCRUD, + "ListApplicationRevisions": TierHandVerified, + "ListApplications": TierHandVerified, + "ListDeploymentConfigs": TierHandVerified, + "ListDeploymentGroups": TierHandVerified, + "ListDeploymentInstances": TierAutoCRUD, + "ListDeploymentTargets": TierAutoCRUD, + "ListDeployments": TierHandVerified, + "ListGitHubAccountTokenNames": TierAutoCRUD, + "ListOnPremisesInstances": TierAutoCRUD, + "ListTagsForResource": TierHandVerified, + "PutLifecycleEventHookExecutionStatus": TierAutoCRUD, + "RegisterApplicationRevision": TierHandVerified, + "RegisterOnPremisesInstance": TierAutoCRUD, + "RemoveTagsFromOnPremisesInstances": TierUnimplemented, + "SkipWaitTimeForInstanceTermination": TierUnimplemented, + "StopDeployment": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApplication": TierHandVerified, + "UpdateDeploymentGroup": TierHandVerified, + }}, + "codepipeline": {ModelBacked: true, Operations: map[string]Tier{ + "AcknowledgeJob": TierHandVerified, + "AcknowledgeThirdPartyJob": TierHandVerified, + "CreateCustomActionType": TierHandVerified, + "CreatePipeline": TierHandVerified, + "DeleteCustomActionType": TierHandVerified, + "DeletePipeline": TierHandVerified, + "DeleteWebhook": TierHandVerified, + "DeregisterWebhookWithThirdParty": TierHandVerified, + "DisableStageTransition": TierHandVerified, + "EnableStageTransition": TierHandVerified, + "GetActionExecution": TierHandVerified, + "GetActionType": TierHandVerified, + "GetJobDetails": TierHandVerified, + "GetPipeline": TierHandVerified, + "GetPipelineExecution": TierHandVerified, + "GetPipelineState": TierHandVerified, + "GetThirdPartyJobDetails": TierHandVerified, + "ListActionExecutions": TierHandVerified, + "ListActionTypes": TierHandVerified, + "ListDeployActionExecutionTargets": TierAutoCRUD, + "ListPipelineExecutions": TierHandVerified, + "ListPipelines": TierHandVerified, + "ListRuleExecutions": TierAutoCRUD, + "ListRuleTypes": TierAutoCRUD, + "ListTagsForResource": TierHandVerified, + "ListWebhooks": TierHandVerified, + "OverrideStageCondition": TierUnimplemented, + "PollForJobs": TierHandVerified, + "PollForThirdPartyJobs": TierHandVerified, + "PutActionRevision": TierHandVerified, + "PutApprovalResult": TierHandVerified, + "PutJobFailureResult": TierHandVerified, + "PutJobSuccessResult": TierHandVerified, + "PutThirdPartyJobFailureResult": TierHandVerified, + "PutThirdPartyJobSuccessResult": TierHandVerified, + "PutWebhook": TierHandVerified, + "RegisterWebhookWithThirdParty": TierHandVerified, + "RetryStageExecution": TierHandVerified, + "RollbackStage": TierHandVerified, + "StartPipelineExecution": TierHandVerified, + "StartPipelineExecutionResumption": TierHandVerified, + "StopPipelineExecution": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateActionType": TierHandVerified, + "UpdatePipeline": TierHandVerified, + "UpdatePipelineSettings": TierHandVerified, + }}, + "cognitoidentity": {ModelBacked: true, Operations: map[string]Tier{ + "CreateIdentityPool": TierHandVerified, + "DeleteIdentities": TierHandVerified, + "DeleteIdentityPool": TierHandVerified, + "DescribeIdentity": TierHandVerified, + "DescribeIdentityPool": TierHandVerified, + "GetCredentialsForIdentity": TierHandVerified, + "GetId": TierHandVerified, + "GetIdentityPoolRoles": TierHandVerified, + "GetOpenIdToken": TierHandVerified, + "GetOpenIdTokenForDeveloperIdentity": TierHandVerified, + "GetPrincipalTagAttributeMap": TierHandVerified, + "ListIdentities": TierHandVerified, + "ListIdentityPools": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "LookupDeveloperIdentity": TierHandVerified, + "MergeDeveloperIdentities": TierHandVerified, + "SetIdentityPoolRoles": TierHandVerified, + "SetPrincipalTagAttributeMap": TierHandVerified, + "TagResource": TierHandVerified, + "UnlinkDeveloperIdentity": TierHandVerified, + "UnlinkIdentity": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateIdentityPool": TierHandVerified, + }}, + "cognitoidentityprovider": {ModelBacked: true, Operations: map[string]Tier{ + "AddCustomAttributes": TierUnimplemented, + "AddUserPoolClientSecret": TierUnimplemented, + "AdminAddUserToGroup": TierHandVerified, + "AdminConfirmSignUp": TierHandVerified, + "AdminCreateUser": TierHandVerified, + "AdminDeleteUser": TierHandVerified, + "AdminDeleteUserAttributes": TierHandVerified, + "AdminDisableProviderForUser": TierUnimplemented, + "AdminDisableUser": TierHandVerified, + "AdminEnableUser": TierHandVerified, + "AdminForgetDevice": TierUnimplemented, + "AdminGetDevice": TierUnimplemented, + "AdminGetUser": TierHandVerified, + "AdminInitiateAuth": TierHandVerified, + "AdminLinkProviderForUser": TierUnimplemented, + "AdminListDevices": TierUnimplemented, + "AdminListGroupsForUser": TierHandVerified, + "AdminListUserAuthEvents": TierUnimplemented, + "AdminRemoveUserFromGroup": TierHandVerified, + "AdminResetUserPassword": TierHandVerified, + "AdminRespondToAuthChallenge": TierHandVerified, + "AdminSetUserMFAPreference": TierUnimplemented, + "AdminSetUserPassword": TierHandVerified, + "AdminSetUserSettings": TierUnimplemented, + "AdminUpdateAuthEventFeedback": TierUnimplemented, + "AdminUpdateDeviceStatus": TierUnimplemented, + "AdminUpdateUserAttributes": TierHandVerified, + "AdminUserGlobalSignOut": TierHandVerified, + "AssociateSoftwareToken": TierUnimplemented, + "ChangePassword": TierHandVerified, + "CompleteWebAuthnRegistration": TierUnimplemented, + "ConfirmDevice": TierUnimplemented, + "ConfirmForgotPassword": TierHandVerified, + "ConfirmSignUp": TierHandVerified, + "CreateGroup": TierHandVerified, + "CreateIdentityProvider": TierHandVerified, + "CreateManagedLoginBranding": TierAutoCRUD, + "CreateResourceServer": TierHandVerified, + "CreateTerms": TierAutoCRUD, + "CreateUserImportJob": TierAutoCRUD, + "CreateUserPool": TierHandVerified, + "CreateUserPoolClient": TierHandVerified, + "CreateUserPoolDomain": TierAutoCRUD, + "DeleteGroup": TierHandVerified, + "DeleteIdentityProvider": TierHandVerified, + "DeleteManagedLoginBranding": TierAutoCRUD, + "DeleteResourceServer": TierHandVerified, + "DeleteTerms": TierAutoCRUD, + "DeleteUser": TierAutoCRUD, + "DeleteUserAttributes": TierAutoCRUD, + "DeleteUserPool": TierHandVerified, + "DeleteUserPoolClient": TierHandVerified, + "DeleteUserPoolClientSecret": TierAutoCRUD, + "DeleteUserPoolDomain": TierAutoCRUD, + "DeleteWebAuthnCredential": TierAutoCRUD, + "DescribeIdentityProvider": TierHandVerified, + "DescribeManagedLoginBranding": TierAutoCRUD, + "DescribeManagedLoginBrandingByClient": TierAutoCRUD, + "DescribeResourceServer": TierHandVerified, + "DescribeRiskConfiguration": TierAutoCRUD, + "DescribeTerms": TierAutoCRUD, + "DescribeUserImportJob": TierAutoCRUD, + "DescribeUserPool": TierHandVerified, + "DescribeUserPoolClient": TierHandVerified, + "DescribeUserPoolDomain": TierAutoCRUD, + "ForgetDevice": TierUnimplemented, + "ForgotPassword": TierHandVerified, + "GetCSVHeader": TierAutoCRUD, + "GetDevice": TierAutoCRUD, + "GetGroup": TierHandVerified, + "GetIdentityProviderByIdentifier": TierHandVerified, + "GetLogDeliveryConfiguration": TierAutoCRUD, + "GetSigningCertificate": TierAutoCRUD, + "GetTokensFromRefreshToken": TierAutoCRUD, + "GetUICustomization": TierAutoCRUD, + "GetUser": TierHandVerified, + "GetUserAttributeVerificationCode": TierAutoCRUD, + "GetUserAuthFactors": TierAutoCRUD, + "GetUserPoolMfaConfig": TierHandVerified, + "GlobalSignOut": TierHandVerified, + "InitiateAuth": TierHandVerified, + "ListDevices": TierAutoCRUD, + "ListGroups": TierHandVerified, + "ListIdentityProviders": TierHandVerified, + "ListResourceServers": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTerms": TierAutoCRUD, + "ListUserImportJobs": TierAutoCRUD, + "ListUserPoolClientSecrets": TierAutoCRUD, + "ListUserPoolClients": TierHandVerified, + "ListUserPools": TierHandVerified, + "ListUsers": TierHandVerified, + "ListUsersInGroup": TierHandVerified, + "ListWebAuthnCredentials": TierAutoCRUD, + "ResendConfirmationCode": TierUnimplemented, + "RespondToAuthChallenge": TierHandVerified, + "RevokeToken": TierHandVerified, + "SetLogDeliveryConfiguration": TierUnimplemented, + "SetRiskConfiguration": TierUnimplemented, + "SetUICustomization": TierUnimplemented, + "SetUserMFAPreference": TierUnimplemented, + "SetUserPoolMfaConfig": TierHandVerified, + "SetUserSettings": TierUnimplemented, + "SignUp": TierHandVerified, + "StartUserImportJob": TierUnimplemented, + "StartWebAuthnRegistration": TierUnimplemented, + "StopUserImportJob": TierUnimplemented, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAuthEventFeedback": TierAutoCRUD, + "UpdateDeviceStatus": TierAutoCRUD, + "UpdateGroup": TierHandVerified, + "UpdateIdentityProvider": TierHandVerified, + "UpdateManagedLoginBranding": TierAutoCRUD, + "UpdateResourceServer": TierHandVerified, + "UpdateTerms": TierAutoCRUD, + "UpdateUserAttributes": TierAutoCRUD, + "UpdateUserPool": TierHandVerified, + "UpdateUserPoolClient": TierHandVerified, + "UpdateUserPoolDomain": TierAutoCRUD, + "VerifySoftwareToken": TierUnimplemented, + "VerifyUserAttribute": TierUnimplemented, + }}, + "configservice": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateResourceTypes": TierUnimplemented, + "BatchGetAggregateResourceConfig": TierAutoCRUD, + "BatchGetResourceConfig": TierAutoCRUD, + "DeleteAggregationAuthorization": TierHandVerified, + "DeleteConfigRule": TierHandVerified, + "DeleteConfigurationAggregator": TierHandVerified, + "DeleteConfigurationRecorder": TierHandVerified, + "DeleteConformancePack": TierHandVerified, + "DeleteDeliveryChannel": TierHandVerified, + "DeleteEvaluationResults": TierAutoCRUD, + "DeleteOrganizationConfigRule": TierAutoCRUD, + "DeleteOrganizationConformancePack": TierAutoCRUD, + "DeletePendingAggregationRequest": TierAutoCRUD, + "DeleteRemediationConfiguration": TierHandVerified, + "DeleteRemediationExceptions": TierHandVerified, + "DeleteResourceConfig": TierAutoCRUD, + "DeleteRetentionConfiguration": TierHandVerified, + "DeleteServiceLinkedConfigurationRecorder": TierAutoCRUD, + "DeleteStoredQuery": TierHandVerified, + "DeliverConfigSnapshot": TierHandVerified, + "DescribeAggregateComplianceByConfigRules": TierAutoCRUD, + "DescribeAggregateComplianceByConformancePacks": TierAutoCRUD, + "DescribeAggregationAuthorizations": TierHandVerified, + "DescribeComplianceByConfigRule": TierAutoCRUD, + "DescribeComplianceByResource": TierAutoCRUD, + "DescribeConfigRuleEvaluationStatus": TierHandVerified, + "DescribeConfigRules": TierHandVerified, + "DescribeConfigurationAggregatorSourcesStatus": TierHandVerified, + "DescribeConfigurationAggregators": TierHandVerified, + "DescribeConfigurationRecorderStatus": TierHandVerified, + "DescribeConfigurationRecorders": TierHandVerified, + "DescribeConformancePackCompliance": TierHandVerified, + "DescribeConformancePackStatus": TierHandVerified, + "DescribeConformancePacks": TierHandVerified, + "DescribeDeliveryChannelStatus": TierHandVerified, + "DescribeDeliveryChannels": TierHandVerified, + "DescribeOrganizationConfigRuleStatuses": TierAutoCRUD, + "DescribeOrganizationConfigRules": TierAutoCRUD, + "DescribeOrganizationConformancePackStatuses": TierAutoCRUD, + "DescribeOrganizationConformancePacks": TierAutoCRUD, + "DescribePendingAggregationRequests": TierHandVerified, + "DescribeRemediationConfigurations": TierHandVerified, + "DescribeRemediationExceptions": TierHandVerified, + "DescribeRemediationExecutionStatus": TierHandVerified, + "DescribeRetentionConfigurations": TierHandVerified, + "DisassociateResourceTypes": TierUnimplemented, + "GetAggregateComplianceDetailsByConfigRule": TierAutoCRUD, + "GetAggregateConfigRuleComplianceSummary": TierAutoCRUD, + "GetAggregateConformancePackComplianceSummary": TierAutoCRUD, + "GetAggregateDiscoveredResourceCounts": TierAutoCRUD, + "GetAggregateResourceConfig": TierAutoCRUD, + "GetComplianceDetailsByConfigRule": TierAutoCRUD, + "GetComplianceDetailsByResource": TierAutoCRUD, + "GetComplianceSummaryByConfigRule": TierAutoCRUD, + "GetComplianceSummaryByResourceType": TierAutoCRUD, + "GetConformancePackComplianceDetails": TierAutoCRUD, + "GetConformancePackComplianceSummary": TierAutoCRUD, + "GetCustomRulePolicy": TierAutoCRUD, + "GetDiscoveredResourceCounts": TierAutoCRUD, + "GetOrganizationConfigRuleDetailedStatus": TierAutoCRUD, + "GetOrganizationConformancePackDetailedStatus": TierAutoCRUD, + "GetOrganizationCustomRulePolicy": TierAutoCRUD, + "GetResourceConfigHistory": TierAutoCRUD, + "GetResourceEvaluationSummary": TierAutoCRUD, + "GetStoredQuery": TierHandVerified, + "ListAggregateDiscoveredResources": TierAutoCRUD, + "ListConfigurationRecorders": TierAutoCRUD, + "ListConformancePackComplianceScores": TierAutoCRUD, + "ListDiscoveredResources": TierAutoCRUD, + "ListResourceEvaluations": TierAutoCRUD, + "ListStoredQueries": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PutAggregationAuthorization": TierHandVerified, + "PutConfigRule": TierHandVerified, + "PutConfigurationAggregator": TierHandVerified, + "PutConfigurationRecorder": TierHandVerified, + "PutConformancePack": TierHandVerified, + "PutDeliveryChannel": TierHandVerified, + "PutEvaluations": TierHandVerified, + "PutExternalEvaluation": TierHandVerified, + "PutOrganizationConfigRule": TierAutoCRUD, + "PutOrganizationConformancePack": TierAutoCRUD, + "PutRemediationConfigurations": TierHandVerified, + "PutRemediationExceptions": TierHandVerified, + "PutResourceConfig": TierAutoCRUD, + "PutRetentionConfiguration": TierHandVerified, + "PutServiceLinkedConfigurationRecorder": TierAutoCRUD, + "PutStoredQuery": TierHandVerified, + "SelectAggregateResourceConfig": TierUnimplemented, + "SelectResourceConfig": TierUnimplemented, + "StartConfigRulesEvaluation": TierHandVerified, + "StartConfigurationRecorder": TierHandVerified, + "StartRemediationExecution": TierHandVerified, + "StartResourceEvaluation": TierUnimplemented, + "StopConfigurationRecorder": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + }}, + "costexplorer": {ModelBacked: true, Operations: map[string]Tier{ + "CreateAnomalyMonitor": TierHandVerified, + "CreateAnomalySubscription": TierHandVerified, + "CreateCostCategoryDefinition": TierHandVerified, + "DeleteAnomalyMonitor": TierHandVerified, + "DeleteAnomalySubscription": TierHandVerified, + "DeleteCostCategoryDefinition": TierHandVerified, + "DescribeCostCategoryDefinition": TierHandVerified, + "GetAnomalies": TierHandVerified, + "GetAnomalyMonitors": TierHandVerified, + "GetAnomalySubscriptions": TierHandVerified, + "GetApproximateUsageRecords": TierHandVerified, + "GetCommitmentPurchaseAnalysis": TierHandVerified, + "GetCostAndUsage": TierHandVerified, + "GetCostAndUsageComparisons": TierHandVerified, + "GetCostAndUsageWithResources": TierHandVerified, + "GetCostCategories": TierHandVerified, + "GetCostComparisonDrivers": TierHandVerified, + "GetCostForecast": TierHandVerified, + "GetDimensionValues": TierHandVerified, + "GetReservationCoverage": TierHandVerified, + "GetReservationPurchaseRecommendation": TierHandVerified, + "GetReservationUtilization": TierHandVerified, + "GetRightsizingRecommendation": TierHandVerified, + "GetSavingsPlanPurchaseRecommendationDetails": TierHandVerified, + "GetSavingsPlansCoverage": TierHandVerified, + "GetSavingsPlansPurchaseRecommendation": TierHandVerified, + "GetSavingsPlansUtilization": TierHandVerified, + "GetSavingsPlansUtilizationDetails": TierHandVerified, + "GetTags": TierHandVerified, + "GetUsageForecast": TierHandVerified, + "ListCommitmentPurchaseAnalyses": TierHandVerified, + "ListCostAllocationTagBackfillHistory": TierHandVerified, + "ListCostAllocationTags": TierHandVerified, + "ListCostCategoryDefinitions": TierHandVerified, + "ListCostCategoryResourceAssociations": TierHandVerified, + "ListSavingsPlansPurchaseRecommendationGeneration": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ProvideAnomalyFeedback": TierHandVerified, + "StartCommitmentPurchaseAnalysis": TierHandVerified, + "StartCostAllocationTagBackfill": TierHandVerified, + "StartSavingsPlansPurchaseRecommendationGeneration": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAnomalyMonitor": TierHandVerified, + "UpdateAnomalySubscription": TierHandVerified, + "UpdateCostAllocationTagsStatus": TierHandVerified, + "UpdateCostCategoryDefinition": TierHandVerified, + }}, + "dms": {ModelBacked: false, Operations: map[string]Tier{ + "AddTagsToResource": TierHandVerified, + "CreateEndpoint": TierHandVerified, + "CreateEventSubscription": TierHandVerified, + "CreateReplicationInstance": TierHandVerified, + "CreateReplicationTask": TierHandVerified, + "DeleteEndpoint": TierHandVerified, + "DeleteEventSubscription": TierHandVerified, + "DeleteReplicationInstance": TierHandVerified, + "DeleteReplicationTask": TierHandVerified, + "DescribeAccountAttributes": TierHandVerified, + "DescribeCertificates": TierHandVerified, + "DescribeConnections": TierHandVerified, + "DescribeEndpointTypes": TierHandVerified, + "DescribeEndpoints": TierHandVerified, + "DescribeEventCategories": TierHandVerified, + "DescribeEventSubscriptions": TierHandVerified, + "DescribeEvents": TierHandVerified, + "DescribeOrderableReplicationInstances": TierHandVerified, + "DescribeReplicationInstances": TierHandVerified, + "DescribeReplicationSubnetGroups": TierHandVerified, + "DescribeReplicationTaskAssessmentResults": TierHandVerified, + "DescribeReplicationTasks": TierHandVerified, + "DescribeTableStatistics": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ModifyEndpoint": TierHandVerified, + "ModifyReplicationInstance": TierHandVerified, + "ModifyReplicationTask": TierHandVerified, + "RebootReplicationInstance": TierHandVerified, + "ReloadTables": TierHandVerified, + "RemoveTagsFromResource": TierHandVerified, + "StartReplicationTask": TierHandVerified, + "StopReplicationTask": TierHandVerified, + "TestConnection": TierHandVerified, + }}, + "docdb": {ModelBacked: true, Operations: map[string]Tier{ + "AddSourceIdentifierToSubscription": TierHandVerified, + "AddTagsToResource": TierHandVerified, + "ApplyPendingMaintenanceAction": TierHandVerified, + "CopyDBClusterParameterGroup": TierHandVerified, + "CopyDBClusterSnapshot": TierHandVerified, + "CreateDBCluster": TierHandVerified, + "CreateDBClusterParameterGroup": TierHandVerified, + "CreateDBClusterSnapshot": TierHandVerified, + "CreateDBInstance": TierHandVerified, + "CreateDBSubnetGroup": TierHandVerified, + "CreateEventSubscription": TierHandVerified, + "CreateGlobalCluster": TierHandVerified, + "DeleteDBCluster": TierHandVerified, + "DeleteDBClusterParameterGroup": TierHandVerified, + "DeleteDBClusterSnapshot": TierHandVerified, + "DeleteDBInstance": TierHandVerified, + "DeleteDBSubnetGroup": TierHandVerified, + "DeleteEventSubscription": TierHandVerified, + "DeleteGlobalCluster": TierHandVerified, + "DescribeCertificates": TierHandVerified, + "DescribeDBClusterParameterGroups": TierHandVerified, + "DescribeDBClusterParameters": TierHandVerified, + "DescribeDBClusterSnapshotAttributes": TierHandVerified, + "DescribeDBClusterSnapshots": TierHandVerified, + "DescribeDBClusters": TierHandVerified, + "DescribeDBEngineVersions": TierHandVerified, + "DescribeDBInstances": TierHandVerified, + "DescribeDBSubnetGroups": TierHandVerified, + "DescribeEngineDefaultClusterParameters": TierHandVerified, + "DescribeEventCategories": TierHandVerified, + "DescribeEventSubscriptions": TierHandVerified, + "DescribeEvents": TierHandVerified, + "DescribeGlobalClusters": TierHandVerified, + "DescribeOrderableDBInstanceOptions": TierHandVerified, + "DescribePendingMaintenanceActions": TierHandVerified, + "FailoverDBCluster": TierHandVerified, + "FailoverGlobalCluster": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ModifyDBCluster": TierHandVerified, + "ModifyDBClusterParameterGroup": TierHandVerified, + "ModifyDBClusterSnapshotAttribute": TierHandVerified, + "ModifyDBInstance": TierHandVerified, + "ModifyDBSubnetGroup": TierHandVerified, + "ModifyEventSubscription": TierHandVerified, + "ModifyGlobalCluster": TierHandVerified, + "RebootDBInstance": TierHandVerified, + "RemoveFromGlobalCluster": TierHandVerified, + "RemoveSourceIdentifierFromSubscription": TierHandVerified, + "RemoveTagsFromResource": TierHandVerified, + "ResetDBClusterParameterGroup": TierHandVerified, + "RestoreDBClusterFromSnapshot": TierHandVerified, + "RestoreDBClusterToPointInTime": TierHandVerified, + "StartDBCluster": TierHandVerified, + "StopDBCluster": TierHandVerified, + "SwitchoverGlobalCluster": TierHandVerified, + }}, + "dynamodb": {ModelBacked: true, Operations: map[string]Tier{ + "BatchExecuteStatement": TierUnimplemented, + "BatchGetItem": TierHandVerified, + "BatchWriteItem": TierHandVerified, + "CreateBackup": TierAutoCRUD, + "CreateGlobalTable": TierAutoCRUD, + "CreateTable": TierHandVerified, + "DeleteBackup": TierAutoCRUD, + "DeleteItem": TierHandVerified, + "DeleteResourcePolicy": TierAutoCRUD, + "DeleteTable": TierHandVerified, + "DescribeBackup": TierAutoCRUD, + "DescribeContinuousBackups": TierAutoCRUD, + "DescribeContributorInsights": TierAutoCRUD, + "DescribeEndpoints": TierAutoCRUD, + "DescribeExport": TierAutoCRUD, + "DescribeGlobalTable": TierAutoCRUD, + "DescribeGlobalTableSettings": TierAutoCRUD, + "DescribeImport": TierAutoCRUD, + "DescribeKinesisStreamingDestination": TierAutoCRUD, + "DescribeLimits": TierAutoCRUD, + "DescribeTable": TierHandVerified, + "DescribeTableReplicaAutoScaling": TierAutoCRUD, + "DescribeTimeToLive": TierHandVerified, + "DisableKinesisStreamingDestination": TierUnimplemented, + "EnableKinesisStreamingDestination": TierUnimplemented, + "ExecuteStatement": TierUnimplemented, + "ExecuteTransaction": TierUnimplemented, + "ExportTableToPointInTime": TierUnimplemented, + "GetItem": TierHandVerified, + "GetResourcePolicy": TierAutoCRUD, + "ImportTable": TierUnimplemented, + "ListBackups": TierAutoCRUD, + "ListContributorInsights": TierAutoCRUD, + "ListExports": TierAutoCRUD, + "ListGlobalTables": TierAutoCRUD, + "ListImports": TierAutoCRUD, + "ListTables": TierHandVerified, + "ListTagsOfResource": TierHandVerified, + "PutItem": TierHandVerified, + "PutResourcePolicy": TierAutoCRUD, + "Query": TierHandVerified, + "RestoreTableFromBackup": TierUnimplemented, + "RestoreTableToPointInTime": TierUnimplemented, + "Scan": TierHandVerified, + "TagResource": TierHandVerified, + "TransactGetItems": TierHandVerified, + "TransactWriteItems": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateContinuousBackups": TierAutoCRUD, + "UpdateContributorInsights": TierAutoCRUD, + "UpdateGlobalTable": TierAutoCRUD, + "UpdateGlobalTableSettings": TierAutoCRUD, + "UpdateItem": TierHandVerified, + "UpdateKinesisStreamingDestination": TierAutoCRUD, + "UpdateTable": TierHandVerified, + "UpdateTableReplicaAutoScaling": TierAutoCRUD, + "UpdateTimeToLive": TierHandVerified, + }}, + "dynamodbstreams": {ModelBacked: true, Operations: map[string]Tier{ + "AddTagsToStream": TierHandVerified, + "DescribeContinuousBackups": TierHandVerified, + "DescribeLimits": TierHandVerified, + "DescribeStream": TierHandVerified, + "DescribeStreamSummary": TierHandVerified, + "DisableStream": TierHandVerified, + "EnableStream": TierHandVerified, + "GetRecords": TierHandVerified, + "GetShardIterator": TierHandVerified, + "GetShardIteratorBatch": TierHandVerified, + "GetStreamBillingMode": TierHandVerified, + "ListShards": TierHandVerified, + "ListStreamArns": TierHandVerified, + "ListStreams": TierHandVerified, + "ListTagsOfStream": TierHandVerified, + "MergeShards": TierHandVerified, + "PurgeStream": TierHandVerified, + "PutRecord": TierHandVerified, + "RemoveTagsFromStream": TierHandVerified, + "ResetStreamIterator": TierHandVerified, + "SplitShard": TierHandVerified, + "UpdateStream": TierHandVerified, + }}, + "ebs": {ModelBacked: true, Operations: map[string]Tier{ + "CompleteSnapshot": TierHandVerified, + "CopySnapshot": TierHandVerified, + "DescribeVolumesModifications": TierHandVerified, + "EnableSnapshotTierArchival": TierHandVerified, + "GetSnapshotBlock": TierHandVerified, + "ListChangedBlocks": TierHandVerified, + "ListSnapshotBlocks": TierHandVerified, + "ModifySnapshotAttribute": TierHandVerified, + "ModifyVolume": TierHandVerified, + "PutSnapshotBlock": TierHandVerified, + "RestoreSnapshotTier": TierHandVerified, + "StartSnapshot": TierHandVerified, + }}, + "ec2": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptAddressTransfer": TierUnimplemented, + "AcceptCapacityReservationBillingOwnership": TierUnimplemented, + "AcceptReservedInstancesExchangeQuote": TierUnimplemented, + "AcceptTransitGatewayMulticastDomainAssociations": TierUnimplemented, + "AcceptTransitGatewayPeeringAttachment": TierUnimplemented, + "AcceptTransitGatewayVpcAttachment": TierUnimplemented, + "AcceptVpcEndpointConnections": TierUnimplemented, + "AcceptVpcPeeringConnection": TierUnimplemented, + "AdvertiseByoipCidr": TierUnimplemented, + "AllocateAddress": TierHandVerified, + "AllocateHosts": TierUnimplemented, + "AllocateIpamPoolCidr": TierUnimplemented, + "ApplySecurityGroupsToClientVpnTargetNetwork": TierUnimplemented, + "AssignIpv6Addresses": TierUnimplemented, + "AssignPrivateIpAddresses": TierUnimplemented, + "AssignPrivateNatGatewayAddress": TierUnimplemented, + "AssociateAddress": TierHandVerified, + "AssociateCapacityReservationBillingOwner": TierUnimplemented, + "AssociateClientVpnTargetNetwork": TierUnimplemented, + "AssociateDhcpOptions": TierUnimplemented, + "AssociateEnclaveCertificateIamRole": TierUnimplemented, + "AssociateIamInstanceProfile": TierUnimplemented, + "AssociateInstanceEventWindow": TierUnimplemented, + "AssociateIpamByoasn": TierUnimplemented, + "AssociateIpamResourceDiscovery": TierUnimplemented, + "AssociateNatGatewayAddress": TierUnimplemented, + "AssociateRouteServer": TierUnimplemented, + "AssociateRouteTable": TierHandVerified, + "AssociateSecurityGroupVpc": TierUnimplemented, + "AssociateSubnetCidrBlock": TierUnimplemented, + "AssociateTransitGatewayMulticastDomain": TierUnimplemented, + "AssociateTransitGatewayPolicyTable": TierUnimplemented, + "AssociateTransitGatewayRouteTable": TierUnimplemented, + "AssociateTrunkInterface": TierUnimplemented, + "AssociateVpcCidrBlock": TierUnimplemented, + "AttachClassicLinkVpc": TierUnimplemented, + "AttachInternetGateway": TierHandVerified, + "AttachNetworkInterface": TierUnimplemented, + "AttachVerifiedAccessTrustProvider": TierUnimplemented, + "AttachVolume": TierHandVerified, + "AttachVpnGateway": TierUnimplemented, + "AuthorizeClientVpnIngress": TierUnimplemented, + "AuthorizeSecurityGroupEgress": TierHandVerified, + "AuthorizeSecurityGroupIngress": TierHandVerified, + "BundleInstance": TierUnimplemented, + "CancelBundleTask": TierUnimplemented, + "CancelCapacityReservation": TierUnimplemented, + "CancelCapacityReservationFleets": TierUnimplemented, + "CancelConversionTask": TierUnimplemented, + "CancelDeclarativePoliciesReport": TierUnimplemented, + "CancelExportTask": TierUnimplemented, + "CancelImageLaunchPermission": TierUnimplemented, + "CancelImportTask": TierUnimplemented, + "CancelReservedInstancesListing": TierUnimplemented, + "CancelSpotFleetRequests": TierUnimplemented, + "CancelSpotInstanceRequests": TierUnimplemented, + "ConfirmProductInstance": TierUnimplemented, + "CopyFpgaImage": TierUnimplemented, + "CopyImage": TierHandVerified, + "CopySnapshot": TierHandVerified, + "CopyVolumes": TierUnimplemented, + "CreateCapacityManagerDataExport": TierUnimplemented, + "CreateCapacityReservation": TierUnimplemented, + "CreateCapacityReservationBySplitting": TierUnimplemented, + "CreateCapacityReservationFleet": TierUnimplemented, + "CreateCarrierGateway": TierUnimplemented, + "CreateClientVpnEndpoint": TierUnimplemented, + "CreateClientVpnRoute": TierUnimplemented, + "CreateCoipCidr": TierUnimplemented, + "CreateCoipPool": TierUnimplemented, + "CreateCustomerGateway": TierUnimplemented, + "CreateDefaultSubnet": TierUnimplemented, + "CreateDefaultVpc": TierUnimplemented, + "CreateDelegateMacVolumeOwnershipTask": TierUnimplemented, + "CreateDhcpOptions": TierUnimplemented, + "CreateEgressOnlyInternetGateway": TierUnimplemented, + "CreateFleet": TierUnimplemented, + "CreateFlowLogs": TierUnimplemented, + "CreateFpgaImage": TierUnimplemented, + "CreateImage": TierHandVerified, + "CreateImageUsageReport": TierUnimplemented, + "CreateInstanceConnectEndpoint": TierUnimplemented, + "CreateInstanceEventWindow": TierUnimplemented, + "CreateInstanceExportTask": TierUnimplemented, + "CreateInternetGateway": TierHandVerified, + "CreateInterruptibleCapacityReservationAllocation": TierUnimplemented, + "CreateIpam": TierUnimplemented, + "CreateIpamExternalResourceVerificationToken": TierUnimplemented, + "CreateIpamPolicy": TierUnimplemented, + "CreateIpamPool": TierUnimplemented, + "CreateIpamPrefixListResolver": TierUnimplemented, + "CreateIpamPrefixListResolverTarget": TierUnimplemented, + "CreateIpamResourceDiscovery": TierUnimplemented, + "CreateIpamScope": TierUnimplemented, + "CreateKeyPair": TierHandVerified, + "CreateLaunchTemplate": TierUnimplemented, + "CreateLaunchTemplateVersion": TierUnimplemented, + "CreateLocalGatewayRoute": TierUnimplemented, + "CreateLocalGatewayRouteTable": TierUnimplemented, + "CreateLocalGatewayRouteTableVirtualInterfaceGroupAssociation": TierUnimplemented, + "CreateLocalGatewayRouteTableVpcAssociation": TierUnimplemented, + "CreateLocalGatewayVirtualInterface": TierUnimplemented, + "CreateLocalGatewayVirtualInterfaceGroup": TierUnimplemented, + "CreateMacSystemIntegrityProtectionModificationTask": TierUnimplemented, + "CreateManagedPrefixList": TierUnimplemented, + "CreateNatGateway": TierUnimplemented, + "CreateNetworkAcl": TierHandVerified, + "CreateNetworkAclEntry": TierHandVerified, + "CreateNetworkInsightsAccessScope": TierUnimplemented, + "CreateNetworkInsightsPath": TierUnimplemented, + "CreateNetworkInterface": TierUnimplemented, + "CreateNetworkInterfacePermission": TierUnimplemented, + "CreatePlacementGroup": TierUnimplemented, + "CreatePublicIpv4Pool": TierUnimplemented, + "CreateReplaceRootVolumeTask": TierUnimplemented, + "CreateReservedInstancesListing": TierUnimplemented, + "CreateRestoreImageTask": TierUnimplemented, + "CreateRoute": TierHandVerified, + "CreateRouteServer": TierUnimplemented, + "CreateRouteServerEndpoint": TierUnimplemented, + "CreateRouteServerPeer": TierUnimplemented, + "CreateRouteTable": TierHandVerified, + "CreateSecondaryNetwork": TierUnimplemented, + "CreateSecondarySubnet": TierUnimplemented, + "CreateSecurityGroup": TierHandVerified, + "CreateSnapshot": TierHandVerified, + "CreateSnapshots": TierUnimplemented, + "CreateSpotDatafeedSubscription": TierUnimplemented, + "CreateStoreImageTask": TierUnimplemented, + "CreateSubnet": TierHandVerified, + "CreateSubnetCidrReservation": TierUnimplemented, + "CreateTags": TierHandVerified, + "CreateTrafficMirrorFilter": TierUnimplemented, + "CreateTrafficMirrorFilterRule": TierUnimplemented, + "CreateTrafficMirrorSession": TierUnimplemented, + "CreateTrafficMirrorTarget": TierUnimplemented, + "CreateTransitGateway": TierUnimplemented, + "CreateTransitGatewayConnect": TierUnimplemented, + "CreateTransitGatewayConnectPeer": TierUnimplemented, + "CreateTransitGatewayMeteringPolicy": TierUnimplemented, + "CreateTransitGatewayMeteringPolicyEntry": TierUnimplemented, + "CreateTransitGatewayMulticastDomain": TierUnimplemented, + "CreateTransitGatewayPeeringAttachment": TierUnimplemented, + "CreateTransitGatewayPolicyTable": TierUnimplemented, + "CreateTransitGatewayPrefixListReference": TierUnimplemented, + "CreateTransitGatewayRoute": TierUnimplemented, + "CreateTransitGatewayRouteTable": TierUnimplemented, + "CreateTransitGatewayRouteTableAnnouncement": TierUnimplemented, + "CreateTransitGatewayVpcAttachment": TierUnimplemented, + "CreateVerifiedAccessEndpoint": TierUnimplemented, + "CreateVerifiedAccessGroup": TierUnimplemented, + "CreateVerifiedAccessInstance": TierUnimplemented, + "CreateVerifiedAccessTrustProvider": TierUnimplemented, + "CreateVolume": TierHandVerified, + "CreateVpc": TierHandVerified, + "CreateVpcBlockPublicAccessExclusion": TierUnimplemented, + "CreateVpcEncryptionControl": TierUnimplemented, + "CreateVpcEndpoint": TierUnimplemented, + "CreateVpcEndpointConnectionNotification": TierUnimplemented, + "CreateVpcEndpointServiceConfiguration": TierUnimplemented, + "CreateVpcPeeringConnection": TierUnimplemented, + "CreateVpnConcentrator": TierUnimplemented, + "CreateVpnConnection": TierUnimplemented, + "CreateVpnConnectionRoute": TierUnimplemented, + "CreateVpnGateway": TierUnimplemented, + "DeleteCapacityManagerDataExport": TierUnimplemented, + "DeleteCarrierGateway": TierUnimplemented, + "DeleteClientVpnEndpoint": TierUnimplemented, + "DeleteClientVpnRoute": TierUnimplemented, + "DeleteCoipCidr": TierUnimplemented, + "DeleteCoipPool": TierUnimplemented, + "DeleteCustomerGateway": TierUnimplemented, + "DeleteDhcpOptions": TierUnimplemented, + "DeleteEgressOnlyInternetGateway": TierUnimplemented, + "DeleteFleets": TierUnimplemented, + "DeleteFlowLogs": TierUnimplemented, + "DeleteFpgaImage": TierUnimplemented, + "DeleteImageUsageReport": TierUnimplemented, + "DeleteInstanceConnectEndpoint": TierUnimplemented, + "DeleteInstanceEventWindow": TierUnimplemented, + "DeleteInternetGateway": TierUnimplemented, + "DeleteIpam": TierUnimplemented, + "DeleteIpamExternalResourceVerificationToken": TierUnimplemented, + "DeleteIpamPolicy": TierUnimplemented, + "DeleteIpamPool": TierUnimplemented, + "DeleteIpamPrefixListResolver": TierUnimplemented, + "DeleteIpamPrefixListResolverTarget": TierUnimplemented, + "DeleteIpamResourceDiscovery": TierUnimplemented, + "DeleteIpamScope": TierUnimplemented, + "DeleteKeyPair": TierHandVerified, + "DeleteLaunchTemplate": TierUnimplemented, + "DeleteLaunchTemplateVersions": TierUnimplemented, + "DeleteLocalGatewayRoute": TierUnimplemented, + "DeleteLocalGatewayRouteTable": TierUnimplemented, + "DeleteLocalGatewayRouteTableVirtualInterfaceGroupAssociation": TierUnimplemented, + "DeleteLocalGatewayRouteTableVpcAssociation": TierUnimplemented, + "DeleteLocalGatewayVirtualInterface": TierUnimplemented, + "DeleteLocalGatewayVirtualInterfaceGroup": TierUnimplemented, + "DeleteManagedPrefixList": TierUnimplemented, + "DeleteNatGateway": TierUnimplemented, + "DeleteNetworkAcl": TierHandVerified, + "DeleteNetworkAclEntry": TierUnimplemented, + "DeleteNetworkInsightsAccessScope": TierUnimplemented, + "DeleteNetworkInsightsAccessScopeAnalysis": TierUnimplemented, + "DeleteNetworkInsightsAnalysis": TierUnimplemented, + "DeleteNetworkInsightsPath": TierUnimplemented, + "DeleteNetworkInterface": TierUnimplemented, + "DeleteNetworkInterfacePermission": TierUnimplemented, + "DeletePlacementGroup": TierUnimplemented, + "DeletePublicIpv4Pool": TierUnimplemented, + "DeleteQueuedReservedInstances": TierUnimplemented, + "DeleteRoute": TierHandVerified, + "DeleteRouteServer": TierUnimplemented, + "DeleteRouteServerEndpoint": TierUnimplemented, + "DeleteRouteServerPeer": TierUnimplemented, + "DeleteRouteTable": TierHandVerified, + "DeleteSecondaryNetwork": TierUnimplemented, + "DeleteSecondarySubnet": TierUnimplemented, + "DeleteSecurityGroup": TierHandVerified, + "DeleteSnapshot": TierHandVerified, + "DeleteSpotDatafeedSubscription": TierUnimplemented, + "DeleteSubnet": TierHandVerified, + "DeleteSubnetCidrReservation": TierUnimplemented, + "DeleteTags": TierHandVerified, + "DeleteTrafficMirrorFilter": TierUnimplemented, + "DeleteTrafficMirrorFilterRule": TierUnimplemented, + "DeleteTrafficMirrorSession": TierUnimplemented, + "DeleteTrafficMirrorTarget": TierUnimplemented, + "DeleteTransitGateway": TierUnimplemented, + "DeleteTransitGatewayConnect": TierUnimplemented, + "DeleteTransitGatewayConnectPeer": TierUnimplemented, + "DeleteTransitGatewayMeteringPolicy": TierUnimplemented, + "DeleteTransitGatewayMeteringPolicyEntry": TierUnimplemented, + "DeleteTransitGatewayMulticastDomain": TierUnimplemented, + "DeleteTransitGatewayPeeringAttachment": TierUnimplemented, + "DeleteTransitGatewayPolicyTable": TierUnimplemented, + "DeleteTransitGatewayPrefixListReference": TierUnimplemented, + "DeleteTransitGatewayRoute": TierUnimplemented, + "DeleteTransitGatewayRouteTable": TierUnimplemented, + "DeleteTransitGatewayRouteTableAnnouncement": TierUnimplemented, + "DeleteTransitGatewayVpcAttachment": TierUnimplemented, + "DeleteVerifiedAccessEndpoint": TierUnimplemented, + "DeleteVerifiedAccessGroup": TierUnimplemented, + "DeleteVerifiedAccessInstance": TierUnimplemented, + "DeleteVerifiedAccessTrustProvider": TierUnimplemented, + "DeleteVolume": TierHandVerified, + "DeleteVpc": TierHandVerified, + "DeleteVpcBlockPublicAccessExclusion": TierUnimplemented, + "DeleteVpcEncryptionControl": TierUnimplemented, + "DeleteVpcEndpointConnectionNotifications": TierUnimplemented, + "DeleteVpcEndpointServiceConfigurations": TierUnimplemented, + "DeleteVpcEndpoints": TierUnimplemented, + "DeleteVpcPeeringConnection": TierUnimplemented, + "DeleteVpnConcentrator": TierUnimplemented, + "DeleteVpnConnection": TierUnimplemented, + "DeleteVpnConnectionRoute": TierUnimplemented, + "DeleteVpnGateway": TierUnimplemented, + "DeprovisionByoipCidr": TierUnimplemented, + "DeprovisionIpamByoasn": TierUnimplemented, + "DeprovisionIpamPoolCidr": TierUnimplemented, + "DeprovisionPublicIpv4PoolCidr": TierUnimplemented, + "DeregisterImage": TierHandVerified, + "DeregisterInstanceEventNotificationAttributes": TierUnimplemented, + "DeregisterTransitGatewayMulticastGroupMembers": TierUnimplemented, + "DeregisterTransitGatewayMulticastGroupSources": TierUnimplemented, + "DescribeAccountAttributes": TierUnimplemented, + "DescribeAddressTransfers": TierUnimplemented, + "DescribeAddresses": TierHandVerified, + "DescribeAddressesAttribute": TierUnimplemented, + "DescribeAggregateIdFormat": TierUnimplemented, + "DescribeAvailabilityZones": TierHandVerified, + "DescribeAwsNetworkPerformanceMetricSubscriptions": TierUnimplemented, + "DescribeBundleTasks": TierUnimplemented, + "DescribeByoipCidrs": TierUnimplemented, + "DescribeCapacityBlockExtensionHistory": TierUnimplemented, + "DescribeCapacityBlockExtensionOfferings": TierUnimplemented, + "DescribeCapacityBlockOfferings": TierUnimplemented, + "DescribeCapacityBlockStatus": TierUnimplemented, + "DescribeCapacityBlocks": TierUnimplemented, + "DescribeCapacityManagerDataExports": TierUnimplemented, + "DescribeCapacityReservationBillingRequests": TierUnimplemented, + "DescribeCapacityReservationFleets": TierUnimplemented, + "DescribeCapacityReservationTopology": TierUnimplemented, + "DescribeCapacityReservations": TierUnimplemented, + "DescribeCarrierGateways": TierUnimplemented, + "DescribeClassicLinkInstances": TierUnimplemented, + "DescribeClientVpnAuthorizationRules": TierUnimplemented, + "DescribeClientVpnConnections": TierUnimplemented, + "DescribeClientVpnEndpoints": TierUnimplemented, + "DescribeClientVpnRoutes": TierUnimplemented, + "DescribeClientVpnTargetNetworks": TierUnimplemented, + "DescribeCoipPools": TierUnimplemented, + "DescribeConversionTasks": TierUnimplemented, + "DescribeCustomerGateways": TierUnimplemented, + "DescribeDeclarativePoliciesReports": TierUnimplemented, + "DescribeDhcpOptions": TierUnimplemented, + "DescribeEgressOnlyInternetGateways": TierUnimplemented, + "DescribeElasticGpus": TierUnimplemented, + "DescribeExportImageTasks": TierUnimplemented, + "DescribeExportTasks": TierUnimplemented, + "DescribeFastLaunchImages": TierUnimplemented, + "DescribeFastSnapshotRestores": TierUnimplemented, + "DescribeFleetHistory": TierUnimplemented, + "DescribeFleetInstances": TierUnimplemented, + "DescribeFleets": TierUnimplemented, + "DescribeFlowLogs": TierUnimplemented, + "DescribeFpgaImageAttribute": TierUnimplemented, + "DescribeFpgaImages": TierUnimplemented, + "DescribeHostReservationOfferings": TierUnimplemented, + "DescribeHostReservations": TierUnimplemented, + "DescribeHosts": TierUnimplemented, + "DescribeIamInstanceProfileAssociations": TierUnimplemented, + "DescribeIdFormat": TierUnimplemented, + "DescribeIdentityIdFormat": TierUnimplemented, + "DescribeImageAttribute": TierUnimplemented, + "DescribeImageReferences": TierUnimplemented, + "DescribeImageUsageReportEntries": TierUnimplemented, + "DescribeImageUsageReports": TierUnimplemented, + "DescribeImages": TierHandVerified, + "DescribeImportImageTasks": TierUnimplemented, + "DescribeImportSnapshotTasks": TierUnimplemented, + "DescribeInstanceAttribute": TierUnimplemented, + "DescribeInstanceConnectEndpoints": TierUnimplemented, + "DescribeInstanceCreditSpecifications": TierUnimplemented, + "DescribeInstanceEventNotificationAttributes": TierUnimplemented, + "DescribeInstanceEventWindows": TierUnimplemented, + "DescribeInstanceImageMetadata": TierUnimplemented, + "DescribeInstanceSqlHaHistoryStates": TierUnimplemented, + "DescribeInstanceSqlHaStates": TierUnimplemented, + "DescribeInstanceStatus": TierUnimplemented, + "DescribeInstanceTopology": TierUnimplemented, + "DescribeInstanceTypeOfferings": TierUnimplemented, + "DescribeInstanceTypes": TierUnimplemented, + "DescribeInstances": TierHandVerified, + "DescribeInternetGateways": TierHandVerified, + "DescribeIpamByoasn": TierUnimplemented, + "DescribeIpamExternalResourceVerificationTokens": TierUnimplemented, + "DescribeIpamPolicies": TierUnimplemented, + "DescribeIpamPools": TierUnimplemented, + "DescribeIpamPrefixListResolverTargets": TierUnimplemented, + "DescribeIpamPrefixListResolvers": TierUnimplemented, + "DescribeIpamResourceDiscoveries": TierUnimplemented, + "DescribeIpamResourceDiscoveryAssociations": TierUnimplemented, + "DescribeIpamScopes": TierUnimplemented, + "DescribeIpams": TierUnimplemented, + "DescribeIpv6Pools": TierUnimplemented, + "DescribeKeyPairs": TierHandVerified, + "DescribeLaunchTemplateVersions": TierUnimplemented, + "DescribeLaunchTemplates": TierUnimplemented, + "DescribeLocalGatewayRouteTableVirtualInterfaceGroupAssociations": TierUnimplemented, + "DescribeLocalGatewayRouteTableVpcAssociations": TierUnimplemented, + "DescribeLocalGatewayRouteTables": TierUnimplemented, + "DescribeLocalGatewayVirtualInterfaceGroups": TierUnimplemented, + "DescribeLocalGatewayVirtualInterfaces": TierUnimplemented, + "DescribeLocalGateways": TierUnimplemented, + "DescribeLockedSnapshots": TierUnimplemented, + "DescribeMacHosts": TierUnimplemented, + "DescribeMacModificationTasks": TierUnimplemented, + "DescribeManagedPrefixLists": TierUnimplemented, + "DescribeMovingAddresses": TierUnimplemented, + "DescribeNatGateways": TierUnimplemented, + "DescribeNetworkAcls": TierHandVerified, + "DescribeNetworkInsightsAccessScopeAnalyses": TierUnimplemented, + "DescribeNetworkInsightsAccessScopes": TierUnimplemented, + "DescribeNetworkInsightsAnalyses": TierUnimplemented, + "DescribeNetworkInsightsPaths": TierUnimplemented, + "DescribeNetworkInterfaceAttribute": TierUnimplemented, + "DescribeNetworkInterfacePermissions": TierUnimplemented, + "DescribeNetworkInterfaces": TierUnimplemented, + "DescribeOutpostLags": TierUnimplemented, + "DescribePlacementGroups": TierUnimplemented, + "DescribePrefixLists": TierUnimplemented, + "DescribePrincipalIdFormat": TierUnimplemented, + "DescribePublicIpv4Pools": TierUnimplemented, + "DescribeRegions": TierHandVerified, + "DescribeReplaceRootVolumeTasks": TierUnimplemented, + "DescribeReservedInstances": TierUnimplemented, + "DescribeReservedInstancesListings": TierUnimplemented, + "DescribeReservedInstancesModifications": TierUnimplemented, + "DescribeReservedInstancesOfferings": TierUnimplemented, + "DescribeRouteServerEndpoints": TierUnimplemented, + "DescribeRouteServerPeers": TierUnimplemented, + "DescribeRouteServers": TierUnimplemented, + "DescribeRouteTables": TierHandVerified, + "DescribeScheduledInstanceAvailability": TierUnimplemented, + "DescribeScheduledInstances": TierUnimplemented, + "DescribeSecondaryInterfaces": TierUnimplemented, + "DescribeSecondaryNetworks": TierUnimplemented, + "DescribeSecondarySubnets": TierUnimplemented, + "DescribeSecurityGroupReferences": TierUnimplemented, + "DescribeSecurityGroupRules": TierUnimplemented, + "DescribeSecurityGroupVpcAssociations": TierUnimplemented, + "DescribeSecurityGroups": TierHandVerified, + "DescribeServiceLinkVirtualInterfaces": TierUnimplemented, + "DescribeSnapshotAttribute": TierUnimplemented, + "DescribeSnapshotTierStatus": TierUnimplemented, + "DescribeSnapshots": TierHandVerified, + "DescribeSpotDatafeedSubscription": TierUnimplemented, + "DescribeSpotFleetInstances": TierUnimplemented, + "DescribeSpotFleetRequestHistory": TierUnimplemented, + "DescribeSpotFleetRequests": TierUnimplemented, + "DescribeSpotInstanceRequests": TierUnimplemented, + "DescribeSpotPriceHistory": TierUnimplemented, + "DescribeStaleSecurityGroups": TierUnimplemented, + "DescribeStoreImageTasks": TierUnimplemented, + "DescribeSubnets": TierHandVerified, + "DescribeTags": TierHandVerified, + "DescribeTrafficMirrorFilterRules": TierUnimplemented, + "DescribeTrafficMirrorFilters": TierUnimplemented, + "DescribeTrafficMirrorSessions": TierUnimplemented, + "DescribeTrafficMirrorTargets": TierUnimplemented, + "DescribeTransitGatewayAttachments": TierUnimplemented, + "DescribeTransitGatewayConnectPeers": TierUnimplemented, + "DescribeTransitGatewayConnects": TierUnimplemented, + "DescribeTransitGatewayMeteringPolicies": TierUnimplemented, + "DescribeTransitGatewayMulticastDomains": TierUnimplemented, + "DescribeTransitGatewayPeeringAttachments": TierUnimplemented, + "DescribeTransitGatewayPolicyTables": TierUnimplemented, + "DescribeTransitGatewayRouteTableAnnouncements": TierUnimplemented, + "DescribeTransitGatewayRouteTables": TierUnimplemented, + "DescribeTransitGatewayVpcAttachments": TierUnimplemented, + "DescribeTransitGateways": TierUnimplemented, + "DescribeTrunkInterfaceAssociations": TierUnimplemented, + "DescribeVerifiedAccessEndpoints": TierUnimplemented, + "DescribeVerifiedAccessGroups": TierUnimplemented, + "DescribeVerifiedAccessInstanceLoggingConfigurations": TierUnimplemented, + "DescribeVerifiedAccessInstances": TierUnimplemented, + "DescribeVerifiedAccessTrustProviders": TierUnimplemented, + "DescribeVolumeAttribute": TierUnimplemented, + "DescribeVolumeStatus": TierUnimplemented, + "DescribeVolumes": TierHandVerified, + "DescribeVolumesModifications": TierUnimplemented, + "DescribeVpcAttribute": TierHandVerified, + "DescribeVpcBlockPublicAccessExclusions": TierUnimplemented, + "DescribeVpcBlockPublicAccessOptions": TierUnimplemented, + "DescribeVpcClassicLink": TierUnimplemented, + "DescribeVpcClassicLinkDnsSupport": TierUnimplemented, + "DescribeVpcEncryptionControls": TierUnimplemented, + "DescribeVpcEndpointAssociations": TierUnimplemented, + "DescribeVpcEndpointConnectionNotifications": TierUnimplemented, + "DescribeVpcEndpointConnections": TierUnimplemented, + "DescribeVpcEndpointServiceConfigurations": TierUnimplemented, + "DescribeVpcEndpointServicePermissions": TierUnimplemented, + "DescribeVpcEndpointServices": TierUnimplemented, + "DescribeVpcEndpoints": TierUnimplemented, + "DescribeVpcPeeringConnections": TierUnimplemented, + "DescribeVpcs": TierHandVerified, + "DescribeVpnConcentrators": TierUnimplemented, + "DescribeVpnConnections": TierUnimplemented, + "DescribeVpnGateways": TierUnimplemented, + "DetachClassicLinkVpc": TierUnimplemented, + "DetachInternetGateway": TierHandVerified, + "DetachNetworkInterface": TierUnimplemented, + "DetachVerifiedAccessTrustProvider": TierUnimplemented, + "DetachVolume": TierHandVerified, + "DetachVpnGateway": TierUnimplemented, + "DisableAddressTransfer": TierUnimplemented, + "DisableAllowedImagesSettings": TierUnimplemented, + "DisableAwsNetworkPerformanceMetricSubscription": TierUnimplemented, + "DisableCapacityManager": TierUnimplemented, + "DisableEbsEncryptionByDefault": TierUnimplemented, + "DisableFastLaunch": TierUnimplemented, + "DisableFastSnapshotRestores": TierUnimplemented, + "DisableImage": TierUnimplemented, + "DisableImageBlockPublicAccess": TierUnimplemented, + "DisableImageDeprecation": TierUnimplemented, + "DisableImageDeregistrationProtection": TierUnimplemented, + "DisableInstanceSqlHaStandbyDetections": TierUnimplemented, + "DisableIpamOrganizationAdminAccount": TierUnimplemented, + "DisableIpamPolicy": TierUnimplemented, + "DisableRouteServerPropagation": TierUnimplemented, + "DisableSerialConsoleAccess": TierUnimplemented, + "DisableSnapshotBlockPublicAccess": TierUnimplemented, + "DisableTransitGatewayRouteTablePropagation": TierUnimplemented, + "DisableVgwRoutePropagation": TierUnimplemented, + "DisableVpcClassicLink": TierUnimplemented, + "DisableVpcClassicLinkDnsSupport": TierUnimplemented, + "DisassociateAddress": TierHandVerified, + "DisassociateCapacityReservationBillingOwner": TierUnimplemented, + "DisassociateClientVpnTargetNetwork": TierUnimplemented, + "DisassociateEnclaveCertificateIamRole": TierUnimplemented, + "DisassociateIamInstanceProfile": TierUnimplemented, + "DisassociateInstanceEventWindow": TierUnimplemented, + "DisassociateIpamByoasn": TierUnimplemented, + "DisassociateIpamResourceDiscovery": TierUnimplemented, + "DisassociateNatGatewayAddress": TierUnimplemented, + "DisassociateRouteServer": TierUnimplemented, + "DisassociateRouteTable": TierUnimplemented, + "DisassociateSecurityGroupVpc": TierUnimplemented, + "DisassociateSubnetCidrBlock": TierUnimplemented, + "DisassociateTransitGatewayMulticastDomain": TierUnimplemented, + "DisassociateTransitGatewayPolicyTable": TierUnimplemented, + "DisassociateTransitGatewayRouteTable": TierUnimplemented, + "DisassociateTrunkInterface": TierUnimplemented, + "DisassociateVpcCidrBlock": TierUnimplemented, + "EnableAddressTransfer": TierUnimplemented, + "EnableAllowedImagesSettings": TierUnimplemented, + "EnableAwsNetworkPerformanceMetricSubscription": TierUnimplemented, + "EnableCapacityManager": TierUnimplemented, + "EnableEbsEncryptionByDefault": TierUnimplemented, + "EnableFastLaunch": TierUnimplemented, + "EnableFastSnapshotRestores": TierUnimplemented, + "EnableImage": TierUnimplemented, + "EnableImageBlockPublicAccess": TierUnimplemented, + "EnableImageDeprecation": TierUnimplemented, + "EnableImageDeregistrationProtection": TierUnimplemented, + "EnableInstanceSqlHaStandbyDetections": TierUnimplemented, + "EnableIpamOrganizationAdminAccount": TierUnimplemented, + "EnableIpamPolicy": TierUnimplemented, + "EnableReachabilityAnalyzerOrganizationSharing": TierUnimplemented, + "EnableRouteServerPropagation": TierUnimplemented, + "EnableSerialConsoleAccess": TierUnimplemented, + "EnableSnapshotBlockPublicAccess": TierUnimplemented, + "EnableTransitGatewayRouteTablePropagation": TierUnimplemented, + "EnableVgwRoutePropagation": TierUnimplemented, + "EnableVolumeIO": TierUnimplemented, + "EnableVpcClassicLink": TierUnimplemented, + "EnableVpcClassicLinkDnsSupport": TierUnimplemented, + "ExportClientVpnClientCertificateRevocationList": TierUnimplemented, + "ExportClientVpnClientConfiguration": TierUnimplemented, + "ExportImage": TierUnimplemented, + "ExportTransitGatewayRoutes": TierUnimplemented, + "ExportVerifiedAccessInstanceClientConfiguration": TierUnimplemented, + "GetActiveVpnTunnelStatus": TierUnimplemented, + "GetAllowedImagesSettings": TierUnimplemented, + "GetAssociatedEnclaveCertificateIamRoles": TierUnimplemented, + "GetAssociatedIpv6PoolCidrs": TierUnimplemented, + "GetAwsNetworkPerformanceData": TierUnimplemented, + "GetCapacityManagerAttributes": TierUnimplemented, + "GetCapacityManagerMetricData": TierUnimplemented, + "GetCapacityManagerMetricDimensions": TierUnimplemented, + "GetCapacityReservationUsage": TierUnimplemented, + "GetCoipPoolUsage": TierUnimplemented, + "GetConsoleOutput": TierUnimplemented, + "GetConsoleScreenshot": TierUnimplemented, + "GetDeclarativePoliciesReportSummary": TierUnimplemented, + "GetDefaultCreditSpecification": TierUnimplemented, + "GetEbsDefaultKmsKeyId": TierUnimplemented, + "GetEbsEncryptionByDefault": TierUnimplemented, + "GetEnabledIpamPolicy": TierUnimplemented, + "GetFlowLogsIntegrationTemplate": TierUnimplemented, + "GetGroupsForCapacityReservation": TierUnimplemented, + "GetHostReservationPurchasePreview": TierUnimplemented, + "GetImageAncestry": TierUnimplemented, + "GetImageBlockPublicAccessState": TierUnimplemented, + "GetInstanceMetadataDefaults": TierUnimplemented, + "GetInstanceTpmEkPub": TierUnimplemented, + "GetInstanceTypesFromInstanceRequirements": TierUnimplemented, + "GetInstanceUefiData": TierUnimplemented, + "GetIpamAddressHistory": TierUnimplemented, + "GetIpamDiscoveredAccounts": TierUnimplemented, + "GetIpamDiscoveredPublicAddresses": TierUnimplemented, + "GetIpamDiscoveredResourceCidrs": TierUnimplemented, + "GetIpamPolicyAllocationRules": TierUnimplemented, + "GetIpamPolicyOrganizationTargets": TierUnimplemented, + "GetIpamPoolAllocations": TierUnimplemented, + "GetIpamPoolCidrs": TierUnimplemented, + "GetIpamPrefixListResolverRules": TierUnimplemented, + "GetIpamPrefixListResolverVersionEntries": TierUnimplemented, + "GetIpamPrefixListResolverVersions": TierUnimplemented, + "GetIpamResourceCidrs": TierUnimplemented, + "GetLaunchTemplateData": TierUnimplemented, + "GetManagedPrefixListAssociations": TierUnimplemented, + "GetManagedPrefixListEntries": TierUnimplemented, + "GetNetworkInsightsAccessScopeAnalysisFindings": TierUnimplemented, + "GetNetworkInsightsAccessScopeContent": TierUnimplemented, + "GetPasswordData": TierUnimplemented, + "GetReservedInstancesExchangeQuote": TierUnimplemented, + "GetRouteServerAssociations": TierUnimplemented, + "GetRouteServerPropagations": TierUnimplemented, + "GetRouteServerRoutingDatabase": TierUnimplemented, + "GetSecurityGroupsForVpc": TierUnimplemented, + "GetSerialConsoleAccessStatus": TierUnimplemented, + "GetSnapshotBlockPublicAccessState": TierUnimplemented, + "GetSpotPlacementScores": TierUnimplemented, + "GetSubnetCidrReservations": TierUnimplemented, + "GetTransitGatewayAttachmentPropagations": TierUnimplemented, + "GetTransitGatewayMeteringPolicyEntries": TierUnimplemented, + "GetTransitGatewayMulticastDomainAssociations": TierUnimplemented, + "GetTransitGatewayPolicyTableAssociations": TierUnimplemented, + "GetTransitGatewayPolicyTableEntries": TierUnimplemented, + "GetTransitGatewayPrefixListReferences": TierUnimplemented, + "GetTransitGatewayRouteTableAssociations": TierUnimplemented, + "GetTransitGatewayRouteTablePropagations": TierUnimplemented, + "GetVerifiedAccessEndpointPolicy": TierUnimplemented, + "GetVerifiedAccessEndpointTargets": TierUnimplemented, + "GetVerifiedAccessGroupPolicy": TierUnimplemented, + "GetVpcResourcesBlockingEncryptionEnforcement": TierUnimplemented, + "GetVpnConnectionDeviceSampleConfiguration": TierUnimplemented, + "GetVpnConnectionDeviceTypes": TierUnimplemented, + "GetVpnTunnelReplacementStatus": TierUnimplemented, + "ImportClientVpnClientCertificateRevocationList": TierUnimplemented, + "ImportImage": TierUnimplemented, + "ImportInstance": TierUnimplemented, + "ImportKeyPair": TierHandVerified, + "ImportSnapshot": TierUnimplemented, + "ImportVolume": TierUnimplemented, + "ListImagesInRecycleBin": TierUnimplemented, + "ListSnapshotsInRecycleBin": TierUnimplemented, + "ListVolumesInRecycleBin": TierUnimplemented, + "LockSnapshot": TierUnimplemented, + "ModifyAddressAttribute": TierUnimplemented, + "ModifyAvailabilityZoneGroup": TierUnimplemented, + "ModifyCapacityReservation": TierUnimplemented, + "ModifyCapacityReservationFleet": TierUnimplemented, + "ModifyClientVpnEndpoint": TierUnimplemented, + "ModifyDefaultCreditSpecification": TierUnimplemented, + "ModifyEbsDefaultKmsKeyId": TierUnimplemented, + "ModifyFleet": TierUnimplemented, + "ModifyFpgaImageAttribute": TierUnimplemented, + "ModifyHosts": TierUnimplemented, + "ModifyIdFormat": TierUnimplemented, + "ModifyIdentityIdFormat": TierUnimplemented, + "ModifyImageAttribute": TierUnimplemented, + "ModifyInstanceAttribute": TierUnimplemented, + "ModifyInstanceCapacityReservationAttributes": TierUnimplemented, + "ModifyInstanceConnectEndpoint": TierUnimplemented, + "ModifyInstanceCpuOptions": TierUnimplemented, + "ModifyInstanceCreditSpecification": TierUnimplemented, + "ModifyInstanceEventStartTime": TierUnimplemented, + "ModifyInstanceEventWindow": TierUnimplemented, + "ModifyInstanceMaintenanceOptions": TierUnimplemented, + "ModifyInstanceMetadataDefaults": TierUnimplemented, + "ModifyInstanceMetadataOptions": TierUnimplemented, + "ModifyInstanceNetworkPerformanceOptions": TierUnimplemented, + "ModifyInstancePlacement": TierUnimplemented, + "ModifyIpam": TierUnimplemented, + "ModifyIpamPolicyAllocationRules": TierUnimplemented, + "ModifyIpamPool": TierUnimplemented, + "ModifyIpamPrefixListResolver": TierUnimplemented, + "ModifyIpamPrefixListResolverTarget": TierUnimplemented, + "ModifyIpamResourceCidr": TierUnimplemented, + "ModifyIpamResourceDiscovery": TierUnimplemented, + "ModifyIpamScope": TierUnimplemented, + "ModifyLaunchTemplate": TierUnimplemented, + "ModifyLocalGatewayRoute": TierUnimplemented, + "ModifyManagedPrefixList": TierUnimplemented, + "ModifyNetworkInterfaceAttribute": TierUnimplemented, + "ModifyPrivateDnsNameOptions": TierUnimplemented, + "ModifyPublicIpDnsNameOptions": TierUnimplemented, + "ModifyReservedInstances": TierUnimplemented, + "ModifyRouteServer": TierUnimplemented, + "ModifySecurityGroupRules": TierUnimplemented, + "ModifySnapshotAttribute": TierUnimplemented, + "ModifySnapshotTier": TierUnimplemented, + "ModifySpotFleetRequest": TierUnimplemented, + "ModifySubnetAttribute": TierUnimplemented, + "ModifyTrafficMirrorFilterNetworkServices": TierUnimplemented, + "ModifyTrafficMirrorFilterRule": TierUnimplemented, + "ModifyTrafficMirrorSession": TierUnimplemented, + "ModifyTransitGateway": TierUnimplemented, + "ModifyTransitGatewayMeteringPolicy": TierUnimplemented, + "ModifyTransitGatewayPrefixListReference": TierUnimplemented, + "ModifyTransitGatewayVpcAttachment": TierUnimplemented, + "ModifyVerifiedAccessEndpoint": TierUnimplemented, + "ModifyVerifiedAccessEndpointPolicy": TierUnimplemented, + "ModifyVerifiedAccessGroup": TierUnimplemented, + "ModifyVerifiedAccessGroupPolicy": TierUnimplemented, + "ModifyVerifiedAccessInstance": TierUnimplemented, + "ModifyVerifiedAccessInstanceLoggingConfiguration": TierUnimplemented, + "ModifyVerifiedAccessTrustProvider": TierUnimplemented, + "ModifyVolume": TierHandVerified, + "ModifyVolumeAttribute": TierUnimplemented, + "ModifyVpcAttribute": TierHandVerified, + "ModifyVpcBlockPublicAccessExclusion": TierUnimplemented, + "ModifyVpcBlockPublicAccessOptions": TierUnimplemented, + "ModifyVpcEncryptionControl": TierUnimplemented, + "ModifyVpcEndpoint": TierUnimplemented, + "ModifyVpcEndpointConnectionNotification": TierUnimplemented, + "ModifyVpcEndpointServiceConfiguration": TierUnimplemented, + "ModifyVpcEndpointServicePayerResponsibility": TierUnimplemented, + "ModifyVpcEndpointServicePermissions": TierUnimplemented, + "ModifyVpcPeeringConnectionOptions": TierUnimplemented, + "ModifyVpcTenancy": TierUnimplemented, + "ModifyVpnConnection": TierUnimplemented, + "ModifyVpnConnectionOptions": TierUnimplemented, + "ModifyVpnTunnelCertificate": TierUnimplemented, + "ModifyVpnTunnelOptions": TierUnimplemented, + "MonitorInstances": TierUnimplemented, + "MoveAddressToVpc": TierUnimplemented, + "MoveByoipCidrToIpam": TierUnimplemented, + "MoveCapacityReservationInstances": TierUnimplemented, + "ProvisionByoipCidr": TierUnimplemented, + "ProvisionIpamByoasn": TierUnimplemented, + "ProvisionIpamPoolCidr": TierUnimplemented, + "ProvisionPublicIpv4PoolCidr": TierUnimplemented, + "PurchaseCapacityBlock": TierUnimplemented, + "PurchaseCapacityBlockExtension": TierUnimplemented, + "PurchaseHostReservation": TierUnimplemented, + "PurchaseReservedInstancesOffering": TierUnimplemented, + "PurchaseScheduledInstances": TierUnimplemented, + "RebootInstances": TierHandVerified, + "RegisterImage": TierHandVerified, + "RegisterInstanceEventNotificationAttributes": TierUnimplemented, + "RegisterTransitGatewayMulticastGroupMembers": TierUnimplemented, + "RegisterTransitGatewayMulticastGroupSources": TierUnimplemented, + "RejectCapacityReservationBillingOwnership": TierUnimplemented, + "RejectTransitGatewayMulticastDomainAssociations": TierUnimplemented, + "RejectTransitGatewayPeeringAttachment": TierUnimplemented, + "RejectTransitGatewayVpcAttachment": TierUnimplemented, + "RejectVpcEndpointConnections": TierUnimplemented, + "RejectVpcPeeringConnection": TierUnimplemented, + "ReleaseAddress": TierHandVerified, + "ReleaseHosts": TierUnimplemented, + "ReleaseIpamPoolAllocation": TierUnimplemented, + "ReplaceIamInstanceProfileAssociation": TierUnimplemented, + "ReplaceImageCriteriaInAllowedImagesSettings": TierUnimplemented, + "ReplaceNetworkAclAssociation": TierUnimplemented, + "ReplaceNetworkAclEntry": TierHandVerified, + "ReplaceRoute": TierUnimplemented, + "ReplaceRouteTableAssociation": TierUnimplemented, + "ReplaceTransitGatewayRoute": TierUnimplemented, + "ReplaceVpnTunnel": TierUnimplemented, + "ReportInstanceStatus": TierUnimplemented, + "RequestSpotFleet": TierUnimplemented, + "RequestSpotInstances": TierUnimplemented, + "ResetAddressAttribute": TierUnimplemented, + "ResetEbsDefaultKmsKeyId": TierUnimplemented, + "ResetFpgaImageAttribute": TierUnimplemented, + "ResetImageAttribute": TierUnimplemented, + "ResetInstanceAttribute": TierUnimplemented, + "ResetNetworkInterfaceAttribute": TierUnimplemented, + "ResetSnapshotAttribute": TierUnimplemented, + "RestoreAddressToClassic": TierUnimplemented, + "RestoreImageFromRecycleBin": TierUnimplemented, + "RestoreManagedPrefixListVersion": TierUnimplemented, + "RestoreSnapshotFromRecycleBin": TierUnimplemented, + "RestoreSnapshotTier": TierUnimplemented, + "RestoreVolumeFromRecycleBin": TierUnimplemented, + "RevokeClientVpnIngress": TierUnimplemented, + "RevokeSecurityGroupEgress": TierHandVerified, + "RevokeSecurityGroupIngress": TierHandVerified, + "RunInstances": TierHandVerified, + "RunScheduledInstances": TierUnimplemented, + "SearchLocalGatewayRoutes": TierUnimplemented, + "SearchTransitGatewayMulticastGroups": TierUnimplemented, + "SearchTransitGatewayRoutes": TierUnimplemented, + "SendDiagnosticInterrupt": TierUnimplemented, + "StartDeclarativePoliciesReport": TierUnimplemented, + "StartInstances": TierHandVerified, + "StartNetworkInsightsAccessScopeAnalysis": TierUnimplemented, + "StartNetworkInsightsAnalysis": TierUnimplemented, + "StartVpcEndpointServicePrivateDnsVerification": TierUnimplemented, + "StopInstances": TierHandVerified, + "TerminateClientVpnConnections": TierUnimplemented, + "TerminateInstances": TierHandVerified, + "UnassignIpv6Addresses": TierUnimplemented, + "UnassignPrivateIpAddresses": TierUnimplemented, + "UnassignPrivateNatGatewayAddress": TierUnimplemented, + "UnlockSnapshot": TierUnimplemented, + "UnmonitorInstances": TierUnimplemented, + "UpdateCapacityManagerOrganizationsAccess": TierUnimplemented, + "UpdateInterruptibleCapacityReservationAllocation": TierUnimplemented, + "UpdateSecurityGroupRuleDescriptionsEgress": TierUnimplemented, + "UpdateSecurityGroupRuleDescriptionsIngress": TierUnimplemented, + "WithdrawByoipCidr": TierUnimplemented, + }}, + "ecr": {ModelBacked: true, Operations: map[string]Tier{ + "BatchCheckLayerAvailability": TierHandVerified, + "BatchDeleteImage": TierHandVerified, + "BatchGetImage": TierHandVerified, + "BatchGetRepositoryScanningConfiguration": TierAutoCRUD, + "CompleteLayerUpload": TierHandVerified, + "CreatePullThroughCacheRule": TierAutoCRUD, + "CreateRepository": TierHandVerified, + "CreateRepositoryCreationTemplate": TierAutoCRUD, + "DeleteLifecyclePolicy": TierHandVerified, + "DeletePullThroughCacheRule": TierAutoCRUD, + "DeleteRegistryPolicy": TierAutoCRUD, + "DeleteRepository": TierHandVerified, + "DeleteRepositoryCreationTemplate": TierAutoCRUD, + "DeleteRepositoryPolicy": TierAutoCRUD, + "DeleteSigningConfiguration": TierAutoCRUD, + "DeregisterPullTimeUpdateExclusion": TierAutoCRUD, + "DescribeImageReplicationStatus": TierAutoCRUD, + "DescribeImageScanFindings": TierHandVerified, + "DescribeImageSigningStatus": TierAutoCRUD, + "DescribeImages": TierHandVerified, + "DescribePullThroughCacheRules": TierAutoCRUD, + "DescribeRegistry": TierAutoCRUD, + "DescribeRepositories": TierHandVerified, + "DescribeRepositoryCreationTemplates": TierAutoCRUD, + "GetAccountSetting": TierAutoCRUD, + "GetAuthorizationToken": TierHandVerified, + "GetDownloadUrlForLayer": TierHandVerified, + "GetLifecyclePolicy": TierHandVerified, + "GetLifecyclePolicyPreview": TierAutoCRUD, + "GetRegistryPolicy": TierAutoCRUD, + "GetRegistryScanningConfiguration": TierAutoCRUD, + "GetRepositoryPolicy": TierHandVerified, + "GetSigningConfiguration": TierAutoCRUD, + "InitiateLayerUpload": TierHandVerified, + "ListImageReferrers": TierAutoCRUD, + "ListImages": TierHandVerified, + "ListPullTimeUpdateExclusions": TierAutoCRUD, + "ListTagsForResource": TierHandVerified, + "PutAccountSetting": TierAutoCRUD, + "PutImage": TierHandVerified, + "PutImageScanningConfiguration": TierHandVerified, + "PutImageTagMutability": TierAutoCRUD, + "PutLifecyclePolicy": TierHandVerified, + "PutRegistryPolicy": TierAutoCRUD, + "PutRegistryScanningConfiguration": TierAutoCRUD, + "PutReplicationConfiguration": TierAutoCRUD, + "PutSigningConfiguration": TierAutoCRUD, + "RegisterPullTimeUpdateExclusion": TierAutoCRUD, + "SetRepositoryPolicy": TierHandVerified, + "StartImageScan": TierHandVerified, + "StartLifecyclePolicyPreview": TierUnimplemented, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateImageStorageClass": TierAutoCRUD, + "UpdatePullThroughCacheRule": TierAutoCRUD, + "UpdateRepositoryCreationTemplate": TierAutoCRUD, + "UploadLayerPart": TierHandVerified, + "ValidatePullThroughCacheRule": TierUnimplemented, + }}, + "ecs": {ModelBacked: true, Operations: map[string]Tier{ + "CreateCapacityProvider": TierHandVerified, + "CreateCluster": TierHandVerified, + "CreateDaemon": TierAutoCRUD, + "CreateExpressGatewayService": TierAutoCRUD, + "CreateService": TierHandVerified, + "CreateTaskSet": TierHandVerified, + "DeleteAccountSetting": TierHandVerified, + "DeleteAttributes": TierHandVerified, + "DeleteCapacityProvider": TierHandVerified, + "DeleteCluster": TierHandVerified, + "DeleteDaemon": TierAutoCRUD, + "DeleteDaemonTaskDefinition": TierAutoCRUD, + "DeleteExpressGatewayService": TierAutoCRUD, + "DeleteScalingPolicy": TierHandVerified, + "DeleteService": TierHandVerified, + "DeleteTaskDefinitions": TierAutoCRUD, + "DeleteTaskSet": TierHandVerified, + "DeregisterContainerInstance": TierHandVerified, + "DeregisterScalableTarget": TierHandVerified, + "DeregisterTaskDefinition": TierHandVerified, + "DescribeCapacityProviders": TierHandVerified, + "DescribeClusters": TierHandVerified, + "DescribeContainerInstances": TierHandVerified, + "DescribeDaemon": TierAutoCRUD, + "DescribeDaemonDeployments": TierAutoCRUD, + "DescribeDaemonRevisions": TierAutoCRUD, + "DescribeDaemonTaskDefinition": TierAutoCRUD, + "DescribeExpressGatewayService": TierAutoCRUD, + "DescribeScalableTargets": TierHandVerified, + "DescribeScalingPolicies": TierHandVerified, + "DescribeServiceDeployments": TierAutoCRUD, + "DescribeServiceRevisions": TierAutoCRUD, + "DescribeServices": TierHandVerified, + "DescribeTaskDefinition": TierHandVerified, + "DescribeTaskSets": TierHandVerified, + "DescribeTasks": TierHandVerified, + "DiscoverPollEndpoint": TierHandVerified, + "ExecuteCommand": TierUnimplemented, + "GetTaskProtection": TierHandVerified, + "ListAccountSettings": TierHandVerified, + "ListAttributes": TierHandVerified, + "ListClusters": TierHandVerified, + "ListContainerInstances": TierHandVerified, + "ListDaemonDeployments": TierAutoCRUD, + "ListDaemonTaskDefinitions": TierAutoCRUD, + "ListDaemons": TierAutoCRUD, + "ListServiceDeployments": TierAutoCRUD, + "ListServices": TierHandVerified, + "ListServicesByNamespace": TierAutoCRUD, + "ListTagsForResource": TierHandVerified, + "ListTaskDefinitionFamilies": TierHandVerified, + "ListTaskDefinitions": TierHandVerified, + "ListTasks": TierHandVerified, + "PutAccountSetting": TierHandVerified, + "PutAccountSettingDefault": TierHandVerified, + "PutAttributes": TierHandVerified, + "PutClusterCapacityProviders": TierHandVerified, + "PutScalingPolicy": TierHandVerified, + "RegisterContainerInstance": TierHandVerified, + "RegisterDaemonTaskDefinition": TierAutoCRUD, + "RegisterScalableTarget": TierHandVerified, + "RegisterTaskDefinition": TierHandVerified, + "RunTask": TierHandVerified, + "StartTask": TierHandVerified, + "StopServiceDeployment": TierUnimplemented, + "StopTask": TierHandVerified, + "SubmitAttachmentStateChanges": TierUnimplemented, + "SubmitContainerStateChange": TierHandVerified, + "SubmitTaskStateChange": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateCapacityProvider": TierHandVerified, + "UpdateCluster": TierHandVerified, + "UpdateClusterSettings": TierHandVerified, + "UpdateContainerAgent": TierAutoCRUD, + "UpdateContainerInstancesState": TierHandVerified, + "UpdateDaemon": TierAutoCRUD, + "UpdateExpressGatewayService": TierAutoCRUD, + "UpdateService": TierHandVerified, + "UpdateServicePrimaryTaskSet": TierHandVerified, + "UpdateTaskProtection": TierHandVerified, + "UpdateTaskSet": TierHandVerified, + }}, + "efs": {ModelBacked: true, Operations: map[string]Tier{ + "CreateAccessPoint": TierHandVerified, + "CreateFileSystem": TierHandVerified, + "CreateMountTarget": TierHandVerified, + "CreateReplicationConfiguration": TierUnimplemented, + "CreateTags": TierUnimplemented, + "DeleteAccessPoint": TierHandVerified, + "DeleteFileSystem": TierHandVerified, + "DeleteFileSystemPolicy": TierHandVerified, + "DeleteMountTarget": TierHandVerified, + "DeleteReplicationConfiguration": TierUnimplemented, + "DeleteTags": TierUnimplemented, + "DescribeAccessPoints": TierHandVerified, + "DescribeAccountPreferences": TierHandVerified, + "DescribeBackupPolicy": TierHandVerified, + "DescribeFileSystemPolicy": TierHandVerified, + "DescribeFileSystems": TierHandVerified, + "DescribeLifecycleConfiguration": TierHandVerified, + "DescribeMountTargetSecurityGroups": TierHandVerified, + "DescribeMountTargets": TierHandVerified, + "DescribeReplicationConfigurations": TierHandVerified, + "DescribeTags": TierUnimplemented, + "ListTagsForResource": TierHandVerified, + "ModifyMountTargetSecurityGroups": TierHandVerified, + "PutAccountPreferences": TierUnimplemented, + "PutBackupPolicy": TierHandVerified, + "PutFileSystemPolicy": TierHandVerified, + "PutLifecycleConfiguration": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateFileSystem": TierHandVerified, + "UpdateFileSystemProtection": TierUnimplemented, + }}, + "eks": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateAccessPolicy": TierHandVerified, + "AssociateEncryptionConfig": TierHandVerified, + "AssociateIdentityProviderConfig": TierHandVerified, + "CreateAccessEntry": TierHandVerified, + "CreateAddon": TierHandVerified, + "CreateCapability": TierHandVerified, + "CreateCluster": TierHandVerified, + "CreateEksAnywhereSubscription": TierHandVerified, + "CreateFargateProfile": TierHandVerified, + "CreateNodegroup": TierHandVerified, + "CreatePodIdentityAssociation": TierHandVerified, + "DeleteAccessEntry": TierHandVerified, + "DeleteAddon": TierHandVerified, + "DeleteCapability": TierHandVerified, + "DeleteCluster": TierHandVerified, + "DeleteEksAnywhereSubscription": TierHandVerified, + "DeleteFargateProfile": TierHandVerified, + "DeleteNodegroup": TierHandVerified, + "DeletePodIdentityAssociation": TierHandVerified, + "DeregisterCluster": TierHandVerified, + "DescribeAccessEntry": TierHandVerified, + "DescribeAddon": TierHandVerified, + "DescribeAddonConfiguration": TierHandVerified, + "DescribeAddonVersions": TierHandVerified, + "DescribeCapability": TierHandVerified, + "DescribeCluster": TierHandVerified, + "DescribeClusterVersions": TierHandVerified, + "DescribeEksAnywhereSubscription": TierHandVerified, + "DescribeFargateProfile": TierHandVerified, + "DescribeIdentityProviderConfig": TierHandVerified, + "DescribeInsight": TierHandVerified, + "DescribeInsightsRefresh": TierHandVerified, + "DescribeNodegroup": TierHandVerified, + "DescribePodIdentityAssociation": TierHandVerified, + "DescribeUpdate": TierHandVerified, + "DisassociateAccessPolicy": TierHandVerified, + "DisassociateIdentityProviderConfig": TierHandVerified, + "ListAccessEntries": TierHandVerified, + "ListAccessPolicies": TierHandVerified, + "ListAddons": TierHandVerified, + "ListAssociatedAccessPolicies": TierHandVerified, + "ListCapabilities": TierHandVerified, + "ListClusters": TierHandVerified, + "ListEksAnywhereSubscriptions": TierHandVerified, + "ListFargateProfiles": TierHandVerified, + "ListIdentityProviderConfigs": TierHandVerified, + "ListInsights": TierHandVerified, + "ListNodegroups": TierHandVerified, + "ListPodIdentityAssociations": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListUpdates": TierHandVerified, + "RegisterCluster": TierHandVerified, + "StartInsightsRefresh": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAccessEntry": TierHandVerified, + "UpdateAddon": TierHandVerified, + "UpdateCapability": TierHandVerified, + "UpdateClusterConfig": TierHandVerified, + "UpdateClusterVersion": TierHandVerified, + "UpdateEksAnywhereSubscription": TierHandVerified, + "UpdateNodegroupConfig": TierHandVerified, + "UpdateNodegroupVersion": TierHandVerified, + "UpdatePodIdentityAssociation": TierHandVerified, + }}, + "elasticache": {ModelBacked: true, Operations: map[string]Tier{ + "AddTagsToResource": TierHandVerified, + "AuthorizeCacheSecurityGroupIngress": TierHandVerified, + "BatchApplyUpdateAction": TierUnimplemented, + "BatchStopUpdateAction": TierUnimplemented, + "CompleteMigration": TierUnimplemented, + "CopyServerlessCacheSnapshot": TierUnimplemented, + "CopySnapshot": TierHandVerified, + "CreateCacheCluster": TierHandVerified, + "CreateCacheParameterGroup": TierHandVerified, + "CreateCacheSecurityGroup": TierHandVerified, + "CreateCacheSubnetGroup": TierHandVerified, + "CreateGlobalReplicationGroup": TierUnimplemented, + "CreateReplicationGroup": TierHandVerified, + "CreateServerlessCache": TierHandVerified, + "CreateServerlessCacheSnapshot": TierUnimplemented, + "CreateSnapshot": TierHandVerified, + "CreateUser": TierHandVerified, + "CreateUserGroup": TierHandVerified, + "DecreaseNodeGroupsInGlobalReplicationGroup": TierUnimplemented, + "DecreaseReplicaCount": TierHandVerified, + "DeleteCacheCluster": TierHandVerified, + "DeleteCacheParameterGroup": TierHandVerified, + "DeleteCacheSecurityGroup": TierHandVerified, + "DeleteCacheSubnetGroup": TierHandVerified, + "DeleteGlobalReplicationGroup": TierUnimplemented, + "DeleteReplicationGroup": TierHandVerified, + "DeleteServerlessCache": TierHandVerified, + "DeleteServerlessCacheSnapshot": TierUnimplemented, + "DeleteSnapshot": TierHandVerified, + "DeleteUser": TierHandVerified, + "DeleteUserGroup": TierHandVerified, + "DescribeCacheClusters": TierHandVerified, + "DescribeCacheEngineVersions": TierUnimplemented, + "DescribeCacheParameterGroups": TierHandVerified, + "DescribeCacheParameters": TierHandVerified, + "DescribeCacheSecurityGroups": TierHandVerified, + "DescribeCacheSubnetGroups": TierHandVerified, + "DescribeEngineDefaultParameters": TierHandVerified, + "DescribeEvents": TierUnimplemented, + "DescribeGlobalReplicationGroups": TierUnimplemented, + "DescribeReplicationGroups": TierHandVerified, + "DescribeReservedCacheNodes": TierUnimplemented, + "DescribeReservedCacheNodesOfferings": TierUnimplemented, + "DescribeServerlessCacheSnapshots": TierUnimplemented, + "DescribeServerlessCaches": TierHandVerified, + "DescribeServiceUpdates": TierUnimplemented, + "DescribeSnapshots": TierHandVerified, + "DescribeUpdateActions": TierUnimplemented, + "DescribeUserGroups": TierHandVerified, + "DescribeUsers": TierHandVerified, + "DisassociateGlobalReplicationGroup": TierUnimplemented, + "ExportServerlessCacheSnapshot": TierUnimplemented, + "FailoverGlobalReplicationGroup": TierUnimplemented, + "IncreaseNodeGroupsInGlobalReplicationGroup": TierUnimplemented, + "IncreaseReplicaCount": TierHandVerified, + "ListAllowedNodeTypeModifications": TierUnimplemented, + "ListTagsForResource": TierHandVerified, + "ModifyCacheCluster": TierHandVerified, + "ModifyCacheParameterGroup": TierHandVerified, + "ModifyCacheSubnetGroup": TierHandVerified, + "ModifyGlobalReplicationGroup": TierUnimplemented, + "ModifyReplicationGroup": TierHandVerified, + "ModifyReplicationGroupShardConfiguration": TierHandVerified, + "ModifyServerlessCache": TierHandVerified, + "ModifyUser": TierHandVerified, + "ModifyUserGroup": TierHandVerified, + "PurchaseReservedCacheNodesOffering": TierUnimplemented, + "RebalanceSlotsInGlobalReplicationGroup": TierUnimplemented, + "RebootCacheCluster": TierHandVerified, + "RemoveTagsFromResource": TierHandVerified, + "ResetCacheParameterGroup": TierHandVerified, + "RevokeCacheSecurityGroupIngress": TierHandVerified, + "StartMigration": TierUnimplemented, + "TestFailover": TierHandVerified, + "TestMigration": TierUnimplemented, + }}, + "elasticbeanstalk": {ModelBacked: true, Operations: map[string]Tier{ + "AbortEnvironmentUpdate": TierHandVerified, + "ApplyEnvironmentManagedAction": TierHandVerified, + "AssociateEnvironmentOperationsRole": TierHandVerified, + "CheckDNSAvailability": TierHandVerified, + "ComposeEnvironments": TierHandVerified, + "CreateApplication": TierHandVerified, + "CreateApplicationVersion": TierHandVerified, + "CreateConfigurationTemplate": TierHandVerified, + "CreateEnvironment": TierHandVerified, + "CreatePlatformVersion": TierHandVerified, + "CreateStorageLocation": TierHandVerified, + "DeleteApplication": TierHandVerified, + "DeleteApplicationVersion": TierHandVerified, + "DeleteConfigurationTemplate": TierHandVerified, + "DeleteEnvironmentConfiguration": TierHandVerified, + "DeletePlatformVersion": TierHandVerified, + "DescribeAccountAttributes": TierHandVerified, + "DescribeApplicationVersions": TierHandVerified, + "DescribeApplications": TierHandVerified, + "DescribeConfigurationOptions": TierHandVerified, + "DescribeConfigurationSettings": TierHandVerified, + "DescribeEnvironmentHealth": TierHandVerified, + "DescribeEnvironmentManagedActionHistory": TierHandVerified, + "DescribeEnvironmentManagedActions": TierHandVerified, + "DescribeEnvironmentResources": TierHandVerified, + "DescribeEnvironments": TierHandVerified, + "DescribeEvents": TierHandVerified, + "DescribeInstancesHealth": TierHandVerified, + "DescribePlatformVersion": TierHandVerified, + "DisassociateEnvironmentOperationsRole": TierHandVerified, + "ListAvailableSolutionStacks": TierHandVerified, + "ListPlatformBranches": TierHandVerified, + "ListPlatformVersions": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "RebuildEnvironment": TierHandVerified, + "RequestEnvironmentInfo": TierHandVerified, + "RestartAppServer": TierHandVerified, + "RetrieveEnvironmentInfo": TierHandVerified, + "SwapEnvironmentCNAMEs": TierHandVerified, + "TerminateEnvironment": TierHandVerified, + "UpdateApplication": TierHandVerified, + "UpdateApplicationResourceLifecycle": TierHandVerified, + "UpdateApplicationVersion": TierHandVerified, + "UpdateConfigurationTemplate": TierHandVerified, + "UpdateEnvironment": TierHandVerified, + "UpdateTagsForResource": TierHandVerified, + "ValidateConfigurationSettings": TierHandVerified, + }}, + "elasticloadbalancingv2": {ModelBacked: true, Operations: map[string]Tier{ + "AddListenerCertificates": TierHandVerified, + "AddTags": TierHandVerified, + "AddTrustStoreRevocations": TierUnimplemented, + "CreateListener": TierHandVerified, + "CreateLoadBalancer": TierHandVerified, + "CreateRule": TierHandVerified, + "CreateTargetGroup": TierHandVerified, + "CreateTrustStore": TierUnimplemented, + "DeleteListener": TierHandVerified, + "DeleteLoadBalancer": TierHandVerified, + "DeleteRule": TierHandVerified, + "DeleteSharedTrustStoreAssociation": TierUnimplemented, + "DeleteTargetGroup": TierHandVerified, + "DeleteTrustStore": TierUnimplemented, + "DeregisterTargets": TierHandVerified, + "DescribeAccountLimits": TierHandVerified, + "DescribeCapacityReservation": TierUnimplemented, + "DescribeListenerAttributes": TierUnimplemented, + "DescribeListenerCertificates": TierHandVerified, + "DescribeListeners": TierHandVerified, + "DescribeLoadBalancerAttributes": TierHandVerified, + "DescribeLoadBalancers": TierHandVerified, + "DescribeRules": TierHandVerified, + "DescribeSSLPolicies": TierHandVerified, + "DescribeTags": TierHandVerified, + "DescribeTargetGroupAttributes": TierHandVerified, + "DescribeTargetGroups": TierHandVerified, + "DescribeTargetHealth": TierHandVerified, + "DescribeTrustStoreAssociations": TierUnimplemented, + "DescribeTrustStoreRevocations": TierUnimplemented, + "DescribeTrustStores": TierUnimplemented, + "GetResourcePolicy": TierUnimplemented, + "GetTrustStoreCaCertificatesBundle": TierUnimplemented, + "GetTrustStoreRevocationContent": TierUnimplemented, + "ModifyCapacityReservation": TierUnimplemented, + "ModifyIpPools": TierUnimplemented, + "ModifyListener": TierHandVerified, + "ModifyListenerAttributes": TierUnimplemented, + "ModifyLoadBalancerAttributes": TierHandVerified, + "ModifyRule": TierHandVerified, + "ModifyTargetGroup": TierHandVerified, + "ModifyTargetGroupAttributes": TierHandVerified, + "ModifyTrustStore": TierUnimplemented, + "RegisterTargets": TierHandVerified, + "RemoveListenerCertificates": TierHandVerified, + "RemoveTags": TierHandVerified, + "RemoveTrustStoreRevocations": TierUnimplemented, + "SetIpAddressType": TierHandVerified, + "SetRulePriorities": TierHandVerified, + "SetSecurityGroups": TierHandVerified, + "SetSubnets": TierHandVerified, + }}, + "elasticsearchservice": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptInboundCrossClusterSearchConnection": TierHandVerified, + "AddTags": TierHandVerified, + "AssociatePackage": TierHandVerified, + "AuthorizeVpcEndpointAccess": TierHandVerified, + "CancelDomainConfigChange": TierHandVerified, + "CancelElasticsearchServiceSoftwareUpdate": TierHandVerified, + "CreateElasticsearchDomain": TierHandVerified, + "CreateOutboundCrossClusterSearchConnection": TierHandVerified, + "CreatePackage": TierHandVerified, + "CreateVpcEndpoint": TierHandVerified, + "DeleteElasticsearchDomain": TierHandVerified, + "DeleteElasticsearchServiceRole": TierHandVerified, + "DeleteInboundCrossClusterSearchConnection": TierHandVerified, + "DeleteOutboundCrossClusterSearchConnection": TierHandVerified, + "DeletePackage": TierHandVerified, + "DeleteVpcEndpoint": TierHandVerified, + "DescribeDomainAutoTunes": TierHandVerified, + "DescribeDomainChangeProgress": TierHandVerified, + "DescribeElasticsearchDomain": TierHandVerified, + "DescribeElasticsearchDomainConfig": TierHandVerified, + "DescribeElasticsearchDomains": TierHandVerified, + "DescribeElasticsearchInstanceTypeLimits": TierHandVerified, + "DescribeInboundCrossClusterSearchConnections": TierHandVerified, + "DescribeOutboundCrossClusterSearchConnections": TierHandVerified, + "DescribePackages": TierHandVerified, + "DescribeReservedElasticsearchInstanceOfferings": TierHandVerified, + "DescribeReservedElasticsearchInstances": TierHandVerified, + "DescribeVpcEndpoints": TierHandVerified, + "DissociatePackage": TierHandVerified, + "GetCompatibleElasticsearchVersions": TierHandVerified, + "GetPackageVersionHistory": TierHandVerified, + "GetUpgradeHistory": TierHandVerified, + "GetUpgradeStatus": TierHandVerified, + "ListDomainNames": TierHandVerified, + "ListDomainsForPackage": TierHandVerified, + "ListElasticsearchInstanceTypes": TierHandVerified, + "ListElasticsearchVersions": TierHandVerified, + "ListPackagesForDomain": TierHandVerified, + "ListTags": TierHandVerified, + "ListVpcEndpointAccess": TierHandVerified, + "ListVpcEndpoints": TierHandVerified, + "ListVpcEndpointsForDomain": TierHandVerified, + "PurchaseReservedElasticsearchInstanceOffering": TierHandVerified, + "RejectInboundCrossClusterSearchConnection": TierHandVerified, + "RemoveTags": TierHandVerified, + "RevokeVpcEndpointAccess": TierHandVerified, + "StartElasticsearchServiceSoftwareUpdate": TierHandVerified, + "UpdateElasticsearchDomainConfig": TierHandVerified, + "UpdatePackage": TierHandVerified, + "UpdateVpcEndpoint": TierHandVerified, + "UpgradeElasticsearchDomain": TierHandVerified, + }}, + "emr": {ModelBacked: true, Operations: map[string]Tier{ + "AddInstanceFleet": TierHandVerified, + "AddInstanceGroups": TierHandVerified, + "AddJobFlowSteps": TierHandVerified, + "AddTags": TierHandVerified, + "CancelSteps": TierHandVerified, + "CreatePersistentAppUI": TierHandVerified, + "CreateSecurityConfiguration": TierHandVerified, + "CreateStudio": TierHandVerified, + "CreateStudioSessionMapping": TierHandVerified, + "DeleteSecurityConfiguration": TierHandVerified, + "DeleteStudio": TierHandVerified, + "DeleteStudioSessionMapping": TierHandVerified, + "DescribeCluster": TierHandVerified, + "DescribeJobFlows": TierHandVerified, + "DescribeNotebookExecution": TierHandVerified, + "DescribePersistentAppUI": TierHandVerified, + "DescribeReleaseLabel": TierHandVerified, + "DescribeSecurityConfiguration": TierHandVerified, + "DescribeStep": TierHandVerified, + "DescribeStudio": TierHandVerified, + "GetAutoTerminationPolicy": TierHandVerified, + "GetBlockPublicAccessConfiguration": TierHandVerified, + "GetClusterSessionCredentials": TierHandVerified, + "GetManagedScalingPolicy": TierHandVerified, + "GetOnClusterAppUIPresignedURL": TierHandVerified, + "GetPersistentAppUIPresignedURL": TierHandVerified, + "GetStudioSessionMapping": TierHandVerified, + "ListBootstrapActions": TierHandVerified, + "ListClusters": TierHandVerified, + "ListInstanceFleets": TierHandVerified, + "ListInstanceGroups": TierHandVerified, + "ListInstances": TierHandVerified, + "ListNotebookExecutions": TierHandVerified, + "ListReleaseLabels": TierHandVerified, + "ListSecurityConfigurations": TierHandVerified, + "ListSteps": TierHandVerified, + "ListStudioSessionMappings": TierHandVerified, + "ListStudios": TierHandVerified, + "ListSupportedInstanceTypes": TierHandVerified, + "ModifyCluster": TierHandVerified, + "ModifyInstanceFleet": TierHandVerified, + "ModifyInstanceGroups": TierHandVerified, + "PutAutoScalingPolicy": TierHandVerified, + "PutAutoTerminationPolicy": TierHandVerified, + "PutBlockPublicAccessConfiguration": TierHandVerified, + "PutManagedScalingPolicy": TierHandVerified, + "RemoveAutoScalingPolicy": TierHandVerified, + "RemoveAutoTerminationPolicy": TierHandVerified, + "RemoveManagedScalingPolicy": TierHandVerified, + "RemoveTags": TierHandVerified, + "RunJobFlow": TierHandVerified, + "SetKeepJobFlowAliveWhenNoSteps": TierHandVerified, + "SetTerminationProtection": TierHandVerified, + "SetUnhealthyNodeReplacement": TierHandVerified, + "SetVisibleToAllUsers": TierHandVerified, + "StartNotebookExecution": TierHandVerified, + "StopNotebookExecution": TierHandVerified, + "TerminateJobFlows": TierHandVerified, + "UpdateStudio": TierHandVerified, + "UpdateStudioSessionMapping": TierHandVerified, + }}, + "eventbridge": {ModelBacked: true, Operations: map[string]Tier{ + "ActivateEventSource": TierUnimplemented, + "CancelReplay": TierHandVerified, + "CreateApiDestination": TierAutoCRUD, + "CreateArchive": TierHandVerified, + "CreateConnection": TierAutoCRUD, + "CreateEndpoint": TierAutoCRUD, + "CreateEventBus": TierHandVerified, + "CreatePartnerEventSource": TierAutoCRUD, + "DeactivateEventSource": TierUnimplemented, + "DeauthorizeConnection": TierUnimplemented, + "DeleteApiDestination": TierAutoCRUD, + "DeleteArchive": TierHandVerified, + "DeleteConnection": TierAutoCRUD, + "DeleteEndpoint": TierAutoCRUD, + "DeleteEventBus": TierHandVerified, + "DeletePartnerEventSource": TierAutoCRUD, + "DeleteRule": TierHandVerified, + "DescribeApiDestination": TierAutoCRUD, + "DescribeArchive": TierHandVerified, + "DescribeConnection": TierAutoCRUD, + "DescribeEndpoint": TierAutoCRUD, + "DescribeEventBus": TierHandVerified, + "DescribeEventSource": TierAutoCRUD, + "DescribePartnerEventSource": TierAutoCRUD, + "DescribeReplay": TierHandVerified, + "DescribeRule": TierHandVerified, + "DisableRule": TierHandVerified, + "EnableRule": TierHandVerified, + "ListApiDestinations": TierAutoCRUD, + "ListArchives": TierHandVerified, + "ListConnections": TierAutoCRUD, + "ListEndpoints": TierAutoCRUD, + "ListEventBuses": TierHandVerified, + "ListEventSources": TierAutoCRUD, + "ListPartnerEventSourceAccounts": TierAutoCRUD, + "ListPartnerEventSources": TierAutoCRUD, + "ListReplays": TierHandVerified, + "ListRuleNamesByTarget": TierAutoCRUD, + "ListRules": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTargetsByRule": TierHandVerified, + "PutEvents": TierHandVerified, + "PutPartnerEvents": TierAutoCRUD, + "PutPermission": TierAutoCRUD, + "PutRule": TierHandVerified, + "PutTargets": TierHandVerified, + "RemovePermission": TierUnimplemented, + "RemoveTargets": TierHandVerified, + "StartReplay": TierHandVerified, + "TagResource": TierHandVerified, + "TestEventPattern": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApiDestination": TierAutoCRUD, + "UpdateArchive": TierHandVerified, + "UpdateConnection": TierAutoCRUD, + "UpdateEndpoint": TierAutoCRUD, + "UpdateEventBus": TierAutoCRUD, + }}, + "firehose": {ModelBacked: true, Operations: map[string]Tier{ + "AddKinesisSource": TierHandVerified, + "CreateDeliveryStream": TierHandVerified, + "DeleteDeliveryStream": TierHandVerified, + "DescribeDeliveryStream": TierHandVerified, + "DescribeDeliveryStreamHealth": TierHandVerified, + "DisableKinesisStreamSource": TierHandVerified, + "DisableLogging": TierHandVerified, + "EnableLogging": TierHandVerified, + "GetDeliveryStreamLogs": TierHandVerified, + "GetDeliveryStreamMetrics": TierHandVerified, + "GetKinesisSources": TierHandVerified, + "GetLoggingConfiguration": TierHandVerified, + "GetRecordStatistics": TierHandVerified, + "GetRedshiftDestination": TierHandVerified, + "ListDeliveryStreams": TierHandVerified, + "ListRecords": TierHandVerified, + "ListTagsForDeliveryStream": TierHandVerified, + "PauseDeliveryStream": TierHandVerified, + "PutElasticsearchDestination": TierHandVerified, + "PutExtendedS3Destination": TierHandVerified, + "PutHttpEndpointDestination": TierHandVerified, + "PutRecord": TierHandVerified, + "PutRecordBatch": TierHandVerified, + "PutRedshiftDestination": TierHandVerified, + "PutS3Destination": TierHandVerified, + "PutSplunkDestination": TierHandVerified, + "ResumeDeliveryStream": TierHandVerified, + "StartDeliveryStream": TierHandVerified, + "StartDeliveryStreamEncryption": TierHandVerified, + "StopDeliveryStream": TierHandVerified, + "StopDeliveryStreamEncryption": TierHandVerified, + "TagDeliveryStream": TierHandVerified, + "UntagDeliveryStream": TierHandVerified, + "UpdateDestination": TierHandVerified, + "UpdateElasticsearchDestination": TierHandVerified, + "UpdateExtendedS3Destination": TierHandVerified, + "UpdateHttpEndpointDestination": TierHandVerified, + "UpdateRedshiftDestination": TierHandVerified, + "UpdateS3Destination": TierHandVerified, + "UpdateSplunkDestination": TierHandVerified, + }}, + "fis": {ModelBacked: true, Operations: map[string]Tier{ + "CancelExperiment": TierHandVerified, + "CloneExperimentTemplate": TierHandVerified, + "CreateExperimentTemplate": TierHandVerified, + "CreateTargetAccountConfiguration": TierHandVerified, + "DeleteExperimentTemplate": TierHandVerified, + "DeleteTargetAccountConfiguration": TierHandVerified, + "GetAction": TierHandVerified, + "GetExperiment": TierHandVerified, + "GetExperimentHistory": TierHandVerified, + "GetExperimentTargetAccountConfiguration": TierHandVerified, + "GetExperimentTemplate": TierHandVerified, + "GetExperimentTemplateLogConfiguration": TierHandVerified, + "GetSafetyLever": TierHandVerified, + "GetTargetAccountConfiguration": TierHandVerified, + "GetTargetResourceType": TierHandVerified, + "ListActions": TierHandVerified, + "ListExperimentEvents": TierHandVerified, + "ListExperimentResolvedTargets": TierHandVerified, + "ListExperimentTargetAccountConfigurations": TierHandVerified, + "ListExperimentTemplates": TierHandVerified, + "ListExperiments": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTargetAccountConfigurations": TierHandVerified, + "ListTargetResourceTypes": TierHandVerified, + "StartExperiment": TierHandVerified, + "StopExperiment": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateExperimentTemplate": TierHandVerified, + "UpdateExperimentTemplateLogConfiguration": TierHandVerified, + "UpdateSafetyLeverState": TierHandVerified, + "UpdateTargetAccountConfiguration": TierHandVerified, + "ValidateExperimentTemplate": TierHandVerified, + }}, + "glacier": {ModelBacked: true, Operations: map[string]Tier{ + "AbortMultipartUpload": TierHandVerified, + "AbortVaultLock": TierHandVerified, + "AddTagsToVault": TierHandVerified, + "CompleteMultipartUpload": TierHandVerified, + "CompleteVaultLock": TierHandVerified, + "CreateVault": TierHandVerified, + "DeleteArchive": TierHandVerified, + "DeleteVault": TierHandVerified, + "DeleteVaultAccessPolicy": TierHandVerified, + "DeleteVaultNotifications": TierHandVerified, + "DescribeJob": TierHandVerified, + "DescribeVault": TierHandVerified, + "GetDataRetrievalPolicy": TierHandVerified, + "GetJobOutput": TierHandVerified, + "GetVaultAccessPolicy": TierHandVerified, + "GetVaultLock": TierHandVerified, + "GetVaultNotifications": TierHandVerified, + "InitiateJob": TierHandVerified, + "InitiateMultipartUpload": TierHandVerified, + "InitiateVaultLock": TierHandVerified, + "ListJobs": TierHandVerified, + "ListMultipartUploads": TierHandVerified, + "ListParts": TierHandVerified, + "ListProvisionedCapacity": TierHandVerified, + "ListTagsForVault": TierHandVerified, + "ListVaults": TierHandVerified, + "PurchaseProvisionedCapacity": TierHandVerified, + "RemoveTagsFromVault": TierHandVerified, + "SetDataRetrievalPolicy": TierHandVerified, + "SetVaultAccessPolicy": TierHandVerified, + "SetVaultNotifications": TierHandVerified, + "UploadArchive": TierHandVerified, + "UploadMultipartPart": TierHandVerified, + }}, + "glue": {ModelBacked: true, Operations: map[string]Tier{ + "BatchCreatePartition": TierHandVerified, + "BatchDeleteConnection": TierHandVerified, + "BatchDeletePartition": TierHandVerified, + "BatchDeleteTable": TierHandVerified, + "BatchDeleteTableVersion": TierHandVerified, + "BatchGetBlueprints": TierAutoCRUD, + "BatchGetCrawlers": TierHandVerified, + "BatchGetCustomEntityTypes": TierAutoCRUD, + "BatchGetDataQualityResult": TierAutoCRUD, + "BatchGetDevEndpoints": TierAutoCRUD, + "BatchGetJobs": TierHandVerified, + "BatchGetPartition": TierHandVerified, + "BatchGetTableOptimizer": TierAutoCRUD, + "BatchGetTriggers": TierHandVerified, + "BatchGetWorkflows": TierAutoCRUD, + "BatchPutDataQualityStatisticAnnotation": TierUnimplemented, + "BatchStopJobRun": TierHandVerified, + "BatchUpdatePartition": TierHandVerified, + "CancelDataQualityRuleRecommendationRun": TierUnimplemented, + "CancelDataQualityRulesetEvaluationRun": TierUnimplemented, + "CancelMLTaskRun": TierUnimplemented, + "CancelStatement": TierUnimplemented, + "CheckSchemaVersionValidity": TierUnimplemented, + "CreateBlueprint": TierAutoCRUD, + "CreateCatalog": TierAutoCRUD, + "CreateClassifier": TierAutoCRUD, + "CreateColumnStatisticsTaskSettings": TierAutoCRUD, + "CreateConnection": TierHandVerified, + "CreateCrawler": TierHandVerified, + "CreateCustomEntityType": TierAutoCRUD, + "CreateDataQualityRuleset": TierAutoCRUD, + "CreateDatabase": TierHandVerified, + "CreateDevEndpoint": TierAutoCRUD, + "CreateGlueIdentityCenterConfiguration": TierAutoCRUD, + "CreateIntegration": TierAutoCRUD, + "CreateIntegrationResourceProperty": TierAutoCRUD, + "CreateIntegrationTableProperties": TierAutoCRUD, + "CreateJob": TierHandVerified, + "CreateMLTransform": TierAutoCRUD, + "CreatePartition": TierHandVerified, + "CreatePartitionIndex": TierAutoCRUD, + "CreateRegistry": TierAutoCRUD, + "CreateSchema": TierAutoCRUD, + "CreateScript": TierAutoCRUD, + "CreateSecurityConfiguration": TierHandVerified, + "CreateSession": TierAutoCRUD, + "CreateTable": TierHandVerified, + "CreateTableOptimizer": TierAutoCRUD, + "CreateTrigger": TierHandVerified, + "CreateUsageProfile": TierAutoCRUD, + "CreateUserDefinedFunction": TierAutoCRUD, + "CreateWorkflow": TierAutoCRUD, + "DeleteBlueprint": TierAutoCRUD, + "DeleteCatalog": TierAutoCRUD, + "DeleteClassifier": TierAutoCRUD, + "DeleteColumnStatisticsForPartition": TierAutoCRUD, + "DeleteColumnStatisticsForTable": TierAutoCRUD, + "DeleteColumnStatisticsTaskSettings": TierAutoCRUD, + "DeleteConnection": TierHandVerified, + "DeleteConnectionType": TierAutoCRUD, + "DeleteCrawler": TierHandVerified, + "DeleteCustomEntityType": TierAutoCRUD, + "DeleteDataQualityRuleset": TierAutoCRUD, + "DeleteDatabase": TierHandVerified, + "DeleteDevEndpoint": TierAutoCRUD, + "DeleteGlueIdentityCenterConfiguration": TierAutoCRUD, + "DeleteIntegration": TierAutoCRUD, + "DeleteIntegrationResourceProperty": TierAutoCRUD, + "DeleteIntegrationTableProperties": TierAutoCRUD, + "DeleteJob": TierHandVerified, + "DeleteMLTransform": TierAutoCRUD, + "DeletePartition": TierAutoCRUD, + "DeletePartitionIndex": TierAutoCRUD, + "DeleteRegistry": TierAutoCRUD, + "DeleteResourcePolicy": TierAutoCRUD, + "DeleteSchema": TierAutoCRUD, + "DeleteSchemaVersions": TierAutoCRUD, + "DeleteSecurityConfiguration": TierHandVerified, + "DeleteSession": TierAutoCRUD, + "DeleteTable": TierHandVerified, + "DeleteTableOptimizer": TierAutoCRUD, + "DeleteTableVersion": TierHandVerified, + "DeleteTrigger": TierHandVerified, + "DeleteUsageProfile": TierAutoCRUD, + "DeleteUserDefinedFunction": TierAutoCRUD, + "DeleteWorkflow": TierAutoCRUD, + "DescribeConnectionType": TierAutoCRUD, + "DescribeEntity": TierAutoCRUD, + "DescribeInboundIntegrations": TierAutoCRUD, + "DescribeIntegrations": TierAutoCRUD, + "GetBlueprint": TierAutoCRUD, + "GetBlueprintRun": TierAutoCRUD, + "GetBlueprintRuns": TierAutoCRUD, + "GetCatalog": TierAutoCRUD, + "GetCatalogImportStatus": TierAutoCRUD, + "GetCatalogs": TierAutoCRUD, + "GetClassifier": TierAutoCRUD, + "GetClassifiers": TierAutoCRUD, + "GetColumnStatisticsForPartition": TierAutoCRUD, + "GetColumnStatisticsForTable": TierAutoCRUD, + "GetColumnStatisticsTaskRun": TierAutoCRUD, + "GetColumnStatisticsTaskRuns": TierAutoCRUD, + "GetColumnStatisticsTaskSettings": TierAutoCRUD, + "GetConnection": TierHandVerified, + "GetConnections": TierHandVerified, + "GetCrawler": TierHandVerified, + "GetCrawlerMetrics": TierHandVerified, + "GetCrawlers": TierHandVerified, + "GetCustomEntityType": TierAutoCRUD, + "GetDataCatalogEncryptionSettings": TierAutoCRUD, + "GetDataQualityModel": TierAutoCRUD, + "GetDataQualityModelResult": TierAutoCRUD, + "GetDataQualityResult": TierAutoCRUD, + "GetDataQualityRuleRecommendationRun": TierAutoCRUD, + "GetDataQualityRuleset": TierAutoCRUD, + "GetDataQualityRulesetEvaluationRun": TierAutoCRUD, + "GetDatabase": TierHandVerified, + "GetDatabases": TierHandVerified, + "GetDataflowGraph": TierAutoCRUD, + "GetDevEndpoint": TierAutoCRUD, + "GetDevEndpoints": TierAutoCRUD, + "GetEntityRecords": TierAutoCRUD, + "GetGlueIdentityCenterConfiguration": TierAutoCRUD, + "GetIntegrationResourceProperty": TierAutoCRUD, + "GetIntegrationTableProperties": TierAutoCRUD, + "GetJob": TierHandVerified, + "GetJobBookmark": TierHandVerified, + "GetJobRun": TierHandVerified, + "GetJobRuns": TierHandVerified, + "GetJobs": TierHandVerified, + "GetMLTaskRun": TierAutoCRUD, + "GetMLTaskRuns": TierAutoCRUD, + "GetMLTransform": TierAutoCRUD, + "GetMLTransforms": TierAutoCRUD, + "GetMapping": TierAutoCRUD, + "GetMaterializedViewRefreshTaskRun": TierAutoCRUD, + "GetPartition": TierHandVerified, + "GetPartitionIndexes": TierAutoCRUD, + "GetPartitions": TierHandVerified, + "GetPlan": TierAutoCRUD, + "GetRegistry": TierAutoCRUD, + "GetResourcePolicies": TierAutoCRUD, + "GetResourcePolicy": TierAutoCRUD, + "GetSchema": TierAutoCRUD, + "GetSchemaByDefinition": TierAutoCRUD, + "GetSchemaVersion": TierAutoCRUD, + "GetSchemaVersionsDiff": TierAutoCRUD, + "GetSecurityConfiguration": TierHandVerified, + "GetSecurityConfigurations": TierHandVerified, + "GetSession": TierAutoCRUD, + "GetStatement": TierAutoCRUD, + "GetTable": TierHandVerified, + "GetTableOptimizer": TierAutoCRUD, + "GetTableVersion": TierHandVerified, + "GetTableVersions": TierHandVerified, + "GetTables": TierHandVerified, + "GetTags": TierHandVerified, + "GetTrigger": TierHandVerified, + "GetTriggers": TierHandVerified, + "GetUnfilteredPartitionMetadata": TierAutoCRUD, + "GetUnfilteredPartitionsMetadata": TierAutoCRUD, + "GetUnfilteredTableMetadata": TierAutoCRUD, + "GetUsageProfile": TierAutoCRUD, + "GetUserDefinedFunction": TierAutoCRUD, + "GetUserDefinedFunctions": TierAutoCRUD, + "GetWorkflow": TierAutoCRUD, + "GetWorkflowRun": TierAutoCRUD, + "GetWorkflowRunProperties": TierAutoCRUD, + "GetWorkflowRuns": TierAutoCRUD, + "ImportCatalogToGlue": TierUnimplemented, + "ListBlueprints": TierAutoCRUD, + "ListColumnStatisticsTaskRuns": TierAutoCRUD, + "ListConnectionTypes": TierAutoCRUD, + "ListCrawlers": TierAutoCRUD, + "ListCrawls": TierAutoCRUD, + "ListCustomEntityTypes": TierAutoCRUD, + "ListDataQualityResults": TierAutoCRUD, + "ListDataQualityRuleRecommendationRuns": TierAutoCRUD, + "ListDataQualityRulesetEvaluationRuns": TierAutoCRUD, + "ListDataQualityRulesets": TierAutoCRUD, + "ListDataQualityStatisticAnnotations": TierAutoCRUD, + "ListDataQualityStatistics": TierAutoCRUD, + "ListDevEndpoints": TierAutoCRUD, + "ListEntities": TierAutoCRUD, + "ListIntegrationResourceProperties": TierAutoCRUD, + "ListJobs": TierAutoCRUD, + "ListMLTransforms": TierAutoCRUD, + "ListMaterializedViewRefreshTaskRuns": TierAutoCRUD, + "ListRegistries": TierAutoCRUD, + "ListSchemaVersions": TierAutoCRUD, + "ListSchemas": TierAutoCRUD, + "ListSessions": TierAutoCRUD, + "ListStatements": TierAutoCRUD, + "ListTableOptimizerRuns": TierAutoCRUD, + "ListTriggers": TierAutoCRUD, + "ListUsageProfiles": TierAutoCRUD, + "ListWorkflows": TierAutoCRUD, + "ModifyIntegration": TierAutoCRUD, + "PutDataCatalogEncryptionSettings": TierAutoCRUD, + "PutDataQualityProfileAnnotation": TierAutoCRUD, + "PutResourcePolicy": TierAutoCRUD, + "PutSchemaVersionMetadata": TierAutoCRUD, + "PutWorkflowRunProperties": TierAutoCRUD, + "QuerySchemaVersionMetadata": TierUnimplemented, + "RegisterConnectionType": TierAutoCRUD, + "RegisterSchemaVersion": TierAutoCRUD, + "RemoveSchemaVersionMetadata": TierUnimplemented, + "ResetJobBookmark": TierHandVerified, + "ResumeWorkflowRun": TierUnimplemented, + "RunStatement": TierUnimplemented, + "SearchTables": TierUnimplemented, + "StartBlueprintRun": TierUnimplemented, + "StartColumnStatisticsTaskRun": TierUnimplemented, + "StartColumnStatisticsTaskRunSchedule": TierUnimplemented, + "StartCrawler": TierHandVerified, + "StartCrawlerSchedule": TierUnimplemented, + "StartDataQualityRuleRecommendationRun": TierUnimplemented, + "StartDataQualityRulesetEvaluationRun": TierUnimplemented, + "StartExportLabelsTaskRun": TierUnimplemented, + "StartImportLabelsTaskRun": TierUnimplemented, + "StartJobRun": TierHandVerified, + "StartMLEvaluationTaskRun": TierUnimplemented, + "StartMLLabelingSetGenerationTaskRun": TierUnimplemented, + "StartMaterializedViewRefreshTaskRun": TierUnimplemented, + "StartTrigger": TierHandVerified, + "StartWorkflowRun": TierUnimplemented, + "StopColumnStatisticsTaskRun": TierUnimplemented, + "StopColumnStatisticsTaskRunSchedule": TierUnimplemented, + "StopCrawler": TierHandVerified, + "StopCrawlerSchedule": TierUnimplemented, + "StopMaterializedViewRefreshTaskRun": TierUnimplemented, + "StopSession": TierUnimplemented, + "StopTrigger": TierHandVerified, + "StopWorkflowRun": TierUnimplemented, + "TagResource": TierHandVerified, + "TestConnection": TierUnimplemented, + "UntagResource": TierHandVerified, + "UpdateBlueprint": TierAutoCRUD, + "UpdateCatalog": TierAutoCRUD, + "UpdateClassifier": TierAutoCRUD, + "UpdateColumnStatisticsForPartition": TierAutoCRUD, + "UpdateColumnStatisticsForTable": TierAutoCRUD, + "UpdateColumnStatisticsTaskSettings": TierAutoCRUD, + "UpdateConnection": TierHandVerified, + "UpdateCrawler": TierHandVerified, + "UpdateCrawlerSchedule": TierAutoCRUD, + "UpdateDataQualityRuleset": TierAutoCRUD, + "UpdateDatabase": TierHandVerified, + "UpdateDevEndpoint": TierAutoCRUD, + "UpdateGlueIdentityCenterConfiguration": TierAutoCRUD, + "UpdateIntegrationResourceProperty": TierAutoCRUD, + "UpdateIntegrationTableProperties": TierAutoCRUD, + "UpdateJob": TierHandVerified, + "UpdateJobFromSourceControl": TierAutoCRUD, + "UpdateMLTransform": TierAutoCRUD, + "UpdatePartition": TierHandVerified, + "UpdateRegistry": TierAutoCRUD, + "UpdateSchema": TierAutoCRUD, + "UpdateSourceControlFromJob": TierAutoCRUD, + "UpdateTable": TierHandVerified, + "UpdateTableOptimizer": TierAutoCRUD, + "UpdateTrigger": TierHandVerified, + "UpdateUsageProfile": TierAutoCRUD, + "UpdateUserDefinedFunction": TierAutoCRUD, + "UpdateWorkflow": TierAutoCRUD, + }}, + "iam": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptDelegationRequest": TierUnimplemented, + "AddClientIDToOpenIDConnectProvider": TierUnimplemented, + "AddRoleToInstanceProfile": TierHandVerified, + "AddUserToGroup": TierHandVerified, + "AssociateDelegationRequest": TierUnimplemented, + "AttachGroupPolicy": TierHandVerified, + "AttachRolePolicy": TierHandVerified, + "AttachUserPolicy": TierHandVerified, + "ChangePassword": TierUnimplemented, + "CreateAccessKey": TierHandVerified, + "CreateAccountAlias": TierUnimplemented, + "CreateDelegationRequest": TierUnimplemented, + "CreateGroup": TierHandVerified, + "CreateInstanceProfile": TierHandVerified, + "CreateLoginProfile": TierUnimplemented, + "CreateOpenIDConnectProvider": TierUnimplemented, + "CreatePolicy": TierHandVerified, + "CreatePolicyVersion": TierHandVerified, + "CreateRole": TierHandVerified, + "CreateSAMLProvider": TierUnimplemented, + "CreateServiceLinkedRole": TierUnimplemented, + "CreateServiceSpecificCredential": TierUnimplemented, + "CreateUser": TierHandVerified, + "CreateVirtualMFADevice": TierUnimplemented, + "DeactivateMFADevice": TierUnimplemented, + "DeleteAccessKey": TierHandVerified, + "DeleteAccountAlias": TierUnimplemented, + "DeleteAccountPasswordPolicy": TierUnimplemented, + "DeleteGroup": TierHandVerified, + "DeleteGroupPolicy": TierHandVerified, + "DeleteInstanceProfile": TierHandVerified, + "DeleteLoginProfile": TierUnimplemented, + "DeleteOpenIDConnectProvider": TierUnimplemented, + "DeletePolicy": TierHandVerified, + "DeletePolicyVersion": TierUnimplemented, + "DeleteRole": TierHandVerified, + "DeleteRolePermissionsBoundary": TierUnimplemented, + "DeleteRolePolicy": TierHandVerified, + "DeleteSAMLProvider": TierUnimplemented, + "DeleteSSHPublicKey": TierUnimplemented, + "DeleteServerCertificate": TierUnimplemented, + "DeleteServiceLinkedRole": TierUnimplemented, + "DeleteServiceSpecificCredential": TierUnimplemented, + "DeleteSigningCertificate": TierUnimplemented, + "DeleteUser": TierHandVerified, + "DeleteUserPermissionsBoundary": TierUnimplemented, + "DeleteUserPolicy": TierHandVerified, + "DeleteVirtualMFADevice": TierUnimplemented, + "DetachGroupPolicy": TierHandVerified, + "DetachRolePolicy": TierHandVerified, + "DetachUserPolicy": TierHandVerified, + "DisableOrganizationsRootCredentialsManagement": TierUnimplemented, + "DisableOrganizationsRootSessions": TierUnimplemented, + "DisableOutboundWebIdentityFederation": TierUnimplemented, + "EnableMFADevice": TierUnimplemented, + "EnableOrganizationsRootCredentialsManagement": TierUnimplemented, + "EnableOrganizationsRootSessions": TierUnimplemented, + "EnableOutboundWebIdentityFederation": TierUnimplemented, + "GenerateCredentialReport": TierUnimplemented, + "GenerateOrganizationsAccessReport": TierUnimplemented, + "GenerateServiceLastAccessedDetails": TierUnimplemented, + "GetAccessKeyLastUsed": TierUnimplemented, + "GetAccountAuthorizationDetails": TierUnimplemented, + "GetAccountPasswordPolicy": TierUnimplemented, + "GetAccountSummary": TierUnimplemented, + "GetContextKeysForCustomPolicy": TierUnimplemented, + "GetContextKeysForPrincipalPolicy": TierUnimplemented, + "GetCredentialReport": TierUnimplemented, + "GetDelegationRequest": TierUnimplemented, + "GetGroup": TierHandVerified, + "GetGroupPolicy": TierHandVerified, + "GetHumanReadableSummary": TierUnimplemented, + "GetInstanceProfile": TierHandVerified, + "GetLoginProfile": TierUnimplemented, + "GetMFADevice": TierUnimplemented, + "GetOpenIDConnectProvider": TierUnimplemented, + "GetOrganizationsAccessReport": TierUnimplemented, + "GetOutboundWebIdentityFederationInfo": TierUnimplemented, + "GetPolicy": TierHandVerified, + "GetPolicyVersion": TierHandVerified, + "GetRole": TierHandVerified, + "GetRolePolicy": TierHandVerified, + "GetSAMLProvider": TierUnimplemented, + "GetSSHPublicKey": TierUnimplemented, + "GetServerCertificate": TierUnimplemented, + "GetServiceLastAccessedDetails": TierUnimplemented, + "GetServiceLastAccessedDetailsWithEntities": TierUnimplemented, + "GetServiceLinkedRoleDeletionStatus": TierUnimplemented, + "GetUser": TierHandVerified, + "GetUserPolicy": TierHandVerified, + "ListAccessKeys": TierHandVerified, + "ListAccountAliases": TierUnimplemented, + "ListAttachedGroupPolicies": TierHandVerified, + "ListAttachedRolePolicies": TierHandVerified, + "ListAttachedUserPolicies": TierHandVerified, + "ListDelegationRequests": TierUnimplemented, + "ListEntitiesForPolicy": TierUnimplemented, + "ListGroupPolicies": TierHandVerified, + "ListGroups": TierHandVerified, + "ListGroupsForUser": TierUnimplemented, + "ListInstanceProfileTags": TierUnimplemented, + "ListInstanceProfiles": TierHandVerified, + "ListInstanceProfilesForRole": TierUnimplemented, + "ListMFADeviceTags": TierUnimplemented, + "ListMFADevices": TierUnimplemented, + "ListOpenIDConnectProviderTags": TierUnimplemented, + "ListOpenIDConnectProviders": TierUnimplemented, + "ListOrganizationsFeatures": TierUnimplemented, + "ListPolicies": TierUnimplemented, + "ListPoliciesGrantingServiceAccess": TierUnimplemented, + "ListPolicyTags": TierUnimplemented, + "ListPolicyVersions": TierHandVerified, + "ListRolePolicies": TierHandVerified, + "ListRoleTags": TierHandVerified, + "ListRoles": TierHandVerified, + "ListSAMLProviderTags": TierUnimplemented, + "ListSAMLProviders": TierUnimplemented, + "ListSSHPublicKeys": TierUnimplemented, + "ListServerCertificateTags": TierUnimplemented, + "ListServerCertificates": TierUnimplemented, + "ListServiceSpecificCredentials": TierUnimplemented, + "ListSigningCertificates": TierUnimplemented, + "ListUserPolicies": TierHandVerified, + "ListUserTags": TierHandVerified, + "ListUsers": TierHandVerified, + "ListVirtualMFADevices": TierUnimplemented, + "PutGroupPolicy": TierHandVerified, + "PutRolePermissionsBoundary": TierUnimplemented, + "PutRolePolicy": TierHandVerified, + "PutUserPermissionsBoundary": TierUnimplemented, + "PutUserPolicy": TierHandVerified, + "RejectDelegationRequest": TierUnimplemented, + "RemoveClientIDFromOpenIDConnectProvider": TierUnimplemented, + "RemoveRoleFromInstanceProfile": TierHandVerified, + "RemoveUserFromGroup": TierHandVerified, + "ResetServiceSpecificCredential": TierUnimplemented, + "ResyncMFADevice": TierUnimplemented, + "SendDelegationToken": TierUnimplemented, + "SetDefaultPolicyVersion": TierUnimplemented, + "SetSecurityTokenServicePreferences": TierUnimplemented, + "SimulateCustomPolicy": TierUnimplemented, + "SimulatePrincipalPolicy": TierUnimplemented, + "TagInstanceProfile": TierUnimplemented, + "TagMFADevice": TierUnimplemented, + "TagOpenIDConnectProvider": TierUnimplemented, + "TagPolicy": TierUnimplemented, + "TagRole": TierHandVerified, + "TagSAMLProvider": TierUnimplemented, + "TagServerCertificate": TierUnimplemented, + "TagUser": TierHandVerified, + "UntagInstanceProfile": TierUnimplemented, + "UntagMFADevice": TierUnimplemented, + "UntagOpenIDConnectProvider": TierUnimplemented, + "UntagPolicy": TierUnimplemented, + "UntagRole": TierHandVerified, + "UntagSAMLProvider": TierUnimplemented, + "UntagServerCertificate": TierUnimplemented, + "UntagUser": TierHandVerified, + "UpdateAccessKey": TierHandVerified, + "UpdateAccountPasswordPolicy": TierUnimplemented, + "UpdateAssumeRolePolicy": TierHandVerified, + "UpdateDelegationRequest": TierUnimplemented, + "UpdateGroup": TierUnimplemented, + "UpdateLoginProfile": TierUnimplemented, + "UpdateOpenIDConnectProviderThumbprint": TierUnimplemented, + "UpdateRole": TierUnimplemented, + "UpdateRoleDescription": TierUnimplemented, + "UpdateSAMLProvider": TierUnimplemented, + "UpdateSSHPublicKey": TierUnimplemented, + "UpdateServerCertificate": TierUnimplemented, + "UpdateServiceSpecificCredential": TierUnimplemented, + "UpdateSigningCertificate": TierUnimplemented, + "UpdateUser": TierHandVerified, + "UploadSSHPublicKey": TierUnimplemented, + "UploadServerCertificate": TierUnimplemented, + "UploadSigningCertificate": TierUnimplemented, + }}, + "identitystore": {ModelBacked: false, Operations: map[string]Tier{ + "ActivateUser": TierHandVerified, + "BatchCreateGroups": TierHandVerified, + "BatchCreateUsers": TierHandVerified, + "CreateDirectory": TierHandVerified, + "CreateExternalIdentityProviderConfigurationForApplication": TierHandVerified, + "CreateGroup": TierHandVerified, + "CreateGroupMembership": TierHandVerified, + "CreateUser": TierHandVerified, + "DeactivateUser": TierHandVerified, + "DeleteDirectory": TierHandVerified, + "DeleteGroup": TierHandVerified, + "DeleteGroupMembership": TierHandVerified, + "DeleteIdentityProviderConfigurationForApplication": TierHandVerified, + "DeleteUser": TierHandVerified, + "DescribeDirectory": TierHandVerified, + "DescribeGroup": TierHandVerified, + "DescribeGroupMembership": TierHandVerified, + "DescribeUser": TierHandVerified, + "GetGroupId": TierHandVerified, + "GetGroupMembershipId": TierHandVerified, + "GetUserId": TierHandVerified, + "IsMemberInGroups": TierHandVerified, + "ListDirectories": TierHandVerified, + "ListGroupMemberships": TierHandVerified, + "ListGroupMembershipsForMember": TierHandVerified, + "ListGroups": TierHandVerified, + "ListIdentityProvidersForApplication": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListUsers": TierHandVerified, + "ResetUserPassword": TierHandVerified, + "SearchGroups": TierHandVerified, + "SearchUsers": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateDirectory": TierHandVerified, + "UpdateGroup": TierHandVerified, + "UpdateUser": TierHandVerified, + }}, + "iot": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptCertificateTransfer": TierUnimplemented, + "AddThingToBillingGroup": TierUnimplemented, + "AddThingToThingGroup": TierHandVerified, + "AssociateSbomWithPackageVersion": TierUnimplemented, + "AssociateTargetsWithJob": TierUnimplemented, + "AttachPolicy": TierHandVerified, + "AttachPrincipalPolicy": TierUnimplemented, + "AttachSecurityProfile": TierUnimplemented, + "AttachThingPrincipal": TierHandVerified, + "CancelAuditMitigationActionsTask": TierUnimplemented, + "CancelAuditTask": TierUnimplemented, + "CancelCertificateTransfer": TierUnimplemented, + "CancelDetectMitigationActionsTask": TierUnimplemented, + "CancelJob": TierHandVerified, + "CancelJobExecution": TierUnimplemented, + "ClearDefaultAuthorizer": TierUnimplemented, + "ConfirmTopicRuleDestination": TierUnimplemented, + "CreateAuditSuppression": TierUnimplemented, + "CreateAuthorizer": TierUnimplemented, + "CreateBillingGroup": TierUnimplemented, + "CreateCertificateFromCsr": TierUnimplemented, + "CreateCertificateProvider": TierUnimplemented, + "CreateCommand": TierUnimplemented, + "CreateCustomMetric": TierUnimplemented, + "CreateDimension": TierUnimplemented, + "CreateDomainConfiguration": TierUnimplemented, + "CreateDynamicThingGroup": TierUnimplemented, + "CreateFleetMetric": TierUnimplemented, + "CreateJob": TierHandVerified, + "CreateJobTemplate": TierUnimplemented, + "CreateKeysAndCertificate": TierHandVerified, + "CreateMitigationAction": TierUnimplemented, + "CreateOTAUpdate": TierUnimplemented, + "CreatePackage": TierUnimplemented, + "CreatePackageVersion": TierUnimplemented, + "CreatePolicy": TierHandVerified, + "CreatePolicyVersion": TierHandVerified, + "CreateProvisioningClaim": TierUnimplemented, + "CreateProvisioningTemplate": TierUnimplemented, + "CreateProvisioningTemplateVersion": TierUnimplemented, + "CreateRoleAlias": TierHandVerified, + "CreateScheduledAudit": TierUnimplemented, + "CreateSecurityProfile": TierUnimplemented, + "CreateStream": TierUnimplemented, + "CreateThing": TierHandVerified, + "CreateThingGroup": TierHandVerified, + "CreateThingType": TierHandVerified, + "CreateTopicRule": TierHandVerified, + "CreateTopicRuleDestination": TierUnimplemented, + "DeleteAccountAuditConfiguration": TierUnimplemented, + "DeleteAuditSuppression": TierUnimplemented, + "DeleteAuthorizer": TierUnimplemented, + "DeleteBillingGroup": TierUnimplemented, + "DeleteCACertificate": TierUnimplemented, + "DeleteCertificate": TierHandVerified, + "DeleteCertificateProvider": TierUnimplemented, + "DeleteCommand": TierUnimplemented, + "DeleteCommandExecution": TierUnimplemented, + "DeleteCustomMetric": TierUnimplemented, + "DeleteDimension": TierUnimplemented, + "DeleteDomainConfiguration": TierUnimplemented, + "DeleteDynamicThingGroup": TierUnimplemented, + "DeleteFleetMetric": TierUnimplemented, + "DeleteJob": TierHandVerified, + "DeleteJobExecution": TierUnimplemented, + "DeleteJobTemplate": TierUnimplemented, + "DeleteMitigationAction": TierUnimplemented, + "DeleteOTAUpdate": TierUnimplemented, + "DeletePackage": TierUnimplemented, + "DeletePackageVersion": TierUnimplemented, + "DeletePolicy": TierHandVerified, + "DeletePolicyVersion": TierHandVerified, + "DeleteProvisioningTemplate": TierUnimplemented, + "DeleteProvisioningTemplateVersion": TierUnimplemented, + "DeleteRegistrationCode": TierUnimplemented, + "DeleteRoleAlias": TierHandVerified, + "DeleteScheduledAudit": TierUnimplemented, + "DeleteSecurityProfile": TierUnimplemented, + "DeleteStream": TierUnimplemented, + "DeleteThing": TierHandVerified, + "DeleteThingGroup": TierHandVerified, + "DeleteThingType": TierHandVerified, + "DeleteTopicRule": TierHandVerified, + "DeleteTopicRuleDestination": TierUnimplemented, + "DeleteV2LoggingLevel": TierUnimplemented, + "DeprecateThingType": TierHandVerified, + "DescribeAccountAuditConfiguration": TierUnimplemented, + "DescribeAuditFinding": TierUnimplemented, + "DescribeAuditMitigationActionsTask": TierUnimplemented, + "DescribeAuditSuppression": TierUnimplemented, + "DescribeAuditTask": TierUnimplemented, + "DescribeAuthorizer": TierUnimplemented, + "DescribeBillingGroup": TierUnimplemented, + "DescribeCACertificate": TierUnimplemented, + "DescribeCertificate": TierHandVerified, + "DescribeCertificateProvider": TierUnimplemented, + "DescribeCustomMetric": TierUnimplemented, + "DescribeDefaultAuthorizer": TierUnimplemented, + "DescribeDetectMitigationActionsTask": TierUnimplemented, + "DescribeDimension": TierUnimplemented, + "DescribeDomainConfiguration": TierUnimplemented, + "DescribeEncryptionConfiguration": TierUnimplemented, + "DescribeEndpoint": TierHandVerified, + "DescribeEventConfigurations": TierUnimplemented, + "DescribeFleetMetric": TierUnimplemented, + "DescribeIndex": TierUnimplemented, + "DescribeJob": TierHandVerified, + "DescribeJobExecution": TierUnimplemented, + "DescribeJobTemplate": TierUnimplemented, + "DescribeManagedJobTemplate": TierUnimplemented, + "DescribeMitigationAction": TierUnimplemented, + "DescribeProvisioningTemplate": TierUnimplemented, + "DescribeProvisioningTemplateVersion": TierUnimplemented, + "DescribeRoleAlias": TierHandVerified, + "DescribeScheduledAudit": TierUnimplemented, + "DescribeSecurityProfile": TierUnimplemented, + "DescribeStream": TierUnimplemented, + "DescribeThing": TierHandVerified, + "DescribeThingGroup": TierHandVerified, + "DescribeThingRegistrationTask": TierUnimplemented, + "DescribeThingType": TierHandVerified, + "DetachPolicy": TierHandVerified, + "DetachPrincipalPolicy": TierUnimplemented, + "DetachSecurityProfile": TierUnimplemented, + "DetachThingPrincipal": TierHandVerified, + "DisableTopicRule": TierHandVerified, + "DisassociateSbomFromPackageVersion": TierUnimplemented, + "EnableTopicRule": TierHandVerified, + "GetBehaviorModelTrainingSummaries": TierUnimplemented, + "GetBucketsAggregation": TierUnimplemented, + "GetCardinality": TierUnimplemented, + "GetCommand": TierUnimplemented, + "GetCommandExecution": TierUnimplemented, + "GetEffectivePolicies": TierUnimplemented, + "GetIndexingConfiguration": TierUnimplemented, + "GetJobDocument": TierUnimplemented, + "GetLoggingOptions": TierUnimplemented, + "GetOTAUpdate": TierUnimplemented, + "GetPackage": TierUnimplemented, + "GetPackageConfiguration": TierUnimplemented, + "GetPackageVersion": TierUnimplemented, + "GetPercentiles": TierUnimplemented, + "GetPolicy": TierHandVerified, + "GetPolicyVersion": TierHandVerified, + "GetRegistrationCode": TierUnimplemented, + "GetStatistics": TierUnimplemented, + "GetThingConnectivityData": TierUnimplemented, + "GetTopicRule": TierHandVerified, + "GetTopicRuleDestination": TierUnimplemented, + "GetV2LoggingOptions": TierUnimplemented, + "ListActiveViolations": TierUnimplemented, + "ListAttachedPolicies": TierHandVerified, + "ListAuditFindings": TierUnimplemented, + "ListAuditMitigationActionsExecutions": TierUnimplemented, + "ListAuditMitigationActionsTasks": TierUnimplemented, + "ListAuditSuppressions": TierUnimplemented, + "ListAuditTasks": TierUnimplemented, + "ListAuthorizers": TierUnimplemented, + "ListBillingGroups": TierUnimplemented, + "ListCACertificates": TierUnimplemented, + "ListCertificateProviders": TierUnimplemented, + "ListCertificates": TierHandVerified, + "ListCertificatesByCA": TierUnimplemented, + "ListCommandExecutions": TierUnimplemented, + "ListCommands": TierUnimplemented, + "ListCustomMetrics": TierUnimplemented, + "ListDetectMitigationActionsExecutions": TierUnimplemented, + "ListDetectMitigationActionsTasks": TierUnimplemented, + "ListDimensions": TierUnimplemented, + "ListDomainConfigurations": TierUnimplemented, + "ListFleetMetrics": TierUnimplemented, + "ListIndices": TierUnimplemented, + "ListJobExecutionsForJob": TierUnimplemented, + "ListJobExecutionsForThing": TierUnimplemented, + "ListJobTemplates": TierUnimplemented, + "ListJobs": TierHandVerified, + "ListManagedJobTemplates": TierUnimplemented, + "ListMetricValues": TierUnimplemented, + "ListMitigationActions": TierUnimplemented, + "ListOTAUpdates": TierUnimplemented, + "ListOutgoingCertificates": TierUnimplemented, + "ListPackageVersions": TierUnimplemented, + "ListPackages": TierUnimplemented, + "ListPolicies": TierHandVerified, + "ListPolicyPrincipals": TierUnimplemented, + "ListPolicyVersions": TierHandVerified, + "ListPrincipalPolicies": TierUnimplemented, + "ListPrincipalThings": TierHandVerified, + "ListPrincipalThingsV2": TierUnimplemented, + "ListProvisioningTemplateVersions": TierUnimplemented, + "ListProvisioningTemplates": TierUnimplemented, + "ListRelatedResourcesForAuditFinding": TierUnimplemented, + "ListRoleAliases": TierHandVerified, + "ListSbomValidationResults": TierUnimplemented, + "ListScheduledAudits": TierUnimplemented, + "ListSecurityProfiles": TierUnimplemented, + "ListSecurityProfilesForTarget": TierUnimplemented, + "ListStreams": TierUnimplemented, + "ListTagsForResource": TierHandVerified, + "ListTargetsForPolicy": TierHandVerified, + "ListTargetsForSecurityProfile": TierUnimplemented, + "ListThingGroups": TierHandVerified, + "ListThingGroupsForThing": TierHandVerified, + "ListThingPrincipals": TierHandVerified, + "ListThingPrincipalsV2": TierUnimplemented, + "ListThingRegistrationTaskReports": TierUnimplemented, + "ListThingRegistrationTasks": TierUnimplemented, + "ListThingTypes": TierHandVerified, + "ListThings": TierHandVerified, + "ListThingsInBillingGroup": TierUnimplemented, + "ListThingsInThingGroup": TierHandVerified, + "ListTopicRuleDestinations": TierUnimplemented, + "ListTopicRules": TierHandVerified, + "ListV2LoggingLevels": TierUnimplemented, + "ListViolationEvents": TierUnimplemented, + "PutVerificationStateOnViolation": TierUnimplemented, + "RegisterCACertificate": TierUnimplemented, + "RegisterCertificate": TierHandVerified, + "RegisterCertificateWithoutCA": TierHandVerified, + "RegisterThing": TierUnimplemented, + "RejectCertificateTransfer": TierUnimplemented, + "RemoveThingFromBillingGroup": TierUnimplemented, + "RemoveThingFromThingGroup": TierHandVerified, + "ReplaceTopicRule": TierHandVerified, + "SearchIndex": TierUnimplemented, + "SetDefaultAuthorizer": TierUnimplemented, + "SetDefaultPolicyVersion": TierHandVerified, + "SetLoggingOptions": TierUnimplemented, + "SetV2LoggingLevel": TierUnimplemented, + "SetV2LoggingOptions": TierUnimplemented, + "StartAuditMitigationActionsTask": TierUnimplemented, + "StartDetectMitigationActionsTask": TierUnimplemented, + "StartOnDemandAuditTask": TierUnimplemented, + "StartThingRegistrationTask": TierUnimplemented, + "StopThingRegistrationTask": TierUnimplemented, + "TagResource": TierHandVerified, + "TestAuthorization": TierUnimplemented, + "TestInvokeAuthorizer": TierUnimplemented, + "TransferCertificate": TierUnimplemented, + "UntagResource": TierHandVerified, + "UpdateAccountAuditConfiguration": TierUnimplemented, + "UpdateAuditSuppression": TierUnimplemented, + "UpdateAuthorizer": TierUnimplemented, + "UpdateBillingGroup": TierUnimplemented, + "UpdateCACertificate": TierUnimplemented, + "UpdateCertificate": TierHandVerified, + "UpdateCertificateProvider": TierUnimplemented, + "UpdateCommand": TierUnimplemented, + "UpdateCustomMetric": TierUnimplemented, + "UpdateDimension": TierUnimplemented, + "UpdateDomainConfiguration": TierUnimplemented, + "UpdateDynamicThingGroup": TierUnimplemented, + "UpdateEncryptionConfiguration": TierUnimplemented, + "UpdateEventConfigurations": TierUnimplemented, + "UpdateFleetMetric": TierUnimplemented, + "UpdateIndexingConfiguration": TierUnimplemented, + "UpdateJob": TierUnimplemented, + "UpdateMitigationAction": TierUnimplemented, + "UpdatePackage": TierUnimplemented, + "UpdatePackageConfiguration": TierUnimplemented, + "UpdatePackageVersion": TierUnimplemented, + "UpdateProvisioningTemplate": TierUnimplemented, + "UpdateRoleAlias": TierHandVerified, + "UpdateScheduledAudit": TierUnimplemented, + "UpdateSecurityProfile": TierUnimplemented, + "UpdateStream": TierUnimplemented, + "UpdateThing": TierHandVerified, + "UpdateThingGroup": TierHandVerified, + "UpdateThingGroupsForThing": TierUnimplemented, + "UpdateThingType": TierHandVerified, + "UpdateTopicRuleDestination": TierUnimplemented, + "ValidateSecurityProfileBehaviors": TierUnimplemented, + }}, + "iotdataplane": {ModelBacked: true, Operations: map[string]Tier{ + "DeleteConnection": TierHandVerified, + "DeleteThingShadow": TierHandVerified, + "GetRetainedMessage": TierHandVerified, + "GetThingShadow": TierHandVerified, + "ListNamedShadowsForThing": TierHandVerified, + "ListRetainedMessages": TierHandVerified, + "Publish": TierHandVerified, + "UpdateThingShadow": TierHandVerified, + }}, + "iotwireless": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateAwsAccountWithPartnerAccount": TierUnimplemented, + "AssociateMulticastGroupWithFuotaTask": TierUnimplemented, + "AssociateWirelessDeviceWithFuotaTask": TierUnimplemented, + "AssociateWirelessDeviceWithMulticastGroup": TierUnimplemented, + "AssociateWirelessDeviceWithThing": TierUnimplemented, + "AssociateWirelessGatewayWithCertificate": TierUnimplemented, + "AssociateWirelessGatewayWithThing": TierUnimplemented, + "CancelMulticastGroupSession": TierUnimplemented, + "CreateDestination": TierHandVerified, + "CreateDeviceProfile": TierHandVerified, + "CreateFuotaTask": TierHandVerified, + "CreateMulticastGroup": TierHandVerified, + "CreateNetworkAnalyzerConfiguration": TierHandVerified, + "CreateServiceProfile": TierHandVerified, + "CreateWirelessDevice": TierHandVerified, + "CreateWirelessGateway": TierHandVerified, + "CreateWirelessGatewayTask": TierUnimplemented, + "CreateWirelessGatewayTaskDefinition": TierUnimplemented, + "DeleteDestination": TierHandVerified, + "DeleteDeviceProfile": TierHandVerified, + "DeleteFuotaTask": TierHandVerified, + "DeleteMulticastGroup": TierHandVerified, + "DeleteNetworkAnalyzerConfiguration": TierHandVerified, + "DeleteQueuedMessages": TierUnimplemented, + "DeleteServiceProfile": TierHandVerified, + "DeleteWirelessDevice": TierHandVerified, + "DeleteWirelessDeviceImportTask": TierUnimplemented, + "DeleteWirelessGateway": TierHandVerified, + "DeleteWirelessGatewayTask": TierUnimplemented, + "DeleteWirelessGatewayTaskDefinition": TierUnimplemented, + "DeregisterWirelessDevice": TierUnimplemented, + "DisassociateAwsAccountFromPartnerAccount": TierUnimplemented, + "DisassociateMulticastGroupFromFuotaTask": TierUnimplemented, + "DisassociateWirelessDeviceFromFuotaTask": TierUnimplemented, + "DisassociateWirelessDeviceFromMulticastGroup": TierUnimplemented, + "DisassociateWirelessDeviceFromThing": TierUnimplemented, + "DisassociateWirelessGatewayFromCertificate": TierUnimplemented, + "DisassociateWirelessGatewayFromThing": TierUnimplemented, + "GetDestination": TierHandVerified, + "GetDeviceProfile": TierHandVerified, + "GetEventConfigurationByResourceTypes": TierUnimplemented, + "GetFuotaTask": TierHandVerified, + "GetLogLevelsByResourceTypes": TierUnimplemented, + "GetMetricConfiguration": TierUnimplemented, + "GetMetrics": TierUnimplemented, + "GetMulticastGroup": TierHandVerified, + "GetMulticastGroupSession": TierUnimplemented, + "GetNetworkAnalyzerConfiguration": TierHandVerified, + "GetPartnerAccount": TierUnimplemented, + "GetPosition": TierUnimplemented, + "GetPositionConfiguration": TierUnimplemented, + "GetPositionEstimate": TierUnimplemented, + "GetResourceEventConfiguration": TierUnimplemented, + "GetResourceLogLevel": TierUnimplemented, + "GetResourcePosition": TierUnimplemented, + "GetServiceEndpoint": TierUnimplemented, + "GetServiceProfile": TierHandVerified, + "GetWirelessDevice": TierHandVerified, + "GetWirelessDeviceImportTask": TierUnimplemented, + "GetWirelessDeviceStatistics": TierUnimplemented, + "GetWirelessGateway": TierHandVerified, + "GetWirelessGatewayCertificate": TierUnimplemented, + "GetWirelessGatewayFirmwareInformation": TierUnimplemented, + "GetWirelessGatewayStatistics": TierUnimplemented, + "GetWirelessGatewayTask": TierUnimplemented, + "GetWirelessGatewayTaskDefinition": TierUnimplemented, + "ListDestinations": TierHandVerified, + "ListDeviceProfiles": TierHandVerified, + "ListDevicesForWirelessDeviceImportTask": TierUnimplemented, + "ListEventConfigurations": TierUnimplemented, + "ListFuotaTasks": TierHandVerified, + "ListMulticastGroups": TierHandVerified, + "ListMulticastGroupsByFuotaTask": TierUnimplemented, + "ListNetworkAnalyzerConfigurations": TierHandVerified, + "ListPartnerAccounts": TierUnimplemented, + "ListPositionConfigurations": TierUnimplemented, + "ListQueuedMessages": TierUnimplemented, + "ListServiceProfiles": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListWirelessDeviceImportTasks": TierUnimplemented, + "ListWirelessDevices": TierHandVerified, + "ListWirelessGatewayTaskDefinitions": TierUnimplemented, + "ListWirelessGateways": TierHandVerified, + "PutPositionConfiguration": TierUnimplemented, + "PutResourceLogLevel": TierUnimplemented, + "ResetAllResourceLogLevels": TierUnimplemented, + "ResetResourceLogLevel": TierUnimplemented, + "SendDataToMulticastGroup": TierUnimplemented, + "SendDataToWirelessDevice": TierUnimplemented, + "StartBulkAssociateWirelessDeviceWithMulticastGroup": TierUnimplemented, + "StartBulkDisassociateWirelessDeviceFromMulticastGroup": TierUnimplemented, + "StartFuotaTask": TierHandVerified, + "StartMulticastGroupSession": TierUnimplemented, + "StartSingleWirelessDeviceImportTask": TierUnimplemented, + "StartWirelessDeviceImportTask": TierUnimplemented, + "TagResource": TierHandVerified, + "TestWirelessDevice": TierUnimplemented, + "UntagResource": TierHandVerified, + "UpdateDestination": TierHandVerified, + "UpdateEventConfigurationByResourceTypes": TierUnimplemented, + "UpdateFuotaTask": TierHandVerified, + "UpdateLogLevelsByResourceTypes": TierUnimplemented, + "UpdateMetricConfiguration": TierUnimplemented, + "UpdateMulticastGroup": TierHandVerified, + "UpdateNetworkAnalyzerConfiguration": TierHandVerified, + "UpdatePartnerAccount": TierUnimplemented, + "UpdatePosition": TierUnimplemented, + "UpdateResourceEventConfiguration": TierUnimplemented, + "UpdateResourcePosition": TierUnimplemented, + "UpdateWirelessDevice": TierHandVerified, + "UpdateWirelessDeviceImportTask": TierUnimplemented, + "UpdateWirelessGateway": TierHandVerified, + }}, + "kafka": {ModelBacked: true, Operations: map[string]Tier{ + "BatchAssociateScramSecret": TierHandVerified, + "BatchDisassociateScramSecret": TierHandVerified, + "CreateCluster": TierHandVerified, + "CreateClusterV2": TierHandVerified, + "CreateConfiguration": TierHandVerified, + "CreateReplicator": TierHandVerified, + "CreateTopic": TierHandVerified, + "CreateVpcConnection": TierHandVerified, + "DeleteCluster": TierHandVerified, + "DeleteClusterPolicy": TierHandVerified, + "DeleteConfiguration": TierHandVerified, + "DeleteReplicator": TierHandVerified, + "DeleteTopic": TierHandVerified, + "DeleteVpcConnection": TierHandVerified, + "DescribeCluster": TierHandVerified, + "DescribeClusterOperation": TierHandVerified, + "DescribeClusterOperationV2": TierHandVerified, + "DescribeClusterV2": TierHandVerified, + "DescribeConfiguration": TierHandVerified, + "DescribeConfigurationRevision": TierHandVerified, + "DescribeReplicator": TierHandVerified, + "DescribeTopic": TierHandVerified, + "DescribeTopicPartitions": TierHandVerified, + "DescribeVpcConnection": TierHandVerified, + "GetBootstrapBrokers": TierHandVerified, + "GetClusterPolicy": TierHandVerified, + "GetCompatibleKafkaVersions": TierHandVerified, + "ListClientVpcConnections": TierHandVerified, + "ListClusterOperations": TierHandVerified, + "ListClusterOperationsV2": TierHandVerified, + "ListClusters": TierHandVerified, + "ListClustersV2": TierHandVerified, + "ListConfigurationRevisions": TierHandVerified, + "ListConfigurations": TierHandVerified, + "ListKafkaVersions": TierHandVerified, + "ListNodes": TierHandVerified, + "ListReplicators": TierHandVerified, + "ListScramSecrets": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTopics": TierHandVerified, + "ListVpcConnections": TierHandVerified, + "PutClusterPolicy": TierHandVerified, + "RebootBroker": TierHandVerified, + "RejectClientVpcConnection": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateBrokerCount": TierHandVerified, + "UpdateBrokerStorage": TierHandVerified, + "UpdateBrokerType": TierHandVerified, + "UpdateClusterConfiguration": TierHandVerified, + "UpdateClusterKafkaVersion": TierHandVerified, + "UpdateConfiguration": TierHandVerified, + "UpdateConnectivity": TierHandVerified, + "UpdateMonitoring": TierHandVerified, + "UpdateRebalancing": TierHandVerified, + "UpdateReplicationInfo": TierHandVerified, + "UpdateSecurity": TierHandVerified, + "UpdateStorage": TierHandVerified, + "UpdateTopic": TierHandVerified, + }}, + "kinesis": {ModelBacked: true, Operations: map[string]Tier{ + "AddTagsToStream": TierHandVerified, + "CreateStream": TierHandVerified, + "DecreaseStreamRetentionPeriod": TierHandVerified, + "DeleteResourcePolicy": TierHandVerified, + "DeleteStream": TierHandVerified, + "DeregisterStreamConsumer": TierHandVerified, + "DescribeAccountSettings": TierHandVerified, + "DescribeLimits": TierHandVerified, + "DescribeStream": TierHandVerified, + "DescribeStreamConsumer": TierHandVerified, + "DescribeStreamSummary": TierHandVerified, + "DisableEnhancedMonitoring": TierHandVerified, + "EnableEnhancedMonitoring": TierHandVerified, + "GetRecords": TierHandVerified, + "GetResourcePolicy": TierHandVerified, + "GetShardIterator": TierHandVerified, + "IncreaseStreamRetentionPeriod": TierHandVerified, + "ListShards": TierHandVerified, + "ListStreamConsumers": TierHandVerified, + "ListStreams": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTagsForStream": TierHandVerified, + "MergeShards": TierHandVerified, + "PutRecord": TierHandVerified, + "PutRecords": TierHandVerified, + "PutResourcePolicy": TierHandVerified, + "RegisterStreamConsumer": TierHandVerified, + "RemoveTagsFromStream": TierHandVerified, + "SplitShard": TierHandVerified, + "StartStreamEncryption": TierHandVerified, + "StopStreamEncryption": TierHandVerified, + "SubscribeToShard": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAccountSettings": TierHandVerified, + "UpdateMaxRecordSize": TierHandVerified, + "UpdateShardCount": TierHandVerified, + "UpdateStreamMode": TierHandVerified, + "UpdateStreamWarmThroughput": TierHandVerified, + }}, + "kinesisanalyticsv2": {ModelBacked: true, Operations: map[string]Tier{ + "AddApplicationCloudWatchLoggingOption": TierHandVerified, + "AddApplicationInput": TierHandVerified, + "AddApplicationInputProcessingConfiguration": TierHandVerified, + "AddApplicationOutput": TierHandVerified, + "AddApplicationReferenceDataSource": TierHandVerified, + "AddApplicationVpcConfiguration": TierHandVerified, + "CreateApplication": TierHandVerified, + "CreateApplicationPresignedUrl": TierHandVerified, + "CreateApplicationSnapshot": TierHandVerified, + "DeleteApplication": TierHandVerified, + "DeleteApplicationCloudWatchLoggingOption": TierHandVerified, + "DeleteApplicationInputProcessingConfiguration": TierHandVerified, + "DeleteApplicationOutput": TierHandVerified, + "DeleteApplicationReferenceDataSource": TierHandVerified, + "DeleteApplicationSnapshot": TierHandVerified, + "DeleteApplicationVpcConfiguration": TierHandVerified, + "DescribeApplication": TierHandVerified, + "DescribeApplicationOperation": TierHandVerified, + "DescribeApplicationSnapshot": TierHandVerified, + "DescribeApplicationVersion": TierHandVerified, + "DiscoverInputSchema": TierHandVerified, + "ListApplicationOperations": TierHandVerified, + "ListApplicationSnapshots": TierHandVerified, + "ListApplicationVersions": TierHandVerified, + "ListApplications": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "RollbackApplication": TierHandVerified, + "StartApplication": TierHandVerified, + "StopApplication": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApplication": TierHandVerified, + "UpdateApplicationMaintenanceConfiguration": TierHandVerified, + }}, + "kms": {ModelBacked: true, Operations: map[string]Tier{ + "CancelKeyDeletion": TierHandVerified, + "ConnectCustomKeyStore": TierUnimplemented, + "CreateAlias": TierHandVerified, + "CreateCustomKeyStore": TierAutoCRUD, + "CreateGrant": TierHandVerified, + "CreateKey": TierHandVerified, + "Decrypt": TierHandVerified, + "DeleteAlias": TierAutoCRUD, + "DeleteCustomKeyStore": TierAutoCRUD, + "DeleteImportedKeyMaterial": TierAutoCRUD, + "DeriveSharedSecret": TierUnimplemented, + "DescribeCustomKeyStores": TierAutoCRUD, + "DescribeKey": TierHandVerified, + "DisableKey": TierHandVerified, + "DisableKeyRotation": TierUnimplemented, + "DisconnectCustomKeyStore": TierUnimplemented, + "EnableKey": TierHandVerified, + "EnableKeyRotation": TierUnimplemented, + "Encrypt": TierHandVerified, + "GenerateDataKey": TierHandVerified, + "GenerateDataKeyPair": TierHandVerified, + "GenerateDataKeyPairWithoutPlaintext": TierHandVerified, + "GenerateDataKeyWithoutPlaintext": TierHandVerified, + "GenerateMac": TierUnimplemented, + "GenerateRandom": TierUnimplemented, + "GetKeyPolicy": TierHandVerified, + "GetKeyRotationStatus": TierAutoCRUD, + "GetParametersForImport": TierAutoCRUD, + "GetPublicKey": TierHandVerified, + "ImportKeyMaterial": TierUnimplemented, + "ListAliases": TierHandVerified, + "ListGrants": TierHandVerified, + "ListKeyPolicies": TierHandVerified, + "ListKeyRotations": TierAutoCRUD, + "ListKeys": TierHandVerified, + "ListResourceTags": TierHandVerified, + "ListRetirableGrants": TierHandVerified, + "PutKeyPolicy": TierHandVerified, + "ReEncrypt": TierHandVerified, + "ReplicateKey": TierUnimplemented, + "RetireGrant": TierHandVerified, + "RevokeGrant": TierHandVerified, + "RotateKeyOnDemand": TierUnimplemented, + "ScheduleKeyDeletion": TierHandVerified, + "Sign": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAlias": TierAutoCRUD, + "UpdateCustomKeyStore": TierAutoCRUD, + "UpdateKeyDescription": TierHandVerified, + "UpdatePrimaryRegion": TierAutoCRUD, + "Verify": TierHandVerified, + "VerifyMac": TierUnimplemented, + }}, + "lakeformation": {ModelBacked: true, Operations: map[string]Tier{ + "AddLFTagsToResource": TierHandVerified, + "AssumeDecoratedRoleWithSAML": TierHandVerified, + "BatchGrantPermissions": TierHandVerified, + "BatchRevokePermissions": TierHandVerified, + "CancelTransaction": TierHandVerified, + "CommitTransaction": TierHandVerified, + "CreateDataCellsFilter": TierHandVerified, + "CreateLFTag": TierHandVerified, + "CreateLFTagExpression": TierHandVerified, + "CreateLakeFormationIdentityCenterConfiguration": TierHandVerified, + "CreateLakeFormationOptIn": TierHandVerified, + "DeleteDataCellsFilter": TierHandVerified, + "DeleteLFTag": TierHandVerified, + "DeleteLFTagExpression": TierHandVerified, + "DeleteLakeFormationIdentityCenterConfiguration": TierHandVerified, + "DeleteLakeFormationOptIn": TierHandVerified, + "DeleteObjectsOnCancel": TierHandVerified, + "DeregisterResource": TierHandVerified, + "DescribeLakeFormationIdentityCenterConfiguration": TierHandVerified, + "DescribeResource": TierHandVerified, + "DescribeTransaction": TierHandVerified, + "ExtendTransaction": TierHandVerified, + "GetDataCellsFilter": TierHandVerified, + "GetDataLakePrincipal": TierHandVerified, + "GetDataLakeSettings": TierHandVerified, + "GetEffectivePermissionsForPath": TierHandVerified, + "GetLFTag": TierHandVerified, + "GetLFTagExpression": TierHandVerified, + "GetQueryState": TierHandVerified, + "GetQueryStatistics": TierHandVerified, + "GetResourceLFTags": TierHandVerified, + "GetTableObjects": TierHandVerified, + "GetTemporaryDataLocationCredentials": TierHandVerified, + "GetTemporaryGluePartitionCredentials": TierHandVerified, + "GetTemporaryGlueTableCredentials": TierHandVerified, + "GetWorkUnitResults": TierHandVerified, + "GetWorkUnits": TierHandVerified, + "GrantPermissions": TierHandVerified, + "ListDataCellsFilter": TierHandVerified, + "ListLFTagExpressions": TierHandVerified, + "ListLFTags": TierHandVerified, + "ListLakeFormationOptIns": TierHandVerified, + "ListPermissions": TierHandVerified, + "ListResources": TierHandVerified, + "ListTableStorageOptimizers": TierHandVerified, + "ListTransactions": TierHandVerified, + "PutDataLakeSettings": TierHandVerified, + "RegisterResource": TierHandVerified, + "RemoveLFTagsFromResource": TierHandVerified, + "RevokePermissions": TierHandVerified, + "SearchDatabasesByLFTags": TierHandVerified, + "SearchTablesByLFTags": TierHandVerified, + "StartQueryPlanning": TierHandVerified, + "StartTransaction": TierHandVerified, + "UpdateDataCellsFilter": TierHandVerified, + "UpdateLFTag": TierHandVerified, + "UpdateLFTagExpression": TierHandVerified, + "UpdateLakeFormationIdentityCenterConfiguration": TierHandVerified, + "UpdateResource": TierHandVerified, + "UpdateTableObjects": TierHandVerified, + "UpdateTableStorageOptimizer": TierHandVerified, + }}, + "lambda": {ModelBacked: true, Operations: map[string]Tier{ + "AddLayerVersionPermission": TierUnimplemented, + "AddPermission": TierHandVerified, + "CheckpointDurableExecution": TierUnimplemented, + "CreateAlias": TierHandVerified, + "CreateCapacityProvider": TierUnimplemented, + "CreateCodeSigningConfig": TierUnimplemented, + "CreateEventSourceMapping": TierHandVerified, + "CreateFunction": TierHandVerified, + "CreateFunctionUrlConfig": TierUnimplemented, + "DeleteAlias": TierHandVerified, + "DeleteCapacityProvider": TierUnimplemented, + "DeleteCodeSigningConfig": TierUnimplemented, + "DeleteEventSourceMapping": TierHandVerified, + "DeleteFunction": TierHandVerified, + "DeleteFunctionCodeSigningConfig": TierUnimplemented, + "DeleteFunctionConcurrency": TierUnimplemented, + "DeleteFunctionEventInvokeConfig": TierUnimplemented, + "DeleteFunctionUrlConfig": TierUnimplemented, + "DeleteLayerVersion": TierUnimplemented, + "DeleteProvisionedConcurrencyConfig": TierUnimplemented, + "GetAccountSettings": TierUnimplemented, + "GetAlias": TierHandVerified, + "GetCapacityProvider": TierUnimplemented, + "GetCodeSigningConfig": TierUnimplemented, + "GetDurableExecution": TierUnimplemented, + "GetDurableExecutionHistory": TierUnimplemented, + "GetDurableExecutionState": TierUnimplemented, + "GetEventSourceMapping": TierHandVerified, + "GetFunction": TierHandVerified, + "GetFunctionCodeSigningConfig": TierUnimplemented, + "GetFunctionConcurrency": TierUnimplemented, + "GetFunctionConfiguration": TierUnimplemented, + "GetFunctionEventInvokeConfig": TierUnimplemented, + "GetFunctionRecursionConfig": TierUnimplemented, + "GetFunctionScalingConfig": TierUnimplemented, + "GetFunctionUrlConfig": TierUnimplemented, + "GetLayerVersion": TierUnimplemented, + "GetLayerVersionByArn": TierUnimplemented, + "GetLayerVersionPolicy": TierUnimplemented, + "GetPolicy": TierHandVerified, + "GetProvisionedConcurrencyConfig": TierUnimplemented, + "GetRuntimeManagementConfig": TierUnimplemented, + "Invoke": TierHandVerified, + "InvokeAsync": TierUnimplemented, + "InvokeWithResponseStream": TierUnimplemented, + "ListAliases": TierHandVerified, + "ListCapacityProviders": TierUnimplemented, + "ListCodeSigningConfigs": TierUnimplemented, + "ListDurableExecutionsByFunction": TierUnimplemented, + "ListEventSourceMappings": TierHandVerified, + "ListFunctionEventInvokeConfigs": TierUnimplemented, + "ListFunctionUrlConfigs": TierUnimplemented, + "ListFunctionVersionsByCapacityProvider": TierUnimplemented, + "ListFunctions": TierHandVerified, + "ListFunctionsByCodeSigningConfig": TierUnimplemented, + "ListLayerVersions": TierUnimplemented, + "ListLayers": TierUnimplemented, + "ListProvisionedConcurrencyConfigs": TierUnimplemented, + "ListTags": TierHandVerified, + "ListVersionsByFunction": TierHandVerified, + "PublishLayerVersion": TierUnimplemented, + "PublishVersion": TierHandVerified, + "PutFunctionCodeSigningConfig": TierUnimplemented, + "PutFunctionConcurrency": TierUnimplemented, + "PutFunctionEventInvokeConfig": TierUnimplemented, + "PutFunctionRecursionConfig": TierUnimplemented, + "PutFunctionScalingConfig": TierUnimplemented, + "PutProvisionedConcurrencyConfig": TierUnimplemented, + "PutRuntimeManagementConfig": TierUnimplemented, + "RemoveLayerVersionPermission": TierUnimplemented, + "RemovePermission": TierHandVerified, + "SendDurableExecutionCallbackFailure": TierUnimplemented, + "SendDurableExecutionCallbackHeartbeat": TierUnimplemented, + "SendDurableExecutionCallbackSuccess": TierUnimplemented, + "StopDurableExecution": TierUnimplemented, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAlias": TierHandVerified, + "UpdateCapacityProvider": TierUnimplemented, + "UpdateCodeSigningConfig": TierUnimplemented, + "UpdateEventSourceMapping": TierHandVerified, + "UpdateFunctionCode": TierHandVerified, + "UpdateFunctionConfiguration": TierHandVerified, + "UpdateFunctionEventInvokeConfig": TierUnimplemented, + "UpdateFunctionUrlConfig": TierUnimplemented, + }}, + "managedblockchain": {ModelBacked: true, Operations: map[string]Tier{ + "CreateAccessor": TierHandVerified, + "CreateMember": TierHandVerified, + "CreateNetwork": TierHandVerified, + "CreateNode": TierHandVerified, + "CreateProposal": TierHandVerified, + "DeleteAccessor": TierHandVerified, + "DeleteMember": TierHandVerified, + "DeleteNetwork": TierHandVerified, + "DeleteNode": TierHandVerified, + "GetAccessor": TierHandVerified, + "GetMember": TierHandVerified, + "GetNetwork": TierHandVerified, + "GetNode": TierHandVerified, + "GetProposal": TierHandVerified, + "ListAccessors": TierHandVerified, + "ListInvitations": TierHandVerified, + "ListMembers": TierHandVerified, + "ListNetworks": TierHandVerified, + "ListNodes": TierHandVerified, + "ListProposalVotes": TierUnimplemented, + "ListProposals": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "RejectInvitation": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateMember": TierHandVerified, + "UpdateNode": TierHandVerified, + "VoteOnProposal": TierHandVerified, + }}, + "mediaconvert": {ModelBacked: false, Operations: map[string]Tier{ + "AssociateCertificate": TierHandVerified, + "CancelJob": TierHandVerified, + "CreateJob": TierHandVerified, + "CreateJobTemplate": TierHandVerified, + "CreatePreset": TierHandVerified, + "CreateQueue": TierHandVerified, + "DeleteJobTemplate": TierHandVerified, + "DeletePolicy": TierHandVerified, + "DeletePreset": TierHandVerified, + "DeleteQueue": TierHandVerified, + "DescribeEndpoints": TierHandVerified, + "DescribeJob": TierHandVerified, + "DescribeJobTemplate": TierHandVerified, + "DescribePreset": TierHandVerified, + "DescribeQueue": TierHandVerified, + "DisassociateCertificate": TierHandVerified, + "GetJob": TierHandVerified, + "GetJobTemplate": TierHandVerified, + "GetPolicy": TierHandVerified, + "GetPreset": TierHandVerified, + "GetQueue": TierHandVerified, + "ListJobTemplates": TierHandVerified, + "ListJobs": TierHandVerified, + "ListPresets": TierHandVerified, + "ListQueues": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListVersions": TierHandVerified, + "ProbeMediaFile": TierHandVerified, + "PutPolicy": TierHandVerified, + "SearchJobs": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateJobTemplate": TierHandVerified, + "UpdatePreset": TierHandVerified, + "UpdateQueue": TierHandVerified, + }}, + "memorydb": {ModelBacked: true, Operations: map[string]Tier{ + "BatchUpdateCluster": TierHandVerified, + "CopySnapshot": TierHandVerified, + "CreateACL": TierHandVerified, + "CreateCluster": TierHandVerified, + "CreateMultiRegionCluster": TierHandVerified, + "CreateParameterGroup": TierHandVerified, + "CreateSnapshot": TierHandVerified, + "CreateSubnetGroup": TierHandVerified, + "CreateUser": TierHandVerified, + "DeleteACL": TierHandVerified, + "DeleteCluster": TierHandVerified, + "DeleteMultiRegionCluster": TierHandVerified, + "DeleteParameterGroup": TierHandVerified, + "DeleteSnapshot": TierHandVerified, + "DeleteSubnetGroup": TierHandVerified, + "DeleteUser": TierHandVerified, + "DescribeACLs": TierHandVerified, + "DescribeClusters": TierHandVerified, + "DescribeEngineVersions": TierHandVerified, + "DescribeEvents": TierHandVerified, + "DescribeMultiRegionClusters": TierHandVerified, + "DescribeMultiRegionParameterGroups": TierHandVerified, + "DescribeMultiRegionParameters": TierHandVerified, + "DescribeParameterGroups": TierHandVerified, + "DescribeParameters": TierHandVerified, + "DescribeReservedNodes": TierHandVerified, + "DescribeReservedNodesOfferings": TierHandVerified, + "DescribeServiceUpdates": TierHandVerified, + "DescribeSnapshots": TierHandVerified, + "DescribeSubnetGroups": TierHandVerified, + "DescribeUsers": TierHandVerified, + "FailoverShard": TierHandVerified, + "ListAllowedMultiRegionClusterUpdates": TierHandVerified, + "ListAllowedNodeTypeUpdates": TierHandVerified, + "ListTags": TierHandVerified, + "PurchaseReservedNodesOffering": TierHandVerified, + "ResetParameterGroup": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateACL": TierHandVerified, + "UpdateCluster": TierHandVerified, + "UpdateMultiRegionCluster": TierHandVerified, + "UpdateParameterGroup": TierHandVerified, + "UpdateSubnetGroup": TierHandVerified, + "UpdateUser": TierHandVerified, + }}, + "mq": {ModelBacked: true, Operations: map[string]Tier{ + "CreateBroker": TierHandVerified, + "CreateConfiguration": TierHandVerified, + "CreateTags": TierHandVerified, + "CreateUser": TierHandVerified, + "DeleteBroker": TierHandVerified, + "DeleteConfiguration": TierHandVerified, + "DeleteTags": TierHandVerified, + "DeleteUser": TierHandVerified, + "DescribeBroker": TierHandVerified, + "DescribeBrokerEngineTypes": TierHandVerified, + "DescribeBrokerInstanceOptions": TierHandVerified, + "DescribeConfiguration": TierHandVerified, + "DescribeConfigurationRevision": TierHandVerified, + "DescribeUser": TierHandVerified, + "ListBrokers": TierHandVerified, + "ListConfigurationRevisions": TierHandVerified, + "ListConfigurations": TierHandVerified, + "ListTags": TierHandVerified, + "ListUsers": TierHandVerified, + "Promote": TierHandVerified, + "RebootBroker": TierHandVerified, + "UpdateBroker": TierHandVerified, + "UpdateConfiguration": TierHandVerified, + "UpdateUser": TierHandVerified, + }}, + "mwaa": {ModelBacked: true, Operations: map[string]Tier{ + "CreateCliToken": TierHandVerified, + "CreateDag": TierHandVerified, + "CreateDagRun": TierHandVerified, + "CreateEnvironment": TierHandVerified, + "CreateVariables": TierHandVerified, + "CreateWebLoginToken": TierHandVerified, + "DeleteDag": TierHandVerified, + "DeleteDagRun": TierHandVerified, + "DeleteEnvironment": TierHandVerified, + "DeleteVariables": TierHandVerified, + "DescribeClusters": TierHandVerified, + "GetDag": TierHandVerified, + "GetDagRun": TierHandVerified, + "GetEnvironment": TierHandVerified, + "GetEnvironmentConfig": TierHandVerified, + "GetEnvironmentLogs": TierHandVerified, + "GetEnvironmentStatus": TierHandVerified, + "GetVariables": TierHandVerified, + "InvokeRestApi": TierHandVerified, + "ListDagRuns": TierHandVerified, + "ListDags": TierHandVerified, + "ListEnvironments": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListVariables": TierHandVerified, + "PauseDag": TierHandVerified, + "PublishMetrics": TierHandVerified, + "RestartEnvironment": TierHandVerified, + "StartEnvironment": TierHandVerified, + "StopEnvironment": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateEnvironment": TierHandVerified, + "UpdateVariables": TierHandVerified, + }}, + "neptune": {ModelBacked: true, Operations: map[string]Tier{ + "AddRoleToDBCluster": TierHandVerified, + "AddSourceIdentifierToSubscription": TierHandVerified, + "AddTagsToResource": TierHandVerified, + "ApplyPendingMaintenanceAction": TierHandVerified, + "CopyDBClusterParameterGroup": TierHandVerified, + "CopyDBClusterSnapshot": TierHandVerified, + "CopyDBParameterGroup": TierHandVerified, + "CreateDBCluster": TierHandVerified, + "CreateDBClusterEndpoint": TierHandVerified, + "CreateDBClusterParameterGroup": TierHandVerified, + "CreateDBClusterSnapshot": TierHandVerified, + "CreateDBInstance": TierHandVerified, + "CreateDBParameterGroup": TierHandVerified, + "CreateDBSubnetGroup": TierHandVerified, + "CreateEventSubscription": TierHandVerified, + "CreateGlobalCluster": TierHandVerified, + "DeleteDBCluster": TierHandVerified, + "DeleteDBClusterEndpoint": TierHandVerified, + "DeleteDBClusterParameterGroup": TierHandVerified, + "DeleteDBClusterSnapshot": TierHandVerified, + "DeleteDBInstance": TierHandVerified, + "DeleteDBParameterGroup": TierHandVerified, + "DeleteDBSubnetGroup": TierHandVerified, + "DeleteEventSubscription": TierHandVerified, + "DeleteGlobalCluster": TierHandVerified, + "DescribeCertificates": TierHandVerified, + "DescribeDBClusterEndpoints": TierHandVerified, + "DescribeDBClusterParameterGroups": TierHandVerified, + "DescribeDBClusterParameters": TierHandVerified, + "DescribeDBClusterSnapshotAttributes": TierHandVerified, + "DescribeDBClusterSnapshots": TierHandVerified, + "DescribeDBClusters": TierHandVerified, + "DescribeDBEngineVersions": TierHandVerified, + "DescribeDBInstances": TierHandVerified, + "DescribeDBParameterGroups": TierHandVerified, + "DescribeDBParameters": TierHandVerified, + "DescribeDBSubnetGroups": TierHandVerified, + "DescribeEngineDefaultClusterParameters": TierHandVerified, + "DescribeEngineDefaultParameters": TierHandVerified, + "DescribeEventCategories": TierHandVerified, + "DescribeEventSubscriptions": TierHandVerified, + "DescribeEvents": TierHandVerified, + "DescribeGlobalClusters": TierHandVerified, + "DescribeOrderableDBInstanceOptions": TierHandVerified, + "DescribePendingMaintenanceActions": TierHandVerified, + "DescribeValidDBInstanceModifications": TierHandVerified, + "FailoverDBCluster": TierHandVerified, + "FailoverGlobalCluster": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ModifyDBCluster": TierHandVerified, + "ModifyDBClusterEndpoint": TierHandVerified, + "ModifyDBClusterParameterGroup": TierHandVerified, + "ModifyDBClusterSnapshotAttribute": TierHandVerified, + "ModifyDBInstance": TierHandVerified, + "ModifyDBParameterGroup": TierHandVerified, + "ModifyDBSubnetGroup": TierHandVerified, + "ModifyEventSubscription": TierHandVerified, + "ModifyGlobalCluster": TierHandVerified, + "PromoteReadReplicaDBCluster": TierHandVerified, + "RebootDBInstance": TierHandVerified, + "RemoveFromGlobalCluster": TierHandVerified, + "RemoveRoleFromDBCluster": TierHandVerified, + "RemoveSourceIdentifierFromSubscription": TierHandVerified, + "RemoveTagsFromResource": TierHandVerified, + "ResetDBClusterParameterGroup": TierHandVerified, + "ResetDBParameterGroup": TierHandVerified, + "RestoreDBClusterFromSnapshot": TierHandVerified, + "RestoreDBClusterToPointInTime": TierHandVerified, + "StartDBCluster": TierHandVerified, + "StopDBCluster": TierHandVerified, + "SwitchoverGlobalCluster": TierHandVerified, + }}, + "opensearch": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptInboundConnection": TierHandVerified, + "AddDataSource": TierHandVerified, + "AddDirectQueryDataSource": TierHandVerified, + "AddTags": TierHandVerified, + "AssociatePackage": TierHandVerified, + "AssociatePackages": TierHandVerified, + "AuthorizeVpcEndpointAccess": TierHandVerified, + "CancelDomainConfigChange": TierHandVerified, + "CancelServiceSoftwareUpdate": TierHandVerified, + "CreateApplication": TierHandVerified, + "CreateDomain": TierHandVerified, + "CreateIndex": TierHandVerified, + "CreateOutboundConnection": TierHandVerified, + "CreatePackage": TierHandVerified, + "CreateVpcEndpoint": TierHandVerified, + "DeleteApplication": TierHandVerified, + "DeleteDataSource": TierHandVerified, + "DeleteDirectQueryDataSource": TierHandVerified, + "DeleteDomain": TierHandVerified, + "DeleteInboundConnection": TierHandVerified, + "DeleteIndex": TierHandVerified, + "DeleteOutboundConnection": TierHandVerified, + "DeletePackage": TierHandVerified, + "DeleteVpcEndpoint": TierHandVerified, + "DeregisterCapability": TierHandVerified, + "DescribeDomain": TierHandVerified, + "DescribeDomainAutoTunes": TierHandVerified, + "DescribeDomainChangeProgress": TierHandVerified, + "DescribeDomainConfig": TierHandVerified, + "DescribeDomainHealth": TierHandVerified, + "DescribeDomainNodes": TierHandVerified, + "DescribeDomains": TierHandVerified, + "DescribeDryRunProgress": TierHandVerified, + "DescribeInboundConnections": TierHandVerified, + "DescribeInsightDetails": TierHandVerified, + "DescribeInstanceTypeLimits": TierHandVerified, + "DescribeOutboundConnections": TierHandVerified, + "DescribePackages": TierHandVerified, + "DescribeReservedInstanceOfferings": TierHandVerified, + "DescribeReservedInstances": TierHandVerified, + "DescribeVpcEndpoints": TierHandVerified, + "DissociatePackage": TierHandVerified, + "DissociatePackages": TierHandVerified, + "GetApplication": TierHandVerified, + "GetCapability": TierHandVerified, + "GetCompatibleVersions": TierHandVerified, + "GetDataSource": TierHandVerified, + "GetDefaultApplicationSetting": TierHandVerified, + "GetDirectQueryDataSource": TierHandVerified, + "GetDomainMaintenanceStatus": TierHandVerified, + "GetIndex": TierHandVerified, + "GetPackageVersionHistory": TierHandVerified, + "GetUpgradeHistory": TierHandVerified, + "GetUpgradeStatus": TierHandVerified, + "ListApplications": TierHandVerified, + "ListDataSources": TierHandVerified, + "ListDirectQueryDataSources": TierHandVerified, + "ListDomainMaintenances": TierHandVerified, + "ListDomainNames": TierHandVerified, + "ListDomainsForPackage": TierHandVerified, + "ListInsights": TierHandVerified, + "ListInstanceTypeDetails": TierHandVerified, + "ListPackagesForDomain": TierHandVerified, + "ListScheduledActions": TierHandVerified, + "ListTags": TierHandVerified, + "ListVersions": TierHandVerified, + "ListVpcEndpointAccess": TierHandVerified, + "ListVpcEndpoints": TierHandVerified, + "ListVpcEndpointsForDomain": TierHandVerified, + "PurchaseReservedInstanceOffering": TierHandVerified, + "PutDefaultApplicationSetting": TierHandVerified, + "RegisterCapability": TierHandVerified, + "RejectInboundConnection": TierHandVerified, + "RemoveTags": TierHandVerified, + "RevokeVpcEndpointAccess": TierHandVerified, + "StartDomainMaintenance": TierHandVerified, + "StartServiceSoftwareUpdate": TierHandVerified, + "UpdateApplication": TierHandVerified, + "UpdateDataSource": TierHandVerified, + "UpdateDirectQueryDataSource": TierHandVerified, + "UpdateDomainConfig": TierHandVerified, + "UpdateIndex": TierHandVerified, + "UpdatePackage": TierHandVerified, + "UpdatePackageScope": TierHandVerified, + "UpdateScheduledAction": TierHandVerified, + "UpdateVpcEndpoint": TierHandVerified, + "UpgradeDomain": TierHandVerified, + }}, + "organizations": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptHandshake": TierHandVerified, + "AttachPolicy": TierHandVerified, + "CancelHandshake": TierHandVerified, + "CloseAccount": TierHandVerified, + "CreateAccount": TierHandVerified, + "CreateGovCloudAccount": TierHandVerified, + "CreateOrganization": TierHandVerified, + "CreateOrganizationalUnit": TierHandVerified, + "CreatePolicy": TierHandVerified, + "DeclineHandshake": TierHandVerified, + "DeleteOrganization": TierHandVerified, + "DeleteOrganizationalUnit": TierHandVerified, + "DeletePolicy": TierHandVerified, + "DeleteResourcePolicy": TierHandVerified, + "DeregisterDelegatedAdministrator": TierHandVerified, + "DescribeAccount": TierHandVerified, + "DescribeCreateAccountStatus": TierHandVerified, + "DescribeEffectivePolicy": TierHandVerified, + "DescribeHandshake": TierHandVerified, + "DescribeOrganization": TierHandVerified, + "DescribeOrganizationalUnit": TierHandVerified, + "DescribePolicy": TierHandVerified, + "DescribeResourcePolicy": TierHandVerified, + "DescribeResponsibilityTransfer": TierAutoCRUD, + "DetachPolicy": TierHandVerified, + "DisableAWSServiceAccess": TierHandVerified, + "DisablePolicyType": TierHandVerified, + "EnableAWSServiceAccess": TierHandVerified, + "EnableAllFeatures": TierHandVerified, + "EnablePolicyType": TierHandVerified, + "InviteAccountToOrganization": TierHandVerified, + "InviteOrganizationToTransferResponsibility": TierUnimplemented, + "LeaveOrganization": TierHandVerified, + "ListAWSServiceAccessForOrganization": TierHandVerified, + "ListAccounts": TierHandVerified, + "ListAccountsForParent": TierHandVerified, + "ListAccountsWithInvalidEffectivePolicy": TierAutoCRUD, + "ListChildren": TierHandVerified, + "ListCreateAccountStatus": TierHandVerified, + "ListDelegatedAdministrators": TierHandVerified, + "ListDelegatedServicesForAccount": TierHandVerified, + "ListEffectivePolicyValidationErrors": TierAutoCRUD, + "ListHandshakesForAccount": TierHandVerified, + "ListHandshakesForOrganization": TierHandVerified, + "ListInboundResponsibilityTransfers": TierAutoCRUD, + "ListOrganizationalUnitsForParent": TierHandVerified, + "ListOutboundResponsibilityTransfers": TierAutoCRUD, + "ListParents": TierHandVerified, + "ListPolicies": TierHandVerified, + "ListPoliciesForTarget": TierHandVerified, + "ListRoots": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTargetsForPolicy": TierHandVerified, + "MoveAccount": TierHandVerified, + "PutResourcePolicy": TierHandVerified, + "RegisterDelegatedAdministrator": TierHandVerified, + "RemoveAccountFromOrganization": TierHandVerified, + "TagResource": TierHandVerified, + "TerminateResponsibilityTransfer": TierUnimplemented, + "UntagResource": TierHandVerified, + "UpdateOrganizationalUnit": TierHandVerified, + "UpdatePolicy": TierHandVerified, + "UpdateResponsibilityTransfer": TierAutoCRUD, + }}, + "pinpoint": {ModelBacked: true, Operations: map[string]Tier{ + "CreateApp": TierHandVerified, + "CreateCampaign": TierHandVerified, + "CreateEmailTemplate": TierHandVerified, + "CreateExportJob": TierHandVerified, + "CreateImportJob": TierHandVerified, + "CreateInAppTemplate": TierHandVerified, + "CreateJourney": TierHandVerified, + "CreatePushTemplate": TierHandVerified, + "CreateRecommenderConfiguration": TierHandVerified, + "CreateSegment": TierHandVerified, + "CreateSmsTemplate": TierHandVerified, + "CreateVoiceTemplate": TierHandVerified, + "DeleteAdmChannel": TierHandVerified, + "DeleteApnsChannel": TierHandVerified, + "DeleteApnsSandboxChannel": TierHandVerified, + "DeleteApnsVoipChannel": TierHandVerified, + "DeleteApnsVoipSandboxChannel": TierHandVerified, + "DeleteApp": TierHandVerified, + "DeleteBaiduChannel": TierHandVerified, + "DeleteCampaign": TierHandVerified, + "DeleteEmailChannel": TierHandVerified, + "DeleteEmailTemplate": TierHandVerified, + "DeleteEndpoint": TierHandVerified, + "DeleteEventStream": TierHandVerified, + "DeleteGcmChannel": TierHandVerified, + "DeleteInAppTemplate": TierHandVerified, + "DeleteJourney": TierHandVerified, + "DeletePushTemplate": TierHandVerified, + "DeleteRecommenderConfiguration": TierHandVerified, + "DeleteSegment": TierHandVerified, + "DeleteSmsChannel": TierHandVerified, + "DeleteSmsTemplate": TierHandVerified, + "DeleteUserEndpoints": TierHandVerified, + "DeleteVoiceChannel": TierHandVerified, + "DeleteVoiceTemplate": TierHandVerified, + "GetAdmChannel": TierHandVerified, + "GetApnsChannel": TierHandVerified, + "GetApnsSandboxChannel": TierHandVerified, + "GetApnsVoipChannel": TierHandVerified, + "GetApnsVoipSandboxChannel": TierHandVerified, + "GetApp": TierHandVerified, + "GetApplicationDateRangeKpi": TierHandVerified, + "GetApplicationSettings": TierHandVerified, + "GetApps": TierHandVerified, + "GetBaiduChannel": TierHandVerified, + "GetCampaign": TierHandVerified, + "GetCampaignActivities": TierHandVerified, + "GetCampaignDateRangeKpi": TierHandVerified, + "GetCampaignVersion": TierHandVerified, + "GetCampaignVersions": TierHandVerified, + "GetCampaigns": TierHandVerified, + "GetChannels": TierHandVerified, + "GetEmailChannel": TierHandVerified, + "GetEmailTemplate": TierHandVerified, + "GetEndpoint": TierHandVerified, + "GetEventStream": TierHandVerified, + "GetExportJob": TierHandVerified, + "GetExportJobs": TierHandVerified, + "GetGcmChannel": TierHandVerified, + "GetImportJob": TierHandVerified, + "GetImportJobs": TierHandVerified, + "GetInAppMessages": TierHandVerified, + "GetInAppTemplate": TierHandVerified, + "GetJourney": TierHandVerified, + "GetJourneyDateRangeKpi": TierHandVerified, + "GetJourneyExecutionActivityMetrics": TierHandVerified, + "GetJourneyExecutionMetrics": TierHandVerified, + "GetJourneyRunExecutionActivityMetrics": TierHandVerified, + "GetJourneyRunExecutionMetrics": TierHandVerified, + "GetJourneyRuns": TierHandVerified, + "GetPushTemplate": TierHandVerified, + "GetRecommenderConfiguration": TierHandVerified, + "GetRecommenderConfigurations": TierHandVerified, + "GetSegment": TierHandVerified, + "GetSegmentExportJobs": TierHandVerified, + "GetSegmentImportJobs": TierHandVerified, + "GetSegmentVersion": TierHandVerified, + "GetSegmentVersions": TierHandVerified, + "GetSegments": TierHandVerified, + "GetSmsChannel": TierHandVerified, + "GetSmsTemplate": TierHandVerified, + "GetUserEndpoints": TierHandVerified, + "GetVoiceChannel": TierHandVerified, + "GetVoiceTemplate": TierHandVerified, + "ListJourneys": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTemplateVersions": TierHandVerified, + "ListTemplates": TierHandVerified, + "PhoneNumberValidate": TierHandVerified, + "PutEventStream": TierHandVerified, + "PutEvents": TierHandVerified, + "RemoveAttributes": TierHandVerified, + "SendMessages": TierHandVerified, + "SendOTPMessage": TierHandVerified, + "SendUsersMessages": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAdmChannel": TierHandVerified, + "UpdateApnsChannel": TierHandVerified, + "UpdateApnsSandboxChannel": TierHandVerified, + "UpdateApnsVoipChannel": TierHandVerified, + "UpdateApnsVoipSandboxChannel": TierHandVerified, + "UpdateApplicationSettings": TierHandVerified, + "UpdateBaiduChannel": TierHandVerified, + "UpdateCampaign": TierHandVerified, + "UpdateEmailChannel": TierHandVerified, + "UpdateEmailTemplate": TierHandVerified, + "UpdateEndpoint": TierHandVerified, + "UpdateEndpointsBatch": TierHandVerified, + "UpdateGcmChannel": TierHandVerified, + "UpdateInAppTemplate": TierHandVerified, + "UpdateJourney": TierHandVerified, + "UpdateJourneyState": TierHandVerified, + "UpdatePushTemplate": TierHandVerified, + "UpdateRecommenderConfiguration": TierHandVerified, + "UpdateSegment": TierHandVerified, + "UpdateSmsChannel": TierHandVerified, + "UpdateSmsTemplate": TierHandVerified, + "UpdateTemplateActiveVersion": TierHandVerified, + "UpdateVoiceChannel": TierHandVerified, + "UpdateVoiceTemplate": TierHandVerified, + "VerifyOTPMessage": TierHandVerified, + }}, + "pipes": {ModelBacked: false, Operations: map[string]Tier{ + "CreatePipe": TierHandVerified, + "DeletePipe": TierHandVerified, + "DescribePipe": TierHandVerified, + "DescribePipeHealth": TierHandVerified, + "DescribePipeTargets": TierHandVerified, + "DisablePipe": TierHandVerified, + "EnablePipe": TierHandVerified, + "GetPipeConfiguration": TierHandVerified, + "GetPipeMetrics": TierHandVerified, + "GetPipeStatistics": TierHandVerified, + "ListPipeEvents": TierHandVerified, + "ListPipeExecutions": TierHandVerified, + "ListPipeTargets": TierHandVerified, + "ListPipes": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PutPipeConfiguration": TierHandVerified, + "StartPipe": TierHandVerified, + "StopPipe": TierHandVerified, + "TagResource": TierHandVerified, + "TestPipe": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdatePipe": TierHandVerified, + "ValidatePipeParameters": TierHandVerified, + }}, + "ram": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptResourceShareInvitation": TierHandVerified, + "AssociateResourceShare": TierHandVerified, + "AssociateResourceSharePermission": TierHandVerified, + "CreatePermission": TierHandVerified, + "CreatePermissionVersion": TierUnimplemented, + "CreateResourceShare": TierHandVerified, + "DeletePermission": TierHandVerified, + "DeletePermissionVersion": TierHandVerified, + "DeleteResourceShare": TierHandVerified, + "DisassociateResourceShare": TierHandVerified, + "DisassociateResourceSharePermission": TierHandVerified, + "EnableSharingWithAwsOrganization": TierHandVerified, + "GetPermission": TierHandVerified, + "GetResourcePolicies": TierHandVerified, + "GetResourceShareAssociations": TierHandVerified, + "GetResourceShareInvitations": TierHandVerified, + "GetResourceShares": TierHandVerified, + "ListPendingInvitationResources": TierHandVerified, + "ListPermissionAssociations": TierHandVerified, + "ListPermissionVersions": TierHandVerified, + "ListPermissions": TierHandVerified, + "ListPrincipals": TierHandVerified, + "ListReplacePermissionAssociationsWork": TierHandVerified, + "ListResourceSharePermissions": TierHandVerified, + "ListResourceTypes": TierHandVerified, + "ListResources": TierHandVerified, + "ListSourceAssociations": TierHandVerified, + "PromotePermissionCreatedFromPolicy": TierHandVerified, + "PromoteResourceShareCreatedFromPolicy": TierHandVerified, + "RejectResourceShareInvitation": TierHandVerified, + "ReplacePermissionAssociations": TierHandVerified, + "SetDefaultPermissionVersion": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateResourceShare": TierHandVerified, + }}, + "rds": {ModelBacked: true, Operations: map[string]Tier{ + "AddRoleToDBCluster": TierUnimplemented, + "AddRoleToDBInstance": TierUnimplemented, + "AddSourceIdentifierToSubscription": TierUnimplemented, + "AddTagsToResource": TierHandVerified, + "ApplyPendingMaintenanceAction": TierHandVerified, + "AuthorizeDBSecurityGroupIngress": TierUnimplemented, + "BacktrackDBCluster": TierUnimplemented, + "CancelExportTask": TierUnimplemented, + "CopyDBClusterParameterGroup": TierHandVerified, + "CopyDBClusterSnapshot": TierHandVerified, + "CopyDBParameterGroup": TierHandVerified, + "CopyDBSnapshot": TierHandVerified, + "CopyOptionGroup": TierHandVerified, + "CreateBlueGreenDeployment": TierUnimplemented, + "CreateCustomDBEngineVersion": TierUnimplemented, + "CreateDBCluster": TierHandVerified, + "CreateDBClusterEndpoint": TierUnimplemented, + "CreateDBClusterParameterGroup": TierHandVerified, + "CreateDBClusterSnapshot": TierHandVerified, + "CreateDBInstance": TierHandVerified, + "CreateDBInstanceReadReplica": TierUnimplemented, + "CreateDBParameterGroup": TierHandVerified, + "CreateDBProxy": TierUnimplemented, + "CreateDBProxyEndpoint": TierUnimplemented, + "CreateDBSecurityGroup": TierUnimplemented, + "CreateDBShardGroup": TierUnimplemented, + "CreateDBSnapshot": TierHandVerified, + "CreateDBSubnetGroup": TierHandVerified, + "CreateEventSubscription": TierUnimplemented, + "CreateGlobalCluster": TierUnimplemented, + "CreateIntegration": TierUnimplemented, + "CreateOptionGroup": TierHandVerified, + "CreateTenantDatabase": TierUnimplemented, + "DeleteBlueGreenDeployment": TierUnimplemented, + "DeleteCustomDBEngineVersion": TierUnimplemented, + "DeleteDBCluster": TierHandVerified, + "DeleteDBClusterAutomatedBackup": TierUnimplemented, + "DeleteDBClusterEndpoint": TierUnimplemented, + "DeleteDBClusterParameterGroup": TierHandVerified, + "DeleteDBClusterSnapshot": TierHandVerified, + "DeleteDBInstance": TierHandVerified, + "DeleteDBInstanceAutomatedBackup": TierUnimplemented, + "DeleteDBParameterGroup": TierHandVerified, + "DeleteDBProxy": TierUnimplemented, + "DeleteDBProxyEndpoint": TierUnimplemented, + "DeleteDBSecurityGroup": TierUnimplemented, + "DeleteDBShardGroup": TierUnimplemented, + "DeleteDBSnapshot": TierHandVerified, + "DeleteDBSubnetGroup": TierHandVerified, + "DeleteEventSubscription": TierUnimplemented, + "DeleteGlobalCluster": TierUnimplemented, + "DeleteIntegration": TierUnimplemented, + "DeleteOptionGroup": TierHandVerified, + "DeleteTenantDatabase": TierUnimplemented, + "DeregisterDBProxyTargets": TierUnimplemented, + "DescribeAccountAttributes": TierHandVerified, + "DescribeBlueGreenDeployments": TierUnimplemented, + "DescribeCertificates": TierHandVerified, + "DescribeDBClusterAutomatedBackups": TierUnimplemented, + "DescribeDBClusterBacktracks": TierUnimplemented, + "DescribeDBClusterEndpoints": TierUnimplemented, + "DescribeDBClusterParameterGroups": TierHandVerified, + "DescribeDBClusterParameters": TierHandVerified, + "DescribeDBClusterSnapshotAttributes": TierUnimplemented, + "DescribeDBClusterSnapshots": TierHandVerified, + "DescribeDBClusters": TierHandVerified, + "DescribeDBEngineVersions": TierHandVerified, + "DescribeDBInstanceAutomatedBackups": TierUnimplemented, + "DescribeDBInstances": TierHandVerified, + "DescribeDBLogFiles": TierUnimplemented, + "DescribeDBMajorEngineVersions": TierUnimplemented, + "DescribeDBParameterGroups": TierHandVerified, + "DescribeDBParameters": TierHandVerified, + "DescribeDBProxies": TierUnimplemented, + "DescribeDBProxyEndpoints": TierUnimplemented, + "DescribeDBProxyTargetGroups": TierUnimplemented, + "DescribeDBProxyTargets": TierUnimplemented, + "DescribeDBRecommendations": TierUnimplemented, + "DescribeDBSecurityGroups": TierUnimplemented, + "DescribeDBShardGroups": TierUnimplemented, + "DescribeDBSnapshotAttributes": TierUnimplemented, + "DescribeDBSnapshotTenantDatabases": TierUnimplemented, + "DescribeDBSnapshots": TierHandVerified, + "DescribeDBSubnetGroups": TierHandVerified, + "DescribeEngineDefaultClusterParameters": TierHandVerified, + "DescribeEngineDefaultParameters": TierHandVerified, + "DescribeEventCategories": TierHandVerified, + "DescribeEventSubscriptions": TierUnimplemented, + "DescribeEvents": TierHandVerified, + "DescribeExportTasks": TierUnimplemented, + "DescribeGlobalClusters": TierUnimplemented, + "DescribeIntegrations": TierUnimplemented, + "DescribeOptionGroupOptions": TierHandVerified, + "DescribeOptionGroups": TierHandVerified, + "DescribeOrderableDBInstanceOptions": TierHandVerified, + "DescribePendingMaintenanceActions": TierHandVerified, + "DescribeReservedDBInstances": TierUnimplemented, + "DescribeReservedDBInstancesOfferings": TierUnimplemented, + "DescribeSourceRegions": TierHandVerified, + "DescribeTenantDatabases": TierUnimplemented, + "DescribeValidDBInstanceModifications": TierUnimplemented, + "DisableHttpEndpoint": TierUnimplemented, + "DownloadDBLogFilePortion": TierUnimplemented, + "EnableHttpEndpoint": TierUnimplemented, + "FailoverDBCluster": TierHandVerified, + "FailoverGlobalCluster": TierUnimplemented, + "ListTagsForResource": TierHandVerified, + "ModifyActivityStream": TierUnimplemented, + "ModifyCertificates": TierUnimplemented, + "ModifyCurrentDBClusterCapacity": TierUnimplemented, + "ModifyCustomDBEngineVersion": TierUnimplemented, + "ModifyDBCluster": TierHandVerified, + "ModifyDBClusterEndpoint": TierUnimplemented, + "ModifyDBClusterParameterGroup": TierHandVerified, + "ModifyDBClusterSnapshotAttribute": TierUnimplemented, + "ModifyDBInstance": TierHandVerified, + "ModifyDBParameterGroup": TierHandVerified, + "ModifyDBProxy": TierUnimplemented, + "ModifyDBProxyEndpoint": TierUnimplemented, + "ModifyDBProxyTargetGroup": TierUnimplemented, + "ModifyDBRecommendation": TierUnimplemented, + "ModifyDBShardGroup": TierUnimplemented, + "ModifyDBSnapshot": TierUnimplemented, + "ModifyDBSnapshotAttribute": TierUnimplemented, + "ModifyDBSubnetGroup": TierHandVerified, + "ModifyEventSubscription": TierUnimplemented, + "ModifyGlobalCluster": TierUnimplemented, + "ModifyIntegration": TierUnimplemented, + "ModifyOptionGroup": TierHandVerified, + "ModifyTenantDatabase": TierUnimplemented, + "PromoteReadReplica": TierUnimplemented, + "PromoteReadReplicaDBCluster": TierUnimplemented, + "PurchaseReservedDBInstancesOffering": TierUnimplemented, + "RebootDBCluster": TierHandVerified, + "RebootDBInstance": TierHandVerified, + "RebootDBShardGroup": TierUnimplemented, + "RegisterDBProxyTargets": TierUnimplemented, + "RemoveFromGlobalCluster": TierUnimplemented, + "RemoveRoleFromDBCluster": TierUnimplemented, + "RemoveRoleFromDBInstance": TierUnimplemented, + "RemoveSourceIdentifierFromSubscription": TierUnimplemented, + "RemoveTagsFromResource": TierHandVerified, + "ResetDBClusterParameterGroup": TierHandVerified, + "ResetDBParameterGroup": TierHandVerified, + "RestoreDBClusterFromS3": TierUnimplemented, + "RestoreDBClusterFromSnapshot": TierUnimplemented, + "RestoreDBClusterToPointInTime": TierUnimplemented, + "RestoreDBInstanceFromDBSnapshot": TierUnimplemented, + "RestoreDBInstanceFromS3": TierUnimplemented, + "RestoreDBInstanceToPointInTime": TierUnimplemented, + "RevokeDBSecurityGroupIngress": TierUnimplemented, + "StartActivityStream": TierUnimplemented, + "StartDBCluster": TierHandVerified, + "StartDBInstance": TierHandVerified, + "StartDBInstanceAutomatedBackupsReplication": TierUnimplemented, + "StartExportTask": TierUnimplemented, + "StopActivityStream": TierUnimplemented, + "StopDBCluster": TierHandVerified, + "StopDBInstance": TierHandVerified, + "StopDBInstanceAutomatedBackupsReplication": TierUnimplemented, + "SwitchoverBlueGreenDeployment": TierUnimplemented, + "SwitchoverGlobalCluster": TierUnimplemented, + "SwitchoverReadReplica": TierUnimplemented, + }}, + "redshift": {ModelBacked: true, Operations: map[string]Tier{ + "AcceptReservedNodeExchange": TierUnimplemented, + "AddPartner": TierUnimplemented, + "AssociateDataShareConsumer": TierUnimplemented, + "AuthorizeClusterSecurityGroupIngress": TierUnimplemented, + "AuthorizeDataShare": TierUnimplemented, + "AuthorizeEndpointAccess": TierUnimplemented, + "AuthorizeSnapshotAccess": TierUnimplemented, + "BatchDeleteClusterSnapshots": TierUnimplemented, + "BatchModifyClusterSnapshots": TierUnimplemented, + "CancelResize": TierUnimplemented, + "CopyClusterSnapshot": TierHandVerified, + "CreateAuthenticationProfile": TierUnimplemented, + "CreateCluster": TierHandVerified, + "CreateClusterParameterGroup": TierHandVerified, + "CreateClusterSecurityGroup": TierUnimplemented, + "CreateClusterSnapshot": TierHandVerified, + "CreateClusterSubnetGroup": TierHandVerified, + "CreateCustomDomainAssociation": TierUnimplemented, + "CreateEndpointAccess": TierUnimplemented, + "CreateEventSubscription": TierUnimplemented, + "CreateHsmClientCertificate": TierUnimplemented, + "CreateHsmConfiguration": TierUnimplemented, + "CreateIntegration": TierUnimplemented, + "CreateRedshiftIdcApplication": TierUnimplemented, + "CreateScheduledAction": TierUnimplemented, + "CreateSnapshotCopyGrant": TierUnimplemented, + "CreateSnapshotSchedule": TierUnimplemented, + "CreateTags": TierHandVerified, + "CreateUsageLimit": TierUnimplemented, + "DeauthorizeDataShare": TierUnimplemented, + "DeleteAuthenticationProfile": TierUnimplemented, + "DeleteCluster": TierHandVerified, + "DeleteClusterParameterGroup": TierHandVerified, + "DeleteClusterSecurityGroup": TierUnimplemented, + "DeleteClusterSnapshot": TierHandVerified, + "DeleteClusterSubnetGroup": TierHandVerified, + "DeleteCustomDomainAssociation": TierUnimplemented, + "DeleteEndpointAccess": TierUnimplemented, + "DeleteEventSubscription": TierUnimplemented, + "DeleteHsmClientCertificate": TierUnimplemented, + "DeleteHsmConfiguration": TierUnimplemented, + "DeleteIntegration": TierUnimplemented, + "DeletePartner": TierUnimplemented, + "DeleteRedshiftIdcApplication": TierUnimplemented, + "DeleteResourcePolicy": TierUnimplemented, + "DeleteScheduledAction": TierUnimplemented, + "DeleteSnapshotCopyGrant": TierUnimplemented, + "DeleteSnapshotSchedule": TierUnimplemented, + "DeleteTags": TierHandVerified, + "DeleteUsageLimit": TierUnimplemented, + "DeregisterNamespace": TierUnimplemented, + "DescribeAccountAttributes": TierUnimplemented, + "DescribeAuthenticationProfiles": TierUnimplemented, + "DescribeClusterDbRevisions": TierUnimplemented, + "DescribeClusterParameterGroups": TierHandVerified, + "DescribeClusterParameters": TierHandVerified, + "DescribeClusterSecurityGroups": TierUnimplemented, + "DescribeClusterSnapshots": TierHandVerified, + "DescribeClusterSubnetGroups": TierHandVerified, + "DescribeClusterTracks": TierUnimplemented, + "DescribeClusterVersions": TierUnimplemented, + "DescribeClusters": TierHandVerified, + "DescribeCustomDomainAssociations": TierUnimplemented, + "DescribeDataShares": TierUnimplemented, + "DescribeDataSharesForConsumer": TierUnimplemented, + "DescribeDataSharesForProducer": TierUnimplemented, + "DescribeDefaultClusterParameters": TierHandVerified, + "DescribeEndpointAccess": TierUnimplemented, + "DescribeEndpointAuthorization": TierUnimplemented, + "DescribeEventCategories": TierUnimplemented, + "DescribeEventSubscriptions": TierUnimplemented, + "DescribeEvents": TierUnimplemented, + "DescribeHsmClientCertificates": TierUnimplemented, + "DescribeHsmConfigurations": TierUnimplemented, + "DescribeInboundIntegrations": TierUnimplemented, + "DescribeIntegrations": TierUnimplemented, + "DescribeLoggingStatus": TierHandVerified, + "DescribeNodeConfigurationOptions": TierUnimplemented, + "DescribeOrderableClusterOptions": TierUnimplemented, + "DescribePartners": TierUnimplemented, + "DescribeRedshiftIdcApplications": TierUnimplemented, + "DescribeReservedNodeExchangeStatus": TierUnimplemented, + "DescribeReservedNodeOfferings": TierUnimplemented, + "DescribeReservedNodes": TierUnimplemented, + "DescribeResize": TierUnimplemented, + "DescribeScheduledActions": TierUnimplemented, + "DescribeSnapshotCopyGrants": TierUnimplemented, + "DescribeSnapshotSchedules": TierUnimplemented, + "DescribeStorage": TierUnimplemented, + "DescribeTableRestoreStatus": TierUnimplemented, + "DescribeTags": TierHandVerified, + "DescribeUsageLimits": TierUnimplemented, + "DisableLogging": TierHandVerified, + "DisableSnapshotCopy": TierUnimplemented, + "DisassociateDataShareConsumer": TierUnimplemented, + "EnableLogging": TierHandVerified, + "EnableSnapshotCopy": TierUnimplemented, + "FailoverPrimaryCompute": TierUnimplemented, + "GetClusterCredentials": TierHandVerified, + "GetClusterCredentialsWithIAM": TierHandVerified, + "GetIdentityCenterAuthToken": TierUnimplemented, + "GetReservedNodeExchangeConfigurationOptions": TierUnimplemented, + "GetReservedNodeExchangeOfferings": TierUnimplemented, + "GetResourcePolicy": TierUnimplemented, + "ListRecommendations": TierUnimplemented, + "ModifyAquaConfiguration": TierUnimplemented, + "ModifyAuthenticationProfile": TierUnimplemented, + "ModifyCluster": TierHandVerified, + "ModifyClusterDbRevision": TierUnimplemented, + "ModifyClusterIamRoles": TierUnimplemented, + "ModifyClusterMaintenance": TierUnimplemented, + "ModifyClusterParameterGroup": TierHandVerified, + "ModifyClusterSnapshot": TierUnimplemented, + "ModifyClusterSnapshotSchedule": TierUnimplemented, + "ModifyClusterSubnetGroup": TierHandVerified, + "ModifyCustomDomainAssociation": TierUnimplemented, + "ModifyEndpointAccess": TierUnimplemented, + "ModifyEventSubscription": TierUnimplemented, + "ModifyIntegration": TierUnimplemented, + "ModifyLakehouseConfiguration": TierUnimplemented, + "ModifyRedshiftIdcApplication": TierUnimplemented, + "ModifyScheduledAction": TierUnimplemented, + "ModifySnapshotCopyRetentionPeriod": TierUnimplemented, + "ModifySnapshotSchedule": TierUnimplemented, + "ModifyUsageLimit": TierUnimplemented, + "PauseCluster": TierHandVerified, + "PurchaseReservedNodeOffering": TierUnimplemented, + "PutResourcePolicy": TierUnimplemented, + "RebootCluster": TierHandVerified, + "RegisterNamespace": TierUnimplemented, + "RejectDataShare": TierUnimplemented, + "ResetClusterParameterGroup": TierHandVerified, + "ResizeCluster": TierUnimplemented, + "RestoreFromClusterSnapshot": TierHandVerified, + "RestoreTableFromClusterSnapshot": TierUnimplemented, + "ResumeCluster": TierHandVerified, + "RevokeClusterSecurityGroupIngress": TierUnimplemented, + "RevokeEndpointAccess": TierUnimplemented, + "RevokeSnapshotAccess": TierUnimplemented, + "RotateEncryptionKey": TierUnimplemented, + "UpdatePartnerStatus": TierUnimplemented, + }}, + "resourcegroups": {ModelBacked: true, Operations: map[string]Tier{ + "CancelTagSyncTask": TierHandVerified, + "CreateGroup": TierHandVerified, + "DeleteGroup": TierHandVerified, + "GetAccountSettings": TierHandVerified, + "GetGroup": TierHandVerified, + "GetGroupConfiguration": TierHandVerified, + "GetGroupQuery": TierHandVerified, + "GetTagSyncTask": TierHandVerified, + "GetTags": TierHandVerified, + "GroupResources": TierHandVerified, + "ListGroupResources": TierHandVerified, + "ListGroupingStatuses": TierHandVerified, + "ListGroups": TierHandVerified, + "ListTagSyncTasks": TierHandVerified, + "PutGroupConfiguration": TierHandVerified, + "SearchResources": TierHandVerified, + "StartTagSyncTask": TierHandVerified, + "Tag": TierUnimplemented, + "UngroupResources": TierHandVerified, + "Untag": TierHandVerified, + "UpdateAccountSettings": TierHandVerified, + "UpdateGroup": TierHandVerified, + "UpdateGroupQuery": TierHandVerified, + }}, + "resourcegroupstaggingapi": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateTags": TierHandVerified, + "CreateTagOption": TierHandVerified, + "DeleteTagOption": TierHandVerified, + "DescribeReportCreation": TierHandVerified, + "DisassociateTags": TierHandVerified, + "GetComplianceDetails": TierHandVerified, + "GetComplianceSummary": TierHandVerified, + "GetResourceTags": TierHandVerified, + "GetResources": TierHandVerified, + "GetTagKeys": TierHandVerified, + "GetTagOption": TierHandVerified, + "GetTagValues": TierHandVerified, + "ListRequiredTags": TierHandVerified, + "ListResourcesWithTagFilter": TierHandVerified, + "ListTagAssociations": TierHandVerified, + "ListTagOptions": TierHandVerified, + "ListTaggedResourcesByType": TierHandVerified, + "SearchResourcesByTags": TierHandVerified, + "StartReportCreation": TierHandVerified, + "TagResources": TierHandVerified, + "UntagResources": TierHandVerified, + "UpdateTagOption": TierHandVerified, + }}, + "route53": {ModelBacked: true, Operations: map[string]Tier{ + "ActivateKeySigningKey": TierHandVerified, + "AssociateVPCWithHostedZone": TierHandVerified, + "ChangeCidrCollection": TierHandVerified, + "ChangeResourceRecordSets": TierHandVerified, + "ChangeTagsForResource": TierHandVerified, + "CreateCidrCollection": TierHandVerified, + "CreateHealthCheck": TierHandVerified, + "CreateHostedZone": TierHandVerified, + "CreateKeySigningKey": TierHandVerified, + "CreateQueryLoggingConfig": TierHandVerified, + "CreateReusableDelegationSet": TierHandVerified, + "CreateTrafficPolicy": TierHandVerified, + "CreateTrafficPolicyInstance": TierHandVerified, + "CreateTrafficPolicyVersion": TierUnimplemented, + "CreateVPCAssociationAuthorization": TierUnimplemented, + "DeactivateKeySigningKey": TierHandVerified, + "DeleteCidrCollection": TierHandVerified, + "DeleteHealthCheck": TierHandVerified, + "DeleteHostedZone": TierHandVerified, + "DeleteKeySigningKey": TierHandVerified, + "DeleteQueryLoggingConfig": TierHandVerified, + "DeleteReusableDelegationSet": TierHandVerified, + "DeleteTrafficPolicy": TierHandVerified, + "DeleteTrafficPolicyInstance": TierHandVerified, + "DeleteVPCAssociationAuthorization": TierUnimplemented, + "DisableHostedZoneDNSSEC": TierHandVerified, + "DisassociateVPCFromHostedZone": TierHandVerified, + "EnableHostedZoneDNSSEC": TierHandVerified, + "GetAccountLimit": TierUnimplemented, + "GetChange": TierUnimplemented, + "GetCheckerIpRanges": TierUnimplemented, + "GetDNSSEC": TierHandVerified, + "GetGeoLocation": TierUnimplemented, + "GetHealthCheck": TierHandVerified, + "GetHealthCheckCount": TierUnimplemented, + "GetHealthCheckLastFailureReason": TierUnimplemented, + "GetHealthCheckStatus": TierHandVerified, + "GetHostedZone": TierHandVerified, + "GetHostedZoneCount": TierUnimplemented, + "GetHostedZoneLimit": TierUnimplemented, + "GetQueryLoggingConfig": TierHandVerified, + "GetReusableDelegationSet": TierHandVerified, + "GetReusableDelegationSetLimit": TierUnimplemented, + "GetTrafficPolicy": TierHandVerified, + "GetTrafficPolicyInstance": TierHandVerified, + "GetTrafficPolicyInstanceCount": TierUnimplemented, + "ListCidrBlocks": TierHandVerified, + "ListCidrCollections": TierHandVerified, + "ListCidrLocations": TierHandVerified, + "ListGeoLocations": TierUnimplemented, + "ListHealthChecks": TierHandVerified, + "ListHostedZones": TierHandVerified, + "ListHostedZonesByName": TierUnimplemented, + "ListHostedZonesByVPC": TierUnimplemented, + "ListKeySigningKeys": TierHandVerified, + "ListQueryLoggingConfigs": TierHandVerified, + "ListResourceRecordSets": TierHandVerified, + "ListReusableDelegationSets": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTagsForResources": TierUnimplemented, + "ListTrafficPolicies": TierHandVerified, + "ListTrafficPolicyInstances": TierHandVerified, + "ListTrafficPolicyInstancesByHostedZone": TierHandVerified, + "ListTrafficPolicyInstancesByPolicy": TierHandVerified, + "ListTrafficPolicyVersions": TierUnimplemented, + "ListVPCAssociationAuthorizations": TierUnimplemented, + "TestDNSAnswer": TierUnimplemented, + "UpdateHealthCheck": TierHandVerified, + "UpdateHostedZoneComment": TierUnimplemented, + "UpdateHostedZoneFeatures": TierUnimplemented, + "UpdateTrafficPolicyComment": TierUnimplemented, + "UpdateTrafficPolicyInstance": TierHandVerified, + }}, + "route53resolver": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateFirewallRuleGroup": TierHandVerified, + "AssociateResolverEndpointIpAddress": TierHandVerified, + "AssociateResolverQueryLogConfig": TierHandVerified, + "AssociateResolverRule": TierHandVerified, + "CreateFirewallDomainList": TierHandVerified, + "CreateFirewallRule": TierHandVerified, + "CreateFirewallRuleGroup": TierHandVerified, + "CreateOutpostResolver": TierHandVerified, + "CreateResolverEndpoint": TierHandVerified, + "CreateResolverQueryLogConfig": TierHandVerified, + "CreateResolverRule": TierHandVerified, + "DeleteFirewallDomainList": TierHandVerified, + "DeleteFirewallRule": TierHandVerified, + "DeleteFirewallRuleGroup": TierHandVerified, + "DeleteOutpostResolver": TierHandVerified, + "DeleteResolverEndpoint": TierHandVerified, + "DeleteResolverQueryLogConfig": TierHandVerified, + "DeleteResolverRule": TierHandVerified, + "DisassociateFirewallRuleGroup": TierHandVerified, + "DisassociateResolverEndpointIpAddress": TierHandVerified, + "DisassociateResolverQueryLogConfig": TierHandVerified, + "DisassociateResolverRule": TierHandVerified, + "GetFirewallConfig": TierHandVerified, + "GetFirewallDomainList": TierHandVerified, + "GetFirewallRuleGroup": TierHandVerified, + "GetFirewallRuleGroupAssociation": TierHandVerified, + "GetFirewallRuleGroupPolicy": TierHandVerified, + "GetOutpostResolver": TierHandVerified, + "GetResolverConfig": TierHandVerified, + "GetResolverDnssecConfig": TierHandVerified, + "GetResolverEndpoint": TierHandVerified, + "GetResolverQueryLogConfig": TierHandVerified, + "GetResolverQueryLogConfigAssociation": TierHandVerified, + "GetResolverQueryLogConfigPolicy": TierHandVerified, + "GetResolverRule": TierHandVerified, + "GetResolverRuleAssociation": TierHandVerified, + "GetResolverRulePolicy": TierHandVerified, + "ImportFirewallDomains": TierHandVerified, + "ListFirewallConfigs": TierHandVerified, + "ListFirewallDomainLists": TierHandVerified, + "ListFirewallDomains": TierHandVerified, + "ListFirewallRuleGroupAssociations": TierHandVerified, + "ListFirewallRuleGroups": TierHandVerified, + "ListFirewallRules": TierHandVerified, + "ListOutpostResolvers": TierHandVerified, + "ListResolverConfigs": TierHandVerified, + "ListResolverDnssecConfigs": TierHandVerified, + "ListResolverEndpointIpAddresses": TierHandVerified, + "ListResolverEndpoints": TierHandVerified, + "ListResolverQueryLogConfigAssociations": TierHandVerified, + "ListResolverQueryLogConfigs": TierHandVerified, + "ListResolverRuleAssociations": TierHandVerified, + "ListResolverRules": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PutFirewallRuleGroupPolicy": TierHandVerified, + "PutResolverQueryLogConfigPolicy": TierHandVerified, + "PutResolverRulePolicy": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateFirewallConfig": TierHandVerified, + "UpdateFirewallDomains": TierHandVerified, + "UpdateFirewallRule": TierHandVerified, + "UpdateFirewallRuleGroupAssociation": TierHandVerified, + "UpdateOutpostResolver": TierHandVerified, + "UpdateResolverConfig": TierHandVerified, + "UpdateResolverDnssecConfig": TierHandVerified, + "UpdateResolverEndpoint": TierHandVerified, + "UpdateResolverRule": TierHandVerified, + }}, + "s3": {ModelBacked: true, Operations: map[string]Tier{ + "AbortMultipartUpload": TierHandVerified, + "CompleteMultipartUpload": TierHandVerified, + "CopyObject": TierHandVerified, + "CreateBucket": TierHandVerified, + "CreateBucketMetadataConfiguration": TierUnimplemented, + "CreateBucketMetadataTableConfiguration": TierUnimplemented, + "CreateMultipartUpload": TierHandVerified, + "CreateSession": TierUnimplemented, + "DeleteBucket": TierHandVerified, + "DeleteBucketAnalyticsConfiguration": TierUnimplemented, + "DeleteBucketCors": TierHandVerified, + "DeleteBucketEncryption": TierUnimplemented, + "DeleteBucketIntelligentTieringConfiguration": TierUnimplemented, + "DeleteBucketInventoryConfiguration": TierUnimplemented, + "DeleteBucketLifecycle": TierUnimplemented, + "DeleteBucketMetadataConfiguration": TierUnimplemented, + "DeleteBucketMetadataTableConfiguration": TierUnimplemented, + "DeleteBucketMetricsConfiguration": TierUnimplemented, + "DeleteBucketOwnershipControls": TierUnimplemented, + "DeleteBucketPolicy": TierHandVerified, + "DeleteBucketReplication": TierUnimplemented, + "DeleteBucketTagging": TierHandVerified, + "DeleteBucketWebsite": TierUnimplemented, + "DeleteObject": TierHandVerified, + "DeleteObjectTagging": TierHandVerified, + "DeleteObjects": TierHandVerified, + "DeletePublicAccessBlock": TierUnimplemented, + "GetBucketAbac": TierUnimplemented, + "GetBucketAccelerateConfiguration": TierUnimplemented, + "GetBucketAcl": TierHandVerified, + "GetBucketAnalyticsConfiguration": TierUnimplemented, + "GetBucketCors": TierHandVerified, + "GetBucketEncryption": TierUnimplemented, + "GetBucketIntelligentTieringConfiguration": TierUnimplemented, + "GetBucketInventoryConfiguration": TierUnimplemented, + "GetBucketLifecycleConfiguration": TierUnimplemented, + "GetBucketLocation": TierHandVerified, + "GetBucketLogging": TierUnimplemented, + "GetBucketMetadataConfiguration": TierUnimplemented, + "GetBucketMetadataTableConfiguration": TierUnimplemented, + "GetBucketMetricsConfiguration": TierUnimplemented, + "GetBucketNotificationConfiguration": TierHandVerified, + "GetBucketOwnershipControls": TierUnimplemented, + "GetBucketPolicy": TierHandVerified, + "GetBucketPolicyStatus": TierUnimplemented, + "GetBucketReplication": TierUnimplemented, + "GetBucketRequestPayment": TierUnimplemented, + "GetBucketTagging": TierHandVerified, + "GetBucketVersioning": TierHandVerified, + "GetBucketWebsite": TierUnimplemented, + "GetObject": TierHandVerified, + "GetObjectAcl": TierUnimplemented, + "GetObjectAttributes": TierUnimplemented, + "GetObjectLegalHold": TierUnimplemented, + "GetObjectLockConfiguration": TierUnimplemented, + "GetObjectRetention": TierUnimplemented, + "GetObjectTagging": TierHandVerified, + "GetObjectTorrent": TierUnimplemented, + "GetPublicAccessBlock": TierUnimplemented, + "HeadBucket": TierHandVerified, + "HeadObject": TierHandVerified, + "ListBucketAnalyticsConfigurations": TierUnimplemented, + "ListBucketIntelligentTieringConfigurations": TierUnimplemented, + "ListBucketInventoryConfigurations": TierUnimplemented, + "ListBucketMetricsConfigurations": TierUnimplemented, + "ListBuckets": TierHandVerified, + "ListDirectoryBuckets": TierUnimplemented, + "ListMultipartUploads": TierHandVerified, + "ListObjectVersions": TierUnimplemented, + "ListObjects": TierHandVerified, + "ListObjectsV2": TierHandVerified, + "ListParts": TierHandVerified, + "PutBucketAbac": TierUnimplemented, + "PutBucketAccelerateConfiguration": TierUnimplemented, + "PutBucketAcl": TierHandVerified, + "PutBucketAnalyticsConfiguration": TierUnimplemented, + "PutBucketCors": TierHandVerified, + "PutBucketEncryption": TierUnimplemented, + "PutBucketIntelligentTieringConfiguration": TierUnimplemented, + "PutBucketInventoryConfiguration": TierUnimplemented, + "PutBucketLifecycleConfiguration": TierUnimplemented, + "PutBucketLogging": TierUnimplemented, + "PutBucketMetricsConfiguration": TierUnimplemented, + "PutBucketNotificationConfiguration": TierHandVerified, + "PutBucketOwnershipControls": TierUnimplemented, + "PutBucketPolicy": TierHandVerified, + "PutBucketReplication": TierUnimplemented, + "PutBucketRequestPayment": TierUnimplemented, + "PutBucketTagging": TierHandVerified, + "PutBucketVersioning": TierHandVerified, + "PutBucketWebsite": TierUnimplemented, + "PutObject": TierHandVerified, + "PutObjectAcl": TierUnimplemented, + "PutObjectLegalHold": TierUnimplemented, + "PutObjectLockConfiguration": TierUnimplemented, + "PutObjectRetention": TierUnimplemented, + "PutObjectTagging": TierHandVerified, + "PutPublicAccessBlock": TierUnimplemented, + "RenameObject": TierUnimplemented, + "RestoreObject": TierUnimplemented, + "SelectObjectContent": TierUnimplemented, + "UpdateBucketMetadataInventoryTableConfiguration": TierUnimplemented, + "UpdateBucketMetadataJournalTableConfiguration": TierUnimplemented, + "UpdateObjectEncryption": TierUnimplemented, + "UploadPart": TierHandVerified, + "UploadPartCopy": TierUnimplemented, + "WriteGetObjectResponse": TierUnimplemented, + }}, + "s3tables": {ModelBacked: false, Operations: map[string]Tier{ + "CreateNamespace": TierHandVerified, + "CreateTable": TierHandVerified, + "CreateTableBucket": TierHandVerified, + "DeleteNamespace": TierHandVerified, + "DeleteTable": TierHandVerified, + "DeleteTableBucket": TierHandVerified, + "DeleteTableBucketEncryption": TierHandVerified, + "DeleteTableBucketPolicy": TierHandVerified, + "DeleteTableEncryption": TierHandVerified, + "DeleteTablePolicy": TierHandVerified, + "GetNamespace": TierHandVerified, + "GetTable": TierHandVerified, + "GetTableBucket": TierHandVerified, + "GetTableBucketEncryption": TierHandVerified, + "GetTableBucketMaintenanceConfiguration": TierHandVerified, + "GetTableBucketMaintenanceJobStatus": TierHandVerified, + "GetTableBucketPolicy": TierHandVerified, + "GetTableEncryption": TierHandVerified, + "GetTableMaintenanceConfiguration": TierHandVerified, + "GetTableMaintenanceJobStatus": TierHandVerified, + "GetTableMetadataLocation": TierHandVerified, + "GetTablePolicy": TierHandVerified, + "ListNamespaces": TierHandVerified, + "ListTableBuckets": TierHandVerified, + "ListTables": TierHandVerified, + "PutTableBucketEncryption": TierHandVerified, + "PutTableBucketMaintenanceConfiguration": TierHandVerified, + "PutTableBucketPolicy": TierHandVerified, + "PutTableEncryption": TierHandVerified, + "PutTableMaintenanceConfiguration": TierHandVerified, + "PutTablePolicy": TierHandVerified, + "RenameTable": TierHandVerified, + "UpdateTableMetadataLocation": TierHandVerified, + }}, + "sagemaker": {ModelBacked: true, Operations: map[string]Tier{ + "AddAssociation": TierUnimplemented, + "AddTags": TierHandVerified, + "AssociateTrialComponent": TierUnimplemented, + "AttachClusterNodeVolume": TierUnimplemented, + "BatchAddClusterNodes": TierUnimplemented, + "BatchDeleteClusterNodes": TierUnimplemented, + "BatchDescribeModelPackage": TierUnimplemented, + "BatchRebootClusterNodes": TierUnimplemented, + "BatchReplaceClusterNodes": TierUnimplemented, + "CreateAction": TierAutoCRUD, + "CreateAlgorithm": TierAutoCRUD, + "CreateApp": TierAutoCRUD, + "CreateAppImageConfig": TierAutoCRUD, + "CreateArtifact": TierAutoCRUD, + "CreateAutoMLJob": TierAutoCRUD, + "CreateAutoMLJobV2": TierAutoCRUD, + "CreateCluster": TierAutoCRUD, + "CreateClusterSchedulerConfig": TierAutoCRUD, + "CreateCodeRepository": TierAutoCRUD, + "CreateCompilationJob": TierAutoCRUD, + "CreateComputeQuota": TierAutoCRUD, + "CreateContext": TierAutoCRUD, + "CreateDataQualityJobDefinition": TierAutoCRUD, + "CreateDeviceFleet": TierAutoCRUD, + "CreateDomain": TierHandVerified, + "CreateEdgeDeploymentPlan": TierAutoCRUD, + "CreateEdgeDeploymentStage": TierAutoCRUD, + "CreateEdgePackagingJob": TierAutoCRUD, + "CreateEndpoint": TierHandVerified, + "CreateEndpointConfig": TierHandVerified, + "CreateExperiment": TierHandVerified, + "CreateFeatureGroup": TierAutoCRUD, + "CreateFlowDefinition": TierAutoCRUD, + "CreateHub": TierAutoCRUD, + "CreateHubContentPresignedUrls": TierAutoCRUD, + "CreateHubContentReference": TierAutoCRUD, + "CreateHumanTaskUi": TierAutoCRUD, + "CreateHyperParameterTuningJob": TierAutoCRUD, + "CreateImage": TierAutoCRUD, + "CreateImageVersion": TierAutoCRUD, + "CreateInferenceComponent": TierAutoCRUD, + "CreateInferenceExperiment": TierAutoCRUD, + "CreateInferenceRecommendationsJob": TierAutoCRUD, + "CreateLabelingJob": TierAutoCRUD, + "CreateMlflowApp": TierAutoCRUD, + "CreateMlflowTrackingServer": TierAutoCRUD, + "CreateModel": TierHandVerified, + "CreateModelBiasJobDefinition": TierAutoCRUD, + "CreateModelCard": TierAutoCRUD, + "CreateModelCardExportJob": TierAutoCRUD, + "CreateModelExplainabilityJobDefinition": TierAutoCRUD, + "CreateModelPackage": TierAutoCRUD, + "CreateModelPackageGroup": TierAutoCRUD, + "CreateModelQualityJobDefinition": TierAutoCRUD, + "CreateMonitoringSchedule": TierAutoCRUD, + "CreateNotebookInstance": TierHandVerified, + "CreateNotebookInstanceLifecycleConfig": TierAutoCRUD, + "CreateOptimizationJob": TierAutoCRUD, + "CreatePartnerApp": TierAutoCRUD, + "CreatePartnerAppPresignedUrl": TierAutoCRUD, + "CreatePipeline": TierHandVerified, + "CreatePresignedDomainUrl": TierAutoCRUD, + "CreatePresignedMlflowAppUrl": TierAutoCRUD, + "CreatePresignedMlflowTrackingServerUrl": TierAutoCRUD, + "CreatePresignedNotebookInstanceUrl": TierAutoCRUD, + "CreateProcessingJob": TierHandVerified, + "CreateProject": TierAutoCRUD, + "CreateSpace": TierAutoCRUD, + "CreateStudioLifecycleConfig": TierAutoCRUD, + "CreateTrainingJob": TierHandVerified, + "CreateTrainingPlan": TierAutoCRUD, + "CreateTransformJob": TierHandVerified, + "CreateTrial": TierHandVerified, + "CreateTrialComponent": TierAutoCRUD, + "CreateUserProfile": TierHandVerified, + "CreateWorkforce": TierAutoCRUD, + "CreateWorkteam": TierAutoCRUD, + "DeleteAction": TierAutoCRUD, + "DeleteAlgorithm": TierAutoCRUD, + "DeleteApp": TierAutoCRUD, + "DeleteAppImageConfig": TierAutoCRUD, + "DeleteArtifact": TierAutoCRUD, + "DeleteAssociation": TierAutoCRUD, + "DeleteCluster": TierAutoCRUD, + "DeleteClusterSchedulerConfig": TierAutoCRUD, + "DeleteCodeRepository": TierAutoCRUD, + "DeleteCompilationJob": TierAutoCRUD, + "DeleteComputeQuota": TierAutoCRUD, + "DeleteContext": TierAutoCRUD, + "DeleteDataQualityJobDefinition": TierAutoCRUD, + "DeleteDeviceFleet": TierAutoCRUD, + "DeleteDomain": TierHandVerified, + "DeleteEdgeDeploymentPlan": TierAutoCRUD, + "DeleteEdgeDeploymentStage": TierAutoCRUD, + "DeleteEndpoint": TierHandVerified, + "DeleteEndpointConfig": TierHandVerified, + "DeleteExperiment": TierHandVerified, + "DeleteFeatureGroup": TierAutoCRUD, + "DeleteFlowDefinition": TierAutoCRUD, + "DeleteHub": TierAutoCRUD, + "DeleteHubContent": TierAutoCRUD, + "DeleteHubContentReference": TierAutoCRUD, + "DeleteHumanTaskUi": TierAutoCRUD, + "DeleteHyperParameterTuningJob": TierAutoCRUD, + "DeleteImage": TierAutoCRUD, + "DeleteImageVersion": TierAutoCRUD, + "DeleteInferenceComponent": TierAutoCRUD, + "DeleteInferenceExperiment": TierAutoCRUD, + "DeleteMlflowApp": TierAutoCRUD, + "DeleteMlflowTrackingServer": TierAutoCRUD, + "DeleteModel": TierHandVerified, + "DeleteModelBiasJobDefinition": TierAutoCRUD, + "DeleteModelCard": TierAutoCRUD, + "DeleteModelExplainabilityJobDefinition": TierAutoCRUD, + "DeleteModelPackage": TierAutoCRUD, + "DeleteModelPackageGroup": TierAutoCRUD, + "DeleteModelPackageGroupPolicy": TierAutoCRUD, + "DeleteModelQualityJobDefinition": TierAutoCRUD, + "DeleteMonitoringSchedule": TierAutoCRUD, + "DeleteNotebookInstance": TierHandVerified, + "DeleteNotebookInstanceLifecycleConfig": TierAutoCRUD, + "DeleteOptimizationJob": TierAutoCRUD, + "DeletePartnerApp": TierAutoCRUD, + "DeletePipeline": TierHandVerified, + "DeleteProcessingJob": TierAutoCRUD, + "DeleteProject": TierAutoCRUD, + "DeleteSpace": TierAutoCRUD, + "DeleteStudioLifecycleConfig": TierAutoCRUD, + "DeleteTags": TierHandVerified, + "DeleteTrainingJob": TierAutoCRUD, + "DeleteTrial": TierHandVerified, + "DeleteTrialComponent": TierAutoCRUD, + "DeleteUserProfile": TierHandVerified, + "DeleteWorkforce": TierAutoCRUD, + "DeleteWorkteam": TierAutoCRUD, + "DeregisterDevices": TierAutoCRUD, + "DescribeAction": TierAutoCRUD, + "DescribeAlgorithm": TierAutoCRUD, + "DescribeApp": TierAutoCRUD, + "DescribeAppImageConfig": TierAutoCRUD, + "DescribeArtifact": TierAutoCRUD, + "DescribeAutoMLJob": TierAutoCRUD, + "DescribeAutoMLJobV2": TierAutoCRUD, + "DescribeCluster": TierAutoCRUD, + "DescribeClusterEvent": TierAutoCRUD, + "DescribeClusterNode": TierAutoCRUD, + "DescribeClusterSchedulerConfig": TierAutoCRUD, + "DescribeCodeRepository": TierAutoCRUD, + "DescribeCompilationJob": TierAutoCRUD, + "DescribeComputeQuota": TierAutoCRUD, + "DescribeContext": TierAutoCRUD, + "DescribeDataQualityJobDefinition": TierAutoCRUD, + "DescribeDevice": TierAutoCRUD, + "DescribeDeviceFleet": TierAutoCRUD, + "DescribeDomain": TierHandVerified, + "DescribeEdgeDeploymentPlan": TierAutoCRUD, + "DescribeEdgePackagingJob": TierAutoCRUD, + "DescribeEndpoint": TierHandVerified, + "DescribeEndpointConfig": TierHandVerified, + "DescribeExperiment": TierHandVerified, + "DescribeFeatureGroup": TierAutoCRUD, + "DescribeFeatureMetadata": TierAutoCRUD, + "DescribeFlowDefinition": TierAutoCRUD, + "DescribeHub": TierAutoCRUD, + "DescribeHubContent": TierAutoCRUD, + "DescribeHumanTaskUi": TierAutoCRUD, + "DescribeHyperParameterTuningJob": TierAutoCRUD, + "DescribeImage": TierAutoCRUD, + "DescribeImageVersion": TierAutoCRUD, + "DescribeInferenceComponent": TierAutoCRUD, + "DescribeInferenceExperiment": TierAutoCRUD, + "DescribeInferenceRecommendationsJob": TierAutoCRUD, + "DescribeLabelingJob": TierAutoCRUD, + "DescribeLineageGroup": TierAutoCRUD, + "DescribeMlflowApp": TierAutoCRUD, + "DescribeMlflowTrackingServer": TierAutoCRUD, + "DescribeModel": TierHandVerified, + "DescribeModelBiasJobDefinition": TierAutoCRUD, + "DescribeModelCard": TierAutoCRUD, + "DescribeModelCardExportJob": TierAutoCRUD, + "DescribeModelExplainabilityJobDefinition": TierAutoCRUD, + "DescribeModelPackage": TierAutoCRUD, + "DescribeModelPackageGroup": TierAutoCRUD, + "DescribeModelQualityJobDefinition": TierAutoCRUD, + "DescribeMonitoringSchedule": TierAutoCRUD, + "DescribeNotebookInstance": TierHandVerified, + "DescribeNotebookInstanceLifecycleConfig": TierAutoCRUD, + "DescribeOptimizationJob": TierAutoCRUD, + "DescribePartnerApp": TierAutoCRUD, + "DescribePipeline": TierHandVerified, + "DescribePipelineDefinitionForExecution": TierAutoCRUD, + "DescribePipelineExecution": TierHandVerified, + "DescribeProcessingJob": TierHandVerified, + "DescribeProject": TierAutoCRUD, + "DescribeReservedCapacity": TierAutoCRUD, + "DescribeSpace": TierAutoCRUD, + "DescribeStudioLifecycleConfig": TierAutoCRUD, + "DescribeSubscribedWorkteam": TierAutoCRUD, + "DescribeTrainingJob": TierHandVerified, + "DescribeTrainingPlan": TierAutoCRUD, + "DescribeTrainingPlanExtensionHistory": TierAutoCRUD, + "DescribeTransformJob": TierHandVerified, + "DescribeTrial": TierHandVerified, + "DescribeTrialComponent": TierAutoCRUD, + "DescribeUserProfile": TierHandVerified, + "DescribeWorkforce": TierAutoCRUD, + "DescribeWorkteam": TierAutoCRUD, + "DetachClusterNodeVolume": TierUnimplemented, + "DisableSagemakerServicecatalogPortfolio": TierUnimplemented, + "DisassociateTrialComponent": TierUnimplemented, + "EnableSagemakerServicecatalogPortfolio": TierUnimplemented, + "ExtendTrainingPlan": TierUnimplemented, + "GetDeviceFleetReport": TierAutoCRUD, + "GetLineageGroupPolicy": TierAutoCRUD, + "GetModelPackageGroupPolicy": TierAutoCRUD, + "GetSagemakerServicecatalogPortfolioStatus": TierAutoCRUD, + "GetScalingConfigurationRecommendation": TierAutoCRUD, + "GetSearchSuggestions": TierAutoCRUD, + "ImportHubContent": TierUnimplemented, + "ListActions": TierAutoCRUD, + "ListAlgorithms": TierAutoCRUD, + "ListAliases": TierAutoCRUD, + "ListAppImageConfigs": TierAutoCRUD, + "ListApps": TierAutoCRUD, + "ListArtifacts": TierAutoCRUD, + "ListAssociations": TierAutoCRUD, + "ListAutoMLJobs": TierAutoCRUD, + "ListCandidatesForAutoMLJob": TierAutoCRUD, + "ListClusterEvents": TierAutoCRUD, + "ListClusterNodes": TierAutoCRUD, + "ListClusterSchedulerConfigs": TierAutoCRUD, + "ListClusters": TierAutoCRUD, + "ListCodeRepositories": TierAutoCRUD, + "ListCompilationJobs": TierAutoCRUD, + "ListComputeQuotas": TierAutoCRUD, + "ListContexts": TierAutoCRUD, + "ListDataQualityJobDefinitions": TierAutoCRUD, + "ListDeviceFleets": TierAutoCRUD, + "ListDevices": TierAutoCRUD, + "ListDomains": TierHandVerified, + "ListEdgeDeploymentPlans": TierAutoCRUD, + "ListEdgePackagingJobs": TierAutoCRUD, + "ListEndpointConfigs": TierHandVerified, + "ListEndpoints": TierHandVerified, + "ListExperiments": TierHandVerified, + "ListFeatureGroups": TierAutoCRUD, + "ListFlowDefinitions": TierAutoCRUD, + "ListHubContentVersions": TierAutoCRUD, + "ListHubContents": TierAutoCRUD, + "ListHubs": TierAutoCRUD, + "ListHumanTaskUis": TierAutoCRUD, + "ListHyperParameterTuningJobs": TierAutoCRUD, + "ListImageVersions": TierAutoCRUD, + "ListImages": TierAutoCRUD, + "ListInferenceComponents": TierAutoCRUD, + "ListInferenceExperiments": TierAutoCRUD, + "ListInferenceRecommendationsJobSteps": TierAutoCRUD, + "ListInferenceRecommendationsJobs": TierAutoCRUD, + "ListLabelingJobs": TierAutoCRUD, + "ListLabelingJobsForWorkteam": TierAutoCRUD, + "ListLineageGroups": TierAutoCRUD, + "ListMlflowApps": TierAutoCRUD, + "ListMlflowTrackingServers": TierAutoCRUD, + "ListModelBiasJobDefinitions": TierAutoCRUD, + "ListModelCardExportJobs": TierAutoCRUD, + "ListModelCardVersions": TierAutoCRUD, + "ListModelCards": TierAutoCRUD, + "ListModelExplainabilityJobDefinitions": TierAutoCRUD, + "ListModelMetadata": TierAutoCRUD, + "ListModelPackageGroups": TierAutoCRUD, + "ListModelPackages": TierAutoCRUD, + "ListModelQualityJobDefinitions": TierAutoCRUD, + "ListModels": TierHandVerified, + "ListMonitoringAlertHistory": TierAutoCRUD, + "ListMonitoringAlerts": TierAutoCRUD, + "ListMonitoringExecutions": TierAutoCRUD, + "ListMonitoringSchedules": TierAutoCRUD, + "ListNotebookInstanceLifecycleConfigs": TierAutoCRUD, + "ListNotebookInstances": TierHandVerified, + "ListOptimizationJobs": TierAutoCRUD, + "ListPartnerApps": TierAutoCRUD, + "ListPipelineExecutionSteps": TierAutoCRUD, + "ListPipelineExecutions": TierHandVerified, + "ListPipelineParametersForExecution": TierAutoCRUD, + "ListPipelineVersions": TierAutoCRUD, + "ListPipelines": TierHandVerified, + "ListProcessingJobs": TierHandVerified, + "ListProjects": TierAutoCRUD, + "ListResourceCatalogs": TierAutoCRUD, + "ListSpaces": TierAutoCRUD, + "ListStageDevices": TierAutoCRUD, + "ListStudioLifecycleConfigs": TierAutoCRUD, + "ListSubscribedWorkteams": TierAutoCRUD, + "ListTags": TierHandVerified, + "ListTrainingJobs": TierHandVerified, + "ListTrainingJobsForHyperParameterTuningJob": TierAutoCRUD, + "ListTrainingPlans": TierAutoCRUD, + "ListTransformJobs": TierHandVerified, + "ListTrialComponents": TierAutoCRUD, + "ListTrials": TierHandVerified, + "ListUltraServersByReservedCapacity": TierAutoCRUD, + "ListUserProfiles": TierHandVerified, + "ListWorkforces": TierAutoCRUD, + "ListWorkteams": TierAutoCRUD, + "PutModelPackageGroupPolicy": TierAutoCRUD, + "QueryLineage": TierUnimplemented, + "RegisterDevices": TierAutoCRUD, + "RenderUiTemplate": TierUnimplemented, + "RetryPipelineExecution": TierUnimplemented, + "Search": TierHandVerified, + "SearchTrainingPlanOfferings": TierUnimplemented, + "SendPipelineExecutionStepFailure": TierUnimplemented, + "SendPipelineExecutionStepSuccess": TierUnimplemented, + "StartEdgeDeploymentStage": TierUnimplemented, + "StartInferenceExperiment": TierUnimplemented, + "StartMlflowTrackingServer": TierUnimplemented, + "StartMonitoringSchedule": TierUnimplemented, + "StartNotebookInstance": TierHandVerified, + "StartPipelineExecution": TierHandVerified, + "StartSession": TierUnimplemented, + "StopAutoMLJob": TierUnimplemented, + "StopCompilationJob": TierUnimplemented, + "StopEdgeDeploymentStage": TierUnimplemented, + "StopEdgePackagingJob": TierUnimplemented, + "StopHyperParameterTuningJob": TierUnimplemented, + "StopInferenceExperiment": TierUnimplemented, + "StopInferenceRecommendationsJob": TierUnimplemented, + "StopLabelingJob": TierUnimplemented, + "StopMlflowTrackingServer": TierUnimplemented, + "StopMonitoringSchedule": TierUnimplemented, + "StopNotebookInstance": TierHandVerified, + "StopOptimizationJob": TierUnimplemented, + "StopPipelineExecution": TierHandVerified, + "StopProcessingJob": TierHandVerified, + "StopTrainingJob": TierHandVerified, + "StopTransformJob": TierHandVerified, + "UpdateAction": TierAutoCRUD, + "UpdateAppImageConfig": TierAutoCRUD, + "UpdateArtifact": TierAutoCRUD, + "UpdateCluster": TierAutoCRUD, + "UpdateClusterSchedulerConfig": TierAutoCRUD, + "UpdateClusterSoftware": TierAutoCRUD, + "UpdateCodeRepository": TierAutoCRUD, + "UpdateComputeQuota": TierAutoCRUD, + "UpdateContext": TierAutoCRUD, + "UpdateDeviceFleet": TierAutoCRUD, + "UpdateDevices": TierAutoCRUD, + "UpdateDomain": TierHandVerified, + "UpdateEndpoint": TierHandVerified, + "UpdateEndpointWeightsAndCapacities": TierAutoCRUD, + "UpdateExperiment": TierHandVerified, + "UpdateFeatureGroup": TierAutoCRUD, + "UpdateFeatureMetadata": TierAutoCRUD, + "UpdateHub": TierAutoCRUD, + "UpdateHubContent": TierAutoCRUD, + "UpdateHubContentReference": TierAutoCRUD, + "UpdateImage": TierAutoCRUD, + "UpdateImageVersion": TierAutoCRUD, + "UpdateInferenceComponent": TierAutoCRUD, + "UpdateInferenceComponentRuntimeConfig": TierAutoCRUD, + "UpdateInferenceExperiment": TierAutoCRUD, + "UpdateMlflowApp": TierAutoCRUD, + "UpdateMlflowTrackingServer": TierAutoCRUD, + "UpdateModelCard": TierAutoCRUD, + "UpdateModelPackage": TierAutoCRUD, + "UpdateMonitoringAlert": TierAutoCRUD, + "UpdateMonitoringSchedule": TierAutoCRUD, + "UpdateNotebookInstance": TierHandVerified, + "UpdateNotebookInstanceLifecycleConfig": TierAutoCRUD, + "UpdatePartnerApp": TierAutoCRUD, + "UpdatePipeline": TierHandVerified, + "UpdatePipelineExecution": TierAutoCRUD, + "UpdatePipelineVersion": TierAutoCRUD, + "UpdateProject": TierAutoCRUD, + "UpdateSpace": TierAutoCRUD, + "UpdateTrainingJob": TierAutoCRUD, + "UpdateTrial": TierHandVerified, + "UpdateTrialComponent": TierAutoCRUD, + "UpdateUserProfile": TierHandVerified, + "UpdateWorkforce": TierAutoCRUD, + "UpdateWorkteam": TierAutoCRUD, + }}, + "scheduler": {ModelBacked: false, Operations: map[string]Tier{ + "BatchCheckMaxRateLimits": TierHandVerified, + "BatchCreateSchedules": TierHandVerified, + "BatchDeleteSchedules": TierHandVerified, + "BatchUpdateSchedules": TierHandVerified, + "CreateSchedule": TierHandVerified, + "CreateScheduleGroup": TierHandVerified, + "DeleteRateLimit": TierHandVerified, + "DeleteSchedule": TierHandVerified, + "DeleteScheduleGroup": TierHandVerified, + "DisableSchedule": TierHandVerified, + "EnableSchedule": TierHandVerified, + "GetRateLimit": TierHandVerified, + "GetSchedule": TierHandVerified, + "GetScheduleAuditLogs": TierHandVerified, + "GetScheduleExecutionStatus": TierHandVerified, + "GetScheduleGroup": TierHandVerified, + "GetScheduleGroupMetrics": TierHandVerified, + "GetScheduleMetrics": TierHandVerified, + "ListConnections": TierHandVerified, + "ListFleetSchedules": TierHandVerified, + "ListRateLimits": TierHandVerified, + "ListScheduleAuditLogs": TierHandVerified, + "ListScheduleExecutions": TierHandVerified, + "ListScheduleGroups": TierHandVerified, + "ListScheduleMetrics": TierHandVerified, + "ListSchedules": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "LockSchedule": TierHandVerified, + "PreviewSchedule": TierHandVerified, + "PutRateLimit": TierHandVerified, + "StopScheduleExecution": TierHandVerified, + "TagResource": TierHandVerified, + "UnlockSchedule": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateSchedule": TierHandVerified, + "UpdateScheduleGroup": TierHandVerified, + "ValidateScheduleExpression": TierHandVerified, + }}, + "secretsmanager": {ModelBacked: true, Operations: map[string]Tier{ + "BatchGetSecretValue": TierHandVerified, + "CancelRotateSecret": TierHandVerified, + "ClearSecretValue": TierHandVerified, + "CreateSecret": TierHandVerified, + "DeleteResourcePolicy": TierHandVerified, + "DeleteSecret": TierHandVerified, + "DescribeSecret": TierHandVerified, + "DescribeSecretVersion": TierHandVerified, + "DisableSecretRotation": TierHandVerified, + "EnableSecretRotation": TierHandVerified, + "GetRandomPassword": TierHandVerified, + "GetResourcePolicy": TierHandVerified, + "GetRotationStatus": TierHandVerified, + "GetSecret": TierHandVerified, + "GetSecretCounter": TierHandVerified, + "GetSecretHistory": TierHandVerified, + "GetSecretMetadata": TierHandVerified, + "GetSecretValue": TierHandVerified, + "GetSecretVersion": TierHandVerified, + "ListReplicationRegions": TierHandVerified, + "ListRotationLambdas": TierHandVerified, + "ListSecretTags": TierHandVerified, + "ListSecretVersionIds": TierHandVerified, + "ListSecrets": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PutResourcePolicy": TierHandVerified, + "PutSecretMetadata": TierHandVerified, + "PutSecretValue": TierHandVerified, + "PutSecretValueBinary": TierHandVerified, + "RemoveRegionsFromReplication": TierHandVerified, + "ReplicateSecretToRegions": TierHandVerified, + "RestoreSecret": TierHandVerified, + "RotateSecret": TierHandVerified, + "StopReplicationToReplica": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateSecret": TierHandVerified, + "UpdateSecretVersionStage": TierHandVerified, + "ValidateResourcePolicy": TierHandVerified, + "ValidateSecret": TierHandVerified, + }}, + "serverlessrepo": {ModelBacked: false, Operations: map[string]Tier{ + "AddApplicationDependency": TierHandVerified, + "CancelCloudFormationChangeSet": TierHandVerified, + "CreateApplication": TierHandVerified, + "CreateApplicationVersion": TierHandVerified, + "CreateCloudFormationChangeSet": TierHandVerified, + "CreateCloudFormationTemplate": TierHandVerified, + "DeleteApplication": TierHandVerified, + "DeleteApplicationPolicy": TierHandVerified, + "DeleteApplicationVersion": TierHandVerified, + "DeleteCloudFormationChangeSet": TierHandVerified, + "ExecuteCloudFormationChangeSet": TierHandVerified, + "GetApplication": TierHandVerified, + "GetApplicationPolicy": TierHandVerified, + "GetApplicationPublishStatus": TierHandVerified, + "GetApplicationShares": TierHandVerified, + "GetApplicationStatistics": TierHandVerified, + "GetApplicationVersion": TierHandVerified, + "GetCloudFormationChangeSet": TierHandVerified, + "GetCloudFormationTemplate": TierHandVerified, + "ListApplicationDependencies": TierHandVerified, + "ListApplicationDeployments": TierHandVerified, + "ListApplicationReviews": TierHandVerified, + "ListApplicationShares": TierHandVerified, + "ListApplicationVersions": TierHandVerified, + "ListApplications": TierHandVerified, + "ListCategories": TierHandVerified, + "ListCloudFormationChangeSets": TierHandVerified, + "ListCloudFormationTemplates": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PublishApplication": TierHandVerified, + "PutApplicationPolicy": TierHandVerified, + "RemoveApplicationDependency": TierHandVerified, + "SearchApplications": TierHandVerified, + "ShareApplication": TierHandVerified, + "SubmitApplicationReview": TierHandVerified, + "TagResource": TierHandVerified, + "UnpublishApplication": TierHandVerified, + "UnshareApplication": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApplication": TierHandVerified, + "UpdateApplicationVersion": TierHandVerified, + }}, + "servicediscovery": {ModelBacked: true, Operations: map[string]Tier{ + "CreateHttpNamespace": TierHandVerified, + "CreatePrivateDnsNamespace": TierHandVerified, + "CreatePublicDnsNamespace": TierHandVerified, + "CreateService": TierHandVerified, + "DeleteNamespace": TierHandVerified, + "DeleteService": TierHandVerified, + "DeleteServiceAttributes": TierHandVerified, + "DeregisterInstance": TierHandVerified, + "DiscoverInstances": TierHandVerified, + "DiscoverInstancesRevision": TierHandVerified, + "GetInstance": TierHandVerified, + "GetInstancesHealthStatus": TierHandVerified, + "GetNamespace": TierHandVerified, + "GetOperation": TierHandVerified, + "GetService": TierHandVerified, + "GetServiceAttributes": TierHandVerified, + "ListInstances": TierHandVerified, + "ListNamespaces": TierHandVerified, + "ListOperations": TierHandVerified, + "ListServices": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "RegisterInstance": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateHttpNamespace": TierHandVerified, + "UpdateInstanceCustomHealthStatus": TierHandVerified, + "UpdatePrivateDnsNamespace": TierHandVerified, + "UpdatePublicDnsNamespace": TierHandVerified, + "UpdateService": TierHandVerified, + "UpdateServiceAttributes": TierHandVerified, + }}, + "ses": {ModelBacked: true, Operations: map[string]Tier{ + "CloneReceiptRuleSet": TierHandVerified, + "CreateConfigurationSet": TierHandVerified, + "CreateConfigurationSetEventDestination": TierHandVerified, + "CreateConfigurationSetTrackingOptions": TierHandVerified, + "CreateCustomVerificationEmailTemplate": TierHandVerified, + "CreateReceiptFilter": TierHandVerified, + "CreateReceiptRule": TierHandVerified, + "CreateReceiptRuleSet": TierHandVerified, + "CreateTemplate": TierHandVerified, + "DeleteConfigurationSet": TierHandVerified, + "DeleteConfigurationSetEventDestination": TierHandVerified, + "DeleteConfigurationSetTrackingOptions": TierHandVerified, + "DeleteCustomVerificationEmailTemplate": TierHandVerified, + "DeleteIdentity": TierHandVerified, + "DeleteIdentityPolicy": TierHandVerified, + "DeleteReceiptFilter": TierHandVerified, + "DeleteReceiptRule": TierHandVerified, + "DeleteReceiptRuleSet": TierHandVerified, + "DeleteTemplate": TierHandVerified, + "DeleteVerifiedEmailAddress": TierHandVerified, + "DescribeActiveReceiptRuleSet": TierHandVerified, + "DescribeConfigurationSet": TierHandVerified, + "DescribeConfigurationSetEventDestinations": TierHandVerified, + "DescribeReceiptRule": TierHandVerified, + "DescribeReceiptRuleSet": TierHandVerified, + "GetAccountSendingEnabled": TierHandVerified, + "GetCustomVerificationEmailTemplate": TierHandVerified, + "GetIdentityDkimAttributes": TierHandVerified, + "GetIdentityMailFromDomainAttributes": TierHandVerified, + "GetIdentityNotificationAttributes": TierHandVerified, + "GetIdentityPolicies": TierHandVerified, + "GetIdentityVerificationAttributes": TierHandVerified, + "GetSendQuota": TierHandVerified, + "GetSendStatistics": TierHandVerified, + "GetTemplate": TierHandVerified, + "ListConfigurationSetEventDestinations": TierHandVerified, + "ListConfigurationSets": TierHandVerified, + "ListCustomVerificationEmailTemplates": TierHandVerified, + "ListIdentities": TierHandVerified, + "ListIdentityPolicies": TierHandVerified, + "ListReceiptFilters": TierHandVerified, + "ListReceiptRuleSets": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTemplates": TierHandVerified, + "ListVerifiedEmailAddresses": TierHandVerified, + "PutConfigurationSetDeliveryOptions": TierUnimplemented, + "PutIdentityPolicy": TierHandVerified, + "ReorderReceiptRuleSet": TierHandVerified, + "SendBounce": TierHandVerified, + "SendBulkTemplatedEmail": TierHandVerified, + "SendCustomVerificationEmail": TierHandVerified, + "SendEmail": TierHandVerified, + "SendRawEmail": TierHandVerified, + "SendTemplatedEmail": TierHandVerified, + "SetActiveReceiptRuleSet": TierHandVerified, + "SetIdentityDkimEnabled": TierHandVerified, + "SetIdentityFeedbackForwardingEnabled": TierHandVerified, + "SetIdentityHeadersInNotificationsEnabled": TierHandVerified, + "SetIdentityMailFromDomain": TierHandVerified, + "SetIdentityNotificationTopic": TierHandVerified, + "SetReceiptRulePosition": TierHandVerified, + "TagResource": TierHandVerified, + "TestRenderTemplate": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAccountSendingEnabled": TierHandVerified, + "UpdateConfigurationSetEventDestination": TierHandVerified, + "UpdateConfigurationSetReputationMetricsEnabled": TierUnimplemented, + "UpdateConfigurationSetSendingEnabled": TierUnimplemented, + "UpdateConfigurationSetTrackingOptions": TierHandVerified, + "UpdateCustomVerificationEmailTemplate": TierHandVerified, + "UpdateReceiptRule": TierHandVerified, + "UpdateTemplate": TierHandVerified, + "VerifyDomainDkim": TierHandVerified, + "VerifyDomainIdentity": TierHandVerified, + "VerifyEmailAddress": TierHandVerified, + "VerifyEmailIdentity": TierHandVerified, + }}, + "sesv2": {ModelBacked: true, Operations: map[string]Tier{ + "BatchGetMetricData": TierHandVerified, + "CancelExportJob": TierHandVerified, + "CreateConfigurationSet": TierHandVerified, + "CreateConfigurationSetEventDestination": TierHandVerified, + "CreateContact": TierHandVerified, + "CreateContactList": TierHandVerified, + "CreateCustomVerificationEmailTemplate": TierHandVerified, + "CreateDedicatedIpPool": TierHandVerified, + "CreateDeliverabilityTestReport": TierHandVerified, + "CreateEmailIdentity": TierHandVerified, + "CreateEmailIdentityPolicy": TierHandVerified, + "CreateEmailTemplate": TierHandVerified, + "CreateExportJob": TierHandVerified, + "CreateImportJob": TierHandVerified, + "CreateMultiRegionEndpoint": TierHandVerified, + "CreateTenant": TierHandVerified, + "CreateTenantResourceAssociation": TierHandVerified, + "DeleteConfigurationSet": TierHandVerified, + "DeleteConfigurationSetEventDestination": TierHandVerified, + "DeleteContact": TierHandVerified, + "DeleteContactList": TierHandVerified, + "DeleteCustomVerificationEmailTemplate": TierHandVerified, + "DeleteDedicatedIpPool": TierHandVerified, + "DeleteEmailIdentity": TierHandVerified, + "DeleteEmailIdentityPolicy": TierHandVerified, + "DeleteEmailTemplate": TierHandVerified, + "DeleteMultiRegionEndpoint": TierHandVerified, + "DeleteSuppressedDestination": TierHandVerified, + "DeleteTenant": TierHandVerified, + "DeleteTenantResourceAssociation": TierHandVerified, + "GetAccount": TierHandVerified, + "GetBlacklistReports": TierHandVerified, + "GetConfigurationSet": TierHandVerified, + "GetConfigurationSetEventDestinations": TierHandVerified, + "GetContact": TierHandVerified, + "GetContactList": TierHandVerified, + "GetCustomVerificationEmailTemplate": TierHandVerified, + "GetDedicatedIp": TierHandVerified, + "GetDedicatedIpPool": TierHandVerified, + "GetDedicatedIps": TierHandVerified, + "GetDeliverabilityDashboardOptions": TierHandVerified, + "GetDeliverabilityTestReport": TierHandVerified, + "GetDomainDeliverabilityCampaign": TierHandVerified, + "GetDomainStatisticsReport": TierHandVerified, + "GetEmailAddressInsights": TierHandVerified, + "GetEmailIdentity": TierHandVerified, + "GetEmailIdentityPolicies": TierHandVerified, + "GetEmailTemplate": TierHandVerified, + "GetExportJob": TierHandVerified, + "GetImportJob": TierHandVerified, + "GetMessageInsights": TierHandVerified, + "GetMultiRegionEndpoint": TierHandVerified, + "GetReputationEntity": TierHandVerified, + "GetSuppressedDestination": TierHandVerified, + "GetTenant": TierHandVerified, + "ListConfigurationSets": TierHandVerified, + "ListContactLists": TierHandVerified, + "ListContacts": TierHandVerified, + "ListCustomVerificationEmailTemplates": TierHandVerified, + "ListDedicatedIpPools": TierHandVerified, + "ListDeliverabilityTestReports": TierHandVerified, + "ListDomainDeliverabilityCampaigns": TierHandVerified, + "ListEmailIdentities": TierHandVerified, + "ListEmailTemplates": TierHandVerified, + "ListExportJobs": TierHandVerified, + "ListImportJobs": TierHandVerified, + "ListMultiRegionEndpoints": TierHandVerified, + "ListRecommendations": TierHandVerified, + "ListReputationEntities": TierHandVerified, + "ListResourceTenants": TierHandVerified, + "ListSuppressedDestinations": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTenantResources": TierHandVerified, + "ListTenants": TierHandVerified, + "PutAccountDedicatedIpWarmupAttributes": TierHandVerified, + "PutAccountDetails": TierHandVerified, + "PutAccountSendingAttributes": TierHandVerified, + "PutAccountSuppressionAttributes": TierHandVerified, + "PutAccountVdmAttributes": TierHandVerified, + "PutConfigurationSetArchivingOptions": TierHandVerified, + "PutConfigurationSetDeliveryOptions": TierHandVerified, + "PutConfigurationSetReputationOptions": TierHandVerified, + "PutConfigurationSetSendingOptions": TierHandVerified, + "PutConfigurationSetSuppressionOptions": TierHandVerified, + "PutConfigurationSetTrackingOptions": TierHandVerified, + "PutConfigurationSetVdmOptions": TierHandVerified, + "PutDedicatedIpInPool": TierHandVerified, + "PutDedicatedIpPoolScalingAttributes": TierHandVerified, + "PutDedicatedIpWarmupAttributes": TierHandVerified, + "PutDeliverabilityDashboardOption": TierHandVerified, + "PutEmailIdentityConfigurationSetAttributes": TierHandVerified, + "PutEmailIdentityDkimAttributes": TierHandVerified, + "PutEmailIdentityDkimSigningAttributes": TierHandVerified, + "PutEmailIdentityFeedbackAttributes": TierHandVerified, + "PutEmailIdentityMailFromAttributes": TierHandVerified, + "PutSuppressedDestination": TierHandVerified, + "SendBulkEmail": TierHandVerified, + "SendCustomVerificationEmail": TierHandVerified, + "SendEmail": TierHandVerified, + "TagResource": TierHandVerified, + "TestRenderEmailTemplate": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateConfigurationSetEventDestination": TierHandVerified, + "UpdateContact": TierHandVerified, + "UpdateContactList": TierHandVerified, + "UpdateCustomVerificationEmailTemplate": TierHandVerified, + "UpdateEmailIdentityPolicy": TierHandVerified, + "UpdateEmailTemplate": TierHandVerified, + "UpdateReputationEntityCustomerManagedStatus": TierHandVerified, + "UpdateReputationEntityPolicy": TierHandVerified, + }}, + "sfn": {ModelBacked: true, Operations: map[string]Tier{ + "CreateActivity": TierHandVerified, + "CreateStateMachine": TierHandVerified, + "CreateStateMachineAlias": TierHandVerified, + "DeleteActivity": TierHandVerified, + "DeleteStateMachine": TierHandVerified, + "DeleteStateMachineAlias": TierHandVerified, + "DeleteStateMachineVersion": TierHandVerified, + "DescribeActivity": TierHandVerified, + "DescribeExecution": TierHandVerified, + "DescribeMapRun": TierHandVerified, + "DescribeStateMachine": TierHandVerified, + "DescribeStateMachineAlias": TierHandVerified, + "DescribeStateMachineForExecution": TierHandVerified, + "GetActivityTask": TierHandVerified, + "GetExecutionHistory": TierHandVerified, + "ListActivities": TierHandVerified, + "ListExecutions": TierHandVerified, + "ListMapRuns": TierHandVerified, + "ListStateMachineAliases": TierHandVerified, + "ListStateMachineVersions": TierHandVerified, + "ListStateMachines": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "PublishStateMachineVersion": TierHandVerified, + "RedriveExecution": TierHandVerified, + "SendTaskFailure": TierHandVerified, + "SendTaskHeartbeat": TierHandVerified, + "SendTaskSuccess": TierHandVerified, + "StartExecution": TierHandVerified, + "StartSyncExecution": TierHandVerified, + "StopExecution": TierHandVerified, + "TagResource": TierHandVerified, + "TestState": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateMapRun": TierHandVerified, + "UpdateStateMachine": TierHandVerified, + "UpdateStateMachineAlias": TierHandVerified, + "ValidateStateMachineDefinition": TierHandVerified, + }}, + "shield": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateDRTLogBucket": TierHandVerified, + "AssociateDRTRole": TierHandVerified, + "AssociateHealthCheck": TierHandVerified, + "AssociateProactiveEngagementDetails": TierHandVerified, + "CreateProtection": TierHandVerified, + "CreateProtectionGroup": TierHandVerified, + "CreateSubscription": TierHandVerified, + "DeleteProtection": TierHandVerified, + "DeleteProtectionGroup": TierHandVerified, + "DeleteSubscription": TierHandVerified, + "DescribeAttack": TierHandVerified, + "DescribeAttackStatistics": TierHandVerified, + "DescribeDRTAccess": TierHandVerified, + "DescribeEmergencyContactSettings": TierHandVerified, + "DescribeProtection": TierHandVerified, + "DescribeProtectionGroup": TierHandVerified, + "DescribeSubscription": TierHandVerified, + "DisableApplicationLayerAutomaticResponse": TierHandVerified, + "DisableProactiveEngagement": TierHandVerified, + "DisassociateDRTLogBucket": TierHandVerified, + "DisassociateDRTRole": TierHandVerified, + "DisassociateHealthCheck": TierHandVerified, + "EnableApplicationLayerAutomaticResponse": TierHandVerified, + "EnableProactiveEngagement": TierHandVerified, + "GetSubscriptionState": TierHandVerified, + "ListAttacks": TierHandVerified, + "ListProtectionGroups": TierHandVerified, + "ListProtections": TierHandVerified, + "ListResourcesInProtectionGroup": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApplicationLayerAutomaticResponse": TierHandVerified, + "UpdateEmergencyContactSettings": TierHandVerified, + "UpdateProtectionGroup": TierHandVerified, + "UpdateSubscription": TierHandVerified, + }}, + "sns": {ModelBacked: true, Operations: map[string]Tier{ + "AddPermission": TierHandVerified, + "CheckIfPhoneNumberIsOptedOut": TierHandVerified, + "ConfirmSubscription": TierHandVerified, + "CreatePlatformApplication": TierUnimplemented, + "CreatePlatformEndpoint": TierUnimplemented, + "CreateSMSSandboxPhoneNumber": TierUnimplemented, + "CreateTopic": TierHandVerified, + "DeleteEndpoint": TierUnimplemented, + "DeletePlatformApplication": TierUnimplemented, + "DeleteSMSSandboxPhoneNumber": TierUnimplemented, + "DeleteTopic": TierHandVerified, + "GetDataProtectionPolicy": TierHandVerified, + "GetEndpointAttributes": TierUnimplemented, + "GetPlatformApplicationAttributes": TierUnimplemented, + "GetSMSAttributes": TierUnimplemented, + "GetSMSSandboxAccountStatus": TierUnimplemented, + "GetSubscriptionAttributes": TierHandVerified, + "GetTopicAttributes": TierHandVerified, + "ListEndpointsByPlatformApplication": TierUnimplemented, + "ListOriginationNumbers": TierUnimplemented, + "ListPhoneNumbersOptedOut": TierHandVerified, + "ListPlatformApplications": TierUnimplemented, + "ListSMSSandboxPhoneNumbers": TierUnimplemented, + "ListSubscriptions": TierHandVerified, + "ListSubscriptionsByTopic": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTopics": TierHandVerified, + "OptInPhoneNumber": TierUnimplemented, + "Publish": TierHandVerified, + "PublishBatch": TierUnimplemented, + "PutDataProtectionPolicy": TierHandVerified, + "RemovePermission": TierHandVerified, + "SetEndpointAttributes": TierUnimplemented, + "SetPlatformApplicationAttributes": TierUnimplemented, + "SetSMSAttributes": TierUnimplemented, + "SetSubscriptionAttributes": TierHandVerified, + "SetTopicAttributes": TierHandVerified, + "Subscribe": TierHandVerified, + "TagResource": TierHandVerified, + "Unsubscribe": TierHandVerified, + "UntagResource": TierHandVerified, + "VerifySMSSandboxPhoneNumber": TierUnimplemented, + }}, + "sqs": {ModelBacked: true, Operations: map[string]Tier{ + "AddPermission": TierHandVerified, + "CancelMessageMoveTask": TierHandVerified, + "ChangeMessageVisibility": TierHandVerified, + "ChangeMessageVisibilityBatch": TierHandVerified, + "CreateQueue": TierHandVerified, + "DeleteMessage": TierHandVerified, + "DeleteMessageBatch": TierHandVerified, + "DeleteQueue": TierHandVerified, + "GetQueueAttributes": TierHandVerified, + "GetQueueUrl": TierHandVerified, + "ListDeadLetterSourceQueues": TierHandVerified, + "ListMessageMoveTasks": TierHandVerified, + "ListQueueTags": TierHandVerified, + "ListQueues": TierHandVerified, + "PurgeQueue": TierHandVerified, + "ReceiveMessage": TierHandVerified, + "RemovePermission": TierHandVerified, + "SendMessage": TierHandVerified, + "SendMessageBatch": TierHandVerified, + "SetQueueAttributes": TierHandVerified, + "StartMessageMoveTask": TierHandVerified, + "TagQueue": TierHandVerified, + "UntagQueue": TierHandVerified, + }}, + "ssm": {ModelBacked: true, Operations: map[string]Tier{ + "AddTagsToResource": TierHandVerified, + "AssociateOpsItemRelatedItem": TierUnimplemented, + "CancelCommand": TierUnimplemented, + "CancelMaintenanceWindowExecution": TierUnimplemented, + "CreateActivation": TierAutoCRUD, + "CreateAssociation": TierAutoCRUD, + "CreateAssociationBatch": TierAutoCRUD, + "CreateDocument": TierHandVerified, + "CreateMaintenanceWindow": TierAutoCRUD, + "CreateOpsItem": TierAutoCRUD, + "CreateOpsMetadata": TierAutoCRUD, + "CreatePatchBaseline": TierAutoCRUD, + "CreateResourceDataSync": TierAutoCRUD, + "DeleteActivation": TierAutoCRUD, + "DeleteAssociation": TierAutoCRUD, + "DeleteDocument": TierHandVerified, + "DeleteInventory": TierAutoCRUD, + "DeleteMaintenanceWindow": TierAutoCRUD, + "DeleteOpsItem": TierAutoCRUD, + "DeleteOpsMetadata": TierAutoCRUD, + "DeleteParameter": TierHandVerified, + "DeleteParameters": TierAutoCRUD, + "DeletePatchBaseline": TierAutoCRUD, + "DeleteResourceDataSync": TierAutoCRUD, + "DeleteResourcePolicy": TierAutoCRUD, + "DeregisterManagedInstance": TierAutoCRUD, + "DeregisterPatchBaselineForPatchGroup": TierAutoCRUD, + "DeregisterTargetFromMaintenanceWindow": TierAutoCRUD, + "DeregisterTaskFromMaintenanceWindow": TierAutoCRUD, + "DescribeActivations": TierAutoCRUD, + "DescribeAssociation": TierAutoCRUD, + "DescribeAssociationExecutionTargets": TierAutoCRUD, + "DescribeAssociationExecutions": TierAutoCRUD, + "DescribeAutomationExecutions": TierAutoCRUD, + "DescribeAutomationStepExecutions": TierAutoCRUD, + "DescribeAvailablePatches": TierAutoCRUD, + "DescribeDocument": TierHandVerified, + "DescribeDocumentPermission": TierAutoCRUD, + "DescribeEffectiveInstanceAssociations": TierAutoCRUD, + "DescribeEffectivePatchesForPatchBaseline": TierAutoCRUD, + "DescribeInstanceAssociationsStatus": TierAutoCRUD, + "DescribeInstanceInformation": TierAutoCRUD, + "DescribeInstancePatchStates": TierAutoCRUD, + "DescribeInstancePatchStatesForPatchGroup": TierAutoCRUD, + "DescribeInstancePatches": TierAutoCRUD, + "DescribeInstanceProperties": TierAutoCRUD, + "DescribeInventoryDeletions": TierAutoCRUD, + "DescribeMaintenanceWindowExecutionTaskInvocations": TierAutoCRUD, + "DescribeMaintenanceWindowExecutionTasks": TierAutoCRUD, + "DescribeMaintenanceWindowExecutions": TierAutoCRUD, + "DescribeMaintenanceWindowSchedule": TierAutoCRUD, + "DescribeMaintenanceWindowTargets": TierAutoCRUD, + "DescribeMaintenanceWindowTasks": TierAutoCRUD, + "DescribeMaintenanceWindows": TierAutoCRUD, + "DescribeMaintenanceWindowsForTarget": TierAutoCRUD, + "DescribeOpsItems": TierAutoCRUD, + "DescribeParameters": TierHandVerified, + "DescribePatchBaselines": TierAutoCRUD, + "DescribePatchGroupState": TierAutoCRUD, + "DescribePatchGroups": TierAutoCRUD, + "DescribePatchProperties": TierAutoCRUD, + "DescribeSessions": TierAutoCRUD, + "DisassociateOpsItemRelatedItem": TierUnimplemented, + "GetAccessToken": TierAutoCRUD, + "GetAutomationExecution": TierAutoCRUD, + "GetCalendarState": TierAutoCRUD, + "GetCommandInvocation": TierAutoCRUD, + "GetConnectionStatus": TierAutoCRUD, + "GetDefaultPatchBaseline": TierAutoCRUD, + "GetDeployablePatchSnapshotForInstance": TierAutoCRUD, + "GetDocument": TierHandVerified, + "GetExecutionPreview": TierAutoCRUD, + "GetInventory": TierAutoCRUD, + "GetInventorySchema": TierAutoCRUD, + "GetMaintenanceWindow": TierAutoCRUD, + "GetMaintenanceWindowExecution": TierAutoCRUD, + "GetMaintenanceWindowExecutionTask": TierAutoCRUD, + "GetMaintenanceWindowExecutionTaskInvocation": TierAutoCRUD, + "GetMaintenanceWindowTask": TierAutoCRUD, + "GetOpsItem": TierAutoCRUD, + "GetOpsMetadata": TierAutoCRUD, + "GetOpsSummary": TierAutoCRUD, + "GetParameter": TierHandVerified, + "GetParameterHistory": TierHandVerified, + "GetParameters": TierHandVerified, + "GetParametersByPath": TierHandVerified, + "GetPatchBaseline": TierAutoCRUD, + "GetPatchBaselineForPatchGroup": TierAutoCRUD, + "GetResourcePolicies": TierAutoCRUD, + "GetServiceSetting": TierAutoCRUD, + "LabelParameterVersion": TierHandVerified, + "ListAssociationVersions": TierAutoCRUD, + "ListAssociations": TierAutoCRUD, + "ListCommandInvocations": TierAutoCRUD, + "ListCommands": TierAutoCRUD, + "ListComplianceItems": TierAutoCRUD, + "ListComplianceSummaries": TierAutoCRUD, + "ListDocumentMetadataHistory": TierAutoCRUD, + "ListDocumentVersions": TierAutoCRUD, + "ListDocuments": TierHandVerified, + "ListInventoryEntries": TierAutoCRUD, + "ListNodes": TierAutoCRUD, + "ListNodesSummary": TierAutoCRUD, + "ListOpsItemEvents": TierAutoCRUD, + "ListOpsItemRelatedItems": TierAutoCRUD, + "ListOpsMetadata": TierAutoCRUD, + "ListResourceComplianceSummaries": TierAutoCRUD, + "ListResourceDataSync": TierAutoCRUD, + "ListTagsForResource": TierHandVerified, + "ModifyDocumentPermission": TierAutoCRUD, + "PutComplianceItems": TierAutoCRUD, + "PutInventory": TierAutoCRUD, + "PutParameter": TierHandVerified, + "PutResourcePolicy": TierAutoCRUD, + "RegisterDefaultPatchBaseline": TierAutoCRUD, + "RegisterPatchBaselineForPatchGroup": TierAutoCRUD, + "RegisterTargetWithMaintenanceWindow": TierAutoCRUD, + "RegisterTaskWithMaintenanceWindow": TierAutoCRUD, + "RemoveTagsFromResource": TierHandVerified, + "ResetServiceSetting": TierUnimplemented, + "ResumeSession": TierUnimplemented, + "SendAutomationSignal": TierUnimplemented, + "SendCommand": TierUnimplemented, + "StartAccessRequest": TierUnimplemented, + "StartAssociationsOnce": TierUnimplemented, + "StartAutomationExecution": TierUnimplemented, + "StartChangeRequestExecution": TierUnimplemented, + "StartExecutionPreview": TierUnimplemented, + "StartSession": TierHandVerified, + "StopAutomationExecution": TierUnimplemented, + "TerminateSession": TierHandVerified, + "UnlabelParameterVersion": TierUnimplemented, + "UpdateAssociation": TierAutoCRUD, + "UpdateAssociationStatus": TierAutoCRUD, + "UpdateDocument": TierHandVerified, + "UpdateDocumentDefaultVersion": TierAutoCRUD, + "UpdateDocumentMetadata": TierAutoCRUD, + "UpdateMaintenanceWindow": TierAutoCRUD, + "UpdateMaintenanceWindowTarget": TierAutoCRUD, + "UpdateMaintenanceWindowTask": TierAutoCRUD, + "UpdateManagedInstanceRole": TierAutoCRUD, + "UpdateOpsItem": TierAutoCRUD, + "UpdateOpsMetadata": TierAutoCRUD, + "UpdatePatchBaseline": TierAutoCRUD, + "UpdateResourceDataSync": TierAutoCRUD, + "UpdateServiceSetting": TierAutoCRUD, + }}, + "ssoadmin": {ModelBacked: true, Operations: map[string]Tier{ + "AddRegion": TierHandVerified, + "AttachCustomerManagedPolicyReferenceToPermissionSet": TierHandVerified, + "AttachManagedPolicyToPermissionSet": TierHandVerified, + "CreateAccountAssignment": TierHandVerified, + "CreateApplication": TierHandVerified, + "CreateApplicationAssignment": TierHandVerified, + "CreateInstance": TierHandVerified, + "CreateInstanceAccessControlAttributeConfiguration": TierHandVerified, + "CreatePermissionSet": TierHandVerified, + "CreateTrustedTokenIssuer": TierHandVerified, + "DeleteAccountAssignment": TierHandVerified, + "DeleteApplication": TierHandVerified, + "DeleteApplicationAccessScope": TierAutoCRUD, + "DeleteApplicationAssignment": TierHandVerified, + "DeleteApplicationAuthenticationMethod": TierAutoCRUD, + "DeleteApplicationGrant": TierAutoCRUD, + "DeleteInlinePolicyFromPermissionSet": TierHandVerified, + "DeleteInstance": TierHandVerified, + "DeleteInstanceAccessControlAttributeConfiguration": TierHandVerified, + "DeletePermissionSet": TierHandVerified, + "DeletePermissionsBoundaryFromPermissionSet": TierHandVerified, + "DeleteTrustedTokenIssuer": TierHandVerified, + "DescribeAccountAssignmentCreationStatus": TierHandVerified, + "DescribeAccountAssignmentDeletionStatus": TierHandVerified, + "DescribeApplication": TierHandVerified, + "DescribeApplicationAssignment": TierHandVerified, + "DescribeApplicationProvider": TierHandVerified, + "DescribeInstance": TierHandVerified, + "DescribeInstanceAccessControlAttributeConfiguration": TierHandVerified, + "DescribePermissionSet": TierHandVerified, + "DescribePermissionSetProvisioningStatus": TierHandVerified, + "DescribeRegion": TierHandVerified, + "DescribeTrustedTokenIssuer": TierHandVerified, + "DetachCustomerManagedPolicyReferenceFromPermissionSet": TierHandVerified, + "DetachManagedPolicyFromPermissionSet": TierHandVerified, + "GetApplicationAccessScope": TierAutoCRUD, + "GetApplicationAssignmentConfiguration": TierHandVerified, + "GetApplicationAuthenticationMethod": TierAutoCRUD, + "GetApplicationGrant": TierAutoCRUD, + "GetApplicationSessionConfiguration": TierHandVerified, + "GetInlinePolicyForPermissionSet": TierHandVerified, + "GetPermissionsBoundaryForPermissionSet": TierHandVerified, + "ListAccountAssignmentCreationStatus": TierHandVerified, + "ListAccountAssignmentDeletionStatus": TierHandVerified, + "ListAccountAssignments": TierHandVerified, + "ListAccountAssignmentsForPrincipal": TierHandVerified, + "ListAccountsForProvisionedPermissionSet": TierHandVerified, + "ListApplicationAccessScopes": TierAutoCRUD, + "ListApplicationAssignments": TierHandVerified, + "ListApplicationAssignmentsForPrincipal": TierHandVerified, + "ListApplicationAuthenticationMethods": TierAutoCRUD, + "ListApplicationGrants": TierAutoCRUD, + "ListApplicationProviders": TierHandVerified, + "ListApplications": TierHandVerified, + "ListCustomerManagedPolicyReferencesInPermissionSet": TierHandVerified, + "ListInstances": TierHandVerified, + "ListManagedPoliciesInPermissionSet": TierHandVerified, + "ListPermissionSetProvisioningStatus": TierHandVerified, + "ListPermissionSets": TierHandVerified, + "ListPermissionSetsProvisionedToAccount": TierHandVerified, + "ListRegions": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTrustedTokenIssuers": TierHandVerified, + "ProvisionPermissionSet": TierHandVerified, + "PutApplicationAccessScope": TierAutoCRUD, + "PutApplicationAssignmentConfiguration": TierHandVerified, + "PutApplicationAuthenticationMethod": TierAutoCRUD, + "PutApplicationGrant": TierAutoCRUD, + "PutApplicationSessionConfiguration": TierHandVerified, + "PutInlinePolicyToPermissionSet": TierHandVerified, + "PutPermissionsBoundaryToPermissionSet": TierHandVerified, + "RemoveRegion": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateApplication": TierHandVerified, + "UpdateInstance": TierHandVerified, + "UpdateInstanceAccessControlAttributeConfiguration": TierHandVerified, + "UpdatePermissionSet": TierHandVerified, + "UpdateTrustedTokenIssuer": TierHandVerified, + }}, + "sts": {ModelBacked: true, Operations: map[string]Tier{ + "AssumeRole": TierHandVerified, + "AssumeRoleWithSAML": TierUnimplemented, + "AssumeRoleWithWebIdentity": TierUnimplemented, + "AssumeRoot": TierUnimplemented, + "DecodeAuthorizationMessage": TierUnimplemented, + "GetAccessKeyInfo": TierHandVerified, + "GetCallerIdentity": TierHandVerified, + "GetDelegatedAccessToken": TierUnimplemented, + "GetFederationToken": TierUnimplemented, + "GetSessionToken": TierHandVerified, + "GetWebIdentityToken": TierUnimplemented, + }}, + "support": {ModelBacked: true, Operations: map[string]Tier{ + "AddAttachmentsToSet": TierHandVerified, + "AddCommunicationToCase": TierHandVerified, + "CreateCase": TierHandVerified, + "CreateSupportPlan": TierHandVerified, + "DeleteAttachmentSet": TierHandVerified, + "DescribeAttachment": TierHandVerified, + "DescribeAttachmentSet": TierHandVerified, + "DescribeCaseHistory": TierHandVerified, + "DescribeCases": TierHandVerified, + "DescribeCategories": TierHandVerified, + "DescribeCommunications": TierHandVerified, + "DescribeCreateCaseOptions": TierHandVerified, + "DescribeSecureCaseOperations": TierHandVerified, + "DescribeServiceHealth": TierHandVerified, + "DescribeServices": TierHandVerified, + "DescribeSeverityLevels": TierHandVerified, + "DescribeSupportLevel": TierHandVerified, + "DescribeSupportPlan": TierHandVerified, + "DescribeSupportedLanguages": TierHandVerified, + "DescribeTopicPaths": TierHandVerified, + "DescribeTopics": TierHandVerified, + "DescribeTrustedAdvisorCheckRefreshStatuses": TierHandVerified, + "DescribeTrustedAdvisorCheckResult": TierHandVerified, + "DescribeTrustedAdvisorCheckSummaries": TierHandVerified, + "DescribeTrustedAdvisorChecks": TierHandVerified, + "EscalateCase": TierHandVerified, + "GetOnboardingStatus": TierHandVerified, + "ListAttachments": TierHandVerified, + "ListCaseCategories": TierHandVerified, + "ListCases": TierHandVerified, + "ListSupportPlans": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ModifySecureCaseParameters": TierHandVerified, + "RefreshTrustedAdvisorCheck": TierHandVerified, + "ReopenCase": TierHandVerified, + "ResolveCase": TierHandVerified, + "SearchCases": TierHandVerified, + "StartOnboarding": TierHandVerified, + "TagResource": TierHandVerified, + "TransferCase": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateCaseAttributes": TierHandVerified, + "UpdateSupportPlan": TierHandVerified, + }}, + "swf": {ModelBacked: true, Operations: map[string]Tier{ + "CountClosedWorkflowExecutions": TierHandVerified, + "CountOpenWorkflowExecutions": TierHandVerified, + "CountPendingActivityTasks": TierHandVerified, + "CountPendingDecisionTasks": TierHandVerified, + "DeleteActivityType": TierHandVerified, + "DeleteWorkflowType": TierHandVerified, + "DeprecateActivityType": TierHandVerified, + "DeprecateDomain": TierHandVerified, + "DeprecateWorkflowType": TierHandVerified, + "DescribeActivityType": TierHandVerified, + "DescribeDomain": TierHandVerified, + "DescribeWorkflowExecution": TierHandVerified, + "DescribeWorkflowType": TierHandVerified, + "GetWorkflowExecutionHistory": TierHandVerified, + "ListActivityTypes": TierHandVerified, + "ListClosedWorkflowExecutions": TierHandVerified, + "ListDomains": TierHandVerified, + "ListOpenWorkflowExecutions": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListWorkflowTypes": TierHandVerified, + "PollForActivityTask": TierHandVerified, + "PollForDecisionTask": TierHandVerified, + "RecordActivityTaskHeartbeat": TierHandVerified, + "RegisterActivityType": TierHandVerified, + "RegisterDomain": TierHandVerified, + "RegisterWorkflowType": TierHandVerified, + "RequestCancelWorkflowExecution": TierHandVerified, + "RespondActivityTaskCanceled": TierHandVerified, + "RespondActivityTaskCompleted": TierHandVerified, + "RespondActivityTaskFailed": TierHandVerified, + "RespondDecisionTaskCompleted": TierHandVerified, + "SignalWorkflowExecution": TierHandVerified, + "StartWorkflowExecution": TierHandVerified, + "TagResource": TierHandVerified, + "TerminateWorkflowExecution": TierHandVerified, + "UndeprecateActivityType": TierHandVerified, + "UndeprecateDomain": TierHandVerified, + "UndeprecateWorkflowType": TierHandVerified, + "UntagResource": TierHandVerified, + }}, + "textract": {ModelBacked: true, Operations: map[string]Tier{ + "AnalyzeDocument": TierHandVerified, + "AnalyzeExpense": TierHandVerified, + "AnalyzeID": TierHandVerified, + "CancelJob": TierHandVerified, + "CreateAdapter": TierHandVerified, + "CreateAdapterVersion": TierHandVerified, + "DeleteAdapter": TierHandVerified, + "DeleteAdapterVersion": TierHandVerified, + "DescribeAdapter": TierHandVerified, + "DescribeAdapterVersion": TierHandVerified, + "DescribeServiceQuotas": TierHandVerified, + "DetectDocumentText": TierHandVerified, + "GetAdapter": TierHandVerified, + "GetAdapterVersion": TierHandVerified, + "GetAnalyzeDocumentJobResults": TierHandVerified, + "GetDetectDominantLanguagesJobResults": TierHandVerified, + "GetDocumentAnalysis": TierHandVerified, + "GetDocumentTextDetection": TierHandVerified, + "GetEntitiesDetectionJobResults": TierHandVerified, + "GetExpenseAnalysis": TierHandVerified, + "GetKeyValuesDetectionJobResults": TierHandVerified, + "GetLabelDetectionJobResults": TierHandVerified, + "GetLendingAnalysis": TierHandVerified, + "GetLendingAnalysisSummary": TierHandVerified, + "GetServiceStatus": TierHandVerified, + "ListAdapterJobs": TierHandVerified, + "ListAdapterVersions": TierHandVerified, + "ListAdapters": TierHandVerified, + "ListFeedback": TierHandVerified, + "ListJobs": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "StartAdapterTraining": TierHandVerified, + "StartDetectDominantLanguages": TierHandVerified, + "StartDocumentAnalysis": TierHandVerified, + "StartDocumentTextDetection": TierHandVerified, + "StartDocumentTextDetectionV2": TierHandVerified, + "StartEntitiesDetection": TierHandVerified, + "StartExpenseAnalysis": TierHandVerified, + "StartKeyValuesDetection": TierHandVerified, + "StartLabelDetection": TierHandVerified, + "StartLendingAnalysis": TierHandVerified, + "StopAdapterTraining": TierHandVerified, + "SubmitFeedback": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAdapter": TierHandVerified, + }}, + "timestreamwrite": {ModelBacked: true, Operations: map[string]Tier{ + "CreateBatchLoadTask": TierHandVerified, + "CreateDatabase": TierHandVerified, + "CreateTable": TierHandVerified, + "DeleteDatabase": TierHandVerified, + "DeleteTable": TierHandVerified, + "DescribeBatchLoadTask": TierHandVerified, + "DescribeDatabase": TierHandVerified, + "DescribeEndpoints": TierHandVerified, + "DescribeTable": TierHandVerified, + "ListBatchLoadTasks": TierHandVerified, + "ListDatabases": TierHandVerified, + "ListTables": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ResumeBatchLoadTask": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateDatabase": TierHandVerified, + "UpdateTable": TierHandVerified, + "WriteRecords": TierHandVerified, + }}, + "transcribe": {ModelBacked: true, Operations: map[string]Tier{ + "CreateCallAnalyticsCategory": TierHandVerified, + "CreateLanguageModel": TierHandVerified, + "CreateMedicalVocabulary": TierHandVerified, + "CreateVocabulary": TierHandVerified, + "CreateVocabularyFilter": TierHandVerified, + "DeleteCallAnalyticsCategory": TierHandVerified, + "DeleteCallAnalyticsJob": TierHandVerified, + "DeleteLanguageModel": TierHandVerified, + "DeleteMedicalScribeJob": TierHandVerified, + "DeleteMedicalTranscriptionJob": TierHandVerified, + "DeleteMedicalVocabulary": TierHandVerified, + "DeleteTranscriptionJob": TierHandVerified, + "DeleteVocabulary": TierHandVerified, + "DeleteVocabularyFilter": TierHandVerified, + "DescribeLanguageModel": TierHandVerified, + "GetCallAnalyticsCategory": TierHandVerified, + "GetCallAnalyticsJob": TierHandVerified, + "GetMedicalScribeJob": TierHandVerified, + "GetMedicalTranscriptionJob": TierHandVerified, + "GetMedicalVocabulary": TierHandVerified, + "GetTranscriptionJob": TierHandVerified, + "GetVocabulary": TierHandVerified, + "GetVocabularyFilter": TierHandVerified, + "ListCallAnalyticsCategories": TierHandVerified, + "ListCallAnalyticsJobs": TierHandVerified, + "ListLanguageModels": TierHandVerified, + "ListMedicalScribeJobs": TierHandVerified, + "ListMedicalTranscriptionJobs": TierHandVerified, + "ListMedicalVocabularies": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListTranscriptionJobs": TierHandVerified, + "ListVocabularies": TierHandVerified, + "ListVocabularyFilters": TierHandVerified, + "StartCallAnalyticsJob": TierHandVerified, + "StartMedicalScribeJob": TierHandVerified, + "StartMedicalTranscriptionJob": TierHandVerified, + "StartTranscriptionJob": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateCallAnalyticsCategory": TierHandVerified, + "UpdateMedicalVocabulary": TierHandVerified, + "UpdateVocabulary": TierHandVerified, + "UpdateVocabularyFilter": TierHandVerified, + }}, + "transfer": {ModelBacked: true, Operations: map[string]Tier{ + "CreateAccess": TierHandVerified, + "CreateAgreement": TierAutoCRUD, + "CreateConnector": TierAutoCRUD, + "CreateProfile": TierAutoCRUD, + "CreateServer": TierHandVerified, + "CreateUser": TierHandVerified, + "CreateWebApp": TierAutoCRUD, + "CreateWorkflow": TierAutoCRUD, + "DeleteAccess": TierHandVerified, + "DeleteAgreement": TierAutoCRUD, + "DeleteCertificate": TierAutoCRUD, + "DeleteConnector": TierAutoCRUD, + "DeleteHostKey": TierHandVerified, + "DeleteProfile": TierAutoCRUD, + "DeleteServer": TierHandVerified, + "DeleteSshPublicKey": TierHandVerified, + "DeleteUser": TierHandVerified, + "DeleteWebApp": TierAutoCRUD, + "DeleteWebAppCustomization": TierAutoCRUD, + "DeleteWorkflow": TierAutoCRUD, + "DescribeAccess": TierHandVerified, + "DescribeAgreement": TierAutoCRUD, + "DescribeCertificate": TierAutoCRUD, + "DescribeConnector": TierAutoCRUD, + "DescribeExecution": TierHandVerified, + "DescribeHostKey": TierHandVerified, + "DescribeProfile": TierAutoCRUD, + "DescribeSecurityPolicy": TierHandVerified, + "DescribeServer": TierHandVerified, + "DescribeUser": TierHandVerified, + "DescribeWebApp": TierAutoCRUD, + "DescribeWebAppCustomization": TierAutoCRUD, + "DescribeWorkflow": TierAutoCRUD, + "ImportCertificate": TierUnimplemented, + "ImportHostKey": TierHandVerified, + "ImportSshPublicKey": TierHandVerified, + "ListAccesses": TierHandVerified, + "ListAgreements": TierAutoCRUD, + "ListCertificates": TierAutoCRUD, + "ListConnectors": TierAutoCRUD, + "ListExecutions": TierHandVerified, + "ListFileTransferResults": TierHandVerified, + "ListHostKeys": TierHandVerified, + "ListProfiles": TierAutoCRUD, + "ListSecurityPolicies": TierHandVerified, + "ListServers": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListUsers": TierHandVerified, + "ListWebApps": TierAutoCRUD, + "ListWorkflows": TierAutoCRUD, + "SendWorkflowStepState": TierHandVerified, + "StartDirectoryListing": TierHandVerified, + "StartFileTransfer": TierHandVerified, + "StartRemoteDelete": TierHandVerified, + "StartRemoteMove": TierHandVerified, + "StartServer": TierHandVerified, + "StopServer": TierHandVerified, + "TagResource": TierHandVerified, + "TestConnection": TierHandVerified, + "TestIdentityProvider": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateAccess": TierHandVerified, + "UpdateAgreement": TierAutoCRUD, + "UpdateCertificate": TierAutoCRUD, + "UpdateConnector": TierAutoCRUD, + "UpdateHostKey": TierHandVerified, + "UpdateProfile": TierAutoCRUD, + "UpdateServer": TierHandVerified, + "UpdateUser": TierHandVerified, + "UpdateWebApp": TierAutoCRUD, + "UpdateWebAppCustomization": TierAutoCRUD, + }}, + "verifiedpermissions": {ModelBacked: false, Operations: map[string]Tier{ + "BatchEvaluatePermissions": TierHandVerified, + "BatchGetEntityRelationship": TierHandVerified, + "CreateEntityRelationship": TierHandVerified, + "CreateIdentityPool": TierHandVerified, + "CreatePermission": TierHandVerified, + "CreatePermissionGroup": TierHandVerified, + "CreatePolicy": TierHandVerified, + "CreatePolicyTemplate": TierHandVerified, + "CreateSchema": TierHandVerified, + "DeleteEntityRelationship": TierHandVerified, + "DeleteIdentityPool": TierHandVerified, + "DeletePermission": TierHandVerified, + "DeletePermissionGroup": TierHandVerified, + "DeletePolicy": TierHandVerified, + "DeletePolicyTemplate": TierHandVerified, + "DeleteSchema": TierHandVerified, + "GetIdentityPool": TierHandVerified, + "GetPermission": TierHandVerified, + "GetPermissionGroup": TierHandVerified, + "GetPermissionsPolicy": TierHandVerified, + "GetPolicy": TierHandVerified, + "GetPolicyTemplate": TierHandVerified, + "GetSchema": TierHandVerified, + "IsAuthorized": TierHandVerified, + "ListEntityRelationships": TierHandVerified, + "ListIdentityPools": TierHandVerified, + "ListPermissionGroups": TierHandVerified, + "ListPermissions": TierHandVerified, + "ListPolicies": TierHandVerified, + "ListPolicyTemplates": TierHandVerified, + "ListSchemaReaders": TierHandVerified, + "ListSchemaWriters": TierHandVerified, + "PutPermissionsPolicy": TierHandVerified, + "PutPolicy": TierHandVerified, + "PutPolicyTemplate": TierHandVerified, + "PutSchema": TierHandVerified, + }}, + "waf": {ModelBacked: true, Operations: map[string]Tier{ + "CreateByteMatchSet": TierHandVerified, + "CreateGeoMatchSet": TierHandVerified, + "CreateIPSet": TierHandVerified, + "CreateRateBasedRule": TierHandVerified, + "CreateRegexMatchSet": TierHandVerified, + "CreateRegexPatternSet": TierHandVerified, + "CreateRule": TierHandVerified, + "CreateRuleGroup": TierHandVerified, + "CreateSizeConstraintSet": TierHandVerified, + "CreateSqlInjectionMatchSet": TierHandVerified, + "CreateWebACL": TierHandVerified, + "CreateWebACLMigrationStack": TierHandVerified, + "CreateXssMatchSet": TierHandVerified, + "DeleteByteMatchSet": TierHandVerified, + "DeleteGeoMatchSet": TierHandVerified, + "DeleteIPSet": TierHandVerified, + "DeleteLoggingConfiguration": TierHandVerified, + "DeletePermissionPolicy": TierHandVerified, + "DeleteRateBasedRule": TierHandVerified, + "DeleteRegexMatchSet": TierHandVerified, + "DeleteRegexPatternSet": TierHandVerified, + "DeleteRule": TierHandVerified, + "DeleteRuleGroup": TierHandVerified, + "DeleteSizeConstraintSet": TierHandVerified, + "DeleteSqlInjectionMatchSet": TierHandVerified, + "DeleteWebACL": TierHandVerified, + "DeleteXssMatchSet": TierHandVerified, + "GetByteMatchSet": TierHandVerified, + "GetChangeToken": TierHandVerified, + "GetChangeTokenStatus": TierHandVerified, + "GetGeoMatchSet": TierHandVerified, + "GetIPSet": TierHandVerified, + "GetLoggingConfiguration": TierHandVerified, + "GetPermissionPolicy": TierHandVerified, + "GetRateBasedRule": TierHandVerified, + "GetRateBasedRuleManagedKeys": TierHandVerified, + "GetRegexMatchSet": TierHandVerified, + "GetRegexPatternSet": TierHandVerified, + "GetRule": TierHandVerified, + "GetRuleGroup": TierHandVerified, + "GetSampledRequests": TierHandVerified, + "GetSizeConstraintSet": TierHandVerified, + "GetSqlInjectionMatchSet": TierHandVerified, + "GetWebACL": TierHandVerified, + "GetXssMatchSet": TierHandVerified, + "ListActivatedRulesInRuleGroup": TierHandVerified, + "ListByteMatchSets": TierHandVerified, + "ListGeoMatchSets": TierHandVerified, + "ListIPSets": TierHandVerified, + "ListLoggingConfigurations": TierHandVerified, + "ListRateBasedRules": TierHandVerified, + "ListRegexMatchSets": TierHandVerified, + "ListRegexPatternSets": TierHandVerified, + "ListRuleGroups": TierHandVerified, + "ListRules": TierHandVerified, + "ListSizeConstraintSets": TierHandVerified, + "ListSqlInjectionMatchSets": TierHandVerified, + "ListSubscribedRuleGroups": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListWebACLs": TierHandVerified, + "ListXssMatchSets": TierHandVerified, + "PutLoggingConfiguration": TierHandVerified, + "PutPermissionPolicy": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateByteMatchSet": TierHandVerified, + "UpdateGeoMatchSet": TierHandVerified, + "UpdateIPSet": TierHandVerified, + "UpdateRateBasedRule": TierHandVerified, + "UpdateRegexMatchSet": TierHandVerified, + "UpdateRegexPatternSet": TierHandVerified, + "UpdateRule": TierHandVerified, + "UpdateRuleGroup": TierHandVerified, + "UpdateSizeConstraintSet": TierHandVerified, + "UpdateSqlInjectionMatchSet": TierHandVerified, + "UpdateWebACL": TierHandVerified, + "UpdateXssMatchSet": TierHandVerified, + }}, + "wafv2": {ModelBacked: true, Operations: map[string]Tier{ + "AssociateWebACL": TierHandVerified, + "CheckCapacity": TierHandVerified, + "CreateAPIKey": TierHandVerified, + "CreateIPSet": TierHandVerified, + "CreateRegexPatternSet": TierHandVerified, + "CreateRuleGroup": TierHandVerified, + "CreateWebACL": TierHandVerified, + "DeleteAPIKey": TierHandVerified, + "DeleteFirewallManagerRuleGroups": TierHandVerified, + "DeleteIPSet": TierHandVerified, + "DeleteLoggingConfiguration": TierHandVerified, + "DeletePermissionPolicy": TierHandVerified, + "DeleteRegexPatternSet": TierHandVerified, + "DeleteRuleGroup": TierHandVerified, + "DeleteWebACL": TierHandVerified, + "DescribeAllManagedProducts": TierHandVerified, + "DescribeManagedProductsByVendor": TierHandVerified, + "DescribeManagedRuleGroup": TierHandVerified, + "DisassociateWebACL": TierHandVerified, + "GenerateMobileSdkReleaseUrl": TierUnimplemented, + "GetDecryptedAPIKey": TierHandVerified, + "GetIPSet": TierHandVerified, + "GetLoggingConfiguration": TierHandVerified, + "GetManagedRuleSet": TierHandVerified, + "GetMobileSdkRelease": TierAutoCRUD, + "GetPermissionPolicy": TierHandVerified, + "GetRateBasedStatementManagedKeys": TierHandVerified, + "GetRegexPatternSet": TierHandVerified, + "GetRuleGroup": TierHandVerified, + "GetSampledRequests": TierHandVerified, + "GetTopPathStatisticsByTraffic": TierAutoCRUD, + "GetWebACL": TierHandVerified, + "GetWebACLForResource": TierHandVerified, + "ListAPIKeys": TierHandVerified, + "ListAvailableManagedRuleGroupVersions": TierHandVerified, + "ListAvailableManagedRuleGroups": TierHandVerified, + "ListIPSets": TierHandVerified, + "ListLoggingConfigurations": TierHandVerified, + "ListManagedRuleSets": TierHandVerified, + "ListMobileSdkReleases": TierAutoCRUD, + "ListRegexPatternSets": TierHandVerified, + "ListResourcesForWebACL": TierHandVerified, + "ListRuleGroups": TierHandVerified, + "ListTagsForResource": TierHandVerified, + "ListWebACLs": TierHandVerified, + "PutLoggingConfiguration": TierHandVerified, + "PutManagedRuleSetVersions": TierHandVerified, + "PutPermissionPolicy": TierHandVerified, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateIPSet": TierHandVerified, + "UpdateManagedRuleSetVersionExpiryDate": TierHandVerified, + "UpdateRegexPatternSet": TierHandVerified, + "UpdateRuleGroup": TierHandVerified, + "UpdateWebACL": TierHandVerified, + }}, + "xray": {ModelBacked: true, Operations: map[string]Tier{ + "BatchGetTraces": TierHandVerified, + "CancelTraceRetrieval": TierUnimplemented, + "CreateGroup": TierHandVerified, + "CreateSamplingRule": TierHandVerified, + "DeleteGroup": TierHandVerified, + "DeleteResourcePolicy": TierHandVerified, + "DeleteSamplingRule": TierHandVerified, + "GetEncryptionConfig": TierHandVerified, + "GetGroup": TierHandVerified, + "GetGroups": TierHandVerified, + "GetIndexingRules": TierUnimplemented, + "GetInsight": TierHandVerified, + "GetInsightEvents": TierHandVerified, + "GetInsightImpactGraph": TierHandVerified, + "GetInsightSummaries": TierHandVerified, + "GetResourcePolicy": TierHandVerified, + "GetRetrievedTracesGraph": TierUnimplemented, + "GetSamplingRules": TierHandVerified, + "GetSamplingStatisticSummaries": TierHandVerified, + "GetSamplingTargets": TierHandVerified, + "GetServiceGraph": TierHandVerified, + "GetTimeSeriesServiceStatistics": TierHandVerified, + "GetTraceGraph": TierHandVerified, + "GetTraceSegmentDestination": TierUnimplemented, + "GetTraceSummaries": TierHandVerified, + "ListResourcePolicies": TierHandVerified, + "ListRetrievedTraces": TierUnimplemented, + "ListTagsForResource": TierHandVerified, + "PutEncryptionConfig": TierHandVerified, + "PutResourcePolicy": TierHandVerified, + "PutTelemetryRecords": TierHandVerified, + "PutTraceSegments": TierHandVerified, + "StartTraceRetrieval": TierUnimplemented, + "TagResource": TierHandVerified, + "UntagResource": TierHandVerified, + "UpdateGroup": TierHandVerified, + "UpdateIndexingRule": TierUnimplemented, + "UpdateSamplingRule": TierHandVerified, + "UpdateTraceSegmentDestination": TierUnimplemented, + }}, +} + +// Lookup returns the tier of one operation. The second result is false when the +// service or operation is unknown to DevCloud — which is not the same as +// unimplemented, since an unknown service is not served at all. +func Lookup(service, op string) (Tier, bool) { + svc, ok := Services[service] + if !ok { + return "", false + } + tier, ok := svc.Operations[op] + return tier, ok +} + +// Counts returns the number of operations per tier across every service. +func Counts() map[Tier]int { + counts := make(map[Tier]int, 3) + for _, svc := range Services { + for _, tier := range svc.Operations { + counts[tier]++ + } + } + return counts +} diff --git a/internal/generated/lambda/base_provider.go b/internal/generated/lambda/base_provider.go index 618cb18..9f56f3d 100644 --- a/internal/generated/lambda/base_provider.go +++ b/internal/generated/lambda/base_provider.go @@ -11,22 +11,102 @@ var ErrNotImplemented = fmt.Errorf("operation not implemented") type BaseProvider struct{} +func (b *BaseProvider) AddLayerVersionPermission(ctx context.Context, input *AddLayerVersionPermissionRequest) (*AddLayerVersionPermissionResponse, error) { + return nil, fmt.Errorf("AddLayerVersionPermission: %w", ErrNotImplemented) +} + +func (b *BaseProvider) AddPermission(ctx context.Context, input *AddPermissionRequest) (*AddPermissionResponse, error) { + return nil, fmt.Errorf("AddPermission: %w", ErrNotImplemented) +} + func (b *BaseProvider) CheckpointDurableExecution(ctx context.Context, input *CheckpointDurableExecutionRequest) (*CheckpointDurableExecutionResponse, error) { return nil, fmt.Errorf("CheckpointDurableExecution: %w", ErrNotImplemented) } +func (b *BaseProvider) CreateAlias(ctx context.Context, input *CreateAliasRequest) (*AliasConfiguration, error) { + return nil, fmt.Errorf("CreateAlias: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateCapacityProvider(ctx context.Context, input *CreateCapacityProviderRequest) (*CreateCapacityProviderResponse, error) { + return nil, fmt.Errorf("CreateCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateCodeSigningConfig(ctx context.Context, input *CreateCodeSigningConfigRequest) (*CreateCodeSigningConfigResponse, error) { + return nil, fmt.Errorf("CreateCodeSigningConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateEventSourceMapping(ctx context.Context, input *CreateEventSourceMappingRequest) (*EventSourceMappingConfiguration, error) { + return nil, fmt.Errorf("CreateEventSourceMapping: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateFunction(ctx context.Context, input *CreateFunctionRequest) (*FunctionConfiguration, error) { + return nil, fmt.Errorf("CreateFunction: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateFunctionUrlConfig(ctx context.Context, input *CreateFunctionUrlConfigRequest) (*CreateFunctionUrlConfigResponse, error) { + return nil, fmt.Errorf("CreateFunctionUrlConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteAlias(ctx context.Context, input *DeleteAliasRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteAlias: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteCapacityProvider(ctx context.Context, input *DeleteCapacityProviderRequest) (*DeleteCapacityProviderResponse, error) { + return nil, fmt.Errorf("DeleteCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteCodeSigningConfig(ctx context.Context, input *DeleteCodeSigningConfigRequest) (*DeleteCodeSigningConfigResponse, error) { + return nil, fmt.Errorf("DeleteCodeSigningConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteEventSourceMapping(ctx context.Context, input *DeleteEventSourceMappingRequest) (*EventSourceMappingConfiguration, error) { + return nil, fmt.Errorf("DeleteEventSourceMapping: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteFunction(ctx context.Context, input *DeleteFunctionRequest) (*DeleteFunctionResponse, error) { return nil, fmt.Errorf("DeleteFunction: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteFunctionCodeSigningConfig(ctx context.Context, input *DeleteFunctionCodeSigningConfigRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteFunctionCodeSigningConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteFunctionConcurrency(ctx context.Context, input *DeleteFunctionConcurrencyRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteFunctionConcurrency: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteFunctionEventInvokeConfig(ctx context.Context, input *DeleteFunctionEventInvokeConfigRequest) (*SmithyUnit, error) { return nil, fmt.Errorf("DeleteFunctionEventInvokeConfig: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteFunctionUrlConfig(ctx context.Context, input *DeleteFunctionUrlConfigRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteFunctionUrlConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteLayerVersion(ctx context.Context, input *DeleteLayerVersionRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteLayerVersion: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteProvisionedConcurrencyConfig(ctx context.Context, input *DeleteProvisionedConcurrencyConfigRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteProvisionedConcurrencyConfig: %w", ErrNotImplemented) +} + func (b *BaseProvider) GetAccountSettings(ctx context.Context, input *GetAccountSettingsRequest) (*GetAccountSettingsResponse, error) { return nil, fmt.Errorf("GetAccountSettings: %w", ErrNotImplemented) } +func (b *BaseProvider) GetAlias(ctx context.Context, input *GetAliasRequest) (*AliasConfiguration, error) { + return nil, fmt.Errorf("GetAlias: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetCapacityProvider(ctx context.Context, input *GetCapacityProviderRequest) (*GetCapacityProviderResponse, error) { + return nil, fmt.Errorf("GetCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetCodeSigningConfig(ctx context.Context, input *GetCodeSigningConfigRequest) (*GetCodeSigningConfigResponse, error) { + return nil, fmt.Errorf("GetCodeSigningConfig: %w", ErrNotImplemented) +} + func (b *BaseProvider) GetDurableExecution(ctx context.Context, input *GetDurableExecutionRequest) (*GetDurableExecutionResponse, error) { return nil, fmt.Errorf("GetDurableExecution: %w", ErrNotImplemented) } @@ -39,26 +119,182 @@ func (b *BaseProvider) GetDurableExecutionState(ctx context.Context, input *GetD return nil, fmt.Errorf("GetDurableExecutionState: %w", ErrNotImplemented) } +func (b *BaseProvider) GetEventSourceMapping(ctx context.Context, input *GetEventSourceMappingRequest) (*EventSourceMappingConfiguration, error) { + return nil, fmt.Errorf("GetEventSourceMapping: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFunction(ctx context.Context, input *GetFunctionRequest) (*GetFunctionResponse, error) { + return nil, fmt.Errorf("GetFunction: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFunctionCodeSigningConfig(ctx context.Context, input *GetFunctionCodeSigningConfigRequest) (*GetFunctionCodeSigningConfigResponse, error) { + return nil, fmt.Errorf("GetFunctionCodeSigningConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFunctionConcurrency(ctx context.Context, input *GetFunctionConcurrencyRequest) (*GetFunctionConcurrencyResponse, error) { + return nil, fmt.Errorf("GetFunctionConcurrency: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFunctionConfiguration(ctx context.Context, input *GetFunctionConfigurationRequest) (*FunctionConfiguration, error) { + return nil, fmt.Errorf("GetFunctionConfiguration: %w", ErrNotImplemented) +} + func (b *BaseProvider) GetFunctionEventInvokeConfig(ctx context.Context, input *GetFunctionEventInvokeConfigRequest) (*FunctionEventInvokeConfig, error) { return nil, fmt.Errorf("GetFunctionEventInvokeConfig: %w", ErrNotImplemented) } +func (b *BaseProvider) GetFunctionRecursionConfig(ctx context.Context, input *GetFunctionRecursionConfigRequest) (*GetFunctionRecursionConfigResponse, error) { + return nil, fmt.Errorf("GetFunctionRecursionConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFunctionScalingConfig(ctx context.Context, input *GetFunctionScalingConfigRequest) (*GetFunctionScalingConfigResponse, error) { + return nil, fmt.Errorf("GetFunctionScalingConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetFunctionUrlConfig(ctx context.Context, input *GetFunctionUrlConfigRequest) (*GetFunctionUrlConfigResponse, error) { + return nil, fmt.Errorf("GetFunctionUrlConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetLayerVersion(ctx context.Context, input *GetLayerVersionRequest) (*GetLayerVersionResponse, error) { + return nil, fmt.Errorf("GetLayerVersion: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetLayerVersionByArn(ctx context.Context, input *GetLayerVersionByArnRequest) (*GetLayerVersionResponse, error) { + return nil, fmt.Errorf("GetLayerVersionByArn: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetLayerVersionPolicy(ctx context.Context, input *GetLayerVersionPolicyRequest) (*GetLayerVersionPolicyResponse, error) { + return nil, fmt.Errorf("GetLayerVersionPolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetPolicy(ctx context.Context, input *GetPolicyRequest) (*GetPolicyResponse, error) { + return nil, fmt.Errorf("GetPolicy: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetProvisionedConcurrencyConfig(ctx context.Context, input *GetProvisionedConcurrencyConfigRequest) (*GetProvisionedConcurrencyConfigResponse, error) { + return nil, fmt.Errorf("GetProvisionedConcurrencyConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetRuntimeManagementConfig(ctx context.Context, input *GetRuntimeManagementConfigRequest) (*GetRuntimeManagementConfigResponse, error) { + return nil, fmt.Errorf("GetRuntimeManagementConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) Invoke(ctx context.Context, input *InvocationRequest) (*InvocationResponse, error) { + return nil, fmt.Errorf("Invoke: %w", ErrNotImplemented) +} + +func (b *BaseProvider) InvokeAsync(ctx context.Context, input *InvokeAsyncRequest) (*InvokeAsyncResponse, error) { + return nil, fmt.Errorf("InvokeAsync: %w", ErrNotImplemented) +} + +func (b *BaseProvider) InvokeWithResponseStream(ctx context.Context, input *InvokeWithResponseStreamRequest) (*InvokeWithResponseStreamResponse, error) { + return nil, fmt.Errorf("InvokeWithResponseStream: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListAliases(ctx context.Context, input *ListAliasesRequest) (*ListAliasesResponse, error) { + return nil, fmt.Errorf("ListAliases: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListCapacityProviders(ctx context.Context, input *ListCapacityProvidersRequest) (*ListCapacityProvidersResponse, error) { + return nil, fmt.Errorf("ListCapacityProviders: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListCodeSigningConfigs(ctx context.Context, input *ListCodeSigningConfigsRequest) (*ListCodeSigningConfigsResponse, error) { + return nil, fmt.Errorf("ListCodeSigningConfigs: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListDurableExecutionsByFunction(ctx context.Context, input *ListDurableExecutionsByFunctionRequest) (*ListDurableExecutionsByFunctionResponse, error) { return nil, fmt.Errorf("ListDurableExecutionsByFunction: %w", ErrNotImplemented) } +func (b *BaseProvider) ListEventSourceMappings(ctx context.Context, input *ListEventSourceMappingsRequest) (*ListEventSourceMappingsResponse, error) { + return nil, fmt.Errorf("ListEventSourceMappings: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListFunctionEventInvokeConfigs(ctx context.Context, input *ListFunctionEventInvokeConfigsRequest) (*ListFunctionEventInvokeConfigsResponse, error) { return nil, fmt.Errorf("ListFunctionEventInvokeConfigs: %w", ErrNotImplemented) } +func (b *BaseProvider) ListFunctionUrlConfigs(ctx context.Context, input *ListFunctionUrlConfigsRequest) (*ListFunctionUrlConfigsResponse, error) { + return nil, fmt.Errorf("ListFunctionUrlConfigs: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListFunctionVersionsByCapacityProvider(ctx context.Context, input *ListFunctionVersionsByCapacityProviderRequest) (*ListFunctionVersionsByCapacityProviderResponse, error) { + return nil, fmt.Errorf("ListFunctionVersionsByCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListFunctions(ctx context.Context, input *ListFunctionsRequest) (*ListFunctionsResponse, error) { + return nil, fmt.Errorf("ListFunctions: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListFunctionsByCodeSigningConfig(ctx context.Context, input *ListFunctionsByCodeSigningConfigRequest) (*ListFunctionsByCodeSigningConfigResponse, error) { + return nil, fmt.Errorf("ListFunctionsByCodeSigningConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListLayerVersions(ctx context.Context, input *ListLayerVersionsRequest) (*ListLayerVersionsResponse, error) { + return nil, fmt.Errorf("ListLayerVersions: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListLayers(ctx context.Context, input *ListLayersRequest) (*ListLayersResponse, error) { + return nil, fmt.Errorf("ListLayers: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListProvisionedConcurrencyConfigs(ctx context.Context, input *ListProvisionedConcurrencyConfigsRequest) (*ListProvisionedConcurrencyConfigsResponse, error) { + return nil, fmt.Errorf("ListProvisionedConcurrencyConfigs: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListTags(ctx context.Context, input *ListTagsRequest) (*ListTagsResponse, error) { return nil, fmt.Errorf("ListTags: %w", ErrNotImplemented) } +func (b *BaseProvider) ListVersionsByFunction(ctx context.Context, input *ListVersionsByFunctionRequest) (*ListVersionsByFunctionResponse, error) { + return nil, fmt.Errorf("ListVersionsByFunction: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PublishLayerVersion(ctx context.Context, input *PublishLayerVersionRequest) (*PublishLayerVersionResponse, error) { + return nil, fmt.Errorf("PublishLayerVersion: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PublishVersion(ctx context.Context, input *PublishVersionRequest) (*FunctionConfiguration, error) { + return nil, fmt.Errorf("PublishVersion: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutFunctionCodeSigningConfig(ctx context.Context, input *PutFunctionCodeSigningConfigRequest) (*PutFunctionCodeSigningConfigResponse, error) { + return nil, fmt.Errorf("PutFunctionCodeSigningConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutFunctionConcurrency(ctx context.Context, input *PutFunctionConcurrencyRequest) (*Concurrency, error) { + return nil, fmt.Errorf("PutFunctionConcurrency: %w", ErrNotImplemented) +} + func (b *BaseProvider) PutFunctionEventInvokeConfig(ctx context.Context, input *PutFunctionEventInvokeConfigRequest) (*FunctionEventInvokeConfig, error) { return nil, fmt.Errorf("PutFunctionEventInvokeConfig: %w", ErrNotImplemented) } +func (b *BaseProvider) PutFunctionRecursionConfig(ctx context.Context, input *PutFunctionRecursionConfigRequest) (*PutFunctionRecursionConfigResponse, error) { + return nil, fmt.Errorf("PutFunctionRecursionConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutFunctionScalingConfig(ctx context.Context, input *PutFunctionScalingConfigRequest) (*PutFunctionScalingConfigResponse, error) { + return nil, fmt.Errorf("PutFunctionScalingConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutProvisionedConcurrencyConfig(ctx context.Context, input *PutProvisionedConcurrencyConfigRequest) (*PutProvisionedConcurrencyConfigResponse, error) { + return nil, fmt.Errorf("PutProvisionedConcurrencyConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutRuntimeManagementConfig(ctx context.Context, input *PutRuntimeManagementConfigRequest) (*PutRuntimeManagementConfigResponse, error) { + return nil, fmt.Errorf("PutRuntimeManagementConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) RemoveLayerVersionPermission(ctx context.Context, input *RemoveLayerVersionPermissionRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("RemoveLayerVersionPermission: %w", ErrNotImplemented) +} + +func (b *BaseProvider) RemovePermission(ctx context.Context, input *RemovePermissionRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("RemovePermission: %w", ErrNotImplemented) +} + func (b *BaseProvider) SendDurableExecutionCallbackFailure(ctx context.Context, input *SendDurableExecutionCallbackFailureRequest) (*SendDurableExecutionCallbackFailureResponse, error) { return nil, fmt.Errorf("SendDurableExecutionCallbackFailure: %w", ErrNotImplemented) } @@ -83,6 +319,34 @@ func (b *BaseProvider) UntagResource(ctx context.Context, input *UntagResourceRe return nil, fmt.Errorf("UntagResource: %w", ErrNotImplemented) } +func (b *BaseProvider) UpdateAlias(ctx context.Context, input *UpdateAliasRequest) (*AliasConfiguration, error) { + return nil, fmt.Errorf("UpdateAlias: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateCapacityProvider(ctx context.Context, input *UpdateCapacityProviderRequest) (*UpdateCapacityProviderResponse, error) { + return nil, fmt.Errorf("UpdateCapacityProvider: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateCodeSigningConfig(ctx context.Context, input *UpdateCodeSigningConfigRequest) (*UpdateCodeSigningConfigResponse, error) { + return nil, fmt.Errorf("UpdateCodeSigningConfig: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateEventSourceMapping(ctx context.Context, input *UpdateEventSourceMappingRequest) (*EventSourceMappingConfiguration, error) { + return nil, fmt.Errorf("UpdateEventSourceMapping: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateFunctionCode(ctx context.Context, input *UpdateFunctionCodeRequest) (*FunctionConfiguration, error) { + return nil, fmt.Errorf("UpdateFunctionCode: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateFunctionConfiguration(ctx context.Context, input *UpdateFunctionConfigurationRequest) (*FunctionConfiguration, error) { + return nil, fmt.Errorf("UpdateFunctionConfiguration: %w", ErrNotImplemented) +} + func (b *BaseProvider) UpdateFunctionEventInvokeConfig(ctx context.Context, input *UpdateFunctionEventInvokeConfigRequest) (*FunctionEventInvokeConfig, error) { return nil, fmt.Errorf("UpdateFunctionEventInvokeConfig: %w", ErrNotImplemented) } + +func (b *BaseProvider) UpdateFunctionUrlConfig(ctx context.Context, input *UpdateFunctionUrlConfigRequest) (*UpdateFunctionUrlConfigResponse, error) { + return nil, fmt.Errorf("UpdateFunctionUrlConfig: %w", ErrNotImplemented) +} diff --git a/internal/generated/lambda/router.go b/internal/generated/lambda/router.go index 75d8e68..80de47f 100644 --- a/internal/generated/lambda/router.go +++ b/internal/generated/lambda/router.go @@ -16,25 +16,91 @@ type OperationRoute struct { // OperationRoutes is the list of all routes for this service. var OperationRoutes = []OperationRoute{ + {Method: "POST", Pattern: "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy", Operation: "AddLayerVersionPermission"}, + {Method: "POST", Pattern: "/2015-03-31/functions/{FunctionName}/policy", Operation: "AddPermission"}, {Method: "POST", Pattern: "/2025-12-01/durable-executions/{DurableExecutionArn}/checkpoint", Operation: "CheckpointDurableExecution"}, + {Method: "POST", Pattern: "/2015-03-31/functions/{FunctionName}/aliases", Operation: "CreateAlias"}, + {Method: "POST", Pattern: "/2025-11-30/capacity-providers", Operation: "CreateCapacityProvider"}, + {Method: "POST", Pattern: "/2020-04-22/code-signing-configs", Operation: "CreateCodeSigningConfig"}, + {Method: "POST", Pattern: "/2015-03-31/event-source-mappings", Operation: "CreateEventSourceMapping"}, + {Method: "POST", Pattern: "/2015-03-31/functions", Operation: "CreateFunction"}, + {Method: "POST", Pattern: "/2021-10-31/functions/{FunctionName}/url", Operation: "CreateFunctionUrlConfig"}, + {Method: "DELETE", Pattern: "/2015-03-31/functions/{FunctionName}/aliases/{Name}", Operation: "DeleteAlias"}, + {Method: "DELETE", Pattern: "/2025-11-30/capacity-providers/{CapacityProviderName}", Operation: "DeleteCapacityProvider"}, + {Method: "DELETE", Pattern: "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}", Operation: "DeleteCodeSigningConfig"}, + {Method: "DELETE", Pattern: "/2015-03-31/event-source-mappings/{UUID}", Operation: "DeleteEventSourceMapping"}, {Method: "DELETE", Pattern: "/2015-03-31/functions/{FunctionName}", Operation: "DeleteFunction"}, + {Method: "DELETE", Pattern: "/2020-06-30/functions/{FunctionName}/code-signing-config", Operation: "DeleteFunctionCodeSigningConfig"}, + {Method: "DELETE", Pattern: "/2017-10-31/functions/{FunctionName}/concurrency", Operation: "DeleteFunctionConcurrency"}, {Method: "DELETE", Pattern: "/2019-09-25/functions/{FunctionName}/event-invoke-config", Operation: "DeleteFunctionEventInvokeConfig"}, + {Method: "DELETE", Pattern: "/2021-10-31/functions/{FunctionName}/url", Operation: "DeleteFunctionUrlConfig"}, + {Method: "DELETE", Pattern: "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}", Operation: "DeleteLayerVersion"}, + {Method: "DELETE", Pattern: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency", Operation: "DeleteProvisionedConcurrencyConfig"}, {Method: "GET", Pattern: "/2016-08-19/account-settings", Operation: "GetAccountSettings"}, + {Method: "GET", Pattern: "/2015-03-31/functions/{FunctionName}/aliases/{Name}", Operation: "GetAlias"}, + {Method: "GET", Pattern: "/2025-11-30/capacity-providers/{CapacityProviderName}", Operation: "GetCapacityProvider"}, + {Method: "GET", Pattern: "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}", Operation: "GetCodeSigningConfig"}, {Method: "GET", Pattern: "/2025-12-01/durable-executions/{DurableExecutionArn}", Operation: "GetDurableExecution"}, {Method: "GET", Pattern: "/2025-12-01/durable-executions/{DurableExecutionArn}/history", Operation: "GetDurableExecutionHistory"}, {Method: "GET", Pattern: "/2025-12-01/durable-executions/{DurableExecutionArn}/state", Operation: "GetDurableExecutionState"}, + {Method: "GET", Pattern: "/2015-03-31/event-source-mappings/{UUID}", Operation: "GetEventSourceMapping"}, + {Method: "GET", Pattern: "/2015-03-31/functions/{FunctionName}", Operation: "GetFunction"}, + {Method: "GET", Pattern: "/2020-06-30/functions/{FunctionName}/code-signing-config", Operation: "GetFunctionCodeSigningConfig"}, + {Method: "GET", Pattern: "/2019-09-30/functions/{FunctionName}/concurrency", Operation: "GetFunctionConcurrency"}, + {Method: "GET", Pattern: "/2015-03-31/functions/{FunctionName}/configuration", Operation: "GetFunctionConfiguration"}, {Method: "GET", Pattern: "/2019-09-25/functions/{FunctionName}/event-invoke-config", Operation: "GetFunctionEventInvokeConfig"}, + {Method: "GET", Pattern: "/2024-08-31/functions/{FunctionName}/recursion-config", Operation: "GetFunctionRecursionConfig"}, + {Method: "GET", Pattern: "/2025-11-30/functions/{FunctionName}/function-scaling-config", Operation: "GetFunctionScalingConfig"}, + {Method: "GET", Pattern: "/2021-10-31/functions/{FunctionName}/url", Operation: "GetFunctionUrlConfig"}, + {Method: "GET", Pattern: "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}", Operation: "GetLayerVersion"}, + {Method: "GET", Pattern: "/2018-10-31/layers?find=LayerVersion", Operation: "GetLayerVersionByArn"}, + {Method: "GET", Pattern: "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy", Operation: "GetLayerVersionPolicy"}, + {Method: "GET", Pattern: "/2015-03-31/functions/{FunctionName}/policy", Operation: "GetPolicy"}, + {Method: "GET", Pattern: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency", Operation: "GetProvisionedConcurrencyConfig"}, + {Method: "GET", Pattern: "/2021-07-20/functions/{FunctionName}/runtime-management-config", Operation: "GetRuntimeManagementConfig"}, + {Method: "POST", Pattern: "/2015-03-31/functions/{FunctionName}/invocations", Operation: "Invoke"}, + {Method: "POST", Pattern: "/2014-11-13/functions/{FunctionName}/invoke-async", Operation: "InvokeAsync"}, + {Method: "POST", Pattern: "/2021-11-15/functions/{FunctionName}/response-streaming-invocations", Operation: "InvokeWithResponseStream"}, + {Method: "GET", Pattern: "/2015-03-31/functions/{FunctionName}/aliases", Operation: "ListAliases"}, + {Method: "GET", Pattern: "/2025-11-30/capacity-providers", Operation: "ListCapacityProviders"}, + {Method: "GET", Pattern: "/2020-04-22/code-signing-configs", Operation: "ListCodeSigningConfigs"}, {Method: "GET", Pattern: "/2025-12-01/functions/{FunctionName}/durable-executions", Operation: "ListDurableExecutionsByFunction"}, + {Method: "GET", Pattern: "/2015-03-31/event-source-mappings", Operation: "ListEventSourceMappings"}, {Method: "GET", Pattern: "/2019-09-25/functions/{FunctionName}/event-invoke-config/list", Operation: "ListFunctionEventInvokeConfigs"}, + {Method: "GET", Pattern: "/2021-10-31/functions/{FunctionName}/urls", Operation: "ListFunctionUrlConfigs"}, + {Method: "GET", Pattern: "/2025-11-30/capacity-providers/{CapacityProviderName}/function-versions", Operation: "ListFunctionVersionsByCapacityProvider"}, + {Method: "GET", Pattern: "/2015-03-31/functions", Operation: "ListFunctions"}, + {Method: "GET", Pattern: "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}/functions", Operation: "ListFunctionsByCodeSigningConfig"}, + {Method: "GET", Pattern: "/2018-10-31/layers/{LayerName}/versions", Operation: "ListLayerVersions"}, + {Method: "GET", Pattern: "/2018-10-31/layers", Operation: "ListLayers"}, + {Method: "GET", Pattern: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency?List=ALL", Operation: "ListProvisionedConcurrencyConfigs"}, {Method: "GET", Pattern: "/2017-03-31/tags/{Resource}", Operation: "ListTags"}, + {Method: "GET", Pattern: "/2015-03-31/functions/{FunctionName}/versions", Operation: "ListVersionsByFunction"}, + {Method: "POST", Pattern: "/2018-10-31/layers/{LayerName}/versions", Operation: "PublishLayerVersion"}, + {Method: "POST", Pattern: "/2015-03-31/functions/{FunctionName}/versions", Operation: "PublishVersion"}, + {Method: "PUT", Pattern: "/2020-06-30/functions/{FunctionName}/code-signing-config", Operation: "PutFunctionCodeSigningConfig"}, + {Method: "PUT", Pattern: "/2017-10-31/functions/{FunctionName}/concurrency", Operation: "PutFunctionConcurrency"}, {Method: "PUT", Pattern: "/2019-09-25/functions/{FunctionName}/event-invoke-config", Operation: "PutFunctionEventInvokeConfig"}, + {Method: "PUT", Pattern: "/2024-08-31/functions/{FunctionName}/recursion-config", Operation: "PutFunctionRecursionConfig"}, + {Method: "PUT", Pattern: "/2025-11-30/functions/{FunctionName}/function-scaling-config", Operation: "PutFunctionScalingConfig"}, + {Method: "PUT", Pattern: "/2019-09-30/functions/{FunctionName}/provisioned-concurrency", Operation: "PutProvisionedConcurrencyConfig"}, + {Method: "PUT", Pattern: "/2021-07-20/functions/{FunctionName}/runtime-management-config", Operation: "PutRuntimeManagementConfig"}, + {Method: "DELETE", Pattern: "/2018-10-31/layers/{LayerName}/versions/{VersionNumber}/policy/{StatementId}", Operation: "RemoveLayerVersionPermission"}, + {Method: "DELETE", Pattern: "/2015-03-31/functions/{FunctionName}/policy/{StatementId}", Operation: "RemovePermission"}, {Method: "POST", Pattern: "/2025-12-01/durable-execution-callbacks/{CallbackId}/fail", Operation: "SendDurableExecutionCallbackFailure"}, {Method: "POST", Pattern: "/2025-12-01/durable-execution-callbacks/{CallbackId}/heartbeat", Operation: "SendDurableExecutionCallbackHeartbeat"}, {Method: "POST", Pattern: "/2025-12-01/durable-execution-callbacks/{CallbackId}/succeed", Operation: "SendDurableExecutionCallbackSuccess"}, {Method: "POST", Pattern: "/2025-12-01/durable-executions/{DurableExecutionArn}/stop", Operation: "StopDurableExecution"}, {Method: "POST", Pattern: "/2017-03-31/tags/{Resource}", Operation: "TagResource"}, {Method: "DELETE", Pattern: "/2017-03-31/tags/{Resource}", Operation: "UntagResource"}, + {Method: "PUT", Pattern: "/2015-03-31/functions/{FunctionName}/aliases/{Name}", Operation: "UpdateAlias"}, + {Method: "PUT", Pattern: "/2025-11-30/capacity-providers/{CapacityProviderName}", Operation: "UpdateCapacityProvider"}, + {Method: "PUT", Pattern: "/2020-04-22/code-signing-configs/{CodeSigningConfigArn}", Operation: "UpdateCodeSigningConfig"}, + {Method: "PUT", Pattern: "/2015-03-31/event-source-mappings/{UUID}", Operation: "UpdateEventSourceMapping"}, + {Method: "PUT", Pattern: "/2015-03-31/functions/{FunctionName}/code", Operation: "UpdateFunctionCode"}, + {Method: "PUT", Pattern: "/2015-03-31/functions/{FunctionName}/configuration", Operation: "UpdateFunctionConfiguration"}, {Method: "POST", Pattern: "/2019-09-25/functions/{FunctionName}/event-invoke-config", Operation: "UpdateFunctionEventInvokeConfig"}, + {Method: "PUT", Pattern: "/2021-10-31/functions/{FunctionName}/url", Operation: "UpdateFunctionUrlConfig"}, } // MatchOperation returns the operation name and extracted path parameters for diff --git a/internal/generated/ssoadmin/base_provider.go b/internal/generated/ssoadmin/base_provider.go index 42597e9..f79a08a 100644 --- a/internal/generated/ssoadmin/base_provider.go +++ b/internal/generated/ssoadmin/base_provider.go @@ -59,10 +59,22 @@ func (b *BaseProvider) DeleteApplication(ctx context.Context, input *DeleteAppli return nil, fmt.Errorf("DeleteApplication: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteApplicationAccessScope(ctx context.Context, input *DeleteApplicationAccessScopeRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteApplicationAccessScope: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteApplicationAssignment(ctx context.Context, input *DeleteApplicationAssignmentRequest) (*DeleteApplicationAssignmentResponse, error) { return nil, fmt.Errorf("DeleteApplicationAssignment: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteApplicationAuthenticationMethod(ctx context.Context, input *DeleteApplicationAuthenticationMethodRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteApplicationAuthenticationMethod: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteApplicationGrant(ctx context.Context, input *DeleteApplicationGrantRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteApplicationGrant: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteInlinePolicyFromPermissionSet(ctx context.Context, input *DeleteInlinePolicyFromPermissionSetRequest) (*DeleteInlinePolicyFromPermissionSetResponse, error) { return nil, fmt.Errorf("DeleteInlinePolicyFromPermissionSet: %w", ErrNotImplemented) } @@ -139,10 +151,22 @@ func (b *BaseProvider) DetachManagedPolicyFromPermissionSet(ctx context.Context, return nil, fmt.Errorf("DetachManagedPolicyFromPermissionSet: %w", ErrNotImplemented) } +func (b *BaseProvider) GetApplicationAccessScope(ctx context.Context, input *GetApplicationAccessScopeRequest) (*GetApplicationAccessScopeResponse, error) { + return nil, fmt.Errorf("GetApplicationAccessScope: %w", ErrNotImplemented) +} + func (b *BaseProvider) GetApplicationAssignmentConfiguration(ctx context.Context, input *GetApplicationAssignmentConfigurationRequest) (*GetApplicationAssignmentConfigurationResponse, error) { return nil, fmt.Errorf("GetApplicationAssignmentConfiguration: %w", ErrNotImplemented) } +func (b *BaseProvider) GetApplicationAuthenticationMethod(ctx context.Context, input *GetApplicationAuthenticationMethodRequest) (*GetApplicationAuthenticationMethodResponse, error) { + return nil, fmt.Errorf("GetApplicationAuthenticationMethod: %w", ErrNotImplemented) +} + +func (b *BaseProvider) GetApplicationGrant(ctx context.Context, input *GetApplicationGrantRequest) (*GetApplicationGrantResponse, error) { + return nil, fmt.Errorf("GetApplicationGrant: %w", ErrNotImplemented) +} + func (b *BaseProvider) GetApplicationSessionConfiguration(ctx context.Context, input *GetApplicationSessionConfigurationRequest) (*GetApplicationSessionConfigurationResponse, error) { return nil, fmt.Errorf("GetApplicationSessionConfiguration: %w", ErrNotImplemented) } @@ -175,6 +199,10 @@ func (b *BaseProvider) ListAccountsForProvisionedPermissionSet(ctx context.Conte return nil, fmt.Errorf("ListAccountsForProvisionedPermissionSet: %w", ErrNotImplemented) } +func (b *BaseProvider) ListApplicationAccessScopes(ctx context.Context, input *ListApplicationAccessScopesRequest) (*ListApplicationAccessScopesResponse, error) { + return nil, fmt.Errorf("ListApplicationAccessScopes: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListApplicationAssignments(ctx context.Context, input *ListApplicationAssignmentsRequest) (*ListApplicationAssignmentsResponse, error) { return nil, fmt.Errorf("ListApplicationAssignments: %w", ErrNotImplemented) } @@ -183,6 +211,14 @@ func (b *BaseProvider) ListApplicationAssignmentsForPrincipal(ctx context.Contex return nil, fmt.Errorf("ListApplicationAssignmentsForPrincipal: %w", ErrNotImplemented) } +func (b *BaseProvider) ListApplicationAuthenticationMethods(ctx context.Context, input *ListApplicationAuthenticationMethodsRequest) (*ListApplicationAuthenticationMethodsResponse, error) { + return nil, fmt.Errorf("ListApplicationAuthenticationMethods: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListApplicationGrants(ctx context.Context, input *ListApplicationGrantsRequest) (*ListApplicationGrantsResponse, error) { + return nil, fmt.Errorf("ListApplicationGrants: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListApplicationProviders(ctx context.Context, input *ListApplicationProvidersRequest) (*ListApplicationProvidersResponse, error) { return nil, fmt.Errorf("ListApplicationProviders: %w", ErrNotImplemented) } @@ -231,10 +267,22 @@ func (b *BaseProvider) ProvisionPermissionSet(ctx context.Context, input *Provis return nil, fmt.Errorf("ProvisionPermissionSet: %w", ErrNotImplemented) } +func (b *BaseProvider) PutApplicationAccessScope(ctx context.Context, input *PutApplicationAccessScopeRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("PutApplicationAccessScope: %w", ErrNotImplemented) +} + func (b *BaseProvider) PutApplicationAssignmentConfiguration(ctx context.Context, input *PutApplicationAssignmentConfigurationRequest) (*PutApplicationAssignmentConfigurationResponse, error) { return nil, fmt.Errorf("PutApplicationAssignmentConfiguration: %w", ErrNotImplemented) } +func (b *BaseProvider) PutApplicationAuthenticationMethod(ctx context.Context, input *PutApplicationAuthenticationMethodRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("PutApplicationAuthenticationMethod: %w", ErrNotImplemented) +} + +func (b *BaseProvider) PutApplicationGrant(ctx context.Context, input *PutApplicationGrantRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("PutApplicationGrant: %w", ErrNotImplemented) +} + func (b *BaseProvider) PutApplicationSessionConfiguration(ctx context.Context, input *PutApplicationSessionConfigurationRequest) (*PutApplicationSessionConfigurationResponse, error) { return nil, fmt.Errorf("PutApplicationSessionConfiguration: %w", ErrNotImplemented) } diff --git a/internal/generated/ssoadmin/router.go b/internal/generated/ssoadmin/router.go index 268c99d..382b5a1 100644 --- a/internal/generated/ssoadmin/router.go +++ b/internal/generated/ssoadmin/router.go @@ -28,7 +28,10 @@ var OperationRoutes = []OperationRoute{ {Method: "", Pattern: "", Operation: "CreateTrustedTokenIssuer"}, {Method: "", Pattern: "", Operation: "DeleteAccountAssignment"}, {Method: "", Pattern: "", Operation: "DeleteApplication"}, + {Method: "", Pattern: "", Operation: "DeleteApplicationAccessScope"}, {Method: "", Pattern: "", Operation: "DeleteApplicationAssignment"}, + {Method: "", Pattern: "", Operation: "DeleteApplicationAuthenticationMethod"}, + {Method: "", Pattern: "", Operation: "DeleteApplicationGrant"}, {Method: "", Pattern: "", Operation: "DeleteInlinePolicyFromPermissionSet"}, {Method: "", Pattern: "", Operation: "DeleteInstance"}, {Method: "", Pattern: "", Operation: "DeleteInstanceAccessControlAttributeConfiguration"}, @@ -48,7 +51,10 @@ var OperationRoutes = []OperationRoute{ {Method: "", Pattern: "", Operation: "DescribeTrustedTokenIssuer"}, {Method: "", Pattern: "", Operation: "DetachCustomerManagedPolicyReferenceFromPermissionSet"}, {Method: "", Pattern: "", Operation: "DetachManagedPolicyFromPermissionSet"}, + {Method: "", Pattern: "", Operation: "GetApplicationAccessScope"}, {Method: "", Pattern: "", Operation: "GetApplicationAssignmentConfiguration"}, + {Method: "", Pattern: "", Operation: "GetApplicationAuthenticationMethod"}, + {Method: "", Pattern: "", Operation: "GetApplicationGrant"}, {Method: "", Pattern: "", Operation: "GetApplicationSessionConfiguration"}, {Method: "", Pattern: "", Operation: "GetInlinePolicyForPermissionSet"}, {Method: "", Pattern: "", Operation: "GetPermissionsBoundaryForPermissionSet"}, @@ -57,8 +63,11 @@ var OperationRoutes = []OperationRoute{ {Method: "", Pattern: "", Operation: "ListAccountAssignments"}, {Method: "", Pattern: "", Operation: "ListAccountAssignmentsForPrincipal"}, {Method: "", Pattern: "", Operation: "ListAccountsForProvisionedPermissionSet"}, + {Method: "", Pattern: "", Operation: "ListApplicationAccessScopes"}, {Method: "", Pattern: "", Operation: "ListApplicationAssignments"}, {Method: "", Pattern: "", Operation: "ListApplicationAssignmentsForPrincipal"}, + {Method: "", Pattern: "", Operation: "ListApplicationAuthenticationMethods"}, + {Method: "", Pattern: "", Operation: "ListApplicationGrants"}, {Method: "", Pattern: "", Operation: "ListApplicationProviders"}, {Method: "", Pattern: "", Operation: "ListApplications"}, {Method: "", Pattern: "", Operation: "ListCustomerManagedPolicyReferencesInPermissionSet"}, @@ -71,7 +80,10 @@ var OperationRoutes = []OperationRoute{ {Method: "", Pattern: "", Operation: "ListTagsForResource"}, {Method: "", Pattern: "", Operation: "ListTrustedTokenIssuers"}, {Method: "", Pattern: "", Operation: "ProvisionPermissionSet"}, + {Method: "", Pattern: "", Operation: "PutApplicationAccessScope"}, {Method: "", Pattern: "", Operation: "PutApplicationAssignmentConfiguration"}, + {Method: "", Pattern: "", Operation: "PutApplicationAuthenticationMethod"}, + {Method: "", Pattern: "", Operation: "PutApplicationGrant"}, {Method: "", Pattern: "", Operation: "PutApplicationSessionConfiguration"}, {Method: "", Pattern: "", Operation: "PutInlinePolicyToPermissionSet"}, {Method: "", Pattern: "", Operation: "PutPermissionsBoundaryToPermissionSet"}, diff --git a/internal/generated/ssoadmin/types.go b/internal/generated/ssoadmin/types.go index 2c21815..2aa66f3 100644 --- a/internal/generated/ssoadmin/types.go +++ b/internal/generated/ssoadmin/types.go @@ -959,6 +959,9 @@ type SignInOptions struct { Origin string `json:"origin" xml:"Origin"` } +type SmithyUnit struct { +} + type Tag struct { Key string `json:"key" xml:"Key"` Value string `json:"value" xml:"Value"` diff --git a/internal/generated/transfer/base_provider.go b/internal/generated/transfer/base_provider.go index cceca0d..441b752 100644 --- a/internal/generated/transfer/base_provider.go +++ b/internal/generated/transfer/base_provider.go @@ -15,22 +15,98 @@ func (b *BaseProvider) CreateAccess(ctx context.Context, input *CreateAccessRequ return nil, fmt.Errorf("CreateAccess: %w", ErrNotImplemented) } +func (b *BaseProvider) CreateAgreement(ctx context.Context, input *CreateAgreementRequest) (*CreateAgreementResponse, error) { + return nil, fmt.Errorf("CreateAgreement: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateConnector(ctx context.Context, input *CreateConnectorRequest) (*CreateConnectorResponse, error) { + return nil, fmt.Errorf("CreateConnector: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateProfile(ctx context.Context, input *CreateProfileRequest) (*CreateProfileResponse, error) { + return nil, fmt.Errorf("CreateProfile: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateServer(ctx context.Context, input *CreateServerRequest) (*CreateServerResponse, error) { + return nil, fmt.Errorf("CreateServer: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateUser(ctx context.Context, input *CreateUserRequest) (*CreateUserResponse, error) { + return nil, fmt.Errorf("CreateUser: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateWebApp(ctx context.Context, input *CreateWebAppRequest) (*CreateWebAppResponse, error) { + return nil, fmt.Errorf("CreateWebApp: %w", ErrNotImplemented) +} + +func (b *BaseProvider) CreateWorkflow(ctx context.Context, input *CreateWorkflowRequest) (*CreateWorkflowResponse, error) { + return nil, fmt.Errorf("CreateWorkflow: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteAccess(ctx context.Context, input *DeleteAccessRequest) (*SmithyUnit, error) { return nil, fmt.Errorf("DeleteAccess: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteAgreement(ctx context.Context, input *DeleteAgreementRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteAgreement: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteCertificate(ctx context.Context, input *DeleteCertificateRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteCertificate: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteConnector(ctx context.Context, input *DeleteConnectorRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteConnector: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteHostKey(ctx context.Context, input *DeleteHostKeyRequest) (*SmithyUnit, error) { return nil, fmt.Errorf("DeleteHostKey: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteProfile(ctx context.Context, input *DeleteProfileRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteProfile: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteServer(ctx context.Context, input *DeleteServerRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteServer: %w", ErrNotImplemented) +} + func (b *BaseProvider) DeleteSshPublicKey(ctx context.Context, input *DeleteSshPublicKeyRequest) (*SmithyUnit, error) { return nil, fmt.Errorf("DeleteSshPublicKey: %w", ErrNotImplemented) } +func (b *BaseProvider) DeleteUser(ctx context.Context, input *DeleteUserRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteUser: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteWebApp(ctx context.Context, input *DeleteWebAppRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteWebApp: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteWebAppCustomization(ctx context.Context, input *DeleteWebAppCustomizationRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteWebAppCustomization: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DeleteWorkflow(ctx context.Context, input *DeleteWorkflowRequest) (*SmithyUnit, error) { + return nil, fmt.Errorf("DeleteWorkflow: %w", ErrNotImplemented) +} + func (b *BaseProvider) DescribeAccess(ctx context.Context, input *DescribeAccessRequest) (*DescribeAccessResponse, error) { return nil, fmt.Errorf("DescribeAccess: %w", ErrNotImplemented) } +func (b *BaseProvider) DescribeAgreement(ctx context.Context, input *DescribeAgreementRequest) (*DescribeAgreementResponse, error) { + return nil, fmt.Errorf("DescribeAgreement: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeCertificate(ctx context.Context, input *DescribeCertificateRequest) (*DescribeCertificateResponse, error) { + return nil, fmt.Errorf("DescribeCertificate: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeConnector(ctx context.Context, input *DescribeConnectorRequest) (*DescribeConnectorResponse, error) { + return nil, fmt.Errorf("DescribeConnector: %w", ErrNotImplemented) +} + func (b *BaseProvider) DescribeExecution(ctx context.Context, input *DescribeExecutionRequest) (*DescribeExecutionResponse, error) { return nil, fmt.Errorf("DescribeExecution: %w", ErrNotImplemented) } @@ -39,10 +115,38 @@ func (b *BaseProvider) DescribeHostKey(ctx context.Context, input *DescribeHostK return nil, fmt.Errorf("DescribeHostKey: %w", ErrNotImplemented) } +func (b *BaseProvider) DescribeProfile(ctx context.Context, input *DescribeProfileRequest) (*DescribeProfileResponse, error) { + return nil, fmt.Errorf("DescribeProfile: %w", ErrNotImplemented) +} + func (b *BaseProvider) DescribeSecurityPolicy(ctx context.Context, input *DescribeSecurityPolicyRequest) (*DescribeSecurityPolicyResponse, error) { return nil, fmt.Errorf("DescribeSecurityPolicy: %w", ErrNotImplemented) } +func (b *BaseProvider) DescribeServer(ctx context.Context, input *DescribeServerRequest) (*DescribeServerResponse, error) { + return nil, fmt.Errorf("DescribeServer: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeUser(ctx context.Context, input *DescribeUserRequest) (*DescribeUserResponse, error) { + return nil, fmt.Errorf("DescribeUser: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeWebApp(ctx context.Context, input *DescribeWebAppRequest) (*DescribeWebAppResponse, error) { + return nil, fmt.Errorf("DescribeWebApp: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeWebAppCustomization(ctx context.Context, input *DescribeWebAppCustomizationRequest) (*DescribeWebAppCustomizationResponse, error) { + return nil, fmt.Errorf("DescribeWebAppCustomization: %w", ErrNotImplemented) +} + +func (b *BaseProvider) DescribeWorkflow(ctx context.Context, input *DescribeWorkflowRequest) (*DescribeWorkflowResponse, error) { + return nil, fmt.Errorf("DescribeWorkflow: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ImportCertificate(ctx context.Context, input *ImportCertificateRequest) (*ImportCertificateResponse, error) { + return nil, fmt.Errorf("ImportCertificate: %w", ErrNotImplemented) +} + func (b *BaseProvider) ImportHostKey(ctx context.Context, input *ImportHostKeyRequest) (*ImportHostKeyResponse, error) { return nil, fmt.Errorf("ImportHostKey: %w", ErrNotImplemented) } @@ -55,6 +159,18 @@ func (b *BaseProvider) ListAccesses(ctx context.Context, input *ListAccessesRequ return nil, fmt.Errorf("ListAccesses: %w", ErrNotImplemented) } +func (b *BaseProvider) ListAgreements(ctx context.Context, input *ListAgreementsRequest) (*ListAgreementsResponse, error) { + return nil, fmt.Errorf("ListAgreements: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListCertificates(ctx context.Context, input *ListCertificatesRequest) (*ListCertificatesResponse, error) { + return nil, fmt.Errorf("ListCertificates: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListConnectors(ctx context.Context, input *ListConnectorsRequest) (*ListConnectorsResponse, error) { + return nil, fmt.Errorf("ListConnectors: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListExecutions(ctx context.Context, input *ListExecutionsRequest) (*ListExecutionsResponse, error) { return nil, fmt.Errorf("ListExecutions: %w", ErrNotImplemented) } @@ -67,14 +183,34 @@ func (b *BaseProvider) ListHostKeys(ctx context.Context, input *ListHostKeysRequ return nil, fmt.Errorf("ListHostKeys: %w", ErrNotImplemented) } +func (b *BaseProvider) ListProfiles(ctx context.Context, input *ListProfilesRequest) (*ListProfilesResponse, error) { + return nil, fmt.Errorf("ListProfiles: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListSecurityPolicies(ctx context.Context, input *ListSecurityPoliciesRequest) (*ListSecurityPoliciesResponse, error) { return nil, fmt.Errorf("ListSecurityPolicies: %w", ErrNotImplemented) } +func (b *BaseProvider) ListServers(ctx context.Context, input *ListServersRequest) (*ListServersResponse, error) { + return nil, fmt.Errorf("ListServers: %w", ErrNotImplemented) +} + func (b *BaseProvider) ListTagsForResource(ctx context.Context, input *ListTagsForResourceRequest) (*ListTagsForResourceResponse, error) { return nil, fmt.Errorf("ListTagsForResource: %w", ErrNotImplemented) } +func (b *BaseProvider) ListUsers(ctx context.Context, input *ListUsersRequest) (*ListUsersResponse, error) { + return nil, fmt.Errorf("ListUsers: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListWebApps(ctx context.Context, input *ListWebAppsRequest) (*ListWebAppsResponse, error) { + return nil, fmt.Errorf("ListWebApps: %w", ErrNotImplemented) +} + +func (b *BaseProvider) ListWorkflows(ctx context.Context, input *ListWorkflowsRequest) (*ListWorkflowsResponse, error) { + return nil, fmt.Errorf("ListWorkflows: %w", ErrNotImplemented) +} + func (b *BaseProvider) SendWorkflowStepState(ctx context.Context, input *SendWorkflowStepStateRequest) (*SendWorkflowStepStateResponse, error) { return nil, fmt.Errorf("SendWorkflowStepState: %w", ErrNotImplemented) } @@ -123,6 +259,38 @@ func (b *BaseProvider) UpdateAccess(ctx context.Context, input *UpdateAccessRequ return nil, fmt.Errorf("UpdateAccess: %w", ErrNotImplemented) } +func (b *BaseProvider) UpdateAgreement(ctx context.Context, input *UpdateAgreementRequest) (*UpdateAgreementResponse, error) { + return nil, fmt.Errorf("UpdateAgreement: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateCertificate(ctx context.Context, input *UpdateCertificateRequest) (*UpdateCertificateResponse, error) { + return nil, fmt.Errorf("UpdateCertificate: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateConnector(ctx context.Context, input *UpdateConnectorRequest) (*UpdateConnectorResponse, error) { + return nil, fmt.Errorf("UpdateConnector: %w", ErrNotImplemented) +} + func (b *BaseProvider) UpdateHostKey(ctx context.Context, input *UpdateHostKeyRequest) (*UpdateHostKeyResponse, error) { return nil, fmt.Errorf("UpdateHostKey: %w", ErrNotImplemented) } + +func (b *BaseProvider) UpdateProfile(ctx context.Context, input *UpdateProfileRequest) (*UpdateProfileResponse, error) { + return nil, fmt.Errorf("UpdateProfile: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateServer(ctx context.Context, input *UpdateServerRequest) (*UpdateServerResponse, error) { + return nil, fmt.Errorf("UpdateServer: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateUser(ctx context.Context, input *UpdateUserRequest) (*UpdateUserResponse, error) { + return nil, fmt.Errorf("UpdateUser: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateWebApp(ctx context.Context, input *UpdateWebAppRequest) (*UpdateWebAppResponse, error) { + return nil, fmt.Errorf("UpdateWebApp: %w", ErrNotImplemented) +} + +func (b *BaseProvider) UpdateWebAppCustomization(ctx context.Context, input *UpdateWebAppCustomizationRequest) (*UpdateWebAppCustomizationResponse, error) { + return nil, fmt.Errorf("UpdateWebAppCustomization: %w", ErrNotImplemented) +} diff --git a/internal/generated/transfer/router.go b/internal/generated/transfer/router.go index 71e5d96..500f49c 100644 --- a/internal/generated/transfer/router.go +++ b/internal/generated/transfer/router.go @@ -17,21 +17,55 @@ type OperationRoute struct { // OperationRoutes is the list of all routes for this service. var OperationRoutes = []OperationRoute{ {Method: "", Pattern: "", Operation: "CreateAccess"}, + {Method: "", Pattern: "", Operation: "CreateAgreement"}, + {Method: "", Pattern: "", Operation: "CreateConnector"}, + {Method: "", Pattern: "", Operation: "CreateProfile"}, + {Method: "", Pattern: "", Operation: "CreateServer"}, + {Method: "", Pattern: "", Operation: "CreateUser"}, + {Method: "POST", Pattern: "/createWebApp", Operation: "CreateWebApp"}, + {Method: "", Pattern: "", Operation: "CreateWorkflow"}, {Method: "", Pattern: "", Operation: "DeleteAccess"}, + {Method: "", Pattern: "", Operation: "DeleteAgreement"}, + {Method: "", Pattern: "", Operation: "DeleteCertificate"}, + {Method: "", Pattern: "", Operation: "DeleteConnector"}, {Method: "", Pattern: "", Operation: "DeleteHostKey"}, + {Method: "", Pattern: "", Operation: "DeleteProfile"}, + {Method: "", Pattern: "", Operation: "DeleteServer"}, {Method: "", Pattern: "", Operation: "DeleteSshPublicKey"}, + {Method: "", Pattern: "", Operation: "DeleteUser"}, + {Method: "POST", Pattern: "/deleteWebApp", Operation: "DeleteWebApp"}, + {Method: "POST", Pattern: "/deleteWebAppCustomization", Operation: "DeleteWebAppCustomization"}, + {Method: "", Pattern: "", Operation: "DeleteWorkflow"}, {Method: "", Pattern: "", Operation: "DescribeAccess"}, + {Method: "", Pattern: "", Operation: "DescribeAgreement"}, + {Method: "", Pattern: "", Operation: "DescribeCertificate"}, + {Method: "", Pattern: "", Operation: "DescribeConnector"}, {Method: "", Pattern: "", Operation: "DescribeExecution"}, {Method: "", Pattern: "", Operation: "DescribeHostKey"}, + {Method: "", Pattern: "", Operation: "DescribeProfile"}, {Method: "", Pattern: "", Operation: "DescribeSecurityPolicy"}, + {Method: "", Pattern: "", Operation: "DescribeServer"}, + {Method: "", Pattern: "", Operation: "DescribeUser"}, + {Method: "POST", Pattern: "/describeWebApp", Operation: "DescribeWebApp"}, + {Method: "POST", Pattern: "/describeWebAppCustomization", Operation: "DescribeWebAppCustomization"}, + {Method: "", Pattern: "", Operation: "DescribeWorkflow"}, + {Method: "", Pattern: "", Operation: "ImportCertificate"}, {Method: "", Pattern: "", Operation: "ImportHostKey"}, {Method: "", Pattern: "", Operation: "ImportSshPublicKey"}, {Method: "", Pattern: "", Operation: "ListAccesses"}, + {Method: "", Pattern: "", Operation: "ListAgreements"}, + {Method: "", Pattern: "", Operation: "ListCertificates"}, + {Method: "", Pattern: "", Operation: "ListConnectors"}, {Method: "", Pattern: "", Operation: "ListExecutions"}, {Method: "POST", Pattern: "/listFileTransferResults", Operation: "ListFileTransferResults"}, {Method: "", Pattern: "", Operation: "ListHostKeys"}, + {Method: "", Pattern: "", Operation: "ListProfiles"}, {Method: "", Pattern: "", Operation: "ListSecurityPolicies"}, + {Method: "", Pattern: "", Operation: "ListServers"}, {Method: "", Pattern: "", Operation: "ListTagsForResource"}, + {Method: "", Pattern: "", Operation: "ListUsers"}, + {Method: "POST", Pattern: "/listWebApps", Operation: "ListWebApps"}, + {Method: "", Pattern: "", Operation: "ListWorkflows"}, {Method: "", Pattern: "", Operation: "SendWorkflowStepState"}, {Method: "", Pattern: "", Operation: "StartDirectoryListing"}, {Method: "", Pattern: "", Operation: "StartFileTransfer"}, @@ -44,7 +78,15 @@ var OperationRoutes = []OperationRoute{ {Method: "", Pattern: "", Operation: "TestIdentityProvider"}, {Method: "", Pattern: "", Operation: "UntagResource"}, {Method: "", Pattern: "", Operation: "UpdateAccess"}, + {Method: "", Pattern: "", Operation: "UpdateAgreement"}, + {Method: "", Pattern: "", Operation: "UpdateCertificate"}, + {Method: "", Pattern: "", Operation: "UpdateConnector"}, {Method: "", Pattern: "", Operation: "UpdateHostKey"}, + {Method: "", Pattern: "", Operation: "UpdateProfile"}, + {Method: "", Pattern: "", Operation: "UpdateServer"}, + {Method: "", Pattern: "", Operation: "UpdateUser"}, + {Method: "POST", Pattern: "/updateWebApp", Operation: "UpdateWebApp"}, + {Method: "POST", Pattern: "/updateWebAppCustomization", Operation: "UpdateWebAppCustomization"}, } // MatchOperation returns the operation name and extracted path parameters for diff --git a/internal/services/cloudwatch/provider.go b/internal/services/cloudwatch/provider.go index 72b65ec..5df2682 100644 --- a/internal/services/cloudwatch/provider.go +++ b/internal/services/cloudwatch/provider.go @@ -13,6 +13,7 @@ import ( "net/http" "net/url" "path/filepath" + "sort" "strconv" "strings" @@ -98,6 +99,12 @@ func (p *Provider) HandleRequest(_ context.Context, op string, req *http.Request return p.putAnomalyDetector(jm, req) case "DeleteAnomalyDetector": return p.deleteAnomalyDetector(jm, req) + case "TagResource": + return p.tagResource(jm, req) + case "UntagResource": + return p.untagResource(jm, req) + case "ListTagsForResource": + return p.listTagsForResource(jm, req) case "DescribeAnomalyDetectors": return p.describeAnomalyDetectors(jm, req) default: @@ -616,6 +623,72 @@ func isJSONMode(req *http.Request) bool { return strings.Contains(ct, "json") } +// --- Tags --- +// +// ponytail: tags are stored against whatever ARN the caller passes; the resource +// is not checked for existence. Validate against the alarm table if a test ever +// depends on ResourceNotFoundException. + +func (p *Provider) tagResource(jm bool, req *http.Request) (*plugin.Response, error) { + arn := req.FormValue("ResourceARN") + if arn == "" { + return cwError(jm, "MissingParameter", "ResourceARN is required", http.StatusBadRequest), nil + } + tags := make(map[string]string) + for i := 1; ; i++ { + prefix := fmt.Sprintf("Tags.member.%d.", i) + key := req.FormValue(prefix + "Key") + if key == "" { + break + } + tags[key] = req.FormValue(prefix + "Value") + } + if err := p.store.tags.AddTags(arn, tags); err != nil { + return nil, err + } + return cwResp(jm, http.StatusOK, "TagResourceResponse", nil) +} + +func (p *Provider) untagResource(jm bool, req *http.Request) (*plugin.Response, error) { + arn := req.FormValue("ResourceARN") + if arn == "" { + return cwError(jm, "MissingParameter", "ResourceARN is required", http.StatusBadRequest), nil + } + var keys []string + for i := 1; ; i++ { + key := req.FormValue(fmt.Sprintf("TagKeys.member.%d", i)) + if key == "" { + break + } + keys = append(keys, key) + } + if err := p.store.tags.RemoveTags(arn, keys); err != nil { + return nil, err + } + return cwResp(jm, http.StatusOK, "UntagResourceResponse", nil) +} + +func (p *Provider) listTagsForResource(jm bool, req *http.Request) (*plugin.Response, error) { + arn := req.FormValue("ResourceARN") + if arn == "" { + return cwError(jm, "MissingParameter", "ResourceARN is required", http.StatusBadRequest), nil + } + tags, err := p.store.tags.ListTags(arn) + if err != nil { + return nil, err + } + names := make([]string, 0, len(tags)) + for name := range tags { + names = append(names, name) + } + sort.Strings(names) + list := make([]map[string]any, 0, len(names)) + for _, name := range names { + list = append(list, map[string]any{"Key": name, "Value": tags[name]}) + } + return cwResp(jm, http.StatusOK, "ListTagsForResourceResponse", map[string]any{"Tags": list}) +} + func cwResp(jsonMode bool, status int, xmlRoot string, data map[string]any) (*plugin.Response, error) { if data == nil { data = map[string]any{} diff --git a/internal/services/cloudwatch/store.go b/internal/services/cloudwatch/store.go index 7eee263..6b983de 100644 --- a/internal/services/cloudwatch/store.go +++ b/internal/services/cloudwatch/store.go @@ -11,6 +11,7 @@ import ( "strings" "time" + "github.com/skyoo2003/devcloud/internal/shared" "github.com/skyoo2003/devcloud/internal/storage/sqlite" ) @@ -140,15 +141,17 @@ type MetricDataPoint struct { type CWStore struct { store *sqlite.Store + tags *shared.TagStore } func NewCWStore(dataDir string) (*CWStore, error) { dbPath := filepath.Join(dataDir, "cloudwatch.db") - s, err := sqlite.Open(dbPath, migrations) + allMigrations := append(migrations, shared.TagMigrations...) + s, err := sqlite.Open(dbPath, allMigrations) if err != nil { return nil, err } - return &CWStore{store: s}, nil + return &CWStore{store: s, tags: shared.NewTagStore(s)}, nil } func (s *CWStore) Close() error { return s.store.Close() } @@ -278,12 +281,24 @@ func (s *CWStore) DescribeAlarms(accountID string, alarmNames []string) ([]Alarm return scanAlarms(rows) } +// alarmARN is the ARN an alarm's tags are filed under. DevCloud does not hand +// out AlarmArn today, so this mirrors what a caller constructs from the name; +// tags applied under a different region or account are not reachable from here. +func alarmARN(name, accountID string) string { + return "arn:aws:cloudwatch:us-east-1:" + accountID + ":alarm:" + name +} + func (s *CWStore) DeleteAlarms(accountID string, alarmNames []string) error { for _, name := range alarmNames { _, err := s.store.DB().Exec(`DELETE FROM alarms WHERE alarm_name = ? AND account_id = ?`, name, accountID) if err != nil { return err } + // The ARN is derived from the name, so recreating the alarm would + // otherwise inherit the deleted one's tags. + if err := s.tags.DeleteAllTags(alarmARN(name, accountID)); err != nil { + return err + } } return nil } diff --git a/internal/services/eventbridge/provider.go b/internal/services/eventbridge/provider.go index 82a871e..dd4e2ec 100644 --- a/internal/services/eventbridge/provider.go +++ b/internal/services/eventbridge/provider.go @@ -11,6 +11,7 @@ import ( "io" "net/http" "path/filepath" + "sort" "strings" "time" @@ -122,6 +123,12 @@ func (p *Provider) HandleRequest(_ context.Context, op string, req *http.Request case "CancelReplay": return p.cancelReplay(params) // Test + case "TagResource": + return p.tagResource(params) + case "UntagResource": + return p.untagResource(params) + case "ListTagsForResource": + return p.listTagsForResource(params) case "TestEventPattern": return p.testEventPattern(params) default: @@ -150,7 +157,7 @@ func (p *Provider) createEventBus(params map[string]any) (*plugin.Response, erro if err := p.store.CreateEventBus(name, defaultAccountID); err != nil { return nil, err } - arn := "arn:aws:events:us-east-1:" + defaultAccountID + ":event-bus/" + name + arn := busARN(name, defaultAccountID) return jsonResp(http.StatusOK, map[string]any{"EventBusArn": arn}) } @@ -198,7 +205,7 @@ func (p *Provider) putRule(params map[string]any) (*plugin.Response, error) { if err := p.store.PutRule(name, busName, defaultAccountID, eventPattern, state, scheduleExpression); err != nil { return nil, err } - arn := "arn:aws:events:us-east-1:" + defaultAccountID + ":rule/" + name + arn := ruleARN(name, busName, defaultAccountID) return jsonResp(http.StatusOK, map[string]any{"RuleArn": arn}) } @@ -225,7 +232,7 @@ func (p *Provider) listRules(params map[string]any) (*plugin.Response, error) { } list := make([]map[string]any, 0, len(rules)) for _, r := range rules { - arn := "arn:aws:events:us-east-1:" + defaultAccountID + ":rule/" + r.Name + arn := ruleARN(r.Name, busName, defaultAccountID) list = append(list, map[string]any{ "Name": r.Name, "Arn": arn, @@ -358,7 +365,7 @@ func (p *Provider) describeRule(params map[string]any) (*plugin.Response, error) if err != nil { return ebError("ResourceNotFoundException", "Rule "+name+" does not exist.", http.StatusBadRequest), nil } - arn := "arn:aws:events:us-east-1:" + defaultAccountID + ":rule/" + rule.Name + arn := ruleARN(rule.Name, busName, defaultAccountID) result := map[string]any{ "Name": rule.Name, "Arn": arn, @@ -784,6 +791,74 @@ func matchesPattern(pattern map[string]any, event map[string]any) bool { return true } +// --- Tags --- +// +// ponytail: tags are stored against whatever ARN the caller passes; the resource +// is not checked for existence. Validate against the rule/bus tables if a test +// ever depends on ResourceNotFoundException. + +func (p *Provider) tagResource(params map[string]any) (*plugin.Response, error) { + arn, _ := params["ResourceARN"].(string) + if arn == "" { + return ebError("ValidationException", "ResourceARN is required", http.StatusBadRequest), nil + } + tags := make(map[string]string) + rawTags, _ := params["Tags"].([]any) + for _, t := range rawTags { + m, ok := t.(map[string]any) + if !ok { + continue + } + if k, _ := m["Key"].(string); k != "" { + v, _ := m["Value"].(string) + tags[k] = v + } + } + if err := p.store.tags.AddTags(arn, tags); err != nil { + return nil, err + } + return jsonResp(http.StatusOK, map[string]any{}) +} + +func (p *Provider) untagResource(params map[string]any) (*plugin.Response, error) { + arn, _ := params["ResourceARN"].(string) + if arn == "" { + return ebError("ValidationException", "ResourceARN is required", http.StatusBadRequest), nil + } + rawKeys, _ := params["TagKeys"].([]any) + keys := make([]string, 0, len(rawKeys)) + for _, k := range rawKeys { + if s, ok := k.(string); ok && s != "" { + keys = append(keys, s) + } + } + if err := p.store.tags.RemoveTags(arn, keys); err != nil { + return nil, err + } + return jsonResp(http.StatusOK, map[string]any{}) +} + +func (p *Provider) listTagsForResource(params map[string]any) (*plugin.Response, error) { + arn, _ := params["ResourceARN"].(string) + if arn == "" { + return ebError("ValidationException", "ResourceARN is required", http.StatusBadRequest), nil + } + tags, err := p.store.tags.ListTags(arn) + if err != nil { + return nil, err + } + names := make([]string, 0, len(tags)) + for name := range tags { + names = append(names, name) + } + sort.Strings(names) + list := make([]map[string]any, 0, len(names)) + for _, name := range names { + list = append(list, map[string]any{"Key": name, "Value": tags[name]}) + } + return jsonResp(http.StatusOK, map[string]any{"Tags": list}) +} + func ebError(code, message string, status int) *plugin.Response { body, _ := json.Marshal(map[string]any{"__type": code, "message": message}) return &plugin.Response{StatusCode: status, ContentType: "application/x-amz-json-1.1", Body: body} diff --git a/internal/services/eventbridge/store.go b/internal/services/eventbridge/store.go index feeb953..586b1f0 100644 --- a/internal/services/eventbridge/store.go +++ b/internal/services/eventbridge/store.go @@ -12,6 +12,7 @@ import ( "path/filepath" "time" + "github.com/skyoo2003/devcloud/internal/shared" "github.com/skyoo2003/devcloud/internal/storage/sqlite" "github.com/skyoo2003/devcloud/internal/plugin" @@ -104,15 +105,17 @@ type Target struct { type EBStore struct { store *sqlite.Store + tags *shared.TagStore } func NewEBStore(dataDir string) (*EBStore, error) { dbPath := filepath.Join(dataDir, "eventbridge.db") - s, err := sqlite.Open(dbPath, migrations) + allMigrations := append(migrations, shared.TagMigrations...) + s, err := sqlite.Open(dbPath, allMigrations) if err != nil { return nil, err } - eb := &EBStore{store: s} + eb := &EBStore{store: s, tags: shared.NewTagStore(s)} // Seed the default event bus. _ = eb.CreateEventBus("default", plugin.DefaultAccountID) return eb, nil @@ -120,8 +123,26 @@ func NewEBStore(dataDir string) (*EBStore, error) { func (s *EBStore) Close() error { return s.store.Close() } +// busARN and ruleARN are the single source of the ARNs this service hands out. +// Tags are keyed by ARN, so a delete has to rebuild the same string the create +// did or the tags outlive the resource. +func busARN(name, accountID string) string { + return "arn:aws:events:us-east-1:" + accountID + ":event-bus/" + name +} + +// A rule name is unique per bus, not per account, so the bus has to be in the +// ARN or two same-named rules on different buses share one — and with it, one +// tag set. AWS qualifies custom-bus rules the same way and leaves the default +// bus bare. +func ruleARN(name, busName, accountID string) string { + if busName == "" || busName == "default" { + return "arn:aws:events:us-east-1:" + accountID + ":rule/" + name + } + return "arn:aws:events:us-east-1:" + accountID + ":rule/" + busName + "/" + name +} + func (s *EBStore) CreateEventBus(name, accountID string) error { - arn := "arn:aws:events:us-east-1:" + accountID + ":event-bus/" + name + arn := busARN(name, accountID) _, err := s.store.DB().Exec( `INSERT INTO event_buses (name, arn, account_id) VALUES (?, ?, ?) ON CONFLICT DO NOTHING`, name, arn, accountID, @@ -138,7 +159,9 @@ func (s *EBStore) DeleteEventBus(name, accountID string) error { if n == 0 { return ErrBusNotFound } - return nil + // ARNs are derived from the name, so recreating a deleted bus reuses its ARN + // and would inherit the old tags. + return s.tags.DeleteAllTags(busARN(name, accountID)) } func (s *EBStore) GetEventBus(name, accountID string) (*EventBus, error) { @@ -218,7 +241,7 @@ func (s *EBStore) DeleteRule(name, busName, accountID string) error { if n == 0 { return ErrRuleNotFound } - return nil + return s.tags.DeleteAllTags(ruleARN(name, busName, accountID)) } func (s *EBStore) ListRules(busName, accountID string) ([]Rule, error) { diff --git a/internal/services/kms/provider.go b/internal/services/kms/provider.go index ef119b6..35201b4 100644 --- a/internal/services/kms/provider.go +++ b/internal/services/kms/provider.go @@ -11,6 +11,7 @@ import ( "io" "net/http" "path/filepath" + "sort" "strings" "time" @@ -127,6 +128,12 @@ func (p *Provider) HandleRequest(_ context.Context, op string, req *http.Request return p.putKeyPolicy(params) case "ListKeyPolicies": return p.listKeyPolicies(params) + case "TagResource": + return p.tagResource(params) + case "UntagResource": + return p.untagResource(params) + case "ListResourceTags": + return p.listResourceTags(params) default: // Fall back to the generic CRUD engine for unimplemented ops. return nil, plugin.ErrUnhandledOp @@ -811,6 +818,91 @@ func (p *Provider) listKeyPolicies(params map[string]any) (*plugin.Response, err } // resolveKey accepts a key ID, ARN, or alias name. +// --- Tags --- +// +// Tags are keyed by the key's ARN rather than the caller's KeyId, so tagging by +// id, ARN or alias and listing by any of the three round-trips. + +func (p *Provider) tagResource(params map[string]any) (*plugin.Response, error) { + key, resp := p.keyForTagging(params) + if resp != nil { + return resp, nil + } + + tags := make(map[string]string) + rawTags, _ := params["Tags"].([]any) + for _, t := range rawTags { + m, ok := t.(map[string]any) + if !ok { + continue + } + if k, _ := m["TagKey"].(string); k != "" { + v, _ := m["TagValue"].(string) + tags[k] = v + } + } + if err := p.store.tags.AddTags(key.ARN, tags); err != nil { + return nil, err + } + return jsonResp(http.StatusOK, map[string]any{}) +} + +func (p *Provider) untagResource(params map[string]any) (*plugin.Response, error) { + key, resp := p.keyForTagging(params) + if resp != nil { + return resp, nil + } + + rawKeys, _ := params["TagKeys"].([]any) + keys := make([]string, 0, len(rawKeys)) + for _, k := range rawKeys { + if s, ok := k.(string); ok && s != "" { + keys = append(keys, s) + } + } + if err := p.store.tags.RemoveTags(key.ARN, keys); err != nil { + return nil, err + } + return jsonResp(http.StatusOK, map[string]any{}) +} + +func (p *Provider) listResourceTags(params map[string]any) (*plugin.Response, error) { + key, resp := p.keyForTagging(params) + if resp != nil { + return resp, nil + } + + tags, err := p.store.tags.ListTags(key.ARN) + if err != nil { + return nil, err + } + names := make([]string, 0, len(tags)) + for name := range tags { + names = append(names, name) + } + sort.Strings(names) + + list := make([]map[string]any, 0, len(names)) + for _, name := range names { + list = append(list, map[string]any{"TagKey": name, "TagValue": tags[name]}) + } + return jsonResp(http.StatusOK, map[string]any{"Tags": list, "Truncated": false}) +} + +// keyForTagging resolves the KeyId shared by the three tag operations, returning +// a ready error response rather than a key when the request cannot be served. +func (p *Provider) keyForTagging(params map[string]any) (*Key, *plugin.Response) { + keyID, _ := params["KeyId"].(string) + if keyID == "" { + return nil, kmsError("ValidationException", "KeyId is required", http.StatusBadRequest) + } + key, err := p.resolveKey(keyID) + if err != nil { + return nil, kmsError("NotFoundException", "key not found", http.StatusBadRequest) + } + return key, nil +} + func (p *Provider) resolveKey(keyID string) (*Key, error) { if strings.HasPrefix(keyID, "alias/") { return p.store.GetKeyByAlias(keyID) diff --git a/internal/services/kms/store.go b/internal/services/kms/store.go index 855dcca..9db1a7f 100644 --- a/internal/services/kms/store.go +++ b/internal/services/kms/store.go @@ -13,6 +13,8 @@ import ( "errors" "fmt" "io" + + "github.com/skyoo2003/devcloud/internal/shared" "path/filepath" "time" @@ -90,15 +92,17 @@ type Alias struct { type KMSStore struct { store *sqlite.Store + tags *shared.TagStore } func NewKMSStore(dataDir string) (*KMSStore, error) { dbPath := filepath.Join(dataDir, "kms.db") - s, err := sqlite.Open(dbPath, migrations) + allMigrations := append(migrations, shared.TagMigrations...) + s, err := sqlite.Open(dbPath, allMigrations) if err != nil { return nil, err } - return &KMSStore{store: s}, nil + return &KMSStore{store: s, tags: shared.NewTagStore(s)}, nil } func (s *KMSStore) Close() error { return s.store.Close() } diff --git a/tests/compatibility/test_cloudwatch.py b/tests/compatibility/test_cloudwatch.py index e520f49..a9c7520 100644 --- a/tests/compatibility/test_cloudwatch.py +++ b/tests/compatibility/test_cloudwatch.py @@ -191,3 +191,53 @@ def test_anomaly_detector(cloudwatch_client): MetricName="Req", Stat="Average", ) + + +def test_tag_round_trip(cloudwatch_client): + """Tags must persist: the round-trip the generic CRUD engine cannot do.""" + arn = "arn:aws:cloudwatch:us-east-1:000000000000:alarm:compat-tag-alarm" + + cloudwatch_client.tag_resource( + ResourceARN=arn, + Tags=[{"Key": "env", "Value": "dev"}, {"Key": "team", "Value": "platform"}], + ) + tags = { + t["Key"]: t["Value"] + for t in cloudwatch_client.list_tags_for_resource(ResourceARN=arn)["Tags"] + } + assert tags == {"env": "dev", "team": "platform"} + + cloudwatch_client.untag_resource(ResourceARN=arn, TagKeys=["env"]) + tags = { + t["Key"]: t["Value"] + for t in cloudwatch_client.list_tags_for_resource(ResourceARN=arn)["Tags"] + } + assert tags == {"team": "platform"} + + +def test_alarm_tags_do_not_survive_delete(cloudwatch_client): + """An alarm ARN is derived from its name, so a delete must drop its tags.""" + arn = "arn:aws:cloudwatch:us-east-1:000000000000:alarm:tag-ghost-alarm" + cloudwatch_client.put_metric_alarm( + AlarmName="tag-ghost-alarm", + Namespace="MyApp", + MetricName="CPUUtilization", + Statistic="Average", + Period=60, + EvaluationPeriods=1, + Threshold=80.0, + ComparisonOperator="GreaterThanThreshold", + ) + cloudwatch_client.tag_resource( + ResourceARN=arn, Tags=[{"Key": "env", "Value": "dev"}] + ) + cloudwatch_client.delete_alarms(AlarmNames=["tag-ghost-alarm"]) + + assert cloudwatch_client.list_tags_for_resource(ResourceARN=arn)["Tags"] == [] + + +def test_tags_are_per_resource(cloudwatch_client): + a = "arn:aws:cloudwatch:us-east-1:000000000000:alarm:tag-alarm-a" + b = "arn:aws:cloudwatch:us-east-1:000000000000:alarm:tag-alarm-b" + cloudwatch_client.tag_resource(ResourceARN=a, Tags=[{"Key": "only", "Value": "a"}]) + assert cloudwatch_client.list_tags_for_resource(ResourceARN=b)["Tags"] == [] diff --git a/tests/compatibility/test_eventbridge.py b/tests/compatibility/test_eventbridge.py index 284f27c..012f2a3 100644 --- a/tests/compatibility/test_eventbridge.py +++ b/tests/compatibility/test_eventbridge.py @@ -189,3 +189,78 @@ def test_event_pattern(events_client): ), ) assert resp2["Result"] is False + + +def test_tag_round_trip(events_client): + """Tags must persist: the round-trip the generic CRUD engine cannot do.""" + bus = events_client.create_event_bus(Name="tag-bus") + arn = bus["EventBusArn"] + + events_client.tag_resource( + ResourceARN=arn, + Tags=[{"Key": "env", "Value": "dev"}, {"Key": "team", "Value": "platform"}], + ) + tags = { + t["Key"]: t["Value"] + for t in events_client.list_tags_for_resource(ResourceARN=arn)["Tags"] + } + assert tags == {"env": "dev", "team": "platform"} + + events_client.untag_resource(ResourceARN=arn, TagKeys=["env"]) + tags = { + t["Key"]: t["Value"] + for t in events_client.list_tags_for_resource(ResourceARN=arn)["Tags"] + } + assert tags == {"team": "platform"} + + +def test_tags_do_not_survive_delete(events_client): + """A recreated bus reuses its ARN, so a delete must drop its tags with it.""" + arn = events_client.create_event_bus(Name="tag-ghost-bus")["EventBusArn"] + events_client.tag_resource(ResourceARN=arn, Tags=[{"Key": "env", "Value": "dev"}]) + events_client.delete_event_bus(Name="tag-ghost-bus") + + recreated = events_client.create_event_bus(Name="tag-ghost-bus")["EventBusArn"] + assert recreated == arn + assert events_client.list_tags_for_resource(ResourceARN=arn)["Tags"] == [] + + +def test_rule_tags_do_not_survive_delete(events_client): + events_client.put_rule(Name="tag-ghost-rule", ScheduleExpression="rate(5 minutes)") + arn = events_client.describe_rule(Name="tag-ghost-rule")["Arn"] + events_client.tag_resource(ResourceARN=arn, Tags=[{"Key": "env", "Value": "dev"}]) + events_client.delete_rule(Name="tag-ghost-rule") + + events_client.put_rule(Name="tag-ghost-rule", ScheduleExpression="rate(5 minutes)") + assert events_client.list_tags_for_resource(ResourceARN=arn)["Tags"] == [] + + +def test_same_named_rules_on_different_buses_do_not_share_tags(events_client): + """A rule name is unique per bus, so the bus must be part of the rule ARN.""" + events_client.create_event_bus(Name="bus-a") + events_client.create_event_bus(Name="bus-b") + for bus in ("bus-a", "bus-b"): + events_client.put_rule( + Name="shared-name", EventBusName=bus, ScheduleExpression="rate(5 minutes)" + ) + + arn_a = events_client.describe_rule(Name="shared-name", EventBusName="bus-a")["Arn"] + arn_b = events_client.describe_rule(Name="shared-name", EventBusName="bus-b")["Arn"] + assert arn_a != arn_b + + events_client.tag_resource(ResourceARN=arn_a, Tags=[{"Key": "bus", "Value": "a"}]) + assert events_client.list_tags_for_resource(ResourceARN=arn_b)["Tags"] == [] + + # Deleting one rule must not strip the other's tags. + events_client.delete_rule(Name="shared-name", EventBusName="bus-b") + tags = events_client.list_tags_for_resource(ResourceARN=arn_a)["Tags"] + assert tags == [{"Key": "bus", "Value": "a"}] + + +def test_tags_are_per_resource(events_client): + """Two resources do not share a tag set.""" + a = events_client.create_event_bus(Name="tag-bus-a")["EventBusArn"] + b = events_client.create_event_bus(Name="tag-bus-b")["EventBusArn"] + + events_client.tag_resource(ResourceARN=a, Tags=[{"Key": "only", "Value": "a"}]) + assert events_client.list_tags_for_resource(ResourceARN=b)["Tags"] == [] diff --git a/tests/compatibility/test_kms.py b/tests/compatibility/test_kms.py index 13c1b62..a6b72ca 100644 --- a/tests/compatibility/test_kms.py +++ b/tests/compatibility/test_kms.py @@ -152,3 +152,52 @@ def test_update_key_description(kms_client): kms_client.update_key_description(KeyId=kid, Description="updated") desc = kms_client.describe_key(KeyId=kid) assert desc["KeyMetadata"]["Description"] == "updated" + + +def test_tag_round_trip(kms_client): + """Tags must persist: the round-trip the generic CRUD engine cannot do.""" + key = kms_client.create_key(Description="tag test") + kid = key["KeyMetadata"]["KeyId"] + + kms_client.tag_resource( + KeyId=kid, + Tags=[ + {"TagKey": "env", "TagValue": "dev"}, + {"TagKey": "team", "TagValue": "platform"}, + ], + ) + tags = { + t["TagKey"]: t["TagValue"] + for t in kms_client.list_resource_tags(KeyId=kid)["Tags"] + } + assert tags == {"env": "dev", "team": "platform"} + + kms_client.untag_resource(KeyId=kid, TagKeys=["env"]) + tags = { + t["TagKey"]: t["TagValue"] + for t in kms_client.list_resource_tags(KeyId=kid)["Tags"] + } + assert tags == {"team": "platform"} + + +def test_tags_are_keyed_by_key_arn(kms_client): + """Tagging by id and listing by ARN address the same resource.""" + key = kms_client.create_key(Description="arn tag test") + kid = key["KeyMetadata"]["KeyId"] + arn = key["KeyMetadata"]["Arn"] + + kms_client.tag_resource(KeyId=kid, Tags=[{"TagKey": "by", "TagValue": "id"}]) + tags = { + t["TagKey"]: t["TagValue"] + for t in kms_client.list_resource_tags(KeyId=arn)["Tags"] + } + assert tags == {"by": "id"} + + +def test_tag_unknown_key_is_rejected(kms_client): + with pytest.raises(ClientError) as err: + kms_client.tag_resource( + KeyId="00000000-0000-0000-0000-000000000000", + Tags=[{"TagKey": "env", "TagValue": "dev"}], + ) + assert err.value.response["Error"]["Code"] == "NotFoundException"