public virtual PSDataExport UpdateDataExport(string resourceGroupName, CreatePSDataExportParameters parameters)
        {
            PSDataExport existingDataExport;

            try
            {
                existingDataExport = GetPSDataExport(resourceGroupName, parameters.WorkspaceName, parameters.DataExportName);
            }
            catch (RestException)
            {
                throw new PSArgumentException($"Data export {parameters.DataExportName} under resourceGroup {resourceGroupName} worspace:{parameters.WorkspaceName} does not exist, please use 'New-AzOperationalInsightsDataExport' instead.");
            }

            //validate user input parameters were not null - if they were then use existing values so they wont be ran over by null values
            parameters.TableNames            = parameters.TableNames ?? existingDataExport.TableNames;
            parameters.DestinationResourceId = parameters.DestinationResourceId ?? existingDataExport.ResourceId;
            parameters.EventHubName          = parameters.EventHubName ?? existingDataExport.EventHubName;
            parameters.Enable = parameters.Enable ?? existingDataExport.Enable;


            return(new PSDataExport(OperationalInsightsManagementClient.DataExports.CreateOrUpdate(
                                        resourceGroupName: resourceGroupName,
                                        workspaceName: parameters.WorkspaceName,
                                        dataExportName: parameters.DataExportName,
                                        parameters: PSDataExport.getDataExport(parameters))));
        }
        public override void ExecuteCmdlet()
        {
            var dataExportParameters = new CreatePSDataExportParameters(ResourceGroupName, WorkspaceName, DataExportName, TableName.ToList(), ResourceId, EventHubName, Enable);

            if (ShouldProcess(DataExportName, $"Create Data export: {DataExportName}, in workspace: {WorkspaceName}, resource group: {ResourceGroupName}"))
            {
                WriteObject(this.OperationalInsightsClient.CreateDataExport(ResourceGroupName, dataExportParameters), true);
            }
        }
        public override void ExecuteCmdlet()
        {
            if (this.IsParameterBound(c => c.ResourceId))
            {
                var resourceIdentifier = new ResourceIdentifier(this.ResourceId);
                this.ResourceGroupName = resourceIdentifier.ResourceGroupName;
                this.WorkspaceName     = resourceIdentifier.ParentResource.ToLower().Replace("workspaces/", "");
                this.DataExportName    = resourceIdentifier.ResourceName;
            }

            CreatePSDataExportParameters parameters;;

            if (this.IsParameterBound(c => c.InputDataExport))
            {
                var resourceIdentifier = new ResourceIdentifier(this.InputDataExport.Id);
                parameters = new CreatePSDataExportParameters(
                    resourceGroupName: resourceIdentifier.ResourceGroupName,
                    workspaceName: resourceIdentifier.ParentResource.ToLower().Replace("workspaces/", ""),
                    dataExportName: resourceIdentifier.ResourceName,
                    tableNames: InputDataExport.TableNames,
                    destinationResourceId: InputDataExport.ResourceId,
                    eventHubName: InputDataExport.EventHubName,
                    enable: InputDataExport.Enable);
            }
            else
            {
                parameters = new CreatePSDataExportParameters(
                    resourceGroupName: ResourceGroupName,
                    workspaceName: WorkspaceName,
                    dataExportName: DataExportName,
                    tableNames: TableName.ToList(),
                    destinationResourceId: DestinationResourceId,
                    eventHubName: EventHubName,
                    enable: Enable);
            }

            if (ShouldProcess(DataExportName, $"Update Data export: {DataExportName}, in workspace: {WorkspaceName}, resource group: {ResourceGroupName}"))
            {
                WriteObject(this.OperationalInsightsClient.UpdateDataExport(ResourceGroupName, parameters), true);
            }
        }
        public virtual PSDataExport CreateDataExport(string resourceGroupName, CreatePSDataExportParameters parameters)
        {
            PSDataExport existingDataExport;

            try
            {
                existingDataExport = GetPSDataExport(resourceGroupName, parameters.WorkspaceName, parameters.DataExportName);
            }
            catch (RestException)
            {
                existingDataExport = null;
            }

            if (existingDataExport != null)
            {
                throw new PSInvalidOperationException(string.Format("DataExport: '{0}' already exists in workspace '{1}'. Please use Update-AzOperationalInsightsDataExport for updating.", parameters.DataExportName, parameters.WorkspaceName));
            }

            return(new PSDataExport(OperationalInsightsManagementClient.DataExports.CreateOrUpdate(
                                        resourceGroupName: resourceGroupName,
                                        workspaceName: parameters.WorkspaceName,
                                        dataExportName: parameters.DataExportName,
                                        parameters: PSDataExport.getDataExport(parameters))));
        }