Summary
DeregisterJobDefinition, DeleteJobQueue, DeleteComputeEnvironment and UpdateJobQueue/UpdateComputeEnvironment are not routed by parseBatchOperation (emulator/batch_plugin.go), so a Batch resource can be created but never taken out of service or changed.
Found while implementing #530, which added the three Describe* reads and made the creates persist. That work makes this gap observable in a specific way worth recording: DescribeJobDefinitions now honours the documented status filter, but nothing can produce an INACTIVE job definition, because deregistration is the only operation that sets it. So --status INACTIVE correctly returns an empty list, and correctly always will, until this is fixed.
The same applies to the other two resources: DescribeComputeEnvironments/DescribeJobQueues report state: ENABLED and status: VALID because that is what a create records, and no routed operation can move them.
Cause
parseBatchOperation routes the three creates and (since #530) the three describes. The lifecycle operations were never added.
Acceptance criteria
Related
Summary
DeregisterJobDefinition,DeleteJobQueue,DeleteComputeEnvironmentandUpdateJobQueue/UpdateComputeEnvironmentare not routed byparseBatchOperation(emulator/batch_plugin.go), so a Batch resource can be created but never taken out of service or changed.Found while implementing #530, which added the three
Describe*reads and made the creates persist. That work makes this gap observable in a specific way worth recording:DescribeJobDefinitionsnow honours the documentedstatusfilter, but nothing can produce anINACTIVEjob definition, because deregistration is the only operation that sets it. So--status INACTIVEcorrectly returns an empty list, and correctly always will, until this is fixed.The same applies to the other two resources:
DescribeComputeEnvironments/DescribeJobQueuesreportstate: ENABLEDandstatus: VALIDbecause that is what a create records, and no routed operation can move them.Cause
parseBatchOperationroutes the three creates and (since #530) the three describes. The lifecycle operations were never added.Acceptance criteria
DeregisterJobDefinitionrouted, marking the addressed revisionINACTIVEper the API reference. Verify against the reference whether a deregistered revision remains describable (it does — that is whystatusis a filter) and whether the bare-name describe still reports it.DeleteComputeEnvironmentandDeleteJobQueuerouted, with the documented precondition that a queue must beDISABLEDbefore deletion, and that an environment associated with a queue cannot be deleted.UpdateComputeEnvironmentandUpdateJobQueuerouted, sostatecan moveENABLED↔DISABLED— the precondition the deletes depend on.ClientException/ServerExceptionpair that is the only documented error shape for Batch.INACTIVEand is selected by--status INACTIVEand not by--status ACTIVE, which is the assertion Batch: DescribeComputeEnvironments/DescribeJobQueues/DescribeJobDefinitions are unrouted, so a created resource cannot be read back #530's work cannot currently make.docs/services.mdBatch operation table updated.Related
INACTIVEhas no writer.