fix(conformance): batch E services to 100% on the refreshed models
Merged
VI
8h ago+1478+1478+0123456789012345678901234567890123456789-43-43-01234567890123456789
Summary
Fixes every variant still failing on main outside the open PRs (apigatewayv2, bedrock, cloudfront, ecs, glue, monitoring, sqs).
- apigatewayv2: product REST endpoint pages store
TryItState. Product page / REST endpoint page updates are partial (omitted members keep their stored values) and returnNotFoundExceptionfor a missing page instead of creating it. The existence check and the write share one lock, so an update can't bring back a page deleted at the same moment. - bedrock: the GET router keeps interior empty path segments, so an empty interior label (e.g.
/automated-reasoning-policies//build-workflows/...) reaches its op and getsValidationExceptioninstead of a 501. Trailing-slash -> List routing (#1645) is unchanged. - ecs capacity providers:
- A provider needs exactly one backing (Auto Scaling group or Managed Instances config).
- Managed Instances providers are cluster-scoped. They are listed when you pass
cluster, by name or ARN, and Update/Delete honorcluster. FARGATE/FARGATE_SPOTare listed after your own providers.maxResults/nextTokenpaging works, responses never emit nulls, and the reserved-prefix check is case-insensitive.- CloudFormation stores the API's camelCase shape, applies the same backing rule, and keeps
ClusterNameonly for Managed Instances providers (resolved from a name or an ARN).
- glue:
DeleteIntegrationreturns only its output members. - cloudwatch:
PutLogAlarmaccepts an emptyQueryString, which the model allows. - probe:
negative_too_shortis skipped only when the empty value is the final URI label and the shortened request is byte-identical to another op in the same model: same method, same path, same query literals. That request is the other op on the wire, and SDKs refuse empty labels client-side. The rule is derived from the model and unit-tested.- The XML validator honors member
xmlNamefor flattened lists. An absent flattened list counts as empty, which fixes the SQSDeleteMessageBatchfalse failure.
Variant totals drop by 99 repo-wide from the skip (iot 27, appsync 12, transcribe 9, bedrock 7, s3 7, others smaller). Baseline and doc counts are regenerated in the final re-baseline batch.
Test plan
cargo fmt --check,cargo clippy --workspace --all-targets -D warnings- lib: conformance, ecs, cloudformation, apigatewayv2, bedrock, glue, cloudwatch, sqs
- conformance tests: ecs, apigatewayv2, s3, bedrock, cloudfront, glue, cloudwatch, sqs
- e2e: ecs, cloudformation_ecs, apigatewayv2, bedrock, glue, cloudwatch, sqs
- probe 100%: apigatewayv2 2786, bedrock 4037, cloudfront 4110, ecs 2442, glue 10478, monitoring 1909, sqs 541, s3 4061
Summary by cubic
Fixes the remaining conformance failures on the refreshed models across apigatewayv2, bedrock, ecs, glue, cloudwatch, and sqs. Product page updates are now partial and return NotFoundException for a missing page, REST endpoint pages store TryItState, bedrock GET keeps interior empty path segments, DeleteIntegration omits IntegrationConfig, and PutLogAlarm accepts an empty QueryString.
ECS capacity providers
- A provider needs exactly one backing: Auto Scaling group or Managed Instances; the reserved-prefix check is case-insensitive.
- Managed Instances providers are cluster-scoped by name or ARN;
Update/Deletemust name their own cluster, andFARGATE/FARGATE_SPOTare listed after your own providers. maxResults/nextTokenpaging works and responses never emit nulls.- CloudFormation stores the API's camelCase shape and applies the same backing and cluster rules.
Conformance probe fixes
negative_too_shortis skipped only when an empty trailing label collapses the request onto a byte-identical same-method operation.- The XML validator honors member
xmlNameand treats an absent flattened list as empty, fixing the SQSDeleteMessageBatchfalse failure.