diff --git a/generator/ServiceClientGeneratorLib/GeneratorDriver.cs b/generator/ServiceClientGeneratorLib/GeneratorDriver.cs
index a34e5cc985b2..d52023f0a683 100644
--- a/generator/ServiceClientGeneratorLib/GeneratorDriver.cs
+++ b/generator/ServiceClientGeneratorLib/GeneratorDriver.cs
@@ -206,11 +206,10 @@ public void Execute()
// Any enumerations for the service
// skip s3 until we're at the end of s3 client generation
- if (this.Configuration.ServiceId != "S3")
+ if (this.Configuration.ServiceModel.ServiceId != "S3")
{
this.ExecuteGenerator(new ServiceEnumerations(), enumFileName);
}
-
// Any paginators for the service
// skip paginators for s3 until we're at the end of s3 client generation
if (Configuration.ServiceModel.HasPaginators && Configuration.ServiceId != "S3")
@@ -1725,7 +1724,9 @@ private void S3NeedsCustomUpdate(Shape shape)
{ "IntelligentTieringFilter", 3 },
{ "MetricsAndOperator", 3 },
{ "AnalyticsAndOperator", 2 },
- { "IntelligentTieringAndOperator", 2}
+ { "IntelligentTieringAndOperator", 2},
+ //TODO: Add runbook entry as to why this excluded and how to do a customization for this.
+ { "GlacierJobParameters", 1 }
};
if (customUpdateShapes.TryGetValue(shape.Name, out int membersCount))
{
diff --git a/generator/ServiceClientGeneratorLib/Generators/SourceFiles/ServiceEnumerations.cs b/generator/ServiceClientGeneratorLib/Generators/SourceFiles/ServiceEnumerations.cs
index 40bfa2a9cb0d..dcbfca8c8f37 100644
--- a/generator/ServiceClientGeneratorLib/Generators/SourceFiles/ServiceEnumerations.cs
+++ b/generator/ServiceClientGeneratorLib/Generators/SourceFiles/ServiceEnumerations.cs
@@ -18,7 +18,7 @@ namespace ServiceClientGenerator.Generators.SourceFiles
/// Class to produce the template output
///
- #line 1 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 1 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.TextTemplating", "17.0.0.0")]
public partial class ServiceEnumerations : BaseGenerator
{
@@ -29,7 +29,7 @@ public partial class ServiceEnumerations : BaseGenerator
public override string TransformText()
{
- #line 6 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 6 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
AddLicenseHeader();
@@ -38,14 +38,14 @@ public override string TransformText()
#line hidden
this.Write("\r\nusing System;\r\n\r\nusing Amazon.Runtime;\r\n\r\nnamespace ");
- #line 14 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 14 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Config.Namespace));
#line default
#line hidden
this.Write("\r\n{\r\n");
- #line 16 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 16 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
foreach(var enumeration in this.Config.ServiceModel.Enumerations(false))
{
@@ -55,21 +55,21 @@ public override string TransformText()
#line hidden
this.Write("\r\n /// \r\n /// Constants used for properties of type ");
- #line 22 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 22 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
#line hidden
this.Write(".\r\n /// \r\n public class ");
- #line 24 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 24 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
#line hidden
this.Write(" : ConstantClass\r\n {\r\n\r\n");
- #line 27 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 27 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
foreach(var enumValue in enumeration.EnumerationValues)
{
@@ -80,56 +80,56 @@ public override string TransformText()
#line hidden
this.Write(" /// \r\n /// Constant ");
- #line 33 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 33 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumValue.PropertyName));
#line default
#line hidden
this.Write(" for ");
- #line 33 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 33 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
#line hidden
this.Write("\r\n /// \r\n public ");
- #line 35 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 35 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumValue.PropertyName.Equals("Equals") ? "new " : ""));
#line default
#line hidden
this.Write("static readonly ");
- #line 35 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 35 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
#line hidden
this.Write(" ");
- #line 35 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 35 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumValue.PropertyName));
#line default
#line hidden
this.Write(" = new ");
- #line 35 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 35 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
#line hidden
this.Write("(\"");
- #line 35 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 35 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumValue.MarshallName));
#line default
#line hidden
this.Write("\");\r\n");
- #line 36 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 36 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
}
@@ -147,7 +147,7 @@ public override string TransformText()
///
public ");
- #line 48 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 48 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
@@ -164,14 +164,14 @@ public override string TransformText()
/// The constant for the unique value
public static ");
- #line 58 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 58 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
#line hidden
this.Write(" FindValue(string value)\r\n {\r\n return FindValue<");
- #line 60 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 60 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
@@ -186,7 +186,7 @@ public override string TransformText()
///
public static implicit operator ");
- #line 68 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 68 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(enumeration.Name));
#line default
@@ -194,7 +194,7 @@ public override string TransformText()
this.Write("(string value)\r\n {\r\n return FindValue(value);\r\n }\r\n }" +
"\r\n\r\n");
- #line 74 "C:\codebase\v3\AWSDotNetPublic\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
+ #line 74 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\ServiceEnumerations.tt"
}
diff --git a/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.cs b/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.cs
index 09c76e6580c1..0ca51e2ff1cc 100644
--- a/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.cs
+++ b/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.cs
@@ -1202,6 +1202,22 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
#line 416 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ }
+ else if (this.Config.ServiceModel.Customizations.TryGetPropertyModifier(member.OwningShape.Name, member.ModeledName, out var injectModifier) && injectModifier.InjectXmlIsSetCode.Count > 0)
+ {
+
+
+ #line default
+ #line hidden
+
+ #line 421 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+WriteInjectXmlCode(injectModifier.InjectXmlIsSetCode, 3);
+
+ #line default
+ #line hidden
+
+ #line 422 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+
}
else if (member.IsNullable)
{
@@ -1211,14 +1227,14 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
#line hidden
this.Write(" return this.");
- #line 421 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 427 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(".HasValue; \r\n");
- #line 422 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 428 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
else if (member.IsList && (member.MarshallLocation == MarshallLocation.Header || member.MarshallLocation == MarshallLocation.Headers))
@@ -1236,14 +1252,14 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
#line hidden
this.Write(" return this.");
- #line 434 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 440 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(" != null;\r\n");
- #line 435 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 441 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
else
@@ -1254,21 +1270,21 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
#line hidden
this.Write(" return this.");
- #line 440 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 446 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(" != null && (this.");
- #line 440 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 446 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(".Count > 0 || !AWSConfigs.InitializeCollections);\r\n");
- #line 441 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 447 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
}
@@ -1280,21 +1296,21 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
#line hidden
this.Write(" return this.");
- #line 447 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 453 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(" != null && (this.");
- #line 447 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 453 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(".Count > 0 || !AWSConfigs.InitializeCollections); \r\n");
- #line 448 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 454 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
else if (member.IsDocument)
@@ -1305,52 +1321,33 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
#line hidden
this.Write(" return !this.");
- #line 453 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 459 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(".IsNull();\r\n");
- #line 454 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 460 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
else
{
- if (this.Config.ServiceModel.Customizations.TryGetPropertyModifier(member.OwningShape.Name, member.ModeledName, out var injectModifier) && injectModifier.InjectXmlIsSetCode.Count > 0)
- {
-
-
- #line default
- #line hidden
-
- #line 461 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
-WriteInjectXmlCode(injectModifier.InjectXmlIsSetCode, 3);
-
- #line default
- #line hidden
-
- #line 462 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
-
- }
- else
- {
#line default
#line hidden
this.Write(" return this.");
- #line 467 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 465 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(" != null;\r\n");
- #line 468 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 466 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
- }
}
@@ -1358,7 +1355,7 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
#line hidden
this.Write(" }\r\n\r\n");
- #line 474 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 471 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
@@ -1373,7 +1370,7 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
"\r\n protected override CoreChecksumResponseBehavior CoreChecksumMode\r\n " +
" {\r\n get\r\n {\r\n if (IsSet");
- #line 488 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 485 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.ChecksumConfiguration.RequestValidationModeMember));
#line default
@@ -1381,7 +1378,7 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
this.Write("())\r\n {\r\n return (CoreChecksumResponseBehavior)" +
"Enum.Parse(typeof(CoreChecksumResponseBehavior), this.");
- #line 490 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 487 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.ChecksumConfiguration.RequestValidationModeMember));
#line default
@@ -1389,7 +1386,7 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
this.Write(");\r\n }\r\n\r\n return CoreChecksumResponseBehavior.DISA" +
"BLED;\r\n }\r\n set { this.");
- #line 495 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 492 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(this.Operation.ChecksumConfiguration.RequestValidationModeMember));
#line default
@@ -1398,7 +1395,7 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
"cksumAlgorithm> _supportedChecksumAlgorithms = new List\r\n" +
" {\r\n ");
- #line 500 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 497 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(string.Join(", ", Operation.ChecksumConfiguration?.ResponseAlgorithms?.Select(s => $"CoreChecksumAlgorithm.{s}").ToArray())));
#line default
@@ -1407,7 +1404,7 @@ public override void GetObjectData(System.Runtime.Serialization.SerializationInf
"ections.ObjectModel.ReadOnlyCollection ChecksumResponseAl" +
"gorithms => _supportedChecksumAlgorithms.AsReadOnly();\r\n\r\n #endregion\r\n");
- #line 507 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 504 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
@@ -1433,7 +1430,7 @@ public override RetryableDetails Retryable
}
");
- #line 527 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 524 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
}
@@ -1448,7 +1445,7 @@ public override RetryableDetails Retryable
#line hidden
this.Write("\r\n");
- #line 537 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 534 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
if (this.StructureType == StructureType.Response && this.Operation.IsEventStreamInput)
@@ -1467,7 +1464,7 @@ void Amazon.Runtime.EventStreams.IEventInputStreamContextOwner.SetEventInputStre
#pragma warning restore CA1033
");
- #line 550 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 547 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
if (this.Structure != null && this.StructureType == StructureType.Response && this.Structure.Members.Any(member => member.Shape.IsStreaming || member.Shape.IsEventStream))
@@ -1501,7 +1498,7 @@ protected virtual void Dispose(bool disposing)
{
");
- #line 578 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 575 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
if (this.Structure != null)
{
@@ -1514,7 +1511,7 @@ protected virtual void Dispose(bool disposing)
this.Write(" this._eventInputStreamContext?.Dispose();\r\n this._" +
"eventInputStreamContext = null;\r\n");
- #line 586 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 583 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
@@ -1528,21 +1525,21 @@ protected virtual void Dispose(bool disposing)
#line hidden
this.Write(" this.");
- #line 594 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 591 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write("?.Dispose();\r\n this.");
- #line 595 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 592 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
this.Write(this.ToStringHelper.ToStringWithCulture(member.VariableName));
#line default
#line hidden
this.Write(" = null;\r\n");
- #line 596 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 593 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
}
@@ -1554,7 +1551,7 @@ protected virtual void Dispose(bool disposing)
this.Write(" }\r\n\r\n this._disposed = true;\r\n }\r\n\r\n #endr" +
"egion\r\n");
- #line 607 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 604 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
}
@@ -1565,7 +1562,7 @@ protected virtual void Dispose(bool disposing)
return this.GenerationEnvironment.ToString();
}
- #line 613 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
+ #line 610 "C:\Dev\Repos\aws-sdk-net-staging\generator\ServiceClientGeneratorLib\Generators\SourceFiles\StructureGenerator.tt"
// Set to true when the service model specifies a shape that should be wrapped in a response. ElastiCache CreateCacheCluster is an example of this.
public bool IsWrapped { get; set; }
diff --git a/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.tt b/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.tt
index a40ae39af414..4d070da59bd7 100644
--- a/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.tt
+++ b/generator/ServiceClientGeneratorLib/Generators/SourceFiles/StructureGenerator.tt
@@ -413,6 +413,12 @@ namespace <#=this.Config.Namespace#>.Model
{
#>
return this.Is<#=member.PropertyName#>Set;
+<#
+ }
+ else if (this.Config.ServiceModel.Customizations.TryGetPropertyModifier(member.OwningShape.Name, member.ModeledName, out var injectModifier) && injectModifier.InjectXmlIsSetCode.Count > 0)
+ {
+#>
+<#WriteInjectXmlCode(injectModifier.InjectXmlIsSetCode, 3);#>
<#
}
else if (member.IsNullable)
@@ -455,18 +461,9 @@ namespace <#=this.Config.Namespace#>.Model
}
else
{
- if (this.Config.ServiceModel.Customizations.TryGetPropertyModifier(member.OwningShape.Name, member.ModeledName, out var injectModifier) && injectModifier.InjectXmlIsSetCode.Count > 0)
- {
-#>
-<#WriteInjectXmlCode(injectModifier.InjectXmlIsSetCode, 3);#>
-<#
- }
- else
- {
#>
return this.<#=member.VariableName#> != null;
<#
- }
}
#>
}
diff --git a/generator/ServiceClientGeneratorLib/Operation.cs b/generator/ServiceClientGeneratorLib/Operation.cs
index 7fcec2ff7708..dcab2a3f03dc 100644
--- a/generator/ServiceClientGeneratorLib/Operation.cs
+++ b/generator/ServiceClientGeneratorLib/Operation.cs
@@ -352,35 +352,6 @@ public Member RequestPayloadMember
}
}
- private IList _requestPayloadFlattenMembers;
-
- ///
- /// Contains the list of members of the flattened RequestPayloadMember if the RequestPayloadMember
- /// has been flattened
- ///
- public IList RequestPayloadFlattenMembers
- {
- get
- {
- if (_requestPayloadFlattenMembers == null)
- {
- IList map = new List();
- if (this.model.Customizations.FlattenShapes(this.RequestStructure.Name).Contains(this.RequestPayloadMember.ModeledName))
- {
- JsonData flattenMemberShape = this.model.DocumentRoot[ServiceModel.ShapesKey][this.data[Shape.MembersKey][this.RequestPayloadMember.ModeledName][ServiceModel.ShapeKey].ToString()];
- foreach (KeyValuePair kvp in flattenMemberShape[Shape.MembersKey])
- {
- if (this.model.Customizations.IsExcludedProperty(kvp.Key, this.Name))
- continue;
- map.Add(new Member(this.model, this.RequestPayloadMember.Shape, kvp.Key, kvp.Key, kvp.Value, null));
- }
- _requestPayloadFlattenMembers = map;
- }
- }
- return _requestPayloadFlattenMembers;
- }
- }
-
///
/// The response payload member, null if one does not exist.
///
diff --git a/generator/ServiceClientGeneratorLib/ServiceModel.cs b/generator/ServiceClientGeneratorLib/ServiceModel.cs
index a8aad008a0fd..2659d8580201 100644
--- a/generator/ServiceClientGeneratorLib/ServiceModel.cs
+++ b/generator/ServiceClientGeneratorLib/ServiceModel.cs
@@ -562,7 +562,7 @@ public List S3AllowListOperations
new Operation(this, "ListBucketInventoryConfigurations", DocumentRoot[OperationsKey]["ListBucketInventoryConfigurations"]),
new Operation(this, "ListBucketMetricsConfigurations", DocumentRoot[OperationsKey]["ListBucketMetricsConfigurations"]),
new Operation(this, "PutBucketAccelerateConfiguration", DocumentRoot[OperationsKey]["PutBucketAccelerateConfiguration"]),
- //new Operation(this, "RestoreObject", DocumentRoot[OperationsKey]["RestoreObject"]),
+ new Operation(this, "RestoreObject", DocumentRoot[OperationsKey]["RestoreObject"]),
//new Operation(this, "SelectObjectContent", DocumentRoot[OperationsKey]["SelectObjectContent"]),
new Operation(this, "PutBucketAnalyticsConfiguration" , DocumentRoot[OperationsKey]["PutBucketAnalyticsConfiguration"]),
new Operation(this, "PutBucketIntelligentTieringConfiguration", DocumentRoot[OperationsKey]["PutBucketIntelligentTieringConfiguration"]),
diff --git a/generator/ServiceModels/s3/s3.customizations.json b/generator/ServiceModels/s3/s3.customizations.json
index a580acd535bb..19bb6bec05ff 100644
--- a/generator/ServiceModels/s3/s3.customizations.json
+++ b/generator/ServiceModels/s3/s3.customizations.json
@@ -378,17 +378,6 @@
}
]
},
- "RestoreObjectRequest": {
- "exclude": [ "RestoreRequest" ],
- "inject": [
- {
- "Days": {
- "shape": "Days",
- "originalMember": "RestoreRequest"
- }
- }
- ]
- },
"TopicConfigurationDeprecated": {
"modify": [
{
@@ -1289,6 +1278,74 @@
"Uploads":{"emitPropertyName":"MultipartUploads"}
+ }
+ ]
+ },
+ "RestoreObjectRequest":{
+ "modify":[
+ {
+ "Tier": {"emitPropertyName":"RetrievalTier"}
+ },
+ {
+ "ExpectedBucketOwner":{"injectXmlIsSet":["return !String.IsNullOrEmpty(this._expectedBucketOwner);"]}
+ },
+ {
+ "GlacierJobParameters":{
+ "emitPropertyName":"Tier"
+ }
+ },
+ {
+ "Type":{"emitPropertyName":"RestoreRequestType"}
+ }
+ ]
+ },
+ "RestoreRequest":{
+ "modify":[
+ {
+ "GlacierJobParameters":{
+ "injectXmlMarshallCode":["TierCustomMarshall(xmlWriter, publicRequest);"]
+ }
+ },
+ {
+ "Type":{"emitPropertyName":"RestoreRequestType"}
+ },
+ {
+ "Tier": {"emitPropertyName":"RetrievalTier"}
+ }
+ ]
+ },
+ "InputSerialization":{
+ "modify":[
+ {
+ "CompressionType":{
+ "injectXmlPrivateMemberAssignment" :["private CompressionType _compressionType = CompressionType.None;"]
+ }
+ }
+
+ ]
+ },
+ "S3Location":{
+ "modify":[
+ {
+ "AccessControlList":{
+ "injectXmlPrivateMemberAssignment":["private S3AccessControlList _accessControlList;"],
+ "injectXmlIsSet":["return this._accessControlList != null;"],
+ "injectXmlMarshallCode":["AccessControlListCustomMarshall(xmlWriter, publicRequest);"]
+ }
+ },
+ {
+ "UserMetadata":{
+ "injectXmlPrivateMemberAssignment":["private MetadataCollection _userMetadata;"],
+ "injectXmlIsSet":["return this._userMetadata != null;"],
+ "injectXmlMarshallCode":["UserMetadataCustomMarshall(xmlWriter, publicRequest);"]
+ }
+ }
+ ]
+ },
+ "JSONInput":{
+ "modify":[
+ {
+ "Type":{"emitPropertyName":"JsonType"}
}
]
}
@@ -1434,6 +1491,18 @@
},
"Type" :{
"renameShape":"GranteeType"
+ },
+ "Tier":{
+ "renameShape":"GlacierJobTier"
+ },
+ "Encryption":{
+ "renameShape":"S3Encryption"
+ },
+ "GlacierJobParameters":{
+ "renameShape":"GlacierJobTier"
+ },
+ "JSONType":{
+ "renameShape":"JsonType"
}
},
"overrideTreatEnumsAsString":{
@@ -1609,6 +1678,18 @@
"Marshaller": "StringUtils.FromString",
"Unmarshaller" : "CommonPrefixesItemUnmarshaller"
}
+ },
+ "S3Location":{
+ "AccessControlList":{
+ "Type":"S3AccessControlList",
+ "Marshaller":"AccessControlList.Marshall",
+ "Unmarshaller":"AccessControlListUnmarshaller.Instance"
+ },
+ "UserMetadata":{
+ "Type":"MetadataCollection",
+ "Marshaller":"UserMetadata.Marshall",
+ "Unmarshaller":"StringUnmarshaller"
+ }
}
},
"excludeMembers":{
@@ -1680,6 +1761,9 @@
],
"UploadPartCopyOutput" : [
"CopyPartResult"
+ ],
+ "RestoreObjectRequest":[
+ "RestoreRequest"
]
},
"excludeShapes":[
@@ -1691,6 +1775,7 @@
"AnalyticsAndOperator",
"IntelligentTieringFilter",
"IntelligentTieringAndOperator",
- "InventoryFilter"
+ "InventoryFilter",
+ "GlacierJobTier"
]
}
diff --git a/sdk/src/Services/S3/Custom/Model/CSVInput.cs b/sdk/src/Services/S3/Custom/Model/CSVInput.cs
index dd8bf0b2b608..f4c85c719411 100644
--- a/sdk/src/Services/S3/Custom/Model/CSVInput.cs
+++ b/sdk/src/Services/S3/Custom/Model/CSVInput.cs
@@ -21,97 +21,8 @@ namespace Amazon.S3.Model
///
/// Describes how a CSV-formatted input object is formatted.
///
- public class CSVInput
+ public partial class CSVInput
{
- ///
- /// Describes the first line of input. Valid values: None, Ignore, Use.
- ///
- public FileHeaderInfo FileHeaderInfo { get; set; }
-
- internal bool IsSetFileHeaderInfo()
- {
- return this.FileHeaderInfo != null;
- }
-
- ///
- ///
- /// A single character used to indicate that a row should be ignored when the character
- /// is present at the start of that row. You can specify any character to indicate a comment line.
- /// The default character is #.
- ///
- ///
- /// Default: #
- ///
- ///
- public string Comments { get; set; }
-
- internal bool IsSetComments()
- {
- return this.Comments != null;
- }
-
- ///
- /// Single character used for escaping the quote character inside an already escaped value.
- ///
- public string QuoteEscapeCharacter { get; set; }
-
- internal bool IsSetQuoteEscapeCharacter()
- {
- return this.QuoteEscapeCharacter != null;
- }
-
- ///
- /// Value used to separate individual records.
- ///
- public string RecordDelimiter { get; set; }
-
- internal bool IsSetRecordDelimiter()
- {
- return this.RecordDelimiter != null;
- }
-
- ///
- /// Value used to separate individual fields in a record.
- ///
- public string FieldDelimiter { get; set; }
-
- internal bool IsSetFieldDelimiter()
- {
- return this.FieldDelimiter != null;
- }
-
- ///
- /// Value used for escaping where the field delimiter is part of the value.
- ///
- public string QuoteCharacter { get; set; }
-
- internal bool IsSetQuoteCharacter()
- {
- return this.QuoteCharacter != null;
- }
-
- private bool? _allowQuotedRecordDelimiter;
-
- ///
- /// Specifies that CSV field values may contain quoted record delimiters and such records should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.
- ///
- public bool? AllowQuotedRecordDelimiter
- {
- get
- {
- return _allowQuotedRecordDelimiter;
- }
- set
- {
- _allowQuotedRecordDelimiter = value;
- }
- }
-
- internal bool IsSetAllowQuotedRecordDelimiter()
- {
- return _allowQuotedRecordDelimiter.HasValue;
- }
-
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
xmlWriter.WriteStartElement(memberName);
diff --git a/sdk/src/Services/S3/Custom/Model/CSVOutput.cs b/sdk/src/Services/S3/Custom/Model/CSVOutput.cs
index 9acbb4c6c1db..fb2a362a8f66 100644
--- a/sdk/src/Services/S3/Custom/Model/CSVOutput.cs
+++ b/sdk/src/Services/S3/Custom/Model/CSVOutput.cs
@@ -21,58 +21,8 @@ namespace Amazon.S3.Model
///
/// Describes how CSV-formatted results are formatted.
///
- public class CSVOutput
+ public partial class CSVOutput
{
- ///
- /// Indicates whether or not all output fields should be quoted.
- ///
- public QuoteFields QuoteFields { get; set; }
-
- internal bool IsSetQuoteFields()
- {
- return this.QuoteFields != null;
- }
-
- ///
- /// Single character used for escaping the quote character inside an already escaped value.
- ///
- public string QuoteEscapeCharacter { get; set; }
-
- internal bool IsSetQuoteEscapeCharacter()
- {
- return this.QuoteEscapeCharacter != null;
- }
-
- ///
- /// Value used to separate individual records.
- ///
- public string RecordDelimiter { get; set; }
-
- internal bool IsSetRecordDelimiter()
- {
- return this.RecordDelimiter != null;
- }
-
- ///
- /// Value used to separate individual fields in a record.
- ///
- public string FieldDelimiter { get; set; }
-
- internal bool IsSetFieldDelimiter()
- {
- return this.FieldDelimiter != null;
- }
-
- ///
- /// Value used for escaping where the field delimiter is part of the value.
- ///
- public string QuoteCharacter { get; set; }
-
- internal bool IsSetQuoteCharacter()
- {
- return this.QuoteCharacter != null;
- }
-
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
xmlWriter.WriteStartElement(memberName);
diff --git a/sdk/src/Services/S3/Custom/Model/InputSerialization.cs b/sdk/src/Services/S3/Custom/Model/InputSerialization.cs
index ef94ce42df2d..4fcb7b564cf6 100644
--- a/sdk/src/Services/S3/Custom/Model/InputSerialization.cs
+++ b/sdk/src/Services/S3/Custom/Model/InputSerialization.cs
@@ -22,36 +22,8 @@ namespace Amazon.S3.Model
///
/// Describes the serialization format of the object.
///
- public class InputSerialization
+ public partial class InputSerialization
{
- ///
- /// Describes the serialization of a CSV-encoded object.
- ///
- public CSVInput CSV { get; set; }
-
- ///
- /// Specifies object's compression format. Valid values: NONE, GZIP. Default Value: NONE.
- ///
- public CompressionType CompressionType { get; set; } = CompressionType.None;
-
- ///
- /// Specifies JSON as object's input serialization format.
- ///
- public JSONInput JSON { get; set; }
-
- ///
- /// Specifies Parquet as object's input serialization format.
- ///
- public ParquetInput Parquet { get; set; }
-
- internal bool IsSetCSV() => CSV != null;
-
- internal bool IsSetCompressionType() => CompressionType != null;
-
- internal bool IsSetJSON() => JSON != null;
-
- internal bool IsSetParquet() => Parquet != null;
-
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
xmlWriter.WriteStartElement(memberName);
diff --git a/sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/RestoreObjectRequestMarshaller.cs b/sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/RestoreObjectRequestMarshaller.cs
index 1fcce8a68bbe..1b28a4fcbc25 100644
--- a/sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/RestoreObjectRequestMarshaller.cs
+++ b/sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/RestoreObjectRequestMarshaller.cs
@@ -31,84 +31,60 @@ namespace Amazon.S3.Model.Internal.MarshallTransformations
///
/// Restore Object Request Marshaller
///
- public class RestoreObjectRequestMarshaller : IMarshaller ,IMarshaller
+ public partial class RestoreObjectRequestMarshaller : IMarshaller ,IMarshaller
{
- public IRequest Marshall(Amazon.Runtime.AmazonWebServiceRequest input)
+ // UserMetadata needs a custom marshall because the model defines usermetadata as a list but the custom code had this as a dictionary. Even though S3 models this as a list
+ // upon closer inspection the list has only two members which are Name and Value, so a dictionary makes more sense here anyways.
+ void UserMetadataCustomMarshall(XmlWriter xmlWriter, RestoreObjectRequest publicRequest)
{
- return this.Marshall((RestoreObjectRequest)input);
+ if (publicRequest.OutputLocation.S3.IsSetUserMetadata())
+ publicRequest.OutputLocation.S3.UserMetadata.Marshall("UserMetadata", xmlWriter);
}
- public IRequest Marshall(RestoreObjectRequest restoreObjectRequest)
+ // Tier needs a custom marshall because Tier is actually a member of the GlacierJobParameters member on RestoreRequest. But since RestoreRequest has been flattened and moved up to the parent.
+ // and Tier is nested inside RestoreRequest, the IsSet method will check RestoreRequest's Tier shape instead of checking it on the top-level RestoreObjectRequest.
+ void TierCustomMarshall(XmlWriter xmlWriter, RestoreObjectRequest publicRequest)
{
- IRequest request = new DefaultRequest(restoreObjectRequest, "Amazon.S3");
-
- request.HttpMethod = "POST";
-
- if (restoreObjectRequest.IsSetRequestPayer())
- request.Headers.Add(S3Constants.AmzHeaderRequestPayer, S3Transforms.ToStringValue(restoreObjectRequest.RequestPayer.ToString()));
-
- if (restoreObjectRequest.IsSetExpectedBucketOwner())
- request.Headers.Add(S3Constants.AmzHeaderExpectedBucketOwner, S3Transforms.ToStringValue(restoreObjectRequest.ExpectedBucketOwner));
-
- if (restoreObjectRequest.IsSetChecksumAlgorithm())
- request.Headers.Add(S3Constants.AmzHeaderSdkChecksumAlgorithm, S3Transforms.ToStringValue(restoreObjectRequest.ChecksumAlgorithm));
-
- if (string.IsNullOrEmpty(restoreObjectRequest.BucketName))
- throw new System.ArgumentException("BucketName is a required property and must be set before making this call.", "RestoreObjectRequest.BucketName");
- if (string.IsNullOrEmpty(restoreObjectRequest.Key))
- throw new System.ArgumentException("Key is a required property and must be set before making this call.", "RestoreObjectRequest.Key");
-
- request.ResourcePath = "/{Key+}";
- request.AddPathResource("{Key+}", S3Transforms.ToStringValue(restoreObjectRequest.Key));
-
- request.AddSubResource("restore");
- if (restoreObjectRequest.IsSetVersionId())
- request.AddSubResource("versionId", S3Transforms.ToStringValue(restoreObjectRequest.VersionId));
-
- var stringWriter = new XMLEncodedStringWriter(System.Globalization.CultureInfo.InvariantCulture);
- using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings() { Encoding = Encoding.UTF8, OmitXmlDeclaration = true, NewLineHandling = NewLineHandling.Entitize }))
+ if (publicRequest.IsSetTier())
{
- restoreObjectRequest.Marshall("RestoreRequest", xmlWriter);
+ xmlWriter.WriteStartElement("GlacierJobParameters");
+ xmlWriter.WriteElementString("Tier", StringUtils.FromString(publicRequest.Tier));
+ xmlWriter.WriteEndElement();
}
+ }
- try
+ // AccessControlList needs a custom marshall because even though the model defines this as an AccessControlList which is just a list of grants, we created S3AccessControlList which contains
+ // both a list of grants and an Owner shape. S3AccessControlList is shared across different operations as well, and in this specific case, it has its own marshall which only marshalls the
+ // grants and not the owner.
+ void AccessControlListCustomMarshall(XmlWriter xmlWriter, RestoreObjectRequest publicRequest)
+ {
+ if (publicRequest.OutputLocation.S3.IsSetAccessControlList())
{
- var content = stringWriter.ToString();
- request.Content = Encoding.UTF8.GetBytes(content);
- request.Headers[HeaderKeys.ContentTypeHeader] = "application/xml";
-
- ChecksumUtils.SetChecksumData(
- request,
- restoreObjectRequest.ChecksumAlgorithm,
- fallbackToMD5: false,
- isRequestChecksumRequired: false,
- headerName: S3Constants.AmzHeaderSdkChecksumAlgorithm
- );
+ publicRequest.OutputLocation.S3.AccessControlList.Marshall("AccessControlList", xmlWriter);
}
- catch (EncoderFallbackException e)
+ }
+
+ // All the validations from the custom code moved here for backwards compatibility
+ partial void PreMarshallCustomization(DefaultRequest defaultRequest, RestoreObjectRequest publicRequest)
+ {
+ if (publicRequest.SelectParameters != null)
{
- throw new AmazonServiceException("Unable to marshall request to XML", e);
+ if (!publicRequest.SelectParameters.IsSetInputSerialization()) throw new System.ArgumentException("SelectParameters.InputSerialization is a required property and must be set before making this call.");
+ if (!publicRequest.SelectParameters.IsSetExpression()) throw new System.ArgumentException("SelectParameters.Expression is a required property and must be set before making this call.");
+ if (!publicRequest.SelectParameters.IsSetExpressionType()) throw new System.ArgumentException("SelectParameters.ExpressionType is a required property and must be set before making this call.");
+ if (!publicRequest.SelectParameters.IsSetOutputSerialization()) throw new System.ArgumentException("SelectParameters.OutputSerialization is a required property and must be set before making this call.");
}
- return request;
+ if (publicRequest.OutputLocation != null && publicRequest.OutputLocation.S3 != null)
+ {
+ if (string.IsNullOrEmpty(publicRequest.OutputLocation.S3.BucketName)) throw new System.ArgumentException("BucketName is a required property and must be set before making this call.", "S3Location.BucketName");
+ if (string.IsNullOrEmpty(publicRequest.OutputLocation.S3.Prefix)) throw new System.ArgumentException("Prefix is a required property and must be set before making this call.", "S3Location.Prefix");
+ if (publicRequest.OutputLocation.S3.Encryption != null)
+ {
+ if (!publicRequest.OutputLocation.S3.Encryption.IsSetEncryptionType()) throw new System.ArgumentException("EncryptionType is a required property and must be set before making this call.", "S3Encryption.EncryptionType");
+ }
+ }
}
-
- private static RestoreObjectRequestMarshaller _instance;
-
- ///
- /// Singleton for marshaller
- ///
- public static RestoreObjectRequestMarshaller Instance
- {
- get
- {
- if (_instance == null)
- {
- _instance = new RestoreObjectRequestMarshaller();
- }
- return _instance;
- }
- }
}
}
diff --git a/sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/RestoreObjectResponseUnmarshaller.cs b/sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/RestoreObjectResponseUnmarshaller.cs
deleted file mode 100644
index 7ff09fbc9992..000000000000
--- a/sdk/src/Services/S3/Custom/Model/Internal/MarshallTransformations/RestoreObjectResponseUnmarshaller.cs
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-using System;
-using System.Net;
-using System.Collections.Generic;
-using Amazon.S3.Model;
-using Amazon.S3.Util;
-using Amazon.Runtime;
-using Amazon.Runtime.Internal;
-using Amazon.Runtime.Internal.Transform;
-
-namespace Amazon.S3.Model.Internal.MarshallTransformations
-{
- ///
- /// Response Unmarshaller for RestoreObject operation
- ///
- public class RestoreObjectResponseUnmarshaller : S3ReponseUnmarshaller
- {
- ///
- /// Unmarshaller the response from the service to the response class.
- ///
- ///
- ///
- public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
- {
- RestoreObjectResponse response = new RestoreObjectResponse();
- IWebResponseData responseData = context.ResponseData;
-
- if (responseData.IsHeaderPresent(S3Constants.AmzHeaderRequestCharged))
- response.RequestCharged = RequestCharged.FindValue(responseData.GetHeaderValue(S3Constants.AmzHeaderRequestCharged));
-
- if (responseData.IsHeaderPresent(S3Constants.AmzHeaderRestoreOutputPath))
- response.RestoreOutputPath = responseData.GetHeaderValue(S3Constants.AmzHeaderRestoreOutputPath);
-
- return response;
- }
-
- private static RestoreObjectResponseUnmarshaller _instance;
-
- ///
- /// Singleton for the unmarshaller
- ///
- public static RestoreObjectResponseUnmarshaller Instance
- {
- get
- {
- if (_instance == null)
- {
- _instance = new RestoreObjectResponseUnmarshaller();
- }
- return _instance;
- }
- }
-
-
- }
-}
-
diff --git a/sdk/src/Services/S3/Custom/Model/JSONInput.cs b/sdk/src/Services/S3/Custom/Model/JSONInput.cs
index 030f263894d8..eb8a0cc5374f 100644
--- a/sdk/src/Services/S3/Custom/Model/JSONInput.cs
+++ b/sdk/src/Services/S3/Custom/Model/JSONInput.cs
@@ -27,22 +27,15 @@ namespace Amazon.S3.Model
///
/// Specifies JSON as object's input serialization format.
///
- public class JSONInput
+ public partial class JSONInput
{
- ///
- /// The type of JSON. Valid values: Document, Lines.
- ///
- public JsonType JsonType { get; set; }
-
- internal bool IsSetType() => JsonType != null;
-
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
xmlWriter.WriteStartElement(memberName);
- if (IsSetType())
+ if (IsSetJsonType())
{
- xmlWriter.WriteElementString("Type", S3Transforms.ToXmlStringValue(JsonType.Value));
+ xmlWriter.WriteElementString("Type", S3Transforms.ToXmlStringValue(_jsonType));
}
xmlWriter.WriteEndElement();
diff --git a/sdk/src/Services/S3/Custom/Model/JSONOutput.cs b/sdk/src/Services/S3/Custom/Model/JSONOutput.cs
index e567a1bec284..a968f0b49638 100644
--- a/sdk/src/Services/S3/Custom/Model/JSONOutput.cs
+++ b/sdk/src/Services/S3/Custom/Model/JSONOutput.cs
@@ -27,15 +27,8 @@ namespace Amazon.S3.Model
///
/// Specifies JSON as request's output serialization format
///
- public class JSONOutput
+ public partial class JSONOutput
{
- ///
- /// The value used to separate individual records in the output.
- ///
- public string RecordDelimiter { get; set; }
-
- internal bool IsSetRecordDelimiter() => RecordDelimiter != null;
-
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
xmlWriter.WriteStartElement(memberName);
diff --git a/sdk/src/Services/S3/Custom/Model/MetadataEntry.cs b/sdk/src/Services/S3/Custom/Model/MetadataEntry.cs
deleted file mode 100644
index 8ae223fc1a2c..000000000000
--- a/sdk/src/Services/S3/Custom/Model/MetadataEntry.cs
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License").
- * You may not use this file except in compliance with the License.
- * A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0
- *
- * or in the "license" file accompanying this file. This file is distributed
- * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
- * express or implied. See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-using System.Xml;
-using Amazon.S3.Model.Internal.MarshallTransformations;
-
-namespace Amazon.S3.Model
-{
- ///
- /// A metadata key-value pair to store with an object.
- ///
- public class MetadataEntry
- {
- ///
- /// Key of metadata key-value pair
- ///
- public string Name { get; set; }
-
- internal bool IsSetName()
- {
- return this.Name != null;
- }
-
- ///
- /// Value of metadata key-value pair
- ///
- public string Value { get; set; }
-
- internal bool IsSetValue()
- {
- return this.Value != null;
- }
-
- internal void Marshall(string memberName, XmlWriter xmlWriter)
- {
- xmlWriter.WriteStartElement(memberName);
- {
- if (IsSetName())
- xmlWriter.WriteElementString("Name", S3Transforms.ToXmlStringValue(Name));
- if (IsSetValue())
- xmlWriter.WriteElementString("Value", S3Transforms.ToXmlStringValue(Value));
- }
- xmlWriter.WriteEndElement();
- }
- }
-}
diff --git a/sdk/src/Services/S3/Custom/Model/OutputSerialization.cs b/sdk/src/Services/S3/Custom/Model/OutputSerialization.cs
index f916c34d23d7..da3b2811db9f 100644
--- a/sdk/src/Services/S3/Custom/Model/OutputSerialization.cs
+++ b/sdk/src/Services/S3/Custom/Model/OutputSerialization.cs
@@ -20,21 +20,8 @@ namespace Amazon.S3.Model
///
/// Describes how results of the Select job are serialized.
///
- public class OutputSerialization
+ public partial class OutputSerialization
{
- ///
- /// Describes the serialization of CSV-encoded Select results.
- ///
- public CSVOutput CSV { get; set; }
- ///
- /// Specifies JSON as request's output serialization format.
- ///
- public JSONOutput JSON { get; set; }
-
- internal bool IsSetCSV() => CSV != null;
-
- internal bool IsSetJSON() => JSON != null;
-
internal void Marshall(string propertyName, XmlWriter xmlWriter)
{
xmlWriter.WriteStartElement(propertyName);
diff --git a/sdk/src/Services/S3/Custom/Model/ParquetInput.cs b/sdk/src/Services/S3/Custom/Model/ParquetInput.cs
index 601cc2cdc414..eb5ea2dae82c 100644
--- a/sdk/src/Services/S3/Custom/Model/ParquetInput.cs
+++ b/sdk/src/Services/S3/Custom/Model/ParquetInput.cs
@@ -21,7 +21,7 @@ namespace Amazon.S3.Model
///
/// Specifies Parquet as object's input serialization format.
///
- public class ParquetInput
+ public partial class ParquetInput
{
[SuppressMessage("Microsoft.Performance", "CA1822",
diff --git a/sdk/src/Services/S3/Custom/Model/S3Encryption.cs b/sdk/src/Services/S3/Custom/Model/S3Encryption.cs
index 6814f2db7d8c..c15c08b89c88 100644
--- a/sdk/src/Services/S3/Custom/Model/S3Encryption.cs
+++ b/sdk/src/Services/S3/Custom/Model/S3Encryption.cs
@@ -22,44 +22,8 @@ namespace Amazon.S3.Model
///
/// Describes the server-side encryption that will be applied to the restore results.
///
- public class S3Encryption
+ public partial class S3Encryption
{
- ///
- /// The server-side encryption algorithm used when storing job results in Amazon S3
- /// (for example, AES256, aws:kms).
- ///
- public ServerSideEncryptionMethod EncryptionType { get; set; }
-
- internal bool IsSetEncryptionType()
- {
- return this.EncryptionType != null;
-
- }
-
- ///
- /// If the encryption type is aws:kms, this optional value
- /// specifies the ID of the symmetric encryption customer managed key to use for encryption
- /// of job results. Amazon S3 only supports symmetric encryption KMS keys. For more information, see
- ///
- /// Asymmetric keys in Amazon Web Services KMS in the Amazon Web Services Key Management Service Developer Guide.
- ///
- public string KMSKeyId { get; set; }
-
- internal bool IsSetKMSKeyId()
- {
- return this.KMSKeyId != null;
- }
-
- ///
- /// If the encryption type is aws:kms, this optional value can be used to specify the encryption context for the restore results.
- ///
- public string KMSContext { get; set; }
-
- internal bool IsSetKMSContext()
- {
- return this.KMSContext != null;
- }
-
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
if (!IsSetEncryptionType()) throw new System.ArgumentException("EncryptionType is a required property and must be set before making this call.", "S3Encryption.EncryptionType");
diff --git a/sdk/src/Services/S3/Custom/Model/S3Location.cs b/sdk/src/Services/S3/Custom/Model/S3Location.cs
index 84be79c18413..d4ea73ed1baa 100644
--- a/sdk/src/Services/S3/Custom/Model/S3Location.cs
+++ b/sdk/src/Services/S3/Custom/Model/S3Location.cs
@@ -21,92 +21,13 @@ namespace Amazon.S3.Model
///
/// Describes an S3 location that will receive the results of the restore request.
///
- public class S3Location
+ public partial class S3Location
{
- ///
- /// The name of the bucket where the restore results will be placed.
- ///
- public string BucketName { get; set; }
-
- internal bool IsSetBucketName()
- {
- return this.BucketName != null;
- }
-
- ///
- /// The prefix that is prepended to the restore results for this request.
- ///
- public string Prefix { get; set; }
-
- internal bool IsSetPrefix()
- {
- return this.Prefix != null;
- }
-
- ///
- /// The server-side encryption that will be applied to the restore results.
- ///
- public S3Encryption Encryption { get; set; }
-
- internal bool IsSetEncryption()
- {
- return this.Encryption != null;
- }
-
- ///
- /// The canned ACL to apply to the restore results.
- ///
- public S3CannedACL CannedACL { get; set; }
-
- internal bool IsSetCannedACL()
- {
- return this.CannedACL != null;
- }
-
- ///
- /// A list of grants that control access to the staged results.
- ///
- public S3AccessControlList AccessControlList { get; set; }
-
- internal bool IsSetAccessControlList()
- {
- return this.AccessControlList != null;
- }
-
- ///
- /// The tag-set that is applied to the restore results.
- ///
- public Tagging Tagging { get; set; }
-
- internal bool IsSetTagging()
- {
- return this.Tagging != null;
- }
-
- ///
- /// A map of metadata to store with the restore results in S3.
- ///
- public MetadataCollection UserMetadata { get; set; }
-
- internal bool IsSetUserMetadata()
- {
- return this.UserMetadata != null;
- }
-
- ///
- /// The class of storage used to store the restore results.
- ///
- public S3StorageClass StorageClass { get; set; }
-
- internal bool IsSetStorageClass()
- {
- return this.StorageClass != null;
- }
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
- if (string.IsNullOrEmpty(BucketName)) throw new System.ArgumentException("BucketName is a required property and must be set before making this call.", "S3Location.BucketName");
- if (string.IsNullOrEmpty(Prefix)) throw new System.ArgumentException("Prefix is a required property and must be set before making this call.", "S3Location.Prefix");
+ if (string.IsNullOrEmpty(_bucketName)) throw new System.ArgumentException("BucketName is a required property and must be set before making this call.", "S3Location.BucketName");
+ if (string.IsNullOrEmpty(_prefix)) throw new System.ArgumentException("Prefix is a required property and must be set before making this call.", "S3Location.Prefix");
xmlWriter.WriteStartElement(memberName);
{
diff --git a/sdk/src/Services/S3/Custom/Model/SelectParameters.cs b/sdk/src/Services/S3/Custom/Model/SelectParameters.cs
index 6fdb99ee0e4a..cc1922a0a7ca 100644
--- a/sdk/src/Services/S3/Custom/Model/SelectParameters.cs
+++ b/sdk/src/Services/S3/Custom/Model/SelectParameters.cs
@@ -21,48 +21,8 @@ namespace Amazon.S3.Model
///
/// Describes the parameters for Select job types.
///
- public class SelectParameters
- {
- ///
- /// Describes the serialization format of the object.
- ///
- public InputSerialization InputSerialization { get; set; }
-
- internal bool IsSetInputSerialization()
- {
- return this.InputSerialization != null;
- }
-
- ///
- /// The type of the provided expression (e.g., SQL).
- ///
- public ExpressionType ExpressionType { get; set; }
-
- internal bool IsSetExpressionType()
- {
- return this.ExpressionType != null;
- }
-
- ///
- /// The expression that is used to query the object.
- ///
- public string Expression { get; set; }
-
- internal bool IsSetExpression()
- {
- return this.Expression != null;
- }
-
- ///
- /// Describes how the results of the Select job are serialized.
- ///
- public OutputSerialization OutputSerialization { get; set; }
-
- internal bool IsSetOutputSerialization()
- {
- return this.OutputSerialization != null;
- }
-
+ public partial class SelectParameters
+ {
internal void Marshall(string memberName, XmlWriter xmlWriter)
{
if (!IsSetInputSerialization()) throw new System.ArgumentException("SelectParameters.InputSerialization is a required property and must be set before making this call.");
diff --git a/sdk/src/Services/S3/Generated/Model/CSVInput.cs b/sdk/src/Services/S3/Generated/Model/CSVInput.cs
new file mode 100644
index 000000000000..32cc6d8412ce
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/CSVInput.cs
@@ -0,0 +1,214 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Describes how an uncompressed comma-separated values (CSV)-formatted input object
+ /// is formatted.
+ ///
+ public partial class CSVInput
+ {
+ private bool? _allowQuotedRecordDelimiter;
+ private string _comments;
+ private string _fieldDelimiter;
+ private FileHeaderInfo _fileHeaderInfo;
+ private string _quoteCharacter;
+ private string _quoteEscapeCharacter;
+ private string _recordDelimiter;
+
+ ///
+ /// Gets and sets the property AllowQuotedRecordDelimiter.
+ ///
+ /// Specifies that CSV field values may contain quoted record delimiters and such records
+ /// should be allowed. Default value is FALSE. Setting this value to TRUE may lower performance.
+ ///
+ ///
+ public bool? AllowQuotedRecordDelimiter
+ {
+ get { return this._allowQuotedRecordDelimiter; }
+ set { this._allowQuotedRecordDelimiter = value; }
+ }
+
+ // Check to see if AllowQuotedRecordDelimiter property is set
+ internal bool IsSetAllowQuotedRecordDelimiter()
+ {
+ return this._allowQuotedRecordDelimiter.HasValue;
+ }
+
+ ///
+ /// Gets and sets the property Comments.
+ ///
+ /// A single character used to indicate that a row should be ignored when the character
+ /// is present at the start of that row. You can specify any character to indicate a comment
+ /// line. The default character is #.
+ ///
+ ///
+ ///
+ /// Default: #
+ ///
+ ///
+ public string Comments
+ {
+ get { return this._comments; }
+ set { this._comments = value; }
+ }
+
+ // Check to see if Comments property is set
+ internal bool IsSetComments()
+ {
+ return this._comments != null;
+ }
+
+ ///
+ /// Gets and sets the property FieldDelimiter.
+ ///
+ /// A single character used to separate individual fields in a record. You can specify
+ /// an arbitrary delimiter.
+ ///
+ ///
+ public string FieldDelimiter
+ {
+ get { return this._fieldDelimiter; }
+ set { this._fieldDelimiter = value; }
+ }
+
+ // Check to see if FieldDelimiter property is set
+ internal bool IsSetFieldDelimiter()
+ {
+ return this._fieldDelimiter != null;
+ }
+
+ ///
+ /// Gets and sets the property FileHeaderInfo.
+ ///
+ /// Describes the first line of input. Valid values are:
+ ///
+ /// -
+ ///
+ /// NONE: First line is not a header.
+ ///
+ ///
-
+ ///
+ /// IGNORE: First line is a header, but you can't use the header values to indicate
+ /// the column in an expression. You can use column position (such as _1, _2, …) to indicate
+ /// the column (SELECT s._1 FROM OBJECT s).
+ ///
+ ///
-
+ ///
+ /// Use: First line is a header, and you can use the header value to identify
+ /// a column in an expression (SELECT "name" FROM OBJECT).
+ ///
+ ///
+ ///
+ public FileHeaderInfo FileHeaderInfo
+ {
+ get { return this._fileHeaderInfo; }
+ set { this._fileHeaderInfo = value; }
+ }
+
+ // Check to see if FileHeaderInfo property is set
+ internal bool IsSetFileHeaderInfo()
+ {
+ return this._fileHeaderInfo != null;
+ }
+
+ ///
+ /// Gets and sets the property QuoteCharacter.
+ ///
+ /// A single character used for escaping when the field delimiter is part of the value.
+ /// For example, if the value is a, b, Amazon S3 wraps this field value in quotation
+ /// marks, as follows: " a , b ".
+ ///
+ ///
+ ///
+ /// Type: String
+ ///
+ ///
+ ///
+ /// Default: "
+ ///
+ ///
+ ///
+ /// Ancestors: CSV
+ ///
+ ///
+ public string QuoteCharacter
+ {
+ get { return this._quoteCharacter; }
+ set { this._quoteCharacter = value; }
+ }
+
+ // Check to see if QuoteCharacter property is set
+ internal bool IsSetQuoteCharacter()
+ {
+ return this._quoteCharacter != null;
+ }
+
+ ///
+ /// Gets and sets the property QuoteEscapeCharacter.
+ ///
+ /// A single character used for escaping the quotation mark character inside an already
+ /// escaped value. For example, the value """ a , b """ is parsed as " a , b
+ /// ".
+ ///
+ ///
+ public string QuoteEscapeCharacter
+ {
+ get { return this._quoteEscapeCharacter; }
+ set { this._quoteEscapeCharacter = value; }
+ }
+
+ // Check to see if QuoteEscapeCharacter property is set
+ internal bool IsSetQuoteEscapeCharacter()
+ {
+ return this._quoteEscapeCharacter != null;
+ }
+
+ ///
+ /// Gets and sets the property RecordDelimiter.
+ ///
+ /// A single character used to separate individual records in the input. Instead of the
+ /// default value, you can specify an arbitrary delimiter.
+ ///
+ ///
+ public string RecordDelimiter
+ {
+ get { return this._recordDelimiter; }
+ set { this._recordDelimiter = value; }
+ }
+
+ // Check to see if RecordDelimiter property is set
+ internal bool IsSetRecordDelimiter()
+ {
+ return this._recordDelimiter != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/CSVOutput.cs b/sdk/src/Services/S3/Generated/Model/CSVOutput.cs
new file mode 100644
index 000000000000..b984ddd25368
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/CSVOutput.cs
@@ -0,0 +1,148 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Describes how uncompressed comma-separated values (CSV)-formatted results are formatted.
+ ///
+ public partial class CSVOutput
+ {
+ private string _fieldDelimiter;
+ private string _quoteCharacter;
+ private string _quoteEscapeCharacter;
+ private QuoteFields _quoteFields;
+ private string _recordDelimiter;
+
+ ///
+ /// Gets and sets the property FieldDelimiter.
+ ///
+ /// The value used to separate individual fields in a record. You can specify an arbitrary
+ /// delimiter.
+ ///
+ ///
+ public string FieldDelimiter
+ {
+ get { return this._fieldDelimiter; }
+ set { this._fieldDelimiter = value; }
+ }
+
+ // Check to see if FieldDelimiter property is set
+ internal bool IsSetFieldDelimiter()
+ {
+ return this._fieldDelimiter != null;
+ }
+
+ ///
+ /// Gets and sets the property QuoteCharacter.
+ ///
+ /// A single character used for escaping when the field delimiter is part of the value.
+ /// For example, if the value is a, b, Amazon S3 wraps this field value in quotation
+ /// marks, as follows: " a , b ".
+ ///
+ ///
+ public string QuoteCharacter
+ {
+ get { return this._quoteCharacter; }
+ set { this._quoteCharacter = value; }
+ }
+
+ // Check to see if QuoteCharacter property is set
+ internal bool IsSetQuoteCharacter()
+ {
+ return this._quoteCharacter != null;
+ }
+
+ ///
+ /// Gets and sets the property QuoteEscapeCharacter.
+ ///
+ /// The single character used for escaping the quote character inside an already escaped
+ /// value.
+ ///
+ ///
+ public string QuoteEscapeCharacter
+ {
+ get { return this._quoteEscapeCharacter; }
+ set { this._quoteEscapeCharacter = value; }
+ }
+
+ // Check to see if QuoteEscapeCharacter property is set
+ internal bool IsSetQuoteEscapeCharacter()
+ {
+ return this._quoteEscapeCharacter != null;
+ }
+
+ ///
+ /// Gets and sets the property QuoteFields.
+ ///
+ /// Indicates whether to use quotation marks around output fields.
+ ///
+ /// -
+ ///
+ /// ALWAYS: Always use quotation marks for output fields.
+ ///
+ ///
-
+ ///
+ /// ASNEEDED: Use quotation marks for output fields when needed.
+ ///
+ ///
+ ///
+ public QuoteFields QuoteFields
+ {
+ get { return this._quoteFields; }
+ set { this._quoteFields = value; }
+ }
+
+ // Check to see if QuoteFields property is set
+ internal bool IsSetQuoteFields()
+ {
+ return this._quoteFields != null;
+ }
+
+ ///
+ /// Gets and sets the property RecordDelimiter.
+ ///
+ /// A single character used to separate individual records in the output. Instead of the
+ /// default value, you can specify an arbitrary delimiter.
+ ///
+ ///
+ public string RecordDelimiter
+ {
+ get { return this._recordDelimiter; }
+ set { this._recordDelimiter = value; }
+ }
+
+ // Check to see if RecordDelimiter property is set
+ internal bool IsSetRecordDelimiter()
+ {
+ return this._recordDelimiter != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/GlacierJobParameters.cs b/sdk/src/Services/S3/Generated/Model/GlacierJobParameters.cs
new file mode 100644
index 000000000000..0adedaf1397e
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/GlacierJobParameters.cs
@@ -0,0 +1,59 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Container for S3 Glacier job parameters.
+ ///
+ public partial class GlacierJobParameters
+ {
+ private GlacierJobTier _tier;
+
+ ///
+ /// Gets and sets the property Tier.
+ ///
+ /// Retrieval tier at which the restore will be processed.
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public GlacierJobTier Tier
+ {
+ get { return this._tier; }
+ set { this._tier = value; }
+ }
+
+ // Check to see if Tier property is set
+ internal bool IsSetTier()
+ {
+ return this._tier != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/InputSerialization.cs b/sdk/src/Services/S3/Generated/Model/InputSerialization.cs
new file mode 100644
index 000000000000..09a870bd9256
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/InputSerialization.cs
@@ -0,0 +1,116 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Describes the serialization format of the object.
+ ///
+ public partial class InputSerialization
+ {
+ private CompressionType _compressionType = CompressionType.None;
+ private CSVInput _csv;
+ private JSONInput _json;
+ private ParquetInput _parquet;
+
+ ///
+ /// Gets and sets the property CompressionType.
+ ///
+ /// Specifies object's compression format. Valid values: NONE, GZIP, BZIP2. Default Value:
+ /// NONE.
+ ///
+ ///
+ public CompressionType CompressionType
+ {
+ get { return this._compressionType; }
+ set { this._compressionType = value; }
+ }
+
+ // Check to see if CompressionType property is set
+ internal bool IsSetCompressionType()
+ {
+ return this._compressionType != null;
+ }
+
+ ///
+ /// Gets and sets the property CSV.
+ ///
+ /// Describes the serialization of a CSV-encoded object.
+ ///
+ ///
+ public CSVInput CSV
+ {
+ get { return this._csv; }
+ set { this._csv = value; }
+ }
+
+ // Check to see if CSV property is set
+ internal bool IsSetCSV()
+ {
+ return this._csv != null;
+ }
+
+ ///
+ /// Gets and sets the property JSON.
+ ///
+ /// Specifies JSON as object's input serialization format.
+ ///
+ ///
+ public JSONInput JSON
+ {
+ get { return this._json; }
+ set { this._json = value; }
+ }
+
+ // Check to see if JSON property is set
+ internal bool IsSetJSON()
+ {
+ return this._json != null;
+ }
+
+ ///
+ /// Gets and sets the property Parquet.
+ ///
+ /// Specifies Parquet as object's input serialization format.
+ ///
+ ///
+ public ParquetInput Parquet
+ {
+ get { return this._parquet; }
+ set { this._parquet = value; }
+ }
+
+ // Check to see if Parquet property is set
+ internal bool IsSetParquet()
+ {
+ return this._parquet != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/ObjectAlreadyInActiveTierErrorExceptionUnmarshaller.cs b/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/ObjectAlreadyInActiveTierErrorExceptionUnmarshaller.cs
new file mode 100644
index 000000000000..189898fe8e4d
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/ObjectAlreadyInActiveTierErrorExceptionUnmarshaller.cs
@@ -0,0 +1,92 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Xml.Serialization;
+
+using Amazon.S3.Model;
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+using Amazon.Runtime.Internal.Transform;
+using Amazon.Runtime.Internal.Util;
+
+#pragma warning disable CS0612,CS0618
+namespace Amazon.S3.Model.Internal.MarshallTransformations
+{
+ ///
+ /// Response Unmarshaller for ObjectAlreadyInActiveTierErrorException operation
+ ///
+ public class ObjectAlreadyInActiveTierErrorExceptionUnmarshaller : IXmlErrorResponseUnmarshaller
+ {
+ ///
+ /// Unmarshaller the response from the service to the response class.
+ ///
+ ///
+ ///
+ public ObjectAlreadyInActiveTierErrorException Unmarshall(XmlUnmarshallerContext context)
+ {
+ throw new NotImplementedException();
+ }
+
+ ///
+ /// Unmarshaller the response from the service to the response class.
+ ///
+ ///
+ ///
+ ///
+ public ObjectAlreadyInActiveTierErrorException Unmarshall(XmlUnmarshallerContext context, Amazon.Runtime.Internal.ErrorResponse errorResponse)
+ {
+ string id2 = null, amzCfId = null;
+ var s3ErrorResponse = errorResponse as S3ErrorResponse;
+ if (s3ErrorResponse != null)
+ {
+ id2 = s3ErrorResponse.Id2;
+ amzCfId = s3ErrorResponse.AmzCfId;
+ }
+ ObjectAlreadyInActiveTierErrorException response = new ObjectAlreadyInActiveTierErrorException(errorResponse.Message, errorResponse.InnerException,
+ errorResponse.Type, errorResponse.Code, errorResponse.RequestId, errorResponse.StatusCode, id2, amzCfId);
+
+
+ while (context.Read())
+ {
+ if (context.IsStartElement || context.IsAttribute)
+ {
+ }
+ }
+ return response;
+ }
+
+ private static ObjectAlreadyInActiveTierErrorExceptionUnmarshaller _instance = new ObjectAlreadyInActiveTierErrorExceptionUnmarshaller();
+
+ ///
+ /// Gets the singleton.
+ ///
+ public static ObjectAlreadyInActiveTierErrorExceptionUnmarshaller Instance
+ {
+ get
+ {
+ return _instance;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/RestoreObjectRequestMarshaller.cs b/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/RestoreObjectRequestMarshaller.cs
new file mode 100644
index 000000000000..1aa29d9e0995
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/RestoreObjectRequestMarshaller.cs
@@ -0,0 +1,277 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Text;
+using System.Xml.Serialization;
+
+using Amazon.S3.Model;
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+using Amazon.Runtime.Internal.Transform;
+using Amazon.Runtime.Internal.Util;
+using System.Xml;
+
+#pragma warning disable CS0612,CS0618
+namespace Amazon.S3.Model.Internal.MarshallTransformations
+{
+ ///
+ /// RestoreObject Request Marshaller
+ ///
+ public partial class RestoreObjectRequestMarshaller : IMarshaller , IMarshaller
+ {
+ ///
+ /// Marshaller the request object to the HTTP request.
+ ///
+ ///
+ ///
+ public IRequest Marshall(AmazonWebServiceRequest input)
+ {
+ return this.Marshall((RestoreObjectRequest)input);
+ }
+
+ ///
+ /// Marshaller the request object to the HTTP request.
+ ///
+ ///
+ ///
+ public IRequest Marshall(RestoreObjectRequest publicRequest)
+ {
+ var request = new DefaultRequest(publicRequest, "Amazon.S3");
+ PreMarshallCustomization(request, publicRequest);
+ request.HttpMethod = "POST";
+ request.AddSubResource("restore");
+
+ if (publicRequest.IsSetChecksumAlgorithm())
+ {
+ request.Headers["x-amz-sdk-checksum-algorithm"] = publicRequest.ChecksumAlgorithm;
+ }
+
+ if (publicRequest.IsSetExpectedBucketOwner())
+ {
+ request.Headers["x-amz-expected-bucket-owner"] = publicRequest.ExpectedBucketOwner;
+ }
+
+ if (publicRequest.IsSetRequestPayer())
+ {
+ request.Headers["x-amz-request-payer"] = publicRequest.RequestPayer;
+ }
+ if (string.IsNullOrEmpty(publicRequest.BucketName))
+ throw new System.ArgumentException("BucketName is a required property and must be set before making this call.", "RestoreObjectRequest.BucketName");
+ if (string.IsNullOrEmpty(publicRequest.Key))
+ throw new System.ArgumentException("Key is a required property and must be set before making this call.", "RestoreObjectRequest.Key");
+ request.AddPathResource("{Key+}", StringUtils.FromString(publicRequest.Key));
+
+ if (publicRequest.IsSetVersionId())
+ request.Parameters.Add("versionId", StringUtils.FromString(publicRequest.VersionId));
+ request.ResourcePath = "/{Key+}";
+ var stringWriter = new XMLEncodedStringWriter(CultureInfo.InvariantCulture);
+ using (var xmlWriter = XmlWriter.Create(stringWriter, new XmlWriterSettings() { Encoding = System.Text.Encoding.UTF8, OmitXmlDeclaration = true, NewLineHandling = NewLineHandling.Entitize }))
+ {
+ xmlWriter.WriteStartElement("RestoreRequest", "http://s3.amazonaws.com/doc/2006-03-01/");
+ if(publicRequest.IsSetDays())
+ xmlWriter.WriteElementString("Days", StringUtils.FromInt(publicRequest.Days.Value));
+
+ if(publicRequest.IsSetDescription())
+ xmlWriter.WriteElementString("Description", StringUtils.FromString(publicRequest.Description));
+
+ TierCustomMarshall(xmlWriter, publicRequest);
+ if (publicRequest.OutputLocation != null)
+ {
+ xmlWriter.WriteStartElement("OutputLocation");
+ if (publicRequest.OutputLocation.S3 != null)
+ {
+ xmlWriter.WriteStartElement("S3");
+ AccessControlListCustomMarshall(xmlWriter, publicRequest);
+ if(publicRequest.OutputLocation.S3.IsSetBucketName())
+ xmlWriter.WriteElementString("BucketName", StringUtils.FromString(publicRequest.OutputLocation.S3.BucketName));
+ if(publicRequest.OutputLocation.S3.IsSetCannedACL())
+ xmlWriter.WriteElementString("CannedACL", StringUtils.FromString(publicRequest.OutputLocation.S3.CannedACL));
+ if (publicRequest.OutputLocation.S3.Encryption != null)
+ {
+ xmlWriter.WriteStartElement("Encryption");
+ if(publicRequest.OutputLocation.S3.Encryption.IsSetEncryptionType())
+ xmlWriter.WriteElementString("EncryptionType", StringUtils.FromString(publicRequest.OutputLocation.S3.Encryption.EncryptionType));
+ if(publicRequest.OutputLocation.S3.Encryption.IsSetKMSContext())
+ xmlWriter.WriteElementString("KMSContext", StringUtils.FromString(publicRequest.OutputLocation.S3.Encryption.KMSContext));
+ if(publicRequest.OutputLocation.S3.Encryption.IsSetKMSKeyId())
+ xmlWriter.WriteElementString("KMSKeyId", StringUtils.FromString(publicRequest.OutputLocation.S3.Encryption.KMSKeyId));
+ xmlWriter.WriteEndElement();
+ }
+ if(publicRequest.OutputLocation.S3.IsSetPrefix())
+ xmlWriter.WriteElementString("Prefix", StringUtils.FromString(publicRequest.OutputLocation.S3.Prefix));
+ if(publicRequest.OutputLocation.S3.IsSetStorageClass())
+ xmlWriter.WriteElementString("StorageClass", StringUtils.FromString(publicRequest.OutputLocation.S3.StorageClass));
+ if (publicRequest.OutputLocation.S3.Tagging != null)
+ {
+ xmlWriter.WriteStartElement("Tagging");
+ var publicRequestOutputLocationS3TaggingTagSet = publicRequest.OutputLocation.S3.Tagging.TagSet;
+ if (publicRequestOutputLocationS3TaggingTagSet != null && (publicRequestOutputLocationS3TaggingTagSet.Count > 0 || !AWSConfigs.InitializeCollections))
+ {
+ xmlWriter.WriteStartElement("TagSet");
+ foreach (var publicRequestOutputLocationS3TaggingTagSetValue in publicRequestOutputLocationS3TaggingTagSet)
+ {
+ if (publicRequestOutputLocationS3TaggingTagSetValue != null)
+ {
+ xmlWriter.WriteStartElement("Tag");
+ if(publicRequestOutputLocationS3TaggingTagSetValue.IsSetKey())
+ xmlWriter.WriteElementString("Key", StringUtils.FromString(publicRequestOutputLocationS3TaggingTagSetValue.Key));
+ if(publicRequestOutputLocationS3TaggingTagSetValue.IsSetValue())
+ xmlWriter.WriteElementString("Value", StringUtils.FromString(publicRequestOutputLocationS3TaggingTagSetValue.Value));
+ xmlWriter.WriteEndElement();
+ }
+ }
+ xmlWriter.WriteEndElement();
+ }
+ xmlWriter.WriteEndElement();
+ }
+ UserMetadataCustomMarshall(xmlWriter, publicRequest);
+ xmlWriter.WriteEndElement();
+ }
+ xmlWriter.WriteEndElement();
+ }
+ if(publicRequest.IsSetRestoreRequestType())
+ xmlWriter.WriteElementString("Type", StringUtils.FromString(publicRequest.RestoreRequestType));
+
+ if(publicRequest.IsSetRetrievalTier())
+ xmlWriter.WriteElementString("Tier", StringUtils.FromString(publicRequest.RetrievalTier));
+
+ if (publicRequest.SelectParameters != null)
+ {
+ xmlWriter.WriteStartElement("SelectParameters");
+ if(publicRequest.SelectParameters.IsSetExpression())
+ xmlWriter.WriteElementString("Expression", StringUtils.FromString(publicRequest.SelectParameters.Expression));
+ if(publicRequest.SelectParameters.IsSetExpressionType())
+ xmlWriter.WriteElementString("ExpressionType", StringUtils.FromString(publicRequest.SelectParameters.ExpressionType));
+ if (publicRequest.SelectParameters.InputSerialization != null)
+ {
+ xmlWriter.WriteStartElement("InputSerialization");
+ if(publicRequest.SelectParameters.InputSerialization.IsSetCompressionType())
+ xmlWriter.WriteElementString("CompressionType", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.CompressionType));
+ if (publicRequest.SelectParameters.InputSerialization.CSV != null)
+ {
+ xmlWriter.WriteStartElement("CSV");
+ if(publicRequest.SelectParameters.InputSerialization.CSV.IsSetAllowQuotedRecordDelimiter())
+ xmlWriter.WriteElementString("AllowQuotedRecordDelimiter", StringUtils.FromBool(publicRequest.SelectParameters.InputSerialization.CSV.AllowQuotedRecordDelimiter.Value));
+ if(publicRequest.SelectParameters.InputSerialization.CSV.IsSetComments())
+ xmlWriter.WriteElementString("Comments", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.CSV.Comments));
+ if(publicRequest.SelectParameters.InputSerialization.CSV.IsSetFieldDelimiter())
+ xmlWriter.WriteElementString("FieldDelimiter", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.CSV.FieldDelimiter));
+ if(publicRequest.SelectParameters.InputSerialization.CSV.IsSetFileHeaderInfo())
+ xmlWriter.WriteElementString("FileHeaderInfo", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.CSV.FileHeaderInfo));
+ if(publicRequest.SelectParameters.InputSerialization.CSV.IsSetQuoteCharacter())
+ xmlWriter.WriteElementString("QuoteCharacter", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.CSV.QuoteCharacter));
+ if(publicRequest.SelectParameters.InputSerialization.CSV.IsSetQuoteEscapeCharacter())
+ xmlWriter.WriteElementString("QuoteEscapeCharacter", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.CSV.QuoteEscapeCharacter));
+ if(publicRequest.SelectParameters.InputSerialization.CSV.IsSetRecordDelimiter())
+ xmlWriter.WriteElementString("RecordDelimiter", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.CSV.RecordDelimiter));
+ xmlWriter.WriteEndElement();
+ }
+ if (publicRequest.SelectParameters.InputSerialization.JSON != null)
+ {
+ xmlWriter.WriteStartElement("JSON");
+ if(publicRequest.SelectParameters.InputSerialization.JSON.IsSetJsonType())
+ xmlWriter.WriteElementString("Type", StringUtils.FromString(publicRequest.SelectParameters.InputSerialization.JSON.JsonType));
+ xmlWriter.WriteEndElement();
+ }
+ if (publicRequest.SelectParameters.InputSerialization.Parquet != null)
+ {
+ xmlWriter.WriteStartElement("Parquet");
+ xmlWriter.WriteEndElement();
+ }
+ xmlWriter.WriteEndElement();
+ }
+ if (publicRequest.SelectParameters.OutputSerialization != null)
+ {
+ xmlWriter.WriteStartElement("OutputSerialization");
+ if (publicRequest.SelectParameters.OutputSerialization.CSV != null)
+ {
+ xmlWriter.WriteStartElement("CSV");
+ if(publicRequest.SelectParameters.OutputSerialization.CSV.IsSetFieldDelimiter())
+ xmlWriter.WriteElementString("FieldDelimiter", StringUtils.FromString(publicRequest.SelectParameters.OutputSerialization.CSV.FieldDelimiter));
+ if(publicRequest.SelectParameters.OutputSerialization.CSV.IsSetQuoteCharacter())
+ xmlWriter.WriteElementString("QuoteCharacter", StringUtils.FromString(publicRequest.SelectParameters.OutputSerialization.CSV.QuoteCharacter));
+ if(publicRequest.SelectParameters.OutputSerialization.CSV.IsSetQuoteEscapeCharacter())
+ xmlWriter.WriteElementString("QuoteEscapeCharacter", StringUtils.FromString(publicRequest.SelectParameters.OutputSerialization.CSV.QuoteEscapeCharacter));
+ if(publicRequest.SelectParameters.OutputSerialization.CSV.IsSetQuoteFields())
+ xmlWriter.WriteElementString("QuoteFields", StringUtils.FromString(publicRequest.SelectParameters.OutputSerialization.CSV.QuoteFields));
+ if(publicRequest.SelectParameters.OutputSerialization.CSV.IsSetRecordDelimiter())
+ xmlWriter.WriteElementString("RecordDelimiter", StringUtils.FromString(publicRequest.SelectParameters.OutputSerialization.CSV.RecordDelimiter));
+ xmlWriter.WriteEndElement();
+ }
+ if (publicRequest.SelectParameters.OutputSerialization.JSON != null)
+ {
+ xmlWriter.WriteStartElement("JSON");
+ if(publicRequest.SelectParameters.OutputSerialization.JSON.IsSetRecordDelimiter())
+ xmlWriter.WriteElementString("RecordDelimiter", StringUtils.FromString(publicRequest.SelectParameters.OutputSerialization.JSON.RecordDelimiter));
+ xmlWriter.WriteEndElement();
+ }
+ xmlWriter.WriteEndElement();
+ }
+ xmlWriter.WriteEndElement();
+ }
+
+ xmlWriter.WriteEndElement();
+ }
+ PostMarshallCustomization(request, publicRequest);
+ try
+ {
+ string content = stringWriter.ToString();
+ request.Content = System.Text.Encoding.UTF8.GetBytes(content);
+ request.Headers["Content-Type"] = "application/xml";
+ ChecksumUtils.SetChecksumData(
+ request,
+ publicRequest.ChecksumAlgorithm,
+ fallbackToMD5: false,
+ isRequestChecksumRequired: false,
+ headerName: "x-amz-sdk-checksum-algorithm"
+ );
+ request.Headers[Amazon.Util.HeaderKeys.XAmzApiVersion] = "2006-03-01";
+ }
+ catch (EncoderFallbackException e)
+ {
+ throw new AmazonServiceException("Unable to marshall request to XML", e);
+ }
+ request.UseQueryString = true;
+ return request;
+ }
+ private static RestoreObjectRequestMarshaller _instance = new RestoreObjectRequestMarshaller();
+
+ internal static RestoreObjectRequestMarshaller GetInstance()
+ {
+ return _instance;
+ }
+
+ ///
+ /// Gets the singleton.
+ ///
+ public static RestoreObjectRequestMarshaller Instance
+ {
+ get
+ {
+ return _instance;
+ }
+ }
+
+ partial void PostMarshallCustomization(DefaultRequest defaultRequest, RestoreObjectRequest publicRequest);
+ partial void PreMarshallCustomization(DefaultRequest defaultRequest, RestoreObjectRequest publicRequest);
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/RestoreObjectResponseUnmarshaller.cs b/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/RestoreObjectResponseUnmarshaller.cs
new file mode 100644
index 000000000000..63adbfd23a61
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/Internal/MarshallTransformations/RestoreObjectResponseUnmarshaller.cs
@@ -0,0 +1,106 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Xml.Serialization;
+
+using Amazon.S3.Model;
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+using Amazon.Runtime.Internal.Transform;
+using Amazon.Runtime.Internal.Util;
+
+#pragma warning disable CS0612,CS0618
+namespace Amazon.S3.Model.Internal.MarshallTransformations
+{
+ ///
+ /// Response Unmarshaller for RestoreObject operation
+ ///
+ public partial class RestoreObjectResponseUnmarshaller : S3ReponseUnmarshaller
+ {
+ ///
+ /// Unmarshaller the response from the service to the response class.
+ ///
+ ///
+ ///
+ public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
+ {
+ RestoreObjectResponse response = new RestoreObjectResponse();
+ if (context.ResponseData.IsHeaderPresent("x-amz-request-charged"))
+ response.RequestCharged = context.ResponseData.GetHeaderValue("x-amz-request-charged");
+ if (context.ResponseData.IsHeaderPresent("x-amz-restore-output-path"))
+ response.RestoreOutputPath = context.ResponseData.GetHeaderValue("x-amz-restore-output-path");
+
+ PostUnmarshallCustomization(context, response);
+ return response;
+ }
+
+
+ ///
+ /// Unmarshaller error response to exception.
+ ///
+ ///
+ ///
+ ///
+ ///
+ public override AmazonServiceException UnmarshallException(XmlUnmarshallerContext context, Exception innerException, HttpStatusCode statusCode)
+ {
+ S3ErrorResponse errorResponse = S3ErrorResponseUnmarshaller.Instance.Unmarshall(context);
+ errorResponse.InnerException = innerException;
+ errorResponse.StatusCode = statusCode;
+
+ var responseBodyBytes = context.GetResponseBodyBytes();
+
+ using (var streamCopy = new MemoryStream(responseBodyBytes))
+ using (var contextCopy = new XmlUnmarshallerContext(streamCopy, false, null))
+ {
+ if (errorResponse.Code != null && errorResponse.Code.Equals("ObjectAlreadyInActiveTierError"))
+ {
+ return ObjectAlreadyInActiveTierErrorExceptionUnmarshaller.Instance.Unmarshall(contextCopy, errorResponse);
+ }
+ }
+ return base.ConstructS3Exception(context, errorResponse, innerException, statusCode);
+ }
+
+ partial void PostUnmarshallCustomization(XmlUnmarshallerContext context, RestoreObjectResponse response);
+
+ private static RestoreObjectResponseUnmarshaller _instance = new RestoreObjectResponseUnmarshaller();
+
+ internal static RestoreObjectResponseUnmarshaller GetInstance()
+ {
+ return _instance;
+ }
+
+ ///
+ /// Gets the singleton.
+ ///
+ public static RestoreObjectResponseUnmarshaller Instance
+ {
+ get
+ {
+ return _instance;
+ }
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/JSONInput.cs b/sdk/src/Services/S3/Generated/Model/JSONInput.cs
new file mode 100644
index 000000000000..41fe311000d8
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/JSONInput.cs
@@ -0,0 +1,58 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Specifies JSON as object's input serialization format.
+ ///
+ public partial class JSONInput
+ {
+ private JsonType _jsonType;
+
+ ///
+ /// Gets and sets the property JsonType.
+ ///
+ /// The type of JSON. Valid values: Document, Lines.
+ ///
+ ///
+ public JsonType JsonType
+ {
+ get { return this._jsonType; }
+ set { this._jsonType = value; }
+ }
+
+ // Check to see if JsonType property is set
+ internal bool IsSetJsonType()
+ {
+ return this._jsonType != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/JSONOutput.cs b/sdk/src/Services/S3/Generated/Model/JSONOutput.cs
new file mode 100644
index 000000000000..4f754f4ac168
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/JSONOutput.cs
@@ -0,0 +1,59 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Specifies JSON as request's output serialization format.
+ ///
+ public partial class JSONOutput
+ {
+ private string _recordDelimiter;
+
+ ///
+ /// Gets and sets the property RecordDelimiter.
+ ///
+ /// The value used to separate individual records in the output. If no value is specified,
+ /// Amazon S3 uses a newline character ('\n').
+ ///
+ ///
+ public string RecordDelimiter
+ {
+ get { return this._recordDelimiter; }
+ set { this._recordDelimiter = value; }
+ }
+
+ // Check to see if RecordDelimiter property is set
+ internal bool IsSetRecordDelimiter()
+ {
+ return this._recordDelimiter != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/MetadataEntry.cs b/sdk/src/Services/S3/Generated/Model/MetadataEntry.cs
new file mode 100644
index 000000000000..048967429e88
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/MetadataEntry.cs
@@ -0,0 +1,77 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// A metadata key-value pair to store with an object.
+ ///
+ public partial class MetadataEntry
+ {
+ private string _name;
+ private string _value;
+
+ ///
+ /// Gets and sets the property Name.
+ ///
+ /// Name of the object.
+ ///
+ ///
+ public string Name
+ {
+ get { return this._name; }
+ set { this._name = value; }
+ }
+
+ // Check to see if Name property is set
+ internal bool IsSetName()
+ {
+ return this._name != null;
+ }
+
+ ///
+ /// Gets and sets the property Value.
+ ///
+ /// Value of the object.
+ ///
+ ///
+ public string Value
+ {
+ get { return this._value; }
+ set { this._value = value; }
+ }
+
+ // Check to see if Value property is set
+ internal bool IsSetValue()
+ {
+ return this._value != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/ObjectAlreadyInActiveTierErrorException.cs b/sdk/src/Services/S3/Generated/Model/ObjectAlreadyInActiveTierErrorException.cs
new file mode 100644
index 000000000000..8ef5d93fa2c3
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/ObjectAlreadyInActiveTierErrorException.cs
@@ -0,0 +1,133 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// This action is not allowed against this storage tier.
+ ///
+ #if !NETSTANDARD
+ [Serializable]
+ #endif
+ public partial class ObjectAlreadyInActiveTierErrorException : AmazonS3Exception
+ {
+
+ ///
+ /// Constructs a new ObjectAlreadyInActiveTierErrorException with the specified error
+ /// message.
+ ///
+ ///
+ /// Describes the error encountered.
+ ///
+ public ObjectAlreadyInActiveTierErrorException(string message)
+ : base(message) {}
+
+ ///
+ /// Construct instance of ObjectAlreadyInActiveTierErrorException
+ ///
+ ///
+ ///
+ public ObjectAlreadyInActiveTierErrorException(string message, Exception innerException)
+ : base(message, innerException) {}
+
+ ///
+ /// Construct instance of ObjectAlreadyInActiveTierErrorException
+ ///
+ ///
+ public ObjectAlreadyInActiveTierErrorException(Exception innerException)
+ : base(innerException) {}
+
+ ///
+ /// Construct instance of ObjectAlreadyInActiveTierErrorException
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public ObjectAlreadyInActiveTierErrorException(string message, Exception innerException, Amazon.Runtime.ErrorType errorType, string errorCode, string requestId, HttpStatusCode statusCode)
+ : base(message, innerException, errorType, errorCode, requestId, statusCode) {}
+
+ ///
+ /// Construct instance of ObjectAlreadyInActiveTierErrorException
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public ObjectAlreadyInActiveTierErrorException(string message, Amazon.Runtime.ErrorType errorType, string errorCode, string requestId, HttpStatusCode statusCode)
+ : base(message, errorType, errorCode, requestId, statusCode) {}
+
+
+#if !NETSTANDARD
+ ///
+ /// Constructs a new instance of the ObjectAlreadyInActiveTierErrorException class with serialized data.
+ ///
+ /// The that holds the serialized object data about the exception being thrown.
+ /// The that contains contextual information about the source or destination.
+ /// The parameter is null.
+ /// The class name is null or is zero (0).
+ protected ObjectAlreadyInActiveTierErrorException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
+ : base(info, context)
+ {
+ }
+
+ ///
+ /// Sets the with information about the exception.
+ ///
+ /// The that holds the serialized object data about the exception being thrown.
+ /// The that contains contextual information about the source or destination.
+ /// The parameter is a null reference (Nothing in Visual Basic).
+ [System.Security.SecurityCritical]
+ // These FxCop rules are giving false-positives for this method
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2123:OverrideLinkDemandsShouldBeIdenticalToBase")]
+ [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2134:MethodsMustOverrideWithConsistentTransparencyFxCopRule")]
+ public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context)
+ {
+ base.GetObjectData(info, context);
+ }
+#endif
+
+ ///
+ /// Construct instance of ObjectAlreadyInActiveTierErrorException
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public ObjectAlreadyInActiveTierErrorException(string message, Exception innerException, ErrorType errorType, string errorCode, string requestId, HttpStatusCode statusCode, string amazonId2, string amazonCfId)
+ : base(message, innerException, errorType, errorCode, requestId, statusCode, amazonId2, amazonCfId) { }
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Custom/Model/OutputLocation.cs b/sdk/src/Services/S3/Generated/Model/OutputLocation.cs
similarity index 57%
rename from sdk/src/Services/S3/Custom/Model/OutputLocation.cs
rename to sdk/src/Services/S3/Generated/Model/OutputLocation.cs
index 66c39412df14..022d21910a79 100644
--- a/sdk/src/Services/S3/Custom/Model/OutputLocation.cs
+++ b/sdk/src/Services/S3/Generated/Model/OutputLocation.cs
@@ -1,4 +1,4 @@
-/*
+/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
@@ -13,32 +13,46 @@
* permissions and limitations under the License.
*/
-using System.Xml;
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+#pragma warning disable CS0612,CS0618,CS1570
namespace Amazon.S3.Model
{
///
/// Describes the location where the restore job's output is stored.
///
- public class OutputLocation
+ public partial class OutputLocation
{
+ private S3Location _s3;
+
///
+ /// Gets and sets the property S3.
+ ///
/// Describes an S3 location that will receive the results of the restore request.
+ ///
///
- public S3Location S3 { get; set; }
-
- internal bool IsSetS3()
+ public S3Location S3
{
- return this.S3 != null;
+ get { return this._s3; }
+ set { this._s3 = value; }
}
- internal void Marshall(string propertyName, XmlWriter xmlWriter)
+ // Check to see if S3 property is set
+ internal bool IsSetS3()
{
- xmlWriter.WriteStartElement(propertyName);
- {
- S3.Marshall("S3", xmlWriter);
- }
- xmlWriter.WriteEndElement();
+ return this._s3 != null;
}
+
}
-}
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/OutputSerialization.cs b/sdk/src/Services/S3/Generated/Model/OutputSerialization.cs
new file mode 100644
index 000000000000..04338f04e4da
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/OutputSerialization.cs
@@ -0,0 +1,77 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Describes how results of the Select job are serialized.
+ ///
+ public partial class OutputSerialization
+ {
+ private CSVOutput _csv;
+ private JSONOutput _json;
+
+ ///
+ /// Gets and sets the property CSV.
+ ///
+ /// Describes the serialization of CSV-encoded Select results.
+ ///
+ ///
+ public CSVOutput CSV
+ {
+ get { return this._csv; }
+ set { this._csv = value; }
+ }
+
+ // Check to see if CSV property is set
+ internal bool IsSetCSV()
+ {
+ return this._csv != null;
+ }
+
+ ///
+ /// Gets and sets the property JSON.
+ ///
+ /// Specifies JSON as request's output serialization format.
+ ///
+ ///
+ public JSONOutput JSON
+ {
+ get { return this._json; }
+ set { this._json = value; }
+ }
+
+ // Check to see if JSON property is set
+ internal bool IsSetJSON()
+ {
+ return this._json != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/ParquetInput.cs b/sdk/src/Services/S3/Generated/Model/ParquetInput.cs
new file mode 100644
index 000000000000..e4ea211fd2ef
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/ParquetInput.cs
@@ -0,0 +1,39 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Container for Parquet.
+ ///
+ public partial class ParquetInput
+ {
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Custom/Model/RestoreObjectRequest.cs b/sdk/src/Services/S3/Generated/Model/RestoreObjectRequest.cs
similarity index 58%
rename from sdk/src/Services/S3/Custom/Model/RestoreObjectRequest.cs
rename to sdk/src/Services/S3/Generated/Model/RestoreObjectRequest.cs
index ff78a48a8b5c..2066a8f20a05 100644
--- a/sdk/src/Services/S3/Custom/Model/RestoreObjectRequest.cs
+++ b/sdk/src/Services/S3/Generated/Model/RestoreObjectRequest.cs
@@ -12,21 +12,28 @@
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
using System;
-using System.Xml;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
-using Amazon.S3.Model.Internal.MarshallTransformations;
-using Amazon.S3.Util;
+#pragma warning disable CS0612,CS0618,CS1570
namespace Amazon.S3.Model
{
///
/// Container for the parameters to the RestoreObject operation.
///
///
- /// This operation is not supported by directory buckets.
+ /// This operation is not supported for directory buckets.
///
///
///
@@ -73,17 +80,16 @@ namespace Amazon.S3.Model
///
/// Restoring objects
///
- /// Objects that you archive to the S3 Glacier Flexible Retrieval Flexible Retrieval or
- /// S3 Glacier Deep Archive storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering
- /// Deep Archive tiers, are not accessible in real time. For objects in the S3 Glacier
- /// Flexible Retrieval Flexible Retrieval or S3 Glacier Deep Archive storage classes,
- /// you must first initiate a restore request, and then wait until a temporary copy of
- /// the object is available. If you want a permanent copy of the object, create a copy
- /// of it in the Amazon S3 Standard storage class in your S3 bucket. To access an archived
- /// object, you must restore the object for the duration (number of days) that you specify.
- /// For objects in the Archive Access or Deep Archive Access tiers of S3 Intelligent-Tiering,
- /// you must first initiate a restore request, and then wait until the object is moved
- /// into the Frequent Access tier.
+ /// Objects that you archive to the S3 Glacier Flexible Retrieval or S3 Glacier Deep Archive
+ /// storage class, and S3 Intelligent-Tiering Archive or S3 Intelligent-Tiering Deep Archive
+ /// tiers, are not accessible in real time. For objects in the S3 Glacier Flexible Retrieval
+ /// or S3 Glacier Deep Archive storage classes, you must first initiate a restore request,
+ /// and then wait until a temporary copy of the object is available. If you want a permanent
+ /// copy of the object, create a copy of it in the Amazon S3 Standard storage class in
+ /// your S3 bucket. To access an archived object, you must restore the object for the
+ /// duration (number of days) that you specify. For objects in the Archive Access or Deep
+ /// Archive Access tiers of S3 Intelligent-Tiering, you must first initiate a restore
+ /// request, and then wait until the object is moved into the Frequent Access tier.
///
///
///
@@ -98,11 +104,11 @@ namespace Amazon.S3.Model
/// -
///
/// Expedited - Expedited retrievals allow you to quickly access your data stored
- /// in the S3 Glacier Flexible Retrieval Flexible Retrieval storage class or S3 Intelligent-Tiering
- /// Archive tier when occasional urgent requests for restoring archives are required.
- /// For all but the largest archived objects (250 MB+), data accessed using Expedited
- /// retrievals is typically made available within 1–5 minutes. Provisioned capacity ensures
- /// that retrieval capacity for Expedited retrievals is available when you need it. Expedited
+ /// in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering Archive
+ /// tier when occasional urgent requests for restoring archives are required. For all
+ /// but the largest archived objects (250 MB+), data accessed using Expedited retrievals
+ /// is typically made available within 1–5 minutes. Provisioned capacity ensures that
+ /// retrieval capacity for Expedited retrievals is available when you need it. Expedited
/// retrievals and provisioned capacity are not available for objects stored in the S3
/// Glacier Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier.
///
@@ -111,21 +117,21 @@ namespace Amazon.S3.Model
/// Standard - Standard retrievals allow you to access any of your archived objects
/// within several hours. This is the default option for retrieval requests that do not
/// specify the retrieval option. Standard retrievals typically finish within 3–5 hours
- /// for objects stored in the S3 Glacier Flexible Retrieval Flexible Retrieval storage
- /// class or S3 Intelligent-Tiering Archive tier. They typically finish within 12 hours
- /// for objects stored in the S3 Glacier Deep Archive storage class or S3 Intelligent-Tiering
- /// Deep Archive tier. Standard retrievals are free for objects stored in S3 Intelligent-Tiering.
+ /// for objects stored in the S3 Glacier Flexible Retrieval storage class or S3 Intelligent-Tiering
+ /// Archive tier. They typically finish within 12 hours for objects stored in the S3 Glacier
+ /// Deep Archive storage class or S3 Intelligent-Tiering Deep Archive tier. Standard retrievals
+ /// are free for objects stored in S3 Intelligent-Tiering.
///
///
///
/// Bulk - Bulk retrievals free for objects stored in the S3 Glacier Flexible
/// Retrieval and S3 Intelligent-Tiering storage classes, enabling you to retrieve large
/// amounts, even petabytes, of data at no cost. Bulk retrievals typically finish within
- /// 5–12 hours for objects stored in the S3 Glacier Flexible Retrieval Flexible Retrieval
- /// storage class or S3 Intelligent-Tiering Archive tier. Bulk retrievals are also the
- /// lowest-cost retrieval option when restoring objects from S3 Glacier Deep Archive.
- /// They typically finish within 48 hours for objects stored in the S3 Glacier Deep Archive
- /// storage class or S3 Intelligent-Tiering Deep Archive tier.
+ /// 5–12 hours for objects stored in the S3 Glacier Flexible Retrieval storage class or
+ /// S3 Intelligent-Tiering Archive tier. Bulk retrievals are also the lowest-cost retrieval
+ /// option when restoring objects from S3 Glacier Deep Archive. They typically finish
+ /// within 48 hours for objects stored in the S3 Glacier Deep Archive storage class or
+ /// S3 Intelligent-Tiering Deep Archive tier.
///
///
///
@@ -233,58 +239,70 @@ namespace Amazon.S3.Model
/// GetBucketNotificationConfiguration
///
///
- ///
+ ///
+ ///
+ /// You must URL encode any signed header values that contain spaces. For example, if
+ /// your header value is my file.txt, containing two spaces after my, you
+ /// must URL encode this value to my%20%20file.txt.
+ ///
+ ///
///
public partial class RestoreObjectRequest : AmazonWebServiceRequest
{
- private string bucketName;
+ private string _bucketName;
private ChecksumAlgorithm _checksumAlgorithm;
- private int? days;
- private string expectedBucketOwner;
- private string description;
- private string key;
- private GlacierJobTier tier;
- private GlacierJobTier retrievalTier;
- private RestoreRequestType type;
- private SelectParameters selectParameters;
- private OutputLocation outputLocation;
- private RequestPayer requestPayer;
- private string versionId;
+ private int? _days;
+ private string _description;
+ private string _expectedBucketOwner;
+ private string _key;
+ private OutputLocation _outputLocation;
+ private RequestPayer _requestPayer;
+ private RestoreRequestType _restoreRequestType;
+ private GlacierJobTier _retrievalTier;
+ private SelectParameters _selectParameters;
+ private GlacierJobTier _tier;
+ private string _versionId;
+
///
/// Gets and sets the property BucketName.
///
/// The bucket name containing the object to restore.
- ///
- ///
- /// Access points - When you use this action with an access point for general purpose buckets, you must
- /// provide the alias of the access point in place of the bucket name or specify the access point ARN. When you
- /// use this action with an access point for directory buckets, you must provide the access point name in place
- /// of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The
- /// access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When
- /// using this action with an access point through the Amazon Web Services SDKs, you provide the access point
- /// ARN in place of the bucket name. For more information about access point ARNs, see
- /// Using access points in
- /// the Amazon S3 User Guide.
- ///
- ///
- /// S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts
- /// hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When
- /// you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access
- /// point alias. For more information about S3 on Outposts, see
- /// What is S3 on Outposts? in
- /// the Amazon S3 User Guide.
+ ///
+ ///
+ ///
+ /// Access points - When you use this action with an access point for general
+ /// purpose buckets, you must provide the alias of the access point in place of the bucket
+ /// name or specify the access point ARN. When you use this action with an access point
+ /// for directory buckets, you must provide the access point name in place of the bucket
+ /// name. When using the access point ARN, you must direct requests to the access point
+ /// hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com.
+ /// When using this action with an access point through the Amazon Web Services SDKs,
+ /// you provide the access point ARN in place of the bucket name. For more information
+ /// about access point ARNs, see Using
+ /// access points in the Amazon S3 User Guide.
+ ///
+ ///
+ ///
+ /// S3 on Outposts - When you use this action with S3 on Outposts, you must direct
+ /// requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form
+ /// AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com.
+ /// When you use this action with S3 on Outposts, the destination bucket must be the Outposts
+ /// access point ARN or the access point alias. For more information about S3 on Outposts,
+ /// see What
+ /// is S3 on Outposts? in the Amazon S3 User Guide.
///
///
+ [AWSProperty(Required=true)]
public string BucketName
{
- get { return this.bucketName; }
- set { this.bucketName = value; }
+ get { return this._bucketName; }
+ set { this._bucketName = value; }
}
// Check to see if BucketName property is set
internal bool IsSetBucketName()
{
- return this.bucketName != null;
+ return this._bucketName != null;
}
///
@@ -293,9 +311,8 @@ internal bool IsSetBucketName()
/// Indicates the algorithm used to create the checksum for the object when you use the
/// SDK. This header will not provide any additional functionality if you don't use the
/// SDK. When you send this header, there must be a corresponding x-amz-checksum
- /// or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request
- /// with the HTTP status code 400 Bad Request. For more information, see
- /// Checking
+ /// or x-amz-trailer header sent. Otherwise, Amazon S3 fails the request with the
+ /// HTTP status code 400 Bad Request. For more information, see Checking
/// object integrity in the Amazon S3 User Guide.
///
///
@@ -317,224 +334,220 @@ internal bool IsSetChecksumAlgorithm()
}
///
- /// Lifetime of the active copy in days.
- /// Do not use with restores that specify OutputLocation.
- /// The Days element is required for regular restores, and must not be provided for
- /// select requests.
+ /// Gets and sets the property Days.
+ ///
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.
+ ///
+ ///
+ ///
+ /// The Days element is required for regular restores, and must not be provided for select
+ /// requests.
+ ///
///
public int? Days
{
- get { return this.days; }
- set { this.days = value; }
+ get { return this._days; }
+ set { this._days = value; }
}
// Check to see if Days property is set
internal bool IsSetDays()
{
- return this.days.HasValue;
+ return this._days.HasValue;
}
///
- /// Gets and sets the property ExpectedBucketOwner.
+ /// Gets and sets the property Description.
///
- /// The account ID of the expected bucket owner. If the account ID that you provide does
- /// not match the actual owner of the bucket, the request fails with the HTTP status code
- /// 403 Forbidden (access denied).
+ /// The optional description for the job.
///
///
- public string ExpectedBucketOwner
+ public string Description
{
- get { return this.expectedBucketOwner; }
- set { this.expectedBucketOwner = value; }
+ get { return this._description; }
+ set { this._description = value; }
}
- ///
- /// Checks to see if ExpectedBucketOwner is set.
- ///
- /// true, if ExpectedBucketOwner property is set.
- internal bool IsSetExpectedBucketOwner()
+ // Check to see if Description property is set
+ internal bool IsSetDescription()
{
- return !String.IsNullOrEmpty(this.expectedBucketOwner);
+ return this._description != null;
}
///
- /// The optional description for the job.
+ /// Gets and sets the property ExpectedBucketOwner.
+ ///
+ /// The account ID of the expected bucket owner. If the account ID that you provide does
+ /// not match the actual owner of the bucket, the request fails with the HTTP status code
+ /// 403 Forbidden (access denied).
+ ///
///
- public string Description
+ public string ExpectedBucketOwner
{
- get { return this.description; }
- set { this.description = value; }
+ get { return this._expectedBucketOwner; }
+ set { this._expectedBucketOwner = value; }
}
-
- internal bool IsSetDescription()
+
+ // Check to see if ExpectedBucketOwner property is set
+ internal bool IsSetExpectedBucketOwner()
{
- return this.description != null;
+ return !String.IsNullOrEmpty(this._expectedBucketOwner);
}
///
- /// Gets and sets the Key property. This key indicates the S3 object to restore.
- ///
- ///
- ///
- /// This property will be used as part of the resource path of the HTTP request. In .NET the System.Uri class
- /// is used to construct the uri for the request. The System.Uri class will canonicalize the uri string by compacting characters like "..".
- /// For example an object key of "foo/../bar/file.txt" will be transformed into "bar/file.txt" because the ".."
- /// is interpreted as use parent directory.
- ///
- ///
- /// Starting with .NET 8, the AWS .NET SDK disables System.Uri's feature of canonicalizing the resource path. This allows S3 keys like
- /// "foo/../bar/file.txt" to work correctly with the AWS .NET SDK.
- ///
+ /// Gets and sets the property Key.
///
- /// For further information view the documentation for the Uri class: https://docs.microsoft.com/en-us/dotnet/api/system.uri
+ /// Object key for which the action was initiated.
///
- ///
+ ///
+ [AWSProperty(Required=true, Min=1)]
public string Key
{
- get { return this.key; }
- set { this.key = value; }
+ get { return this._key; }
+ set { this._key = value; }
}
// Check to see if Key property is set
internal bool IsSetKey()
{
- return this.key != null;
+ return this._key != null;
}
///
- /// Tier at which the restore will be processed.
+ /// Gets and sets the property OutputLocation.
+ ///
+ /// Describes the location where the restore job's output is stored.
+ ///
///
- public GlacierJobTier Tier
+ public OutputLocation OutputLocation
{
- get { return this.tier; }
- set { this.tier = value; }
+ get { return this._outputLocation; }
+ set { this._outputLocation = value; }
}
-
- // Check to see if Tier property is set
- internal bool IsSetTier()
+
+ // Check to see if OutputLocation property is set
+ internal bool IsSetOutputLocation()
{
- return this.tier != null;
+ return this._outputLocation != null;
}
///
- /// Retrieval tier at which the restore will be processed.
+ /// Gets and sets the property RequestPayer.
///
- public GlacierJobTier RetrievalTier
+ public RequestPayer RequestPayer
{
- get { return this.retrievalTier; }
- set { this.retrievalTier = value; }
+ get { return this._requestPayer; }
+ set { this._requestPayer = value; }
}
- internal bool IsSetRetrievalTier()
+ // Check to see if RequestPayer property is set
+ internal bool IsSetRequestPayer()
{
- return this.retrievalTier != null;
+ return this._requestPayer != null;
}
///
+ /// Gets and sets the property RestoreRequestType.
+ ///
+ /// Amazon S3 Select is no longer available to new customers. Existing customers of Amazon
+ /// S3 Select can continue to use the feature as usual. Learn
+ /// more
+ ///
+ ///
+ ///
/// Type of restore request.
+ ///
///
public RestoreRequestType RestoreRequestType
{
- get { return this.type; }
- set { this.type = value; }
+ get { return this._restoreRequestType; }
+ set { this._restoreRequestType = value; }
}
- internal bool IsSetType()
+ // Check to see if RestoreRequestType property is set
+ internal bool IsSetRestoreRequestType()
{
- return this.type != null;
+ return this._restoreRequestType != null;
}
-
+
///
- /// Describes the parameters for Select job types.
+ /// Gets and sets the property RetrievalTier.
+ ///
+ /// Retrieval tier at which the restore will be processed.
+ ///
///
- public SelectParameters SelectParameters
+ public GlacierJobTier RetrievalTier
{
- get { return this.selectParameters; }
- set { this.selectParameters = value; }
+ get { return this._retrievalTier; }
+ set { this._retrievalTier = value; }
}
- internal bool IsSetSelectParameters()
+ // Check to see if RetrievalTier property is set
+ internal bool IsSetRetrievalTier()
{
- return this.selectParameters != null;
+ return this._retrievalTier != null;
}
///
- /// Describes the location where the restore job's output is stored.
+ /// Gets and sets the property SelectParameters.
+ ///
+ /// Amazon S3 Select is no longer available to new customers. Existing customers of Amazon
+ /// S3 Select can continue to use the feature as usual. Learn
+ /// more
+ ///
+ ///
+ ///
+ /// Describes the parameters for Select job types.
+ ///
///
- public OutputLocation OutputLocation
- {
- get { return this.outputLocation; }
- set { this.outputLocation = value; }
- }
-
- internal bool IsSetOutputLocation()
+ public SelectParameters SelectParameters
{
- return this.outputLocation != null;
+ get { return this._selectParameters; }
+ set { this._selectParameters = value; }
}
- internal void Marshall(string propertyName, XmlWriter xmlWriter)
+ // Check to see if SelectParameters property is set
+ internal bool IsSetSelectParameters()
{
- xmlWriter.WriteStartElement(propertyName, S3Constants.S3RequestXmlNamespace);
- {
- if (IsSetRetrievalTier())
- xmlWriter.WriteElementString("Tier", S3Transforms.ToXmlStringValue(RetrievalTier));
-
- if (IsSetTier())
- {
- xmlWriter.WriteStartElement("GlacierJobParameters");
- {
- xmlWriter.WriteElementString("Tier", S3Transforms.ToXmlStringValue(Tier));
- }
- xmlWriter.WriteEndElement();
- }
-
- if (IsSetDays())
- xmlWriter.WriteElementString("Days", S3Transforms.ToXmlStringValue(Days.Value));
- if (IsSetType())
- xmlWriter.WriteElementString("Type", S3Transforms.ToXmlStringValue(RestoreRequestType.Value));
- if (IsSetDescription())
- xmlWriter.WriteElementString("Description", S3Transforms.ToXmlStringValue(Description));
- if (IsSetSelectParameters())
- SelectParameters.Marshall("SelectParameters", xmlWriter);
- if (IsSetOutputLocation())
- OutputLocation.Marshall("OutputLocation", xmlWriter);
- }
- xmlWriter.WriteEndElement();
+ return this._selectParameters != null;
}
///
- /// Confirms that the requester knows that she or he will be charged for the request.
- /// Bucket owners need not specify this parameter in their requests.
+ /// Gets and sets the property Tier.
+ ///
+ /// S3 Glacier related parameters pertaining to this job. Do not use with restores that
+ /// specify OutputLocation.
+ ///
///
- public RequestPayer RequestPayer
+ public GlacierJobTier Tier
{
- get { return this.requestPayer; }
- set { this.requestPayer = value; }
+ get { return this._tier; }
+ set { this._tier = value; }
}
-
- ///
- /// Checks to see if RequetsPayer is set.
- ///
- /// true, if RequestPayer property is set.
- internal bool IsSetRequestPayer()
+
+ // Check to see if Tier property is set
+ internal bool IsSetTier()
{
- return requestPayer != null;
+ return this._tier != null;
}
///
+ /// Gets and sets the property VersionId.
+ ///
/// VersionId used to reference a specific version of the object.
+ ///
///
public string VersionId
{
- get { return this.versionId; }
- set { this.versionId = value; }
+ get { return this._versionId; }
+ set { this._versionId = value; }
}
// Check to see if VersionId property is set
internal bool IsSetVersionId()
{
- return this.versionId != null;
+ return this._versionId != null;
}
+
}
-}
-
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Custom/Model/RestoreObjectResponse.cs b/sdk/src/Services/S3/Generated/Model/RestoreObjectResponse.cs
similarity index 55%
rename from sdk/src/Services/S3/Custom/Model/RestoreObjectResponse.cs
rename to sdk/src/Services/S3/Generated/Model/RestoreObjectResponse.cs
index 817972b19d69..77453b47e5a4 100644
--- a/sdk/src/Services/S3/Custom/Model/RestoreObjectResponse.cs
+++ b/sdk/src/Services/S3/Generated/Model/RestoreObjectResponse.cs
@@ -12,55 +12,64 @@
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
+using System.IO;
+using System.Net;
using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+#pragma warning disable CS0612,CS0618,CS1570
namespace Amazon.S3.Model
{
///
- /// Returns information about the RestoreObject response metadata.
- /// The RestoreObject operation has a void result type.
+ /// This is the response object from the RestoreObject operation.
///
public partial class RestoreObjectResponse : AmazonWebServiceResponse
{
- private RequestCharged requestCharged;
- private string restoreOutputPath;
+ private RequestCharged _requestCharged;
+ private string _restoreOutputPath;
///
- /// If present, indicates that the requester was successfully charged for the request.
+ /// Gets and sets the property RequestCharged.
///
public RequestCharged RequestCharged
{
- get { return this.requestCharged; }
- set { this.requestCharged = value; }
+ get { return this._requestCharged; }
+ set { this._requestCharged = value; }
}
- ///
- /// Checks to see if RequestCharged is set.
- ///
- /// true, if RequestCharged property is set.
+ // Check to see if RequestCharged property is set
internal bool IsSetRequestCharged()
{
- return requestCharged != null;
+ return this._requestCharged != null;
}
///
- /// Indicates the path in the provided S3 output location where Select results will be restored to.
+ /// Gets and sets the property RestoreOutputPath.
+ ///
+ /// Indicates the path in the provided S3 output location where Select results will be
+ /// restored to.
+ ///
///
public string RestoreOutputPath
{
- get { return this.restoreOutputPath; }
- set { this.restoreOutputPath = value; }
+ get { return this._restoreOutputPath; }
+ set { this._restoreOutputPath = value; }
}
+ // Check to see if RestoreOutputPath property is set
internal bool IsSetRestoreOutputPath()
{
- return this.RestoreOutputPath != null;
+ return this._restoreOutputPath != null;
}
+
}
-}
-
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/RestoreRequest.cs b/sdk/src/Services/S3/Generated/Model/RestoreRequest.cs
new file mode 100644
index 000000000000..a11fb8e0e5ad
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/RestoreRequest.cs
@@ -0,0 +1,190 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Container for restore job parameters.
+ ///
+ public partial class RestoreRequest
+ {
+ private int? _days;
+ private string _description;
+ private GlacierJobTier _glacierJobParameters;
+ private OutputLocation _outputLocation;
+ private RestoreRequestType _restoreRequestType;
+ private GlacierJobTier _retrievalTier;
+ private SelectParameters _selectParameters;
+
+ ///
+ /// Gets and sets the property Days.
+ ///
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation.
+ ///
+ ///
+ ///
+ /// The Days element is required for regular restores, and must not be provided for select
+ /// requests.
+ ///
+ ///
+ public int? Days
+ {
+ get { return this._days; }
+ set { this._days = value; }
+ }
+
+ // Check to see if Days property is set
+ internal bool IsSetDays()
+ {
+ return this._days.HasValue;
+ }
+
+ ///
+ /// Gets and sets the property Description.
+ ///
+ /// The optional description for the job.
+ ///
+ ///
+ public string Description
+ {
+ get { return this._description; }
+ set { this._description = value; }
+ }
+
+ // Check to see if Description property is set
+ internal bool IsSetDescription()
+ {
+ return this._description != null;
+ }
+
+ ///
+ /// Gets and sets the property GlacierJobParameters.
+ ///
+ /// S3 Glacier related parameters pertaining to this job. Do not use with restores that
+ /// specify OutputLocation.
+ ///
+ ///
+ public GlacierJobTier GlacierJobParameters
+ {
+ get { return this._glacierJobParameters; }
+ set { this._glacierJobParameters = value; }
+ }
+
+ // Check to see if GlacierJobParameters property is set
+ internal bool IsSetGlacierJobParameters()
+ {
+ return this._glacierJobParameters != null;
+ }
+
+ ///
+ /// Gets and sets the property OutputLocation.
+ ///
+ /// Describes the location where the restore job's output is stored.
+ ///
+ ///
+ public OutputLocation OutputLocation
+ {
+ get { return this._outputLocation; }
+ set { this._outputLocation = value; }
+ }
+
+ // Check to see if OutputLocation property is set
+ internal bool IsSetOutputLocation()
+ {
+ return this._outputLocation != null;
+ }
+
+ ///
+ /// Gets and sets the property RestoreRequestType.
+ ///
+ /// Amazon S3 Select is no longer available to new customers. Existing customers of Amazon
+ /// S3 Select can continue to use the feature as usual. Learn
+ /// more
+ ///
+ ///
+ ///
+ /// Type of restore request.
+ ///
+ ///
+ public RestoreRequestType RestoreRequestType
+ {
+ get { return this._restoreRequestType; }
+ set { this._restoreRequestType = value; }
+ }
+
+ // Check to see if RestoreRequestType property is set
+ internal bool IsSetRestoreRequestType()
+ {
+ return this._restoreRequestType != null;
+ }
+
+ ///
+ /// Gets and sets the property RetrievalTier.
+ ///
+ /// Retrieval tier at which the restore will be processed.
+ ///
+ ///
+ public GlacierJobTier RetrievalTier
+ {
+ get { return this._retrievalTier; }
+ set { this._retrievalTier = value; }
+ }
+
+ // Check to see if RetrievalTier property is set
+ internal bool IsSetRetrievalTier()
+ {
+ return this._retrievalTier != null;
+ }
+
+ ///
+ /// Gets and sets the property SelectParameters.
+ ///
+ /// Amazon S3 Select is no longer available to new customers. Existing customers of Amazon
+ /// S3 Select can continue to use the feature as usual. Learn
+ /// more
+ ///
+ ///
+ ///
+ /// Describes the parameters for Select job types.
+ ///
+ ///
+ public SelectParameters SelectParameters
+ {
+ get { return this._selectParameters; }
+ set { this._selectParameters = value; }
+ }
+
+ // Check to see if SelectParameters property is set
+ internal bool IsSetSelectParameters()
+ {
+ return this._selectParameters != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/S3Encryption.cs b/sdk/src/Services/S3/Generated/Model/S3Encryption.cs
new file mode 100644
index 000000000000..e9fa005d276f
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/S3Encryption.cs
@@ -0,0 +1,104 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Contains the type of server-side encryption used.
+ ///
+ public partial class S3Encryption
+ {
+ private ServerSideEncryptionMethod _encryptionType;
+ private string _kmsContext;
+ private string _kmsKeyId;
+
+ ///
+ /// Gets and sets the property EncryptionType.
+ ///
+ /// The server-side encryption algorithm used when storing job results in Amazon S3 (for
+ /// example, AES256, aws:kms).
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public ServerSideEncryptionMethod EncryptionType
+ {
+ get { return this._encryptionType; }
+ set { this._encryptionType = value; }
+ }
+
+ // Check to see if EncryptionType property is set
+ internal bool IsSetEncryptionType()
+ {
+ return this._encryptionType != null;
+ }
+
+ ///
+ /// Gets and sets the property KMSContext.
+ ///
+ /// If the encryption type is aws:kms, this optional value can be used to specify
+ /// the encryption context for the restore results.
+ ///
+ ///
+ public string KMSContext
+ {
+ get { return this._kmsContext; }
+ set { this._kmsContext = value; }
+ }
+
+ // Check to see if KMSContext property is set
+ internal bool IsSetKMSContext()
+ {
+ return this._kmsContext != null;
+ }
+
+ ///
+ /// Gets and sets the property KMSKeyId.
+ ///
+ /// If the encryption type is aws:kms, this optional value specifies the ID of
+ /// the symmetric encryption customer managed key to use for encryption of job results.
+ /// Amazon S3 only supports symmetric encryption KMS keys. For more information, see Asymmetric
+ /// keys in KMS in the Amazon Web Services Key Management Service Developer Guide.
+ ///
+ ///
+ [AWSProperty(Sensitive=true)]
+ public string KMSKeyId
+ {
+ get { return this._kmsKeyId; }
+ set { this._kmsKeyId = value; }
+ }
+
+ // Check to see if KMSKeyId property is set
+ internal bool IsSetKMSKeyId()
+ {
+ return this._kmsKeyId != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/S3Location.cs b/sdk/src/Services/S3/Generated/Model/S3Location.cs
new file mode 100644
index 000000000000..7fe44de99dad
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/S3Location.cs
@@ -0,0 +1,200 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ /// Describes an Amazon S3 location that will receive the results of the restore request.
+ ///
+ public partial class S3Location
+ {
+ private S3AccessControlList _accessControlList;
+ private string _bucketName;
+ private S3CannedACL _cannedACL;
+ private S3Encryption _encryption;
+ private string _prefix;
+ private S3StorageClass _storageClass;
+ private Tagging _tagging;
+ private MetadataCollection _userMetadata;
+
+ ///
+ /// Gets and sets the property AccessControlList.
+ ///
+ /// A list of grants that control access to the staged results.
+ ///
+ ///
+ /// Starting with version 4 of the SDK this property will default to null. If no data for this property is returned
+ /// from the service the property will also be null. This was changed to improve performance and allow the SDK and caller
+ /// to distinguish between a property not set or a property being empty to clear out a value. To retain the previous
+ /// SDK behavior set the AWSConfigs.InitializeCollections static property to true.
+ ///
+ public S3AccessControlList AccessControlList
+ {
+ get { return this._accessControlList; }
+ set { this._accessControlList = value; }
+ }
+
+ // Check to see if AccessControlList property is set
+ internal bool IsSetAccessControlList()
+ {
+ return this._accessControlList != null;
+ }
+
+ ///
+ /// Gets and sets the property BucketName.
+ ///
+ /// The name of the bucket where the restore results will be placed.
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public string BucketName
+ {
+ get { return this._bucketName; }
+ set { this._bucketName = value; }
+ }
+
+ // Check to see if BucketName property is set
+ internal bool IsSetBucketName()
+ {
+ return this._bucketName != null;
+ }
+
+ ///
+ /// Gets and sets the property CannedACL.
+ ///
+ /// The canned ACL to apply to the restore results.
+ ///
+ ///
+ public S3CannedACL CannedACL
+ {
+ get { return this._cannedACL; }
+ set { this._cannedACL = value; }
+ }
+
+ // Check to see if CannedACL property is set
+ internal bool IsSetCannedACL()
+ {
+ return this._cannedACL != null;
+ }
+
+ ///
+ /// Gets and sets the property Encryption.
+ ///
+ public S3Encryption Encryption
+ {
+ get { return this._encryption; }
+ set { this._encryption = value; }
+ }
+
+ // Check to see if Encryption property is set
+ internal bool IsSetEncryption()
+ {
+ return this._encryption != null;
+ }
+
+ ///
+ /// Gets and sets the property Prefix.
+ ///
+ /// The prefix that is prepended to the restore results for this request.
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public string Prefix
+ {
+ get { return this._prefix; }
+ set { this._prefix = value; }
+ }
+
+ // Check to see if Prefix property is set
+ internal bool IsSetPrefix()
+ {
+ return this._prefix != null;
+ }
+
+ ///
+ /// Gets and sets the property StorageClass.
+ ///
+ /// The class of storage used to store the restore results.
+ ///
+ ///
+ public S3StorageClass StorageClass
+ {
+ get { return this._storageClass; }
+ set { this._storageClass = value; }
+ }
+
+ // Check to see if StorageClass property is set
+ internal bool IsSetStorageClass()
+ {
+ return this._storageClass != null;
+ }
+
+ ///
+ /// Gets and sets the property Tagging.
+ ///
+ /// The tag-set that is applied to the restore results.
+ ///
+ ///
+ public Tagging Tagging
+ {
+ get { return this._tagging; }
+ set { this._tagging = value; }
+ }
+
+ // Check to see if Tagging property is set
+ internal bool IsSetTagging()
+ {
+ return this._tagging != null;
+ }
+
+ ///
+ /// Gets and sets the property UserMetadata.
+ ///
+ /// A list of metadata to store with the restore results in S3.
+ ///
+ ///
+ /// Starting with version 4 of the SDK this property will default to null. If no data for this property is returned
+ /// from the service the property will also be null. This was changed to improve performance and allow the SDK and caller
+ /// to distinguish between a property not set or a property being empty to clear out a value. To retain the previous
+ /// SDK behavior set the AWSConfigs.InitializeCollections static property to true.
+ ///
+ public MetadataCollection UserMetadata
+ {
+ get { return this._userMetadata; }
+ set { this._userMetadata = value; }
+ }
+
+ // Check to see if UserMetadata property is set
+ internal bool IsSetUserMetadata()
+ {
+ return this._userMetadata != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/Model/SelectParameters.cs b/sdk/src/Services/S3/Generated/Model/SelectParameters.cs
new file mode 100644
index 000000000000..a52b50955bfd
--- /dev/null
+++ b/sdk/src/Services/S3/Generated/Model/SelectParameters.cs
@@ -0,0 +1,141 @@
+/*
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License").
+ * You may not use this file except in compliance with the License.
+ * A copy of the License is located at
+ *
+ * http://aws.amazon.com/apache2.0
+ *
+ * or in the "license" file accompanying this file. This file is distributed
+ * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
+ * express or implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+/*
+ * Do not modify this file. This file is generated from the s3-2006-03-01.normal.json service model.
+ */
+using System;
+using System.Collections.Generic;
+using System.Xml.Serialization;
+using System.Text;
+using System.IO;
+using System.Net;
+
+using Amazon.Runtime;
+using Amazon.Runtime.Internal;
+
+#pragma warning disable CS0612,CS0618,CS1570
+namespace Amazon.S3.Model
+{
+ ///
+ ///
+ ///
+ /// Amazon S3 Select is no longer available to new customers. Existing customers of Amazon
+ /// S3 Select can continue to use the feature as usual. Learn
+ /// more
+ ///
+ ///
+ ///
+ /// Describes the parameters for Select job types.
+ ///
+ ///
+ ///
+ /// Learn How
+ /// to optimize querying your data in Amazon S3 using Amazon
+ /// Athena, S3
+ /// Object Lambda, or client-side filtering.
+ ///
+ ///
+ public partial class SelectParameters
+ {
+ private string _expression;
+ private ExpressionType _expressionType;
+ private InputSerialization _inputSerialization;
+ private OutputSerialization _outputSerialization;
+
+ ///
+ /// Gets and sets the property Expression.
+ ///
+ /// Amazon S3 Select is no longer available to new customers. Existing customers of Amazon
+ /// S3 Select can continue to use the feature as usual. Learn
+ /// more
+ ///
+ ///
+ ///
+ /// The expression that is used to query the object.
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public string Expression
+ {
+ get { return this._expression; }
+ set { this._expression = value; }
+ }
+
+ // Check to see if Expression property is set
+ internal bool IsSetExpression()
+ {
+ return this._expression != null;
+ }
+
+ ///
+ /// Gets and sets the property ExpressionType.
+ ///
+ /// The type of the provided expression (for example, SQL).
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public ExpressionType ExpressionType
+ {
+ get { return this._expressionType; }
+ set { this._expressionType = value; }
+ }
+
+ // Check to see if ExpressionType property is set
+ internal bool IsSetExpressionType()
+ {
+ return this._expressionType != null;
+ }
+
+ ///
+ /// Gets and sets the property InputSerialization.
+ ///
+ /// Describes the serialization format of the object.
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public InputSerialization InputSerialization
+ {
+ get { return this._inputSerialization; }
+ set { this._inputSerialization = value; }
+ }
+
+ // Check to see if InputSerialization property is set
+ internal bool IsSetInputSerialization()
+ {
+ return this._inputSerialization != null;
+ }
+
+ ///
+ /// Gets and sets the property OutputSerialization.
+ ///
+ /// Describes how the results of the Select job are serialized.
+ ///
+ ///
+ [AWSProperty(Required=true)]
+ public OutputSerialization OutputSerialization
+ {
+ get { return this._outputSerialization; }
+ set { this._outputSerialization = value; }
+ }
+
+ // Check to see if OutputSerialization property is set
+ internal bool IsSetOutputSerialization()
+ {
+ return this._outputSerialization != null;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/sdk/src/Services/S3/Generated/_bcl/AmazonS3Client.cs b/sdk/src/Services/S3/Generated/_bcl/AmazonS3Client.cs
index 171a0066c870..597736db6f1b 100644
--- a/sdk/src/Services/S3/Generated/_bcl/AmazonS3Client.cs
+++ b/sdk/src/Services/S3/Generated/_bcl/AmazonS3Client.cs
@@ -31744,7 +31744,7 @@ public virtual RestoreObjectResponse RestoreObject(string bucketName, string key
///
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// The response from the RestoreObject service method, as returned by S3.
/// REST API Reference for RestoreObject Operation
@@ -32211,7 +32211,7 @@ public virtual RestoreObjectResponse RestoreObject(string bucketName, string key
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
/// VersionId used to reference a specific version of the object.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// The response from the RestoreObject service method, as returned by S3.
/// REST API Reference for RestoreObject Operation
@@ -32910,7 +32910,7 @@ public virtual RestoreObjectResponse RestoreObject(RestoreObjectRequest request)
///
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
@@ -33383,7 +33383,7 @@ public virtual RestoreObjectResponse RestoreObject(RestoreObjectRequest request)
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
/// VersionId used to reference a specific version of the object.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
diff --git a/sdk/src/Services/S3/Generated/_bcl/IAmazonS3.cs b/sdk/src/Services/S3/Generated/_bcl/IAmazonS3.cs
index 58c3b1e5fbfd..713d7df3833f 100644
--- a/sdk/src/Services/S3/Generated/_bcl/IAmazonS3.cs
+++ b/sdk/src/Services/S3/Generated/_bcl/IAmazonS3.cs
@@ -29580,7 +29580,7 @@ public partial interface IAmazonS3 : IAmazonService, IDisposable
///
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// The response from the RestoreObject service method, as returned by S3.
/// REST API Reference for RestoreObject Operation
@@ -30031,7 +30031,7 @@ public partial interface IAmazonS3 : IAmazonService, IDisposable
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
/// VersionId used to reference a specific version of the object.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// The response from the RestoreObject service method, as returned by S3.
/// REST API Reference for RestoreObject Operation
@@ -30707,7 +30707,7 @@ public partial interface IAmazonS3 : IAmazonService, IDisposable
///
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
@@ -31164,7 +31164,7 @@ public partial interface IAmazonS3 : IAmazonService, IDisposable
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
/// VersionId used to reference a specific version of the object.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
diff --git a/sdk/src/Services/S3/Generated/_netstandard/AmazonS3Client.cs b/sdk/src/Services/S3/Generated/_netstandard/AmazonS3Client.cs
index cc5746f7957b..660ce90f9a7d 100644
--- a/sdk/src/Services/S3/Generated/_netstandard/AmazonS3Client.cs
+++ b/sdk/src/Services/S3/Generated/_netstandard/AmazonS3Client.cs
@@ -17576,7 +17576,7 @@ internal virtual RestoreObjectResponse RestoreObject(RestoreObjectRequest reques
///
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
@@ -18049,7 +18049,7 @@ internal virtual RestoreObjectResponse RestoreObject(RestoreObjectRequest reques
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
/// VersionId used to reference a specific version of the object.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
diff --git a/sdk/src/Services/S3/Generated/_netstandard/IAmazonS3.cs b/sdk/src/Services/S3/Generated/_netstandard/IAmazonS3.cs
index 4ba7c6e9dbb0..645247d95a30 100644
--- a/sdk/src/Services/S3/Generated/_netstandard/IAmazonS3.cs
+++ b/sdk/src/Services/S3/Generated/_netstandard/IAmazonS3.cs
@@ -15505,7 +15505,7 @@ public partial interface IAmazonS3 : IAmazonService, IDisposable
///
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
@@ -15962,7 +15962,7 @@ public partial interface IAmazonS3 : IAmazonService, IDisposable
/// The bucket name containing the object to restore. Access points - When you use this action with an access point for general purpose buckets, you must provide the alias of the access point in place of the bucket name or specify the access point ARN. When you use this action with an access point for directory buckets, you must provide the access point name in place of the bucket name. When using the access point ARN, you must direct requests to the access point hostname. The access point hostname takes the form AccessPointName-AccountId.s3-accesspoint.Region.amazonaws.com. When using this action with an access point through the Amazon Web Services SDKs, you provide the access point ARN in place of the bucket name. For more information about access point ARNs, see Using access points in the Amazon S3 User Guide. S3 on Outposts - When you use this action with S3 on Outposts, you must direct requests to the S3 on Outposts hostname. The S3 on Outposts hostname takes the form AccessPointName-AccountId.outpostID.s3-outposts.Region.amazonaws.com. When you use this action with S3 on Outposts, the destination bucket must be the Outposts access point ARN or the access point alias. For more information about S3 on Outposts, see What is S3 on Outposts? in the Amazon S3 User Guide.
/// Object key for which the action was initiated.
/// VersionId used to reference a specific version of the object.
- /// A property of RestoreObjectRequest used to execute the RestoreObject service method.
+ /// Lifetime of the active copy in days. Do not use with restores that specify OutputLocation. The Days element is required for regular restores, and must not be provided for select requests.
///
/// A cancellation token that can be used by other objects or threads to receive notice of cancellation.
///
diff --git a/sdk/test/Services/S3/IntegrationTests/RestoreObjectTests.cs b/sdk/test/Services/S3/IntegrationTests/RestoreObjectTests.cs
new file mode 100644
index 000000000000..1c0d5065b69d
--- /dev/null
+++ b/sdk/test/Services/S3/IntegrationTests/RestoreObjectTests.cs
@@ -0,0 +1,93 @@
+using Amazon;
+using Amazon.Runtime;
+using Amazon.Runtime.Internal.Util;
+using Amazon.S3;
+using Amazon.S3.Model;
+using Amazon.S3.Util;
+using Amazon.Util;
+using AWSSDK_DotNet.IntegrationTests.Utils;
+using Microsoft.VisualStudio.TestTools.UnitTesting;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading;
+
+namespace AWSSDK_DotNet.IntegrationTests.Tests.S3
+{
+ [TestClass]
+ public class RestoreObjectTests : TestBase
+ {
+ private static string bucketName;
+ private static string keyName = "test-restore-object";
+
+ [ClassInitialize]
+ public static void Initialize(TestContext context)
+ {
+ bucketName = S3TestUtils.CreateBucketWithWait(Client);
+ }
+
+ [ClassCleanup]
+ public static void ClassCleanup()
+ {
+ AmazonS3Util.DeleteS3BucketWithObjects(Client, bucketName);
+ }
+
+ [TestMethod]
+ public void TestRestoreObject()
+ {
+ // Put object with Glacier storage class
+ Client.PutObject(new PutObjectRequest
+ {
+ BucketName = bucketName,
+ Key = keyName,
+ ContentBody = "Test content for restore",
+ StorageClass = S3StorageClass.Glacier
+ });
+
+ // Restore the object
+ var restoreRequest = new RestoreObjectRequest
+ {
+ BucketName = bucketName,
+ Key = keyName,
+ Days = 1
+ };
+
+ var response = Client.RestoreObject(restoreRequest);
+ Assert.IsNotNull(response);
+ Assert.AreEqual(HttpStatusCode.Accepted, response.HttpStatusCode);
+ }
+
+ [TestMethod]
+ public void TestRestoreObjectWithTier()
+ {
+ // Put object with Glacier storage class
+ Client.PutObject(new PutObjectRequest
+ {
+ BucketName = bucketName,
+ Key = keyName,
+ ContentBody = "Test content for restore",
+ StorageClass = S3StorageClass.Glacier
+ });
+
+ // Restore the object
+ // note: S3 does not accept RetrievalTier + Days combination for some reason. S3 expects the tier that is wrapped in
+ // glacier job parameters when doing a barebones restore with tier and days set.
+ // https://github.com/aws/aws-sdk/issues/246
+ var restoreRequest = new RestoreObjectRequest
+ {
+ BucketName = bucketName,
+ Key = keyName,
+ Days = 1,
+ Tier = GlacierJobTier.Standard
+ };
+
+ var response = Client.RestoreObject(restoreRequest);
+ Assert.IsNotNull(response);
+ Assert.AreEqual(HttpStatusCode.Accepted, response.HttpStatusCode);
+ }
+ }
+}