static void WriteObjectRetention()
        {
            string id = Common.InputString("Key:", null, false);

            try
            {
                PutObjectRetentionRequest request = new PutObjectRetentionRequest
                {
                    BucketName = _Bucket,
                    Key        = id
                };

                request.Retention                 = new ObjectLockRetention();
                request.Retention.Mode            = "foo";
                request.Retention.RetainUntilDate = DateTime.Now.AddYears(5);

                PutObjectRetentionResponse response = _S3Client.PutObjectRetentionAsync(request).Result;
                int statusCode = (int)response.HttpStatusCode;

                if (response != null)
                {
                    Console.WriteLine("Success");
                    return;
                }
                else
                {
                    Console.WriteLine("Failed");
                    return;
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(Common.SerializeJson(e, true));
            }
        }
        /// <summary>
        /// Unmarshaller the response from the service to the response class.
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public override AmazonWebServiceResponse Unmarshall(XmlUnmarshallerContext context)
        {
            PutObjectRetentionResponse response = new PutObjectRetentionResponse();

            if (context.ResponseData.IsHeaderPresent("x-amz-request-charged"))
            {
                response.RequestCharged = context.ResponseData.GetHeaderValue("x-amz-request-charged");
            }

            return(response);
        }