Skip to content

Commit a89c174

Browse files
Generate S3 CopyObject operation
1 parent 9a887f5 commit a89c174

19 files changed

+4250
-2693
lines changed

generator/ServiceClientGeneratorLib/Generators/Marshallers/BaseMarshaller.cs

Lines changed: 489 additions & 449 deletions
Large diffs are not rendered by default.

generator/ServiceClientGeneratorLib/Generators/Marshallers/BaseMarshaller.tt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,24 @@ using Amazon.Runtime.Internal.Util;
3737
{
3838
if (structure != null && this.Config.ServiceModel.Customizations.ShapeModifiers.TryGetValue(structure.Name, out var modifier) && modifier.ExcludedMarshallingProperties.Contains(member.ModeledName))
3939
continue;
40+
bool skipXmlIsSet = this.Config.ServiceModel.Customizations.TryGetPropertyModifier(member.OwningShape.Name, member.ModeledName, out var propModifier) && propModifier.SkipXmlIsSet;
41+
if (!skipXmlIsSet)
42+
{
4043
#>
4144
if (<#=variableName#>.IsSet<#=member.PropertyName#>())
4245
{
4346
<#+
44-
if (member.CustomMarshallerTransformation != null)
47+
}
48+
if(this.Config.ServiceModel.Customizations.TryGetPropertyModifier(member.OwningShape.Name, member.ModeledName, out var injectPropModifier ) && injectPropModifier.InjectXmlMarshallCode.Count > 0)
49+
{
50+
foreach (var codeSnippet in injectPropModifier.InjectXmlMarshallCode)
51+
{
52+
#>
53+
<#=codeSnippet#>
54+
<#+
55+
}
56+
}
57+
else if (member.CustomMarshallerTransformation != null)
4558
{
4659
#>
4760
request.Headers["<#=member.MarshallLocationName#>"] = <#=member.CustomMarshallerTransformation#>(<#=variableName#>.<#=member.PropertyName#>);
@@ -118,9 +131,12 @@ using Amazon.Runtime.Internal.Util;
118131
<#+
119132
}
120133
}
134+
if (!skipXmlIsSet)
135+
{
121136
#>
122137
}
123138
<#+
139+
}
124140
}
125141
}
126142
protected void ProcessHeaderMembers(string variableName, IEnumerable<Member> members)

generator/ServiceClientGeneratorLib/Generators/Marshallers/BaseResponseUnmarshaller.cs

Lines changed: 379 additions & 344 deletions
Large diffs are not rendered by default.

generator/ServiceClientGeneratorLib/Generators/Marshallers/BaseResponseUnmarshaller.tt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,16 @@ using Amazon.Runtime.Internal.Util;
150150
{
151151
if (this.Config.ServiceModel.Customizations.ShapeModifiers.TryGetValue(member.OwningShape.Name, out var modifier) && modifier.ExcludedUnmarshallingProperties.Contains(member.ModeledName))
152152
continue;
153+
if (this.Config.ServiceModel.Customizations.TryGetPropertyModifier(member.OwningShape.Name, member.ModeledName, out var propertyModifier) && propertyModifier.InjectXmlUnmarshallCode.Count > 0)
154+
{
155+
foreach (var code in propertyModifier.InjectXmlUnmarshallCode)
156+
{
157+
#>
158+
<#=code#>
159+
<#+
160+
}
161+
continue;
162+
}
153163
if (member.Shape.IsMap)
154164
{
155165
#>

generator/ServiceClientGeneratorLib/Operation.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -598,9 +598,12 @@ public IList<Member> RequestBodyMembers
598598
if (this.RequestStructure == null)
599599
return new List<Member>();
600600

601+
this.model.Customizations.ShapeModifiers.TryGetValue(this.RequestStructure.Name, out var modifiers);
602+
601603
var payloadName = this.RequestStructure.PayloadMemberName;
602604
return this.RequestStructure.Members.Where(
603605
m =>
606+
!(modifiers != null && modifiers.ExcludedMarshallingProperties.Contains(m.ModeledName)) &&
604607
m.MarshallLocation == MarshallLocation.Body &&
605608
!string.Equals(m.MarshallName, payloadName, StringComparison.Ordinal)).ToList();
606609
}

generator/ServiceClientGeneratorLib/ServiceModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,7 @@ public List<Operation> S3AllowListOperations
578578
new Operation(this, "RenameObject", DocumentRoot[OperationsKey]["RenameObject"]),
579579
new Operation(this, "PutBucketOwnershipControls", DocumentRoot[OperationsKey]["PutBucketOwnershipControls"]),
580580
new Operation(this, "PutBucketTagging", DocumentRoot[OperationsKey]["PutBucketTagging"]),
581+
new Operation(this, "CopyObject", DocumentRoot[OperationsKey]["CopyObject"]),
581582
};
582583
}
583584
return _s3AllowListOperations.Where(operation => operation.data != null).ToList();

0 commit comments

Comments
 (0)