@pulumi/gcp
Version:
A Pulumi package for creating and managing Google Cloud Platform resources.
120 lines • 5.34 kB
JavaScript
;
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
__setModuleDefault(result, mod);
return result;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.BucketACL = void 0;
const pulumi = __importStar(require("@pulumi/pulumi"));
const utilities = __importStar(require("../utilities"));
/**
* Authoritatively manages a bucket's ACLs in Google cloud storage service (GCS). For more information see
* [the official documentation](https://cloud.google.com/storage/docs/access-control/lists)
* and
* [API](https://cloud.google.com/storage/docs/json_api/v1/bucketAccessControls).
*
* Bucket ACLs can be managed non authoritatively using the `storageBucketAccessControl` resource. Do not use these two resources in conjunction to manage the same bucket.
*
* Permissions can be granted either by ACLs or Cloud IAM policies. In general, permissions granted by Cloud IAM policies do not appear in ACLs, and permissions granted by ACLs do not appear in Cloud IAM policies. The only exception is for ACLs applied directly on a bucket and certain bucket-level Cloud IAM policies, as described in [Cloud IAM relation to ACLs](https://cloud.google.com/storage/docs/access-control/iam#acls).
*
* **NOTE** This resource will not remove the `project-owners-<project_id>` entity from the `OWNER` role.
*
* ## Example Usage
*
* Example creating an ACL on a bucket with one owner, and one reader.
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as gcp from "@pulumi/gcp";
*
* const image_store = new gcp.storage.Bucket("image-store", {
* name: "image-store-bucket",
* location: "EU",
* });
* const image_store_acl = new gcp.storage.BucketACL("image-store-acl", {
* bucket: image_store.name,
* roleEntities: [
* "OWNER:user-my.email@gmail.com",
* "READER:group-mygroup",
* ],
* });
* ```
*
* ## Import
*
* This resource does not support import.
*/
class BucketACL extends pulumi.CustomResource {
/**
* Get an existing BucketACL resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name, id, state, opts) {
return new BucketACL(name, state, { ...opts, id: id });
}
/** @internal */
static __pulumiType = 'gcp:storage/bucketACL:BucketACL';
/**
* Returns true if the given object is an instance of BucketACL. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === BucketACL.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["bucket"] = state?.bucket;
resourceInputs["defaultAcl"] = state?.defaultAcl;
resourceInputs["deletionPolicy"] = state?.deletionPolicy;
resourceInputs["predefinedAcl"] = state?.predefinedAcl;
resourceInputs["roleEntities"] = state?.roleEntities;
}
else {
const args = argsOrState;
if (args?.bucket === undefined && !opts.urn) {
throw new Error("Missing required property 'bucket'");
}
resourceInputs["bucket"] = args?.bucket;
resourceInputs["defaultAcl"] = args?.defaultAcl;
resourceInputs["deletionPolicy"] = args?.deletionPolicy;
resourceInputs["predefinedAcl"] = args?.predefinedAcl;
resourceInputs["roleEntities"] = args?.roleEntities;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(BucketACL.__pulumiType, name, resourceInputs, opts);
}
}
exports.BucketACL = BucketACL;
//# sourceMappingURL=bucketACL.js.map