public void TestRemoveBucketConditionalIamBinding()
    {
        AddBucketConditionalIamBindingSample    addBucketConditionalIamBindingSample    = new AddBucketConditionalIamBindingSample();
        RemoveBucketConditionalIamBindingSample removeBucketConditionalIamBindingSample = new RemoveBucketConditionalIamBindingSample();
        ViewBucketIamMembersSample            viewBucketIamMembersSample            = new ViewBucketIamMembersSample();
        EnableUniformBucketLevelAccessSample  enableUniformBucketLevelAccessSample  = new EnableUniformBucketLevelAccessSample();
        DisableUniformBucketLevelAccessSample disableUniformBucketLevelAccessSample = new DisableUniformBucketLevelAccessSample();
        string memberType = "serviceAccount";
        string role       = "roles/storage.objectViewer";

        // Enable Uniform bucket level access.
        enableUniformBucketLevelAccessSample.EnableUniformBucketLevelAccess(_fixture.BucketNameGeneric);
        _fixture.SleepAfterBucketCreateUpdateDelete();

        // Add Conditional Binding.
        addBucketConditionalIamBindingSample.AddBucketConditionalIamBinding(_fixture.BucketNameGeneric,
                                                                            role, $"{memberType}:{_fixture.ServiceAccountEmail}", "title", "description",
                                                                            "resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")");
        _fixture.SleepAfterBucketCreateUpdateDelete();

        // Remove Conditional Binding.
        removeBucketConditionalIamBindingSample.RemoveBucketConditionalIamBinding(_fixture.BucketNameGeneric,
                                                                                  role, "title", "description",
                                                                                  "resource.name.startsWith(\"projects/_/buckets/bucket-name/objects/prefix-a-\")");
        _fixture.SleepAfterBucketCreateUpdateDelete();

        // Get Bucket Iam Members.
        var policy = viewBucketIamMembersSample.ViewBucketIamMembers(_fixture.BucketNameGeneric);

        Assert.DoesNotContain(policy.Bindings, c => c.Members.Contains($"{memberType}:{_fixture.ServiceAccountEmail}"));

        // Disable Uniform bucket level access
        disableUniformBucketLevelAccessSample.DisableUniformBucketLevelAccess(_fixture.BucketNameGeneric);
        _fixture.SleepAfterBucketCreateUpdateDelete();
    }
    public void TestDisableUniformBucketLevelAccess()
    {
        EnableUniformBucketLevelAccessSample  enableUniformBucketLevelAccessSample  = new EnableUniformBucketLevelAccessSample();
        DisableUniformBucketLevelAccessSample disableUniformBucketLevelAccessSample = new DisableUniformBucketLevelAccessSample();

        var bucketName = Guid.NewGuid().ToString();

        // Create bucket
        _bucketFixture.CreateBucket(bucketName);

        // Enable Uniform bucket level access.
        enableUniformBucketLevelAccessSample.EnableUniformBucketLevelAccess(bucketName);
        _bucketFixture.SleepAfterBucketCreateUpdateDelete();

        // Disable Uniform bucket level access.
        var updatedBucket = disableUniformBucketLevelAccessSample.DisableUniformBucketLevelAccess(bucketName);

        _bucketFixture.SleepAfterBucketCreateUpdateDelete();

        Assert.False(updatedBucket.IamConfiguration.UniformBucketLevelAccess.Enabled);
    }