-
Notifications
You must be signed in to change notification settings - Fork 874
Generate UpdateBucketMetadataTableConfiguration #4206
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
base: peterrsongg/petesong/phase-3-pr5-rebased-2/2
Are you sure you want to change the base?
Generate UpdateBucketMetadataTableConfiguration #4206
Conversation
stack-info: PR: #4206, branch: peterrsongg/petesong/phase-3-pr5-rebased-2/3
32a5768 to
50bdfc2
Compare
d1f15c3 to
ca9c530
Compare
stack-info: PR: #4206, branch: peterrsongg/petesong/phase-3-pr5-rebased-2/3
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 fixes the UpdateBucketMetadataJournalTableConfiguration operation by replacing incorrect handwritten code with properly generated code from the S3 service model. The original custom implementation used the wrong API shape, causing the operation to fail. The new generated code uses RecordExpiration instead of the incorrect ConfigurationState and EncryptionConfiguration properties.
Key Changes:
- Replaced custom
JournalTableConfigurationUpdatesclass with generated version that correctly usesRecordExpirationproperty - Generated proper request/response marshallers replacing handwritten implementations
- Added operation to S3 allow list in ServiceModel.cs for code generation
- Added generator customizations for
ContentMD5andExpectedBucketOwnerproperties
Reviewed changes
Copilot reviewed 6 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
sdk/src/Services/S3/Generated/Model/UpdateBucketMetadataJournalTableConfigurationResponse.cs |
Updated response class with standard generated code formatting and headers |
sdk/src/Services/S3/Generated/Model/UpdateBucketMetadataJournalTableConfigurationRequest.cs |
New generated request class with correct properties and comprehensive documentation |
sdk/src/Services/S3/Generated/Model/JournalTableConfigurationUpdates.cs |
New generated class with correct RecordExpiration property instead of incorrect properties |
sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/UpdateBucketMetadataJournalTableConfigurationResponseUnmarshaller.cs |
New generated response unmarshaller with proper error handling |
sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/UpdateBucketMetadataJournalTableConfigurationRequestMarshaller.cs |
New generated request marshaller with correct XML serialization logic |
sdk/src/Services/S3/Custom/Model/UpdateBucketMetadataJournalTableConfigurationRequest.cs |
Deleted incorrect custom implementation |
sdk/src/Services/S3/Custom/Model/JournalTableConfigurationUpdates.cs |
Deleted incorrect custom implementation with wrong properties |
sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/UpdateBucketMetadataJournalTableConfigurationResponseUnmarshaller.cs |
Deleted custom unmarshaller implementation |
sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/UpdateBucketMetadataJournalTableConfigurationRequestMarshaller.cs |
Deleted custom marshaller implementation |
generator/ServiceModels/s3/s3.customizations.json |
Added customizations for ContentMD5 and ExpectedBucketOwner IsSet methods |
generator/ServiceClientGeneratorLib/ServiceModel.cs |
Added operation to S3 allow list for code generation |
| new Operation(this, "ListObjects", DocumentRoot[OperationsKey]["ListObjects"]), | ||
| new Operation(this,"UpdateBucketMetadataJournalTableConfiguration", DocumentRoot[OperationsKey]["UpdateBucketMetadataJournalTableConfiguration"]) |
Copilot
AI
Dec 9, 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.
This PR is missing a required dev config file. According to CONTRIBUTING.md, all pull requests that modify code MUST include a DevConfig file in generator/.DevConfigs/ directory. This is essential for the release process and changelog generation.
For this change, you should create a dev config with a "major" type (breaking change) since the AssemblyComparer output shows removed methods (ConfigurationState, EncryptionConfiguration) and the operation signature has changed. Example structure:
{
"services": [
{
"serviceName": "S3",
"type": "major",
"changeLogMessages": [
"**Breaking Change** Fixed UpdateBucketMetadataJournalTableConfiguration operation to use correct API shape. Previous implementation used incorrect properties and did not work. Update code to use RecordExpiration property instead of ConfigurationState and EncryptionConfiguration."
],
"backwardIncompatibilitiesToIgnore": [
"Amazon.S3.Model.JournalTableConfigurationUpdates/MethodRemoved"
]
}
]
}See https://github.com/aws/aws-sdk-net/blob/main/CONTRIBUTING.md for details.
Description
Generates
UpdateBucketMetadataTableConfiguration. There are breaking changes in this, but that is because the operation wasn't working before. This will be called out in the changelog as necessary to make the operation work. The engineer who made the customization mistakenly used the wrong shape as the modeled C# class.Assembly Comparison Output (empty)
Fuzz tests don't apply here since the request fails
Motivation and Context
Testing
I manually tested this operation currently and found it didn't work. A manual test of the newly generated operation succeeded.
DRY_RUN-e581806f-264b-46d0-a331-1318e27c2273
Screenshots (if appropriate)
Types of changes
Checklist
License