com.microsoft.azure.storage.blob.ContainerAccessConditions Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of azure-storage-blob Show documentation
Show all versions of azure-storage-blob Show documentation
The Azure Storage Java Blob library.
/*
* Copyright Microsoft Corporation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License 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.
*/
package com.microsoft.azure.storage.blob;
import com.microsoft.azure.storage.blob.models.LeaseAccessConditions;
import com.microsoft.azure.storage.blob.models.ModifiedAccessConditions;
/**
* This class contains values which will restrict the successful operation of a variety of requests to the conditions
* present. These conditions are entirely optional. The entire object or any of its properties may be set to null when
* passed to a method to indicate that those conditions are not desired. Please refer to the type of each field for more
* information on those particular access conditions.
*/
public final class ContainerAccessConditions {
/**
* An object representing no access conditions.
*/
public static final ContainerAccessConditions NONE = new ContainerAccessConditions();
private ModifiedAccessConditions modifiedAccessConditions;
private LeaseAccessConditions leaseAccessConditions;
/**
* Creates an instance which has fields set to non-null, empty values.
*/
public ContainerAccessConditions() {
this.modifiedAccessConditions = new ModifiedAccessConditions();
this.leaseAccessConditions = new LeaseAccessConditions();
}
/**
* Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to
* construct conditions related to when the blob was changed relative to the given request. The request
* will fail if the specified condition is not satisfied.
*/
public ModifiedAccessConditions modifiedAccessConditions() {
return modifiedAccessConditions;
}
/**
* Standard HTTP Access conditions related to the modification of data. ETag and LastModifiedTime are used to
* construct conditions related to when the blob was changed relative to the given request. The request
* will fail if the specified condition is not satisfied.
*/
public ContainerAccessConditions withModifiedAccessConditions(ModifiedAccessConditions modifiedAccessConditions) {
this.modifiedAccessConditions = modifiedAccessConditions;
return this;
}
/**
* By setting lease access conditions, requests will fail if the provided lease does not match the active lease on
* the blob.
*/
public LeaseAccessConditions leaseAccessConditions() {
return leaseAccessConditions;
}
/**
* By setting lease access conditions, requests will fail if the provided lease does not match the active lease on
* the blob.
*/
public ContainerAccessConditions withLeaseAccessConditions(LeaseAccessConditions leaseID) {
this.leaseAccessConditions = leaseID;
return this;
}
}