/// <summary> /// Exports the data from DynamoDB to S3 /// </summary> /// <param name="tableArn"></param> /// <param name="bucket"></param> /// <returns></returns> private async Task <ExportTableToPointInTimeResponse> ExportDataFromDynamoDB(string tableArn, string bucket) { DescribeContinuousBackupsResponse latestBackup = await ddbClient.DescribeContinuousBackupsAsync(new DescribeContinuousBackupsRequest() { TableName = tableArn.Split('/').Last() }); this._context.LogInfo($"Restoring table ${tableArn} to {bucket} at restore point {latestBackup.ContinuousBackupsDescription.PointInTimeRecoveryDescription.LatestRestorableDateTime}."); return(await ddbClient.ExportTableToPointInTimeAsync(new ExportTableToPointInTimeRequest() { ExportFormat = ExportFormat.ION, TableArn = tableArn, S3Bucket = bucket, ExportTime = latestBackup.ContinuousBackupsDescription.PointInTimeRecoveryDescription.LatestRestorableDateTime })); }
/// <summary> /// Unmarshaller the response from the service to the response class. /// </summary> /// <param name="context"></param> /// <returns></returns> public override AmazonWebServiceResponse Unmarshall(JsonUnmarshallerContext context) { DescribeContinuousBackupsResponse response = new DescribeContinuousBackupsResponse(); context.Read(); int targetDepth = context.CurrentDepth; while (context.ReadAtDepth(targetDepth)) { if (context.TestExpression("ContinuousBackupsDescription", targetDepth)) { var unmarshaller = ContinuousBackupsDescriptionUnmarshaller.Instance; response.ContinuousBackupsDescription = unmarshaller.Unmarshall(context); continue; } } return(response); }