Skip to content

Conversation

@peterrsongg
Copy link
Contributor

@peterrsongg peterrsongg commented Nov 24, 2025

Description

Generates ListBucketInventoryConfiguration

AssemblyComparer AWSSDK.S3.New.dll: Error Amazon.S3.Model.ListBucketInventoryConfigurationsResponse/MethodRemoved: Missing method System.Boolean IsSetInventoryConfigurationList() in Amazon.S3.Model.ListBucketInventoryConfigurationsResponse

Made from public to internal
This method has been moved from public to internal. Will call that out in changelog. It is just the IsSet method.

Motivation and Context

Testing

DRY_RUN Build id: 207f32c4-32c7-4ed1-bb1e-fea3028bf563 succeeded

Screenshots (if appropriate)

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My code follows the code style of this project
  • My change requires a change to the documentation
  • I have updated the documentation accordingly
  • I have read the README document
  • I have added tests to cover my changes
  • All new and existing tests passed

License

  • I confirm that this pull request can be released under the Apache 2 license

@peterrsongg peterrsongg force-pushed the peterrsongg/petesong/phase-3-pr4-3/2 branch from cda4f5e to ce45e13 Compare November 24, 2025 06:10
@peterrsongg peterrsongg force-pushed the peterrsongg/petesong/phase-3-pr4-3/3 branch from 028eb81 to 524c8be Compare November 24, 2025 06:10
@peterrsongg
Copy link
Contributor Author

BREAKING CHANGES ANALYSIS - ListBucketInventoryConfigurations Migration

Files Analyzed: 4 of 4 files changed

Files with BREAKING CHANGES:


1. sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/ListBucketInventoryConfigurationsResponseUnmarshaller.cs

ISSUE: IsTruncated unmarshaller type changed

Custom Code (Old):

if (context.TestExpression("IsTruncated", targetDepth))
{
    response.IsTruncated = BoolUnmarshaller.Instance.Unmarshall(context);
    continue;
}

Generated Code (New):

if (context.TestExpression("IsTruncated", targetDepth))
{
    var unmarshaller = NullableBoolUnmarshaller.Instance;
    response.IsTruncated = unmarshaller.Unmarshall(context);
    continue;
}

Breaking Change Details:

  • Old behavior: Uses BoolUnmarshaller which returns non-nullable bool (auto-converted to bool?)

  • New behavior: Uses NullableBoolUnmarshaller which returns bool?

  • Impact: Different handling of missing or empty XML values:

    • BoolUnmarshaller: May throw exception or return false for missing values
    • NullableBoolUnmarshaller: Returns null for missing values
  • Behavioral change: If XML responses from S3 have missing IsTruncated elements, the response object will now have null instead of potentially false or an exception


Summary

Total Files Analyzed: 4 of 4

  • ListBucketInventoryConfigurationsRequest.cs ✅
  • ListBucketInventoryConfigurationsResponse.cs ✅
  • ListBucketInventoryConfigurationsRequestMarshaller.cs ✅
  • ListBucketInventoryConfigurationsResponseUnmarshaller.cs ❌

Files with Breaking Changes: 1 Total Breaking Changes Found: 1

Critical Issues:

  1. IsTruncated unmarshaller type changed - DEFINITE BREAKING CHANGE

No Breaking Changes Found In:

  • ListBucketInventoryConfigurationsRequest IsSet methods (behavior preserved)
  • ListBucketInventoryConfigurationsResponse public properties (Token, NextToken preserved via customizations)
  • ContinuationToken IsSet logic (preserved via customization)
  • ExpectedBucketOwner IsSet logic (preserved via customization)
  • RequestMarshaller logic (consistent with preserved IsSet methods)
  • ResponseUnmarshaller property mappings (ContinuationToken→Token, NextContinuationToken→NextToken preserved)

@peterrsongg
Copy link
Contributor Author

peterrsongg commented Nov 24, 2025

the breaking change called out by the AI analysis tool isn't a breaking change because IsTruncated will never return something like <IsTruncated/>, it will always be <IsTruncated>value</IsTruncated>

AmazonS3Client 39|2025-11-24T06:24:20.262Z|DEBUG|Received response (truncated to 1024 bytes): [<?xml version="1.0" encoding="UTF-8"?><ListInventoryConfigurationsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><IsTruncated>false</IsTruncated></ListInventoryConfigurationsResult>]

peterrsongg added a commit that referenced this pull request Nov 24, 2025
stack-info: PR: #4156, branch: peterrsongg/petesong/phase-3-pr4-3/3
@peterrsongg peterrsongg marked this pull request as ready for review November 24, 2025 09:05
}

// Check to see if InventoryConfigurationList property is set
internal bool IsSetInventoryConfigurationList()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as https://github.com/aws/aws-sdk-net/pull/4154/files#r2557873142 though here there is a higher change of it being used, since it is part of the response which users are expected to check and validate but the other one is part of a request.

peterrsongg added a commit that referenced this pull request Nov 25, 2025
stack-info: PR: #4156, branch: peterrsongg/petesong/phase-3-pr4-3/3
peterrsongg added a commit that referenced this pull request Nov 26, 2025
stack-info: PR: #4156, branch: peterrsongg/petesong/phase-3-pr4-3/3
@peterrsongg peterrsongg force-pushed the peterrsongg/petesong/phase-3-pr4-3/2 branch from ce45e13 to 0880c10 Compare November 26, 2025 17:53
@peterrsongg peterrsongg changed the base branch from peterrsongg/petesong/phase-3-pr4-3/2 to petesong/phase-3-pr4-base November 26, 2025 20:23
@peterrsongg peterrsongg force-pushed the peterrsongg/petesong/phase-3-pr4-3/3 branch from 524c8be to d83ef19 Compare November 26, 2025 20:31
@peterrsongg
Copy link
Contributor Author

merged manually

peterrsongg added a commit that referenced this pull request Nov 26, 2025
* 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
peterrsongg added a commit that referenced this pull request Nov 26, 2025
* 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
@dscpinheiro dscpinheiro deleted the peterrsongg/petesong/phase-3-pr4-3/3 branch November 27, 2025 12:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants