// TODO: more tests after fixing the code generation issue protected async Task <DatabaseAccount> CreateRestorableDatabaseAccount(string name) { var locations = new List <DatabaseAccountLocation>() { new DatabaseAccountLocation(id: null, locationName: AzureLocation.WestUS, documentEndpoint: null, provisioningState: null, failoverPriority: null, isZoneRedundant: false) }; var createOptions = new DatabaseAccountCreateUpdateOptions(AzureLocation.WestUS, locations) { Kind = DatabaseAccountKind.GlobalDocumentDB, ConsistencyPolicy = new ConsistencyPolicy(DefaultConsistencyLevel.BoundedStaleness, MaxStalenessPrefix, MaxIntervalInSeconds), IpRules = { new IpAddressOrRange("23.43.231.120") }, IsVirtualNetworkFilterEnabled = true, EnableAutomaticFailover = false, ConnectorOffer = ConnectorOffer.Small, DisableKeyBasedMetadataWriteAccess = false, BackupPolicy = new ContinuousModeBackupPolicy(), }; _databaseAccountName = name; var accountLro = await DatabaseAccountCollection.CreateOrUpdateAsync(true, _databaseAccountName, createOptions); return(accountLro.Value); }
public virtual DatabaseAccountCreateOrUpdateOperation CreateOrUpdate(string accountName, DatabaseAccountCreateUpdateOptions createUpdateParameters, bool waitForCompletion = true, CancellationToken cancellationToken = default) { if (accountName == null) { throw new ArgumentNullException(nameof(accountName)); } if (createUpdateParameters == null) { throw new ArgumentNullException(nameof(createUpdateParameters)); } using var scope = _clientDiagnostics.CreateScope("DatabaseAccountCollection.CreateOrUpdate"); scope.Start(); try { var response = _databaseAccountsRestClient.CreateOrUpdate(Id.SubscriptionId, Id.ResourceGroupName, accountName, createUpdateParameters, cancellationToken); var operation = new DatabaseAccountCreateOrUpdateOperation(Parent, _clientDiagnostics, Pipeline, _databaseAccountsRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, accountName, createUpdateParameters).Request, response); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public async virtual Task <DatabaseAccountCreateOrUpdateOperation> CreateOrUpdateAsync(bool waitForCompletion, string accountName, DatabaseAccountCreateUpdateOptions createUpdateParameters, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(accountName, nameof(accountName)); if (createUpdateParameters == null) { throw new ArgumentNullException(nameof(createUpdateParameters)); } using var scope = _databaseAccountClientDiagnostics.CreateScope("DatabaseAccountCollection.CreateOrUpdate"); scope.Start(); try { var response = await _databaseAccountRestClient.CreateOrUpdateAsync(Id.SubscriptionId, Id.ResourceGroupName, accountName, createUpdateParameters, cancellationToken).ConfigureAwait(false); var operation = new DatabaseAccountCreateOrUpdateOperation(ArmClient, _databaseAccountClientDiagnostics, Pipeline, _databaseAccountRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, accountName, createUpdateParameters).Request, response); if (waitForCompletion) { await operation.WaitForCompletionAsync(cancellationToken).ConfigureAwait(false); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }
public virtual ArmOperation <DatabaseAccount> CreateOrUpdate(bool waitForCompletion, string accountName, DatabaseAccountCreateUpdateOptions createUpdateParameters, CancellationToken cancellationToken = default) { Argument.AssertNotNullOrEmpty(accountName, nameof(accountName)); Argument.AssertNotNull(createUpdateParameters, nameof(createUpdateParameters)); using var scope = _databaseAccountClientDiagnostics.CreateScope("DatabaseAccountCollection.CreateOrUpdate"); scope.Start(); try { var response = _databaseAccountRestClient.CreateOrUpdate(Id.SubscriptionId, Id.ResourceGroupName, accountName, createUpdateParameters, cancellationToken); var operation = new CosmosDBArmOperation <DatabaseAccount>(new DatabaseAccountOperationSource(Client), _databaseAccountClientDiagnostics, Pipeline, _databaseAccountRestClient.CreateCreateOrUpdateRequest(Id.SubscriptionId, Id.ResourceGroupName, accountName, createUpdateParameters).Request, response, OperationFinalStateVia.Location); if (waitForCompletion) { operation.WaitForCompletion(cancellationToken); } return(operation); } catch (Exception e) { scope.Failed(e); throw; } }