diff --git a/generator/.DevConfigs/bugfix-nullable-collection-properties.json b/generator/.DevConfigs/bugfix-nullable-collection-properties.json new file mode 100644 index 000000000000..37fd508912f6 --- /dev/null +++ b/generator/.DevConfigs/bugfix-nullable-collection-properties.json @@ -0,0 +1,6 @@ +{ + "description": "Fix missing nullable annotations for collection properties in V4", + "versionBumpType": "patch", + "services": ["Core"], + "changelogEntry": "Fixed missing nullable reference type annotations for collection properties that can be null in V4. This enables proper compile-time null checking for Dictionary and List properties that use the AWSConfigs.InitializeCollections pattern." +} \ No newline at end of file diff --git a/generator/ServiceClientGeneratorLib/Member.cs b/generator/ServiceClientGeneratorLib/Member.cs index 53dc16ce09fb..60d99fbf7c31 100644 --- a/generator/ServiceClientGeneratorLib/Member.cs +++ b/generator/ServiceClientGeneratorLib/Member.cs @@ -594,11 +594,11 @@ private string DetermineType(JsonData extendedData, bool treatEnumsAsString, boo bool overrideMapTreatEnumsAsString = this.model.Customizations.OverrideTreatEnumsAsString(this.Extends) ?? true; var keyType = DetermineType(memberShape["key"], overrideMapTreatEnumsAsString, false); var valueType = DetermineType(memberShape["value"], overrideMapTreatEnumsAsString, false); - return string.Format("Dictionary<{0}, {1}>", keyType, valueType); + return string.Format("Dictionary<{0}, {1}>{2}", keyType, valueType, nullable); case "list": bool overrideListTreatEnumsAsString = this.model.Customizations.OverrideTreatEnumsAsString(this.Extends) ?? true; var listType = DetermineType(memberShape["member"], overrideListTreatEnumsAsString, false); - return string.Format("List<{0}>", listType); + return string.Format("List<{0}>{1}", listType, nullable); case "decimal": throw new Exception(UnhandledTypeDecimalErrorMessage); diff --git a/sdk/src/Services/SQS/Generated/Model/SendMessageBatchResponse.cs b/sdk/src/Services/SQS/Generated/Model/SendMessageBatchResponse.cs index 5e1d3cb9e4fd..5547d2e16e9a 100644 --- a/sdk/src/Services/SQS/Generated/Model/SendMessageBatchResponse.cs +++ b/sdk/src/Services/SQS/Generated/Model/SendMessageBatchResponse.cs @@ -52,7 +52,7 @@ public partial class SendMessageBatchResponse : AmazonWebServiceResponse /// SDK behavior set the AWSConfigs.InitializeCollections static property to true. /// [AWSProperty(Required=true)] - public List Failed + public List? Failed { get { return this._failed; } set { this._failed = value; } @@ -76,7 +76,7 @@ internal bool IsSetFailed() /// SDK behavior set the AWSConfigs.InitializeCollections static property to true. /// [AWSProperty(Required=true)] - public List Successful + public List? Successful { get { return this._successful; } set { this._successful = value; }