private Amazon.Redshift.Model.RestoreTableFromClusterSnapshotResponse CallAWSServiceOperation(IAmazonRedshift client, Amazon.Redshift.Model.RestoreTableFromClusterSnapshotRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Redshift", "RestoreTableFromClusterSnapshot"); try { #if DESKTOP return(client.RestoreTableFromClusterSnapshot(request)); #elif CORECLR return(client.RestoreTableFromClusterSnapshotAsync(request).GetAwaiter().GetResult()); #else #error "Unknown build edition" #endif } catch (AmazonServiceException exc) { var webException = exc.InnerException as System.Net.WebException; if (webException != null) { throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException); } throw; } }
public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.Redshift.Model.RestoreTableFromClusterSnapshotRequest(); if (cmdletContext.ClusterIdentifier != null) { request.ClusterIdentifier = cmdletContext.ClusterIdentifier; } if (cmdletContext.NewTableName != null) { request.NewTableName = cmdletContext.NewTableName; } if (cmdletContext.SnapshotIdentifier != null) { request.SnapshotIdentifier = cmdletContext.SnapshotIdentifier; } if (cmdletContext.SourceDatabaseName != null) { request.SourceDatabaseName = cmdletContext.SourceDatabaseName; } if (cmdletContext.SourceSchemaName != null) { request.SourceSchemaName = cmdletContext.SourceSchemaName; } if (cmdletContext.SourceTableName != null) { request.SourceTableName = cmdletContext.SourceTableName; } if (cmdletContext.TargetDatabaseName != null) { request.TargetDatabaseName = cmdletContext.TargetDatabaseName; } if (cmdletContext.TargetSchemaName != null) { request.TargetSchemaName = cmdletContext.TargetSchemaName; } CmdletOutput output; // issue call var client = Client ?? CreateClient(_CurrentCredentials, _RegionEndpoint); try { var response = CallAWSServiceOperation(client, request); object pipelineOutput = null; pipelineOutput = cmdletContext.Select(response, this); output = new CmdletOutput { PipelineOutput = pipelineOutput, ServiceResponse = response }; } catch (Exception e) { output = new CmdletOutput { ErrorResponse = e }; } return(output); }
/// <summary> /// Creates a new table from a table in an Amazon Redshift cluster snapshot. You must /// create the new table within the Amazon Redshift cluster that the snapshot was taken /// from. /// /// /// <para> /// You cannot use <code>RestoreTableFromClusterSnapshot</code> to restore a table with /// the same name as an existing table in an Amazon Redshift cluster. That is, you cannot /// overwrite an existing table in a cluster with a restored table. If you want to replace /// your original table with a new, restored table, then rename or drop your original /// table before you call <code>RestoreTableFromClusterSnapshot</code>. When you have /// renamed your original table, then you can pass the original name of the table as the /// <code>NewTableName</code> parameter value in the call to <code>RestoreTableFromClusterSnapshot</code>. /// This way, you can replace the original table with the table created from the snapshot. /// </para> /// </summary> /// <param name="request">Container for the necessary parameters to execute the RestoreTableFromClusterSnapshot service method.</param> /// /// <returns>The response from the RestoreTableFromClusterSnapshot service method, as returned by Redshift.</returns> /// <exception cref="Amazon.Redshift.Model.ClusterNotFoundException"> /// The <code>ClusterIdentifier</code> parameter does not refer to an existing cluster. /// </exception> /// <exception cref="Amazon.Redshift.Model.ClusterSnapshotNotFoundException"> /// The snapshot identifier does not refer to an existing cluster snapshot. /// </exception> /// <exception cref="Amazon.Redshift.Model.InProgressTableRestoreQuotaExceededException"> /// You have exceeded the allowed number of table restore requests. Wait for your current /// table restore requests to complete before making a new request. /// </exception> /// <exception cref="Amazon.Redshift.Model.InvalidClusterSnapshotStateException"> /// The specified cluster snapshot is not in the <code>available</code> state, or other /// accounts are authorized to access the snapshot. /// </exception> /// <exception cref="Amazon.Redshift.Model.InvalidClusterStateException"> /// The specified cluster is not in the <code>available</code> state. /// </exception> /// <exception cref="Amazon.Redshift.Model.InvalidTableRestoreArgumentException"> /// The value specified for the <code>sourceDatabaseName</code>, <code>sourceSchemaName</code>, /// or <code>sourceTableName</code> parameter, or a combination of these, doesn't exist /// in the snapshot. /// </exception> /// <exception cref="Amazon.Redshift.Model.UnsupportedOperationException"> /// The requested operation isn't supported. /// </exception> public RestoreTableFromClusterSnapshotResponse RestoreTableFromClusterSnapshot(RestoreTableFromClusterSnapshotRequest request) { var marshaller = new RestoreTableFromClusterSnapshotRequestMarshaller(); var unmarshaller = RestoreTableFromClusterSnapshotResponseUnmarshaller.Instance; return Invoke<RestoreTableFromClusterSnapshotRequest,RestoreTableFromClusterSnapshotResponse>(request, marshaller, unmarshaller); }
/// <summary> /// Initiates the asynchronous execution of the RestoreTableFromClusterSnapshot operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the RestoreTableFromClusterSnapshot operation.</param> /// <param name="cancellationToken"> /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// </param> /// <returns>The task object representing the asynchronous operation.</returns> public Task<RestoreTableFromClusterSnapshotResponse> RestoreTableFromClusterSnapshotAsync(RestoreTableFromClusterSnapshotRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var marshaller = new RestoreTableFromClusterSnapshotRequestMarshaller(); var unmarshaller = RestoreTableFromClusterSnapshotResponseUnmarshaller.Instance; return InvokeAsync<RestoreTableFromClusterSnapshotRequest,RestoreTableFromClusterSnapshotResponse>(request, marshaller, unmarshaller, cancellationToken); }
/// <summary> /// Initiates the asynchronous execution of the RestoreTableFromClusterSnapshot operation. /// </summary> /// /// <param name="request">Container for the necessary parameters to execute the RestoreTableFromClusterSnapshot operation on AmazonRedshiftClient.</param> /// <param name="callback">An AsyncCallback delegate that is invoked when the operation completes.</param> /// <param name="state">A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback /// procedure using the AsyncState property.</param> /// /// <returns>An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndRestoreTableFromClusterSnapshot /// operation.</returns> public IAsyncResult BeginRestoreTableFromClusterSnapshot(RestoreTableFromClusterSnapshotRequest request, AsyncCallback callback, object state) { var marshaller = new RestoreTableFromClusterSnapshotRequestMarshaller(); var unmarshaller = RestoreTableFromClusterSnapshotResponseUnmarshaller.Instance; return BeginInvoke<RestoreTableFromClusterSnapshotRequest>(request, marshaller, unmarshaller, callback, state); }