-
Notifications
You must be signed in to change notification settings - Fork 874
Generate GetBucketInventoryConfiguration #4155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Generate GetBucketInventoryConfiguration #4155
Conversation
stack-info: PR: #4154, branch: peterrsongg/petesong/phase-3-pr4-3/1
cda4f5e to
ce45e13
Compare
Breaking Changes Analysis - GetBucketInventoryConfiguration MigrationSummaryI have thoroughly analyzed all 11 files that were migrated from Custom to Generated code for the GetBucketInventoryConfiguration operation. RESULT: NO BREAKING CHANGES FOUND DETAILED ANALYSISFiles Analyzed: 11/11Request/Response Models (2)
Marshallers (2)
Unmarshallers (7)
KEY FINDINGSIntentional Changes (Non-Breaking)
Verification Against Breaking Change Criteria
CONCLUSIONAll 11 files have been successfully migrated from Custom to Generated code with NO BREAKING CHANGES. The migration correctly:
This PR is safe to merge from a breaking changes perspective. |
stack-info: PR: #4155, branch: peterrsongg/petesong/phase-3-pr4-3/2
stack-info: PR: #4154, branch: peterrsongg/petesong/phase-3-pr4-3/1
| { | ||
| IRequest request = new DefaultRequest(getInventoryConfigurationRequest, "Amazon.S3"); | ||
|
|
||
| request.Suppress404Exceptions = true; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't see this Suppress404Exceptions in the generated marshaller. Is that intentional?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
oh nope that wasn't intentional, i just missed adding it. I'll add it here!
stack-info: PR: #4155, branch: peterrsongg/petesong/phase-3-pr4-3/2
stack-info: PR: #4155, branch: peterrsongg/petesong/phase-3-pr4-3/2
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR generates the GetBucketInventoryConfiguration operation for the AWS S3 SDK, replacing handwritten code with generated code. The change migrates several unmarshaller classes from the Custom folder to the Generated folder, standardizing them with the code generation pattern used throughout the SDK. The PR notes that fuzz testing showed differences in handling empty responses, but this scenario won't occur in practice since the root-level tag is required per AWS documentation.
Key changes:
- Enables code generation for
GetBucketInventoryConfigurationoperation - Migrates custom unmarshallers to generated versions with updated patterns (singleton initialization, naming conventions, partial methods)
- Adds customizations in s3.customizations.json for property name mappings
Reviewed changes
Copilot reviewed 6 out of 17 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| ServiceModel.cs | Uncomments GetBucketInventoryConfiguration in S3 allowlist to enable generation |
| s3.customizations.json | Adds property name customizations for InventoryId and ExpectedBucketOwner |
| GetBucketInventoryConfigurationRequest.cs | Updated to generated version with improved documentation and validation |
| GetBucketInventoryConfigurationResponse.cs | Updated to generated version with consistent field naming |
| GetBucketInventoryConfigurationRequestMarshaller.cs | Replaces custom marshaller with generated version |
| GetBucketInventoryConfigurationResponseUnmarshaller.cs | Replaces custom unmarshaller with generated version |
| InventoryConfigurationUnmarshaller.cs | Migrated from Custom to Generated folder with updated pattern |
| SSES3Unmarshaller.cs | New generated unmarshaller (previously in Custom folder, now deleted) |
| SSEKMSUnmarshaller.cs | Updated to generated pattern with consistent formatting |
| InventoryScheduleUnmarshaller.cs | Updated to generated pattern with implicit conversion for enums |
| InventoryS3BucketDestinationUnmarshaller.cs | Updated to generated pattern with reordered field processing |
| InventoryEncryptionUnmarshaller.cs | Updated to generated pattern with consistent formatting |
| InventoryDestinationUnmarshaller.cs | Updated to generated pattern with consistent formatting |
| Custom/Model/Internal/MarshallTransformations/* | Deleted custom versions replaced by generated code |
| if (string.IsNullOrEmpty(publicRequest.BucketName)) | ||
| throw new System.ArgumentException("BucketName is a required property and must be set before making this call.", "GetBucketInventoryConfigurationRequest.BucketName"); | ||
| if (string.IsNullOrEmpty(publicRequest.InventoryId)) | ||
| throw new AmazonS3Exception("Request object does not have required field InventoryId set"); |
Copilot
AI
Nov 26, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The error message for missing InventoryId is inconsistent with the error message for BucketName on line 68. The BucketName error uses ArgumentException with a descriptive message including the parameter name, while InventoryId uses AmazonS3Exception with a less descriptive message. For consistency and better error handling, consider using: throw new System.ArgumentException(\"InventoryId is a required property and must be set before making this call.\", \"GetBucketInventoryConfigurationRequest.InventoryId\");
| throw new AmazonS3Exception("Request object does not have required field InventoryId set"); | |
| throw new System.ArgumentException("InventoryId is a required property and must be set before making this call.", "GetBucketInventoryConfigurationRequest.InventoryId"); |
ce45e13 to
0880c10
Compare
5044106 to
533a0b0
Compare
…petesong/phase-3-pr4-3/2
55e70ac to
135b1f6
Compare
* Generate PutBucketInventoryConfiguration stack-info: PR: #4154, branch: peterrsongg/petesong/phase-3-pr4-3/1 * Generate GetBucketInventoryConfiguration stack-info: PR: #4155, branch: peterrsongg/petesong/phase-3-pr4-3/2 * Generate ListBucketInventoryConfigurations stack-info: PR: #4156, branch: peterrsongg/petesong/phase-3-pr4-3/3 * Geneate DeleteBucketInventoryConfiguration stack-info: PR: #4157, branch: peterrsongg/petesong/phase-3-pr4-3/4 * Generate PutBucketAcclerateConfiguration stack-info: PR: #4158, branch: peterrsongg/petesong/phase-3-pr4-3/5
* Generate PutBucketInventoryConfiguration stack-info: PR: #4154, branch: peterrsongg/petesong/phase-3-pr4-3/1 * Generate GetBucketInventoryConfiguration stack-info: PR: #4155, branch: peterrsongg/petesong/phase-3-pr4-3/2 * Generate ListBucketInventoryConfigurations stack-info: PR: #4156, branch: peterrsongg/petesong/phase-3-pr4-3/3 * Geneate DeleteBucketInventoryConfiguration stack-info: PR: #4157, branch: peterrsongg/petesong/phase-3-pr4-3/4 * Generate PutBucketAcclerateConfiguration stack-info: PR: #4158, branch: peterrsongg/petesong/phase-3-pr4-3/5 * Generate PutBucketRequestPayment stack-info: PR: #4159, branch: peterrsongg/petesong/phase-3-pr4-3/6
Description
Generates
GetBucketInventoryConfigurationNothing from the Assembly comparer.
Motivation and Context
Testing
DRY_RUN Build id: 207f32c4-32c7-4ed1-bb1e-fea3028bf563 succeeded
FUZZ_TEST results
One difference is how we treat empty responses. However, the docs here: https://docs.aws.amazon.com/AmazonS3/latest/API/API_GetBucketInventoryConfiguration.html say that the root-level tag is required so this scenario won't happen.
Screenshots (if appropriate)
Types of changes
Checklist
License