public async Task <TableCreateOrUpdateResponse> CreateOrUpdateAsync(
            string resourceGroupName,
            string dataFactoryName,
            TableCreateOrUpdateParameters parameters,
            CancellationToken cancellationToken)
        {
            Core.Models.TableCreateOrUpdateParameters internalParameters = this.ValidateAndConvert(parameters);

            Core.Models.TableCreateOrUpdateResponse response =
                await this.Client.InternalClient.Tables.CreateOrUpdateAsync(
                    resourceGroupName,
                    dataFactoryName,
                    internalParameters,
                    cancellationToken);

            return(new TableCreateOrUpdateResponse(response, this.Client));
        }
        public async Task <TableCreateOrUpdateResponse> CreateOrUpdateWithRawJsonContentAsync(
            string resourceGroupName,
            string dataFactoryName,
            string tableName,
            TableCreateOrUpdateWithRawJsonContentParameters parameters,
            CancellationToken cancellationToken)
        {
            var internalParameters = new Core.Models.TableCreateOrUpdateWithRawJsonContentParameters(parameters.Content);

            Core.Models.TableCreateOrUpdateResponse response =
                await this.Client.InternalClient.Tables.CreateOrUpdateWithRawJsonContentAsync(
                    resourceGroupName,
                    dataFactoryName,
                    tableName,
                    internalParameters,
                    cancellationToken);

            return(new TableCreateOrUpdateResponse(response, this.Client));
        }
        public async Task <TableCreateOrUpdateResponse> GetCreateOrUpdateStatusAsync(
            string operationStatusLink,
            CancellationToken cancellationToken)
        {
            Ensure.IsNotNull(operationStatusLink, "operationStatusLink");

            Core.Models.TableCreateOrUpdateResponse internalResponse =
                await this.Client.InternalClient.Tables.GetCreateOrUpdateStatusAsync(
                    operationStatusLink,
                    cancellationToken);

            var response = new TableCreateOrUpdateResponse(internalResponse, this.Client);

            if (internalResponse.Table != null && internalResponse.Table.Properties != null &&
                internalResponse.Table.Properties.ProvisioningState != null)
            {
                response.Status = internalResponse.Table.Properties.ProvisioningState.ToOperationStatus();
            }

            return(response);
        }