-
Notifications
You must be signed in to change notification settings - Fork 874
generate ListMultipartUploads #4207
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/3
Are you sure you want to change the base?
generate ListMultipartUploads #4207
Conversation
stack-info: PR: #4207, branch: peterrsongg/petesong/phase-3-pr5-rebased-2/4
32a5768 to
50bdfc2
Compare
a1013dd to
ec4fd4a
Compare
READ THISThe 3 breaking changes the AI analysis looked at is not breaking.Breaking Changes Analysis for Commit ec4fd4aCRITICAL BREAKING CHANGES FOUND: 2POTENTIAL BREAKING CHANGES: 1File 1:
|
stack-info: PR: #4207, branch: peterrsongg/petesong/phase-3-pr5-rebased-2/4
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 migrates the ListMultipartUploads S3 operation from handwritten code to generated code based on the s3-2006-03-01.normal.json service model. The change adds the EncodingType property to the response model and standardizes field naming conventions across the models and marshallers. Custom unmarshalling logic for CommonPrefixes is preserved in a partial class implementation.
Key Changes:
- Replaces handwritten model classes and marshallers with auto-generated equivalents
- Adds
EncodingTypeproperty toListMultipartUploadsResponse(non-breaking addition) - Updates field naming from camelCase to underscore-prefixed style (
_fieldName)
Reviewed changes
Copilot reviewed 4 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| sdk/src/Services/S3/Generated/Model/MultipartUpload.cs | Converted to generated code with updated field naming and reorganized property order (ChecksumType moved for alphabetical ordering) |
| sdk/src/Services/S3/Generated/Model/ListMultipartUploadsResponse.cs | Converted to generated code, added EncodingType property, updated field naming and documentation |
| sdk/src/Services/S3/Generated/Model/ListMultipartUploadsRequest.cs | Converted to generated code with updated field naming, documentation improvements, and AWSProperty attribute on BucketName |
| sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/MultipartUploadUnmarshaller.cs | Updated to use Instance singleton pattern and NullableDateTimeUnmarshaller for consistency |
| sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/ListMultipartUploadsResponseUnmarshaller.cs | New generated unmarshaller that integrates with custom CommonPrefixes unmarshalling logic |
| sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/ListMultipartUploadsRequestMarshaller.cs | New generated marshaller replacing handwritten implementation |
| sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/ListMultipartUploadsResponseUnmarshaller.cs | Reduced to partial class containing only custom CommonPrefixes unmarshalling method |
| sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/ListMultipartUploadsRequestMarshaller.cs | Removed - functionality moved to generated code |
| generator/ServiceModels/s3/s3.customizations.json | Added generation customizations for ListMultipartUploads request/output including property renaming and custom unmarshalling hooks |
| generator/ServiceClientGeneratorLib/ServiceModel.cs | Added ListMultipartUploads to S3 allow list for code generation |
Note: The PR description contains a copy-paste error stating "Generates DeleteBucketMetadataConfiguration" when it should say "Generates ListMultipartUploads". The actual changes and title are correct.
Critical Issue: This PR is missing a required DevConfig file. According to the CONTRIBUTING.md guidelines, all pull requests that modify code must include a DevConfig file in the generator/.DevConfigs directory for the release process and changelog generation.
| "ListMultipartUploadsRequest":{ | ||
| "CommonPrefixes" : { | ||
| "Type": "List<string>", | ||
| "Marshaller": "StringUtils.FromString", | ||
| "Unmarshaller" : "CommonPrefixesItemUnmarshaller" | ||
| } | ||
| }, |
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.
The dataTypeSwap configuration includes an entry for ListMultipartUploadsRequest.CommonPrefixes (lines 1596-1602), but CommonPrefixes is a response-only property that doesn't exist in request objects. This entry should likely be removed, as only ListMultipartUploadsOutput.CommonPrefixes (lines 1603-1609) is needed. Compare with similar operations like ListObjects which only has a dataTypeSwap entry for the Output, not the Request.
| "ListMultipartUploadsRequest":{ | |
| "CommonPrefixes" : { | |
| "Type": "List<string>", | |
| "Marshaller": "StringUtils.FromString", | |
| "Unmarshaller" : "CommonPrefixesItemUnmarshaller" | |
| } | |
| }, |
Description
Generates
DeleteBucketMetadataConfigurationAssembly Comparison Output ( new property added, which isn't a breaking change)
Fuzz Tests yielded no breaking change
Motivation and Context
Testing
DRY RUN: DRY_RUN-e581806f-264b-46d0-a331-1318e27c2273
Screenshots (if appropriate)
Types of changes
Checklist
License