All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.qcloud.cos.model.Permission Maven / Gradle / Ivy

/*
 * Copyright 2010-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 *
 *  http://aws.amazon.com/apache2.0
 *
 * or in the "license" file accompanying this file. This file 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.
 
 * According to cos feature, we modify some class,comment, field name, etc.
 */


package com.qcloud.cos.model;

/**
 * Specifies constants defining an access permission, as granted to grantees in an
 * {@link AccessControlList}. Only a limited set of permission are available; each one is
 * represented as a value in this enumeration.
 */
public enum Permission {

    /**
     * Provides READ, WRITE permissions.
     * 

* It does not convey additional rights and is provided only for convenience. *

*/ FullControl("FULL_CONTROL", "x-cos-grant-full-control"), /** * Grants permission to list the bucket when applied to a bucket. Grants permission to read * object data and/or metadata when applied to an object. */ Read("READ", "x-cos-grant-read"), /** * Grants permission to create, overwrite, and delete any objects in the bucket. *

* This permission is not supported for objects. *

*/ Write("WRITE", "x-cos-grant-write"), /** * Grants permission to read the ACL for the applicable bucket or object. *

* The owner of a bucket or object always implicitly has this permission. *

*/ ReadAcp("READ_ACP", "x-cos-grant-read-acp"), /** * Gives permission to overwrite the ACP for the applicable bucket or * object. *

* The owner of a bucket or object always has this permission implicitly. *

*

* Granting this permission is equivalent to granting FULL_CONTROLbecause * the grant recipient can make any changes to the ACP. *

*/ WriteAcp("WRITE_ACP", "x-cos-grant-write-acp"); private String permissionString; private String headerName; private Permission(String permissionString, String headerName) { this.permissionString = permissionString; this.headerName = headerName; } /** * Returns the name of the header used to grant this permission. */ public String getHeaderName() { return headerName; } /** * Gets the string representation of this permission object as defined by Qcloud COS, eg. * FULL_CONTROL. * * @return The string representation of this permission object as defined by Qcloud COS, eg. * FULL_CONTROL. */ public String toString() { return permissionString; } /** * Returns the {@link Permission} enumeration value representing the specified Qcloud COS Region * ID string. If specified string doesn't map to a known Qcloud COS Region, returns * null. * * @param str A string representation of an Qcloud COS permission, eg. FULL_CONTROL * * @return The {@link Permission} object represented by the given permission string, Returns * null if the string isn't a valid representation of an Qcloud COS * permission. */ public static Permission parsePermission(String str) { for (Permission permission : Permission.values()) { if (permission.permissionString.equals(str)) { return permission; } } return null; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy