-
Notifications
You must be signed in to change notification settings - Fork 875
Generate GetBucketMetadataConfiguration #4161
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 GetBucketMetadataConfiguration #4161
Conversation
stack-info: PR: #4161, branch: peterrsongg/petesong/phase-3-pr4-3/8
10ad001 to
dac0481
Compare
7418d73 to
679f1e3
Compare
Read THIS!I've reviewed the breaking change report.
Breaking Changes Analysis ReportSummaryTotal files analyzed: 27 out of 27 files changed in PR Breaking changes found: 5 BREAKING CHANGES IDENTIFIED1. GetBucketMetadataConfigurationRequestMarshaller.csLocation: Issue: Missing bucket name path resource handling in generated marshaller Custom Implementation (DELETED): request.AddPathResource("{Bucket}", StringUtils.FromString(publicRequest.BucketName));
request.ResourcePath = "/{Bucket}";Generated Implementation (NEW): request.ResourcePath = "/";Impact: The generated marshaller does NOT add the bucket name to the path resource. This will cause the API request to be malformed and fail. The bucket name must be included in the request path as Breaking Change Type: Request marshalling logic changed - API calls will fail due to missing bucket parameter in URL path. 2. GetBucketMetadataConfigurationResponseUnmarshaller.csLocation: Issue: Error handling logic has changed in exception unmarshalling Custom Implementation (DELETED): return new AmazonS3Exception(errorResponse.Message, innerException, errorResponse.Type, errorResponse.Code, errorResponse.RequestId, statusCode);Generated Implementation (NEW): return base.ConstructS3Exception(context, errorResponse, innerException, statusCode);Impact: The exception construction mechanism has changed from directly creating Breaking Change Type: Exception handling behavior changed. 3. InventoryTableConfigurationResultUnmarshaller.csLocation: Issue: Different unmarshaller used for Error property Custom Implementation (DELETED): if (context.TestExpression("Error", targetDepth))
{
var unmarshaller = ErrorUnmarshaller.Instance;
unmarshalledObject.Error = unmarshaller.Unmarshall(context);
continue;
}Generated Implementation (NEW): if (context.TestExpression("Error", targetDepth))
{
var unmarshaller = ErrorDetailsUnmarshaller.Instance;
unmarshalledObject.Error = unmarshaller.Unmarshall(context);
continue;
}Impact: The Error property unmarshaller has changed from Breaking Change Type: Response unmarshalling logic changed - different unmarshaller for Error property. 4. JournalTableConfigurationResultUnmarshaller.csLocation: Issue: Different unmarshaller used for Error property Custom Implementation (DELETED): if (context.TestExpression("Error", targetDepth))
{
var unmarshaller = ErrorUnmarshaller.Instance;
unmarshalledObject.Error = unmarshaller.Unmarshall(context);
continue;
}Generated Implementation (NEW): if (context.TestExpression("Error", targetDepth))
{
var unmarshaller = ErrorDetailsUnmarshaller.Instance;
unmarshalledObject.Error = unmarshaller.Unmarshall(context);
continue;
}Impact: Same as issue 3 - The Error property unmarshaller has changed from Breaking Change Type: Response unmarshalling logic changed - different unmarshaller for Error property. 5. RecordExpirationUnmarshaller.csLocation: Issue: Different unmarshaller used for Days property Custom Implementation (DELETED): if (context.TestExpression("Days", targetDepth))
{
var unmarshaller = IntUnmarshaller.Instance;
unmarshalledObject.Days = unmarshaller.Unmarshall(context);
continue;
}Generated Implementation (NEW): if (context.TestExpression("Days", targetDepth))
{
var unmarshaller = NullableIntUnmarshaller.Instance;
unmarshalledObject.Days = unmarshaller.Unmarshall(context);
continue;
}Impact: The Days property unmarshaller has changed from
This is a breaking change because the behavior when Days is absent from the response has changed. Breaking Change Type: Response unmarshalling logic changed - nullable behavior of Days property changed. Files Analyzed (27 Total)Model Files Compared (7):
Marshaller/Unmarshaller Files Compared (13):
Configuration Files Analyzed (2):
Other Files (5):
RecommendationsCRITICAL - Issue 1 MUST be fixed immediately: The GetBucketMetadataConfigurationRequestMarshaller is missing critical path resource handling. This will cause all API calls to fail. HIGH PRIORITY - Issues 3, 4, 5: The unmarshaller changes need review to ensure backward compatibility. The Error property and Days property unmarshalling behavior has changed. MEDIUM PRIORITY - Issue 2: The exception handling change should be reviewed to ensure no behavioral differences that client code depends on. |
stack-info: PR: #4161, branch: peterrsongg/petesong/phase-3-pr4-3/8
| continue; | ||
| } | ||
|
|
||
| XmlStructureUnmarshallCustomization(context, unmarshalledObject, targetDepth); |
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 remember seeing XmlStructureUnmarshallCustomization in the other PRs I reviewed. What does it do?
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.
It was in other PRs but probably missed because there weren't many structure unmarshallers. It is just a partial method defined for any customizations that apply to unmarshalling structures that use the rest-xml protocol. I have yet to use it though 😅
stack-info: PR: #4161, branch: peterrsongg/petesong/phase-3-pr4-3/8
stack-info: PR: #4157, branch: peterrsongg/petesong/phase-3-pr4-3/4
stack-info: PR: #4158, branch: peterrsongg/petesong/phase-3-pr4-3/5
stack-info: PR: #4159, branch: peterrsongg/petesong/phase-3-pr4-3/6
stack-info: PR: #4160, branch: peterrsongg/petesong/phase-3-pr4-3/7
stack-info: PR: #4161, branch: peterrsongg/petesong/phase-3-pr4-3/8
679f1e3 to
f911a81
Compare
dac0481 to
b551a51
Compare
Description
Generates
GetBucketMetadataConfigurationAssembly comparison output empty
New property added. Non-breaking
Motivation and Context
Testing
DRY_RUN Build id: 207f32c4-32c7-4ed1-bb1e-fea3028bf563 succeeded
Reviewed Fuzz Test Results
Screenshots (if appropriate)
Types of changes
Checklist
License