/******************************************************************************* * Copyright 2012-2019 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. * ***************************************************************************** * * AWS Tools for Windows (TM) PowerShell (TM) * */ using System; using System.Collections.Generic; using System.Linq; using System.Management.Automation; using System.Text; using Amazon.PowerShell.Common; using Amazon.Runtime; using Amazon.Honeycode; using Amazon.Honeycode.Model; namespace Amazon.PowerShell.Cmdlets.HC { /// /// The StartTableDataImportJob API allows you to start an import job on a table. This /// API will only return the id of the job that was started. To find out the status of /// the import request, you need to call the DescribeTableDataImportJob API. /// [Cmdlet("Start", "HCTableDataImportJob", SupportsShouldProcess = true, ConfirmImpact = ConfirmImpact.Medium)] [OutputType("Amazon.Honeycode.Model.StartTableDataImportJobResponse")] [AWSCmdlet("Calls the Amazon Honeycode StartTableDataImportJob API operation.", Operation = new[] {"StartTableDataImportJob"}, SelectReturnType = typeof(Amazon.Honeycode.Model.StartTableDataImportJobResponse))] [AWSCmdletOutput("Amazon.Honeycode.Model.StartTableDataImportJobResponse", "This cmdlet returns an Amazon.Honeycode.Model.StartTableDataImportJobResponse object containing multiple properties. The object can also be referenced from properties attached to the cmdlet entry in the $AWSHistory stack." )] public partial class StartHCTableDataImportJobCmdlet : AmazonHoneycodeClientCmdlet, IExecutor { protected override bool IsSensitiveRequest { get; set; } = true; #region Parameter ClientRequestToken /// /// /// The request token for performing the update action. Request tokens help to identify /// duplicate requests. If a call times out or fails due to a transient error like a failed /// network connection, you can retry the call with the same request token. The service /// ensures that if the first call using that request token is successfully performed, /// the second call will not perform the action again. Note that request tokens are valid only for a few minutes. You cannot use request /// tokens to dedupe requests spanning hours or days. /// /// #if !MODULAR [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] #else [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)] [System.Management.Automation.AllowEmptyString] [System.Management.Automation.AllowNull] #endif [Amazon.PowerShell.Common.AWSRequiredParameter] public System.String ClientRequestToken { get; set; } #endregion #region Parameter DestinationOptions_ColumnMap /// /// /// A map of the column id to the import properties for each column. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("ImportOptions_DestinationOptions_ColumnMap")] public System.Collections.Hashtable DestinationOptions_ColumnMap { get; set; } #endregion #region Parameter DelimitedTextOptions_DataCharacterEncoding /// /// /// The encoding of the data in the input file. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("ImportOptions_DelimitedTextOptions_DataCharacterEncoding")] [AWSConstantClassSource("Amazon.Honeycode.ImportDataCharacterEncoding")] public Amazon.Honeycode.ImportDataCharacterEncoding DelimitedTextOptions_DataCharacterEncoding { get; set; } #endregion #region Parameter DataFormat /// /// /// The format of the data that is being imported. Currently the only option supported /// is "DELIMITED_TEXT". /// /// #if !MODULAR [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] #else [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)] [System.Management.Automation.AllowNull] #endif [Amazon.PowerShell.Common.AWSRequiredParameter] [AWSConstantClassSource("Amazon.Honeycode.ImportSourceDataFormat")] public Amazon.Honeycode.ImportSourceDataFormat DataFormat { get; set; } #endregion #region Parameter DataSourceConfig_DataSourceUrl /// /// /// The URL from which source data will be downloaded for the import request. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("DataSource_DataSourceConfig_DataSourceUrl")] public System.String DataSourceConfig_DataSourceUrl { get; set; } #endregion #region Parameter DelimitedTextOptions_Delimiter /// /// /// The delimiter to use for separating columns in a single row of the input. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("ImportOptions_DelimitedTextOptions_Delimiter")] public System.String DelimitedTextOptions_Delimiter { get; set; } #endregion #region Parameter DestinationTableId /// /// /// The ID of the table where the rows are being imported. If a table with the specified id could not be found, this API throws ResourceNotFoundException. /// /// /// #if !MODULAR [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] #else [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)] [System.Management.Automation.AllowEmptyString] [System.Management.Automation.AllowNull] #endif [Amazon.PowerShell.Common.AWSRequiredParameter] public System.String DestinationTableId { get; set; } #endregion #region Parameter DelimitedTextOptions_HasHeaderRow /// /// /// Indicates whether the input file has a header row at the top containing the column /// names. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("ImportOptions_DelimitedTextOptions_HasHeaderRow")] public System.Boolean? DelimitedTextOptions_HasHeaderRow { get; set; } #endregion #region Parameter DelimitedTextOptions_IgnoreEmptyRow /// /// /// A parameter to indicate whether empty rows should be ignored or be included in the /// import. /// /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] [Alias("ImportOptions_DelimitedTextOptions_IgnoreEmptyRows")] public System.Boolean? DelimitedTextOptions_IgnoreEmptyRow { get; set; } #endregion #region Parameter WorkbookId /// /// /// The ID of the workbook where the rows are being imported. If a workbook with the specified id could not be found, this API throws ResourceNotFoundException. /// /// /// #if !MODULAR [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] #else [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true, Mandatory = true)] [System.Management.Automation.AllowEmptyString] [System.Management.Automation.AllowNull] #endif [Amazon.PowerShell.Common.AWSRequiredParameter] public System.String WorkbookId { get; set; } #endregion #region Parameter Select /// /// Use the -Select parameter to control the cmdlet output. The default value is '*'. /// Specifying -Select '*' will result in the cmdlet returning the whole service response (Amazon.Honeycode.Model.StartTableDataImportJobResponse). /// Specifying the name of a property of type Amazon.Honeycode.Model.StartTableDataImportJobResponse will result in that property being returned. /// Specifying -Select '^ParameterName' will result in the cmdlet returning the selected cmdlet parameter value. /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public string Select { get; set; } = "*"; #endregion #region Parameter Force /// /// This parameter overrides confirmation prompts to force /// the cmdlet to continue its operation. This parameter should always /// be used with caution. /// [System.Management.Automation.Parameter(ValueFromPipelineByPropertyName = true)] public SwitchParameter Force { get; set; } #endregion protected override void ProcessRecord() { this._AWSSignerType = "v4"; base.ProcessRecord(); var resourceIdentifiersText = FormatParameterValuesForConfirmationMsg(nameof(this.DestinationTableId), MyInvocation.BoundParameters); if (!ConfirmShouldProceed(this.Force.IsPresent, resourceIdentifiersText, "Start-HCTableDataImportJob (StartTableDataImportJob)")) { return; } var context = new CmdletContext(); // allow for manipulation of parameters prior to loading into context PreExecutionContextLoad(context); if (ParameterWasBound(nameof(this.Select))) { context.Select = CreateSelectDelegate(Select) ?? throw new System.ArgumentException("Invalid value for -Select parameter.", nameof(this.Select)); } context.ClientRequestToken = this.ClientRequestToken; #if MODULAR if (this.ClientRequestToken == null && ParameterWasBound(nameof(this.ClientRequestToken))) { WriteWarning("You are passing $null as a value for parameter ClientRequestToken which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues."); } #endif context.DataFormat = this.DataFormat; #if MODULAR if (this.DataFormat == null && ParameterWasBound(nameof(this.DataFormat))) { WriteWarning("You are passing $null as a value for parameter DataFormat which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues."); } #endif context.DataSourceConfig_DataSourceUrl = this.DataSourceConfig_DataSourceUrl; context.DestinationTableId = this.DestinationTableId; #if MODULAR if (this.DestinationTableId == null && ParameterWasBound(nameof(this.DestinationTableId))) { WriteWarning("You are passing $null as a value for parameter DestinationTableId which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues."); } #endif context.DelimitedTextOptions_DataCharacterEncoding = this.DelimitedTextOptions_DataCharacterEncoding; context.DelimitedTextOptions_Delimiter = this.DelimitedTextOptions_Delimiter; context.DelimitedTextOptions_HasHeaderRow = this.DelimitedTextOptions_HasHeaderRow; context.DelimitedTextOptions_IgnoreEmptyRow = this.DelimitedTextOptions_IgnoreEmptyRow; if (this.DestinationOptions_ColumnMap != null) { context.DestinationOptions_ColumnMap = new Dictionary(StringComparer.Ordinal); foreach (var hashKey in this.DestinationOptions_ColumnMap.Keys) { context.DestinationOptions_ColumnMap.Add((String)hashKey, (SourceDataColumnProperties)(this.DestinationOptions_ColumnMap[hashKey])); } } context.WorkbookId = this.WorkbookId; #if MODULAR if (this.WorkbookId == null && ParameterWasBound(nameof(this.WorkbookId))) { WriteWarning("You are passing $null as a value for parameter WorkbookId which is marked as required. In case you believe this parameter was incorrectly marked as required, report this by opening an issue at https://github.com/aws/aws-tools-for-powershell/issues."); } #endif // allow further manipulation of loaded context prior to processing PostExecutionContextLoad(context); var output = Execute(context) as CmdletOutput; ProcessOutput(output); } #region IExecutor Members public object Execute(ExecutorContext context) { var cmdletContext = context as CmdletContext; // create request var request = new Amazon.Honeycode.Model.StartTableDataImportJobRequest(); if (cmdletContext.ClientRequestToken != null) { request.ClientRequestToken = cmdletContext.ClientRequestToken; } if (cmdletContext.DataFormat != null) { request.DataFormat = cmdletContext.DataFormat; } // populate DataSource var requestDataSourceIsNull = true; request.DataSource = new Amazon.Honeycode.Model.ImportDataSource(); Amazon.Honeycode.Model.ImportDataSourceConfig requestDataSource_dataSource_DataSourceConfig = null; // populate DataSourceConfig var requestDataSource_dataSource_DataSourceConfigIsNull = true; requestDataSource_dataSource_DataSourceConfig = new Amazon.Honeycode.Model.ImportDataSourceConfig(); System.String requestDataSource_dataSource_DataSourceConfig_dataSourceConfig_DataSourceUrl = null; if (cmdletContext.DataSourceConfig_DataSourceUrl != null) { requestDataSource_dataSource_DataSourceConfig_dataSourceConfig_DataSourceUrl = cmdletContext.DataSourceConfig_DataSourceUrl; } if (requestDataSource_dataSource_DataSourceConfig_dataSourceConfig_DataSourceUrl != null) { requestDataSource_dataSource_DataSourceConfig.DataSourceUrl = requestDataSource_dataSource_DataSourceConfig_dataSourceConfig_DataSourceUrl; requestDataSource_dataSource_DataSourceConfigIsNull = false; } // determine if requestDataSource_dataSource_DataSourceConfig should be set to null if (requestDataSource_dataSource_DataSourceConfigIsNull) { requestDataSource_dataSource_DataSourceConfig = null; } if (requestDataSource_dataSource_DataSourceConfig != null) { request.DataSource.DataSourceConfig = requestDataSource_dataSource_DataSourceConfig; requestDataSourceIsNull = false; } // determine if request.DataSource should be set to null if (requestDataSourceIsNull) { request.DataSource = null; } if (cmdletContext.DestinationTableId != null) { request.DestinationTableId = cmdletContext.DestinationTableId; } // populate ImportOptions var requestImportOptionsIsNull = true; request.ImportOptions = new Amazon.Honeycode.Model.ImportOptions(); Amazon.Honeycode.Model.DestinationOptions requestImportOptions_importOptions_DestinationOptions = null; // populate DestinationOptions var requestImportOptions_importOptions_DestinationOptionsIsNull = true; requestImportOptions_importOptions_DestinationOptions = new Amazon.Honeycode.Model.DestinationOptions(); Dictionary requestImportOptions_importOptions_DestinationOptions_destinationOptions_ColumnMap = null; if (cmdletContext.DestinationOptions_ColumnMap != null) { requestImportOptions_importOptions_DestinationOptions_destinationOptions_ColumnMap = cmdletContext.DestinationOptions_ColumnMap; } if (requestImportOptions_importOptions_DestinationOptions_destinationOptions_ColumnMap != null) { requestImportOptions_importOptions_DestinationOptions.ColumnMap = requestImportOptions_importOptions_DestinationOptions_destinationOptions_ColumnMap; requestImportOptions_importOptions_DestinationOptionsIsNull = false; } // determine if requestImportOptions_importOptions_DestinationOptions should be set to null if (requestImportOptions_importOptions_DestinationOptionsIsNull) { requestImportOptions_importOptions_DestinationOptions = null; } if (requestImportOptions_importOptions_DestinationOptions != null) { request.ImportOptions.DestinationOptions = requestImportOptions_importOptions_DestinationOptions; requestImportOptionsIsNull = false; } Amazon.Honeycode.Model.DelimitedTextImportOptions requestImportOptions_importOptions_DelimitedTextOptions = null; // populate DelimitedTextOptions var requestImportOptions_importOptions_DelimitedTextOptionsIsNull = true; requestImportOptions_importOptions_DelimitedTextOptions = new Amazon.Honeycode.Model.DelimitedTextImportOptions(); Amazon.Honeycode.ImportDataCharacterEncoding requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_DataCharacterEncoding = null; if (cmdletContext.DelimitedTextOptions_DataCharacterEncoding != null) { requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_DataCharacterEncoding = cmdletContext.DelimitedTextOptions_DataCharacterEncoding; } if (requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_DataCharacterEncoding != null) { requestImportOptions_importOptions_DelimitedTextOptions.DataCharacterEncoding = requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_DataCharacterEncoding; requestImportOptions_importOptions_DelimitedTextOptionsIsNull = false; } System.String requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_Delimiter = null; if (cmdletContext.DelimitedTextOptions_Delimiter != null) { requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_Delimiter = cmdletContext.DelimitedTextOptions_Delimiter; } if (requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_Delimiter != null) { requestImportOptions_importOptions_DelimitedTextOptions.Delimiter = requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_Delimiter; requestImportOptions_importOptions_DelimitedTextOptionsIsNull = false; } System.Boolean? requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_HasHeaderRow = null; if (cmdletContext.DelimitedTextOptions_HasHeaderRow != null) { requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_HasHeaderRow = cmdletContext.DelimitedTextOptions_HasHeaderRow.Value; } if (requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_HasHeaderRow != null) { requestImportOptions_importOptions_DelimitedTextOptions.HasHeaderRow = requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_HasHeaderRow.Value; requestImportOptions_importOptions_DelimitedTextOptionsIsNull = false; } System.Boolean? requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_IgnoreEmptyRow = null; if (cmdletContext.DelimitedTextOptions_IgnoreEmptyRow != null) { requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_IgnoreEmptyRow = cmdletContext.DelimitedTextOptions_IgnoreEmptyRow.Value; } if (requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_IgnoreEmptyRow != null) { requestImportOptions_importOptions_DelimitedTextOptions.IgnoreEmptyRows = requestImportOptions_importOptions_DelimitedTextOptions_delimitedTextOptions_IgnoreEmptyRow.Value; requestImportOptions_importOptions_DelimitedTextOptionsIsNull = false; } // determine if requestImportOptions_importOptions_DelimitedTextOptions should be set to null if (requestImportOptions_importOptions_DelimitedTextOptionsIsNull) { requestImportOptions_importOptions_DelimitedTextOptions = null; } if (requestImportOptions_importOptions_DelimitedTextOptions != null) { request.ImportOptions.DelimitedTextOptions = requestImportOptions_importOptions_DelimitedTextOptions; requestImportOptionsIsNull = false; } // determine if request.ImportOptions should be set to null if (requestImportOptionsIsNull) { request.ImportOptions = null; } if (cmdletContext.WorkbookId != null) { request.WorkbookId = cmdletContext.WorkbookId; } 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; } public ExecutorContext CreateContext() { return new CmdletContext(); } #endregion #region AWS Service Operation Call private Amazon.Honeycode.Model.StartTableDataImportJobResponse CallAWSServiceOperation(IAmazonHoneycode client, Amazon.Honeycode.Model.StartTableDataImportJobRequest request) { Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "Amazon Honeycode", "StartTableDataImportJob"); try { #if DESKTOP return client.StartTableDataImportJob(request); #elif CORECLR return client.StartTableDataImportJobAsync(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; } } #endregion internal partial class CmdletContext : ExecutorContext { public System.String ClientRequestToken { get; set; } public Amazon.Honeycode.ImportSourceDataFormat DataFormat { get; set; } public System.String DataSourceConfig_DataSourceUrl { get; set; } public System.String DestinationTableId { get; set; } public Amazon.Honeycode.ImportDataCharacterEncoding DelimitedTextOptions_DataCharacterEncoding { get; set; } public System.String DelimitedTextOptions_Delimiter { get; set; } public System.Boolean? DelimitedTextOptions_HasHeaderRow { get; set; } public System.Boolean? DelimitedTextOptions_IgnoreEmptyRow { get; set; } public Dictionary DestinationOptions_ColumnMap { get; set; } public System.String WorkbookId { get; set; } public System.Func Select { get; set; } = (response, cmdlet) => response; } } }