gcp.firebaserules.Release
Explore with Pulumi AI
For more information, see:
Example Usage
Firestore_release
Creates a Firebase Rules Release to Cloud Firestore
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
const firestore = new gcp.firebaserules.Ruleset("firestore", {
source: {
files: [{
content: "service cloud.firestore {match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }",
name: "firestore.rules",
}],
},
project: "my-project-name",
});
const primary = new gcp.firebaserules.Release("primary", {
name: "cloud.firestore",
rulesetName: pulumi.interpolate`projects/my-project-name/rulesets/${firestore.name}`,
project: "my-project-name",
});
import pulumi
import pulumi_gcp as gcp
firestore = gcp.firebaserules.Ruleset("firestore",
source=gcp.firebaserules.RulesetSourceArgs(
files=[gcp.firebaserules.RulesetSourceFileArgs(
content="service cloud.firestore {match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }",
name="firestore.rules",
)],
),
project="my-project-name")
primary = gcp.firebaserules.Release("primary",
name="cloud.firestore",
ruleset_name=firestore.name.apply(lambda name: f"projects/my-project-name/rulesets/{name}"),
project="my-project-name")
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firebaserules"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
firestore, err := firebaserules.NewRuleset(ctx, "firestore", &firebaserules.RulesetArgs{
Source: &firebaserules.RulesetSourceArgs{
Files: firebaserules.RulesetSourceFileArray{
&firebaserules.RulesetSourceFileArgs{
Content: pulumi.String("service cloud.firestore {match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }"),
Name: pulumi.String("firestore.rules"),
},
},
},
Project: pulumi.String("my-project-name"),
})
if err != nil {
return err
}
_, err = firebaserules.NewRelease(ctx, "primary", &firebaserules.ReleaseArgs{
Name: pulumi.String("cloud.firestore"),
RulesetName: firestore.Name.ApplyT(func(name string) (string, error) {
return fmt.Sprintf("projects/my-project-name/rulesets/%v", name), nil
}).(pulumi.StringOutput),
Project: pulumi.String("my-project-name"),
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
var firestore = new Gcp.Firebaserules.Ruleset("firestore", new()
{
Source = new Gcp.Firebaserules.Inputs.RulesetSourceArgs
{
Files = new[]
{
new Gcp.Firebaserules.Inputs.RulesetSourceFileArgs
{
Content = "service cloud.firestore {match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }",
Name = "firestore.rules",
},
},
},
Project = "my-project-name",
});
var primary = new Gcp.Firebaserules.Release("primary", new()
{
Name = "cloud.firestore",
RulesetName = firestore.Name.Apply(name => $"projects/my-project-name/rulesets/{name}"),
Project = "my-project-name",
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.firebaserules.Ruleset;
import com.pulumi.gcp.firebaserules.RulesetArgs;
import com.pulumi.gcp.firebaserules.inputs.RulesetSourceArgs;
import com.pulumi.gcp.firebaserules.Release;
import com.pulumi.gcp.firebaserules.ReleaseArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var firestore = new Ruleset("firestore", RulesetArgs.builder()
.source(RulesetSourceArgs.builder()
.files(RulesetSourceFileArgs.builder()
.content("service cloud.firestore {match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }")
.name("firestore.rules")
.build())
.build())
.project("my-project-name")
.build());
var primary = new Release("primary", ReleaseArgs.builder()
.name("cloud.firestore")
.rulesetName(firestore.name().applyValue(name -> String.format("projects/my-project-name/rulesets/%s", name)))
.project("my-project-name")
.build());
}
}
resources:
primary:
type: gcp:firebaserules:Release
properties:
name: cloud.firestore
rulesetName: projects/my-project-name/rulesets/${firestore.name}
project: my-project-name
firestore:
type: gcp:firebaserules:Ruleset
properties:
source:
files:
- content: 'service cloud.firestore {match /databases/{database}/documents { match /{document=**} { allow read, write: if false; } } }'
name: firestore.rules
project: my-project-name
Storage_release
Creates a Firebase Rules Release for a Storage bucket
import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";
// Provision a non-default Cloud Storage bucket.
const bucket = new gcp.storage.Bucket("bucket", {
project: "my-project-name",
name: "bucket",
location: "us-west1",
});
// Create a ruleset of Firebase Security Rules from a local file.
const storage = new gcp.firebaserules.Ruleset("storage", {
project: "my-project-name",
source: {
files: [{
name: "storage.rules",
content: "service firebase.storage {match /b/{bucket}/o {match /{allPaths=**} {allow read, write: if request.auth != null;}}}",
}],
},
});
const primary = new gcp.firebaserules.Release("primary", {
name: pulumi.interpolate`firebase.storage/${bucket.name}`,
rulesetName: pulumi.interpolate`projects/my-project-name/rulesets/${storage.name}`,
project: "my-project-name",
});
// Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules.
const bucketStorageBucket = new gcp.firebase.StorageBucket("bucket", {
project: "my-project-name",
bucketId: bucket.name,
});
import pulumi
import pulumi_gcp as gcp
# Provision a non-default Cloud Storage bucket.
bucket = gcp.storage.Bucket("bucket",
project="my-project-name",
name="bucket",
location="us-west1")
# Create a ruleset of Firebase Security Rules from a local file.
storage = gcp.firebaserules.Ruleset("storage",
project="my-project-name",
source=gcp.firebaserules.RulesetSourceArgs(
files=[gcp.firebaserules.RulesetSourceFileArgs(
name="storage.rules",
content="service firebase.storage {match /b/{bucket}/o {match /{allPaths=**} {allow read, write: if request.auth != null;}}}",
)],
))
primary = gcp.firebaserules.Release("primary",
name=bucket.name.apply(lambda name: f"firebase.storage/{name}"),
ruleset_name=storage.name.apply(lambda name: f"projects/my-project-name/rulesets/{name}"),
project="my-project-name")
# Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules.
bucket_storage_bucket = gcp.firebase.StorageBucket("bucket",
project="my-project-name",
bucket_id=bucket.name)
package main
import (
"fmt"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firebase"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/firebaserules"
"github.com/pulumi/pulumi-gcp/sdk/v7/go/gcp/storage"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
// Provision a non-default Cloud Storage bucket.
bucket, err := storage.NewBucket(ctx, "bucket", &storage.BucketArgs{
Project: pulumi.String("my-project-name"),
Name: pulumi.String("bucket"),
Location: pulumi.String("us-west1"),
})
if err != nil {
return err
}
// Create a ruleset of Firebase Security Rules from a local file.
storage, err := firebaserules.NewRuleset(ctx, "storage", &firebaserules.RulesetArgs{
Project: pulumi.String("my-project-name"),
Source: &firebaserules.RulesetSourceArgs{
Files: firebaserules.RulesetSourceFileArray{
&firebaserules.RulesetSourceFileArgs{
Name: pulumi.String("storage.rules"),
Content: pulumi.String("service firebase.storage {match /b/{bucket}/o {match /{allPaths=**} {allow read, write: if request.auth != null;}}}"),
},
},
},
})
if err != nil {
return err
}
_, err = firebaserules.NewRelease(ctx, "primary", &firebaserules.ReleaseArgs{
Name: bucket.Name.ApplyT(func(name string) (string, error) {
return fmt.Sprintf("firebase.storage/%v", name), nil
}).(pulumi.StringOutput),
RulesetName: storage.Name.ApplyT(func(name string) (string, error) {
return fmt.Sprintf("projects/my-project-name/rulesets/%v", name), nil
}).(pulumi.StringOutput),
Project: pulumi.String("my-project-name"),
})
if err != nil {
return err
}
// Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules.
_, err = firebase.NewStorageBucket(ctx, "bucket", &firebase.StorageBucketArgs{
Project: pulumi.String("my-project-name"),
BucketId: bucket.Name,
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;
return await Deployment.RunAsync(() =>
{
// Provision a non-default Cloud Storage bucket.
var bucket = new Gcp.Storage.Bucket("bucket", new()
{
Project = "my-project-name",
Name = "bucket",
Location = "us-west1",
});
// Create a ruleset of Firebase Security Rules from a local file.
var storage = new Gcp.Firebaserules.Ruleset("storage", new()
{
Project = "my-project-name",
Source = new Gcp.Firebaserules.Inputs.RulesetSourceArgs
{
Files = new[]
{
new Gcp.Firebaserules.Inputs.RulesetSourceFileArgs
{
Name = "storage.rules",
Content = "service firebase.storage {match /b/{bucket}/o {match /{allPaths=**} {allow read, write: if request.auth != null;}}}",
},
},
},
});
var primary = new Gcp.Firebaserules.Release("primary", new()
{
Name = bucket.Name.Apply(name => $"firebase.storage/{name}"),
RulesetName = storage.Name.Apply(name => $"projects/my-project-name/rulesets/{name}"),
Project = "my-project-name",
});
// Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules.
var bucketStorageBucket = new Gcp.Firebase.StorageBucket("bucket", new()
{
Project = "my-project-name",
BucketId = bucket.Name,
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.storage.Bucket;
import com.pulumi.gcp.storage.BucketArgs;
import com.pulumi.gcp.firebaserules.Ruleset;
import com.pulumi.gcp.firebaserules.RulesetArgs;
import com.pulumi.gcp.firebaserules.inputs.RulesetSourceArgs;
import com.pulumi.gcp.firebaserules.Release;
import com.pulumi.gcp.firebaserules.ReleaseArgs;
import com.pulumi.gcp.firebase.StorageBucket;
import com.pulumi.gcp.firebase.StorageBucketArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var bucket = new Bucket("bucket", BucketArgs.builder()
.project("my-project-name")
.name("bucket")
.location("us-west1")
.build());
var storage = new Ruleset("storage", RulesetArgs.builder()
.project("my-project-name")
.source(RulesetSourceArgs.builder()
.files(RulesetSourceFileArgs.builder()
.name("storage.rules")
.content("service firebase.storage {match /b/{bucket}/o {match /{allPaths=**} {allow read, write: if request.auth != null;}}}")
.build())
.build())
.build());
var primary = new Release("primary", ReleaseArgs.builder()
.name(bucket.name().applyValue(name -> String.format("firebase.storage/%s", name)))
.rulesetName(storage.name().applyValue(name -> String.format("projects/my-project-name/rulesets/%s", name)))
.project("my-project-name")
.build());
var bucketStorageBucket = new StorageBucket("bucketStorageBucket", StorageBucketArgs.builder()
.project("my-project-name")
.bucketId(bucket.name())
.build());
}
}
resources:
primary:
type: gcp:firebaserules:Release
properties:
name: firebase.storage/${bucket.name}
rulesetName: projects/my-project-name/rulesets/${storage.name}
project: my-project-name
# Provision a non-default Cloud Storage bucket.
bucket:
type: gcp:storage:Bucket
properties:
project: my-project-name
name: bucket
location: us-west1
# Make the Storage bucket accessible for Firebase SDKs, authentication, and Firebase Security Rules.
bucketStorageBucket:
type: gcp:firebase:StorageBucket
name: bucket
properties:
project: my-project-name
bucketId: ${bucket.name}
# Create a ruleset of Firebase Security Rules from a local file.
storage:
type: gcp:firebaserules:Ruleset
properties:
project: my-project-name
source:
files:
- name: storage.rules
content: 'service firebase.storage {match /b/{bucket}/o {match /{allPaths=**} {allow read, write: if request.auth != null;}}}'
Create Release Resource
new Release(name: string, args: ReleaseArgs, opts?: CustomResourceOptions);
@overload
def Release(resource_name: str,
opts: Optional[ResourceOptions] = None,
name: Optional[str] = None,
project: Optional[str] = None,
ruleset_name: Optional[str] = None)
@overload
def Release(resource_name: str,
args: ReleaseArgs,
opts: Optional[ResourceOptions] = None)
func NewRelease(ctx *Context, name string, args ReleaseArgs, opts ...ResourceOption) (*Release, error)
public Release(string name, ReleaseArgs args, CustomResourceOptions? opts = null)
public Release(String name, ReleaseArgs args)
public Release(String name, ReleaseArgs args, CustomResourceOptions options)
type: gcp:firebaserules:Release
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ReleaseArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args ReleaseArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args ReleaseArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args ReleaseArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args ReleaseArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Release Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
The Release resource accepts the following input properties:
- Ruleset
Name string - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - Name string
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - Project string
- The project for the resource
- Ruleset
Name string - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - Name string
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - Project string
- The project for the resource
- ruleset
Name String - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - name String
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project String
- The project for the resource
- ruleset
Name string - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - name string
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project string
- The project for the resource
- ruleset_
name str - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - name str
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project str
- The project for the resource
- ruleset
Name String - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - name String
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project String
- The project for the resource
Outputs
All input properties are implicitly available as output properties. Additionally, the Release resource produces the following output properties:
- Create
Time string - Output only. Time the release was created.
- Disabled bool
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- Id string
- The provider-assigned unique ID for this managed resource.
- Update
Time string - Output only. Time the release was updated.
- Create
Time string - Output only. Time the release was created.
- Disabled bool
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- Id string
- The provider-assigned unique ID for this managed resource.
- Update
Time string - Output only. Time the release was updated.
- create
Time String - Output only. Time the release was created.
- disabled Boolean
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- id String
- The provider-assigned unique ID for this managed resource.
- update
Time String - Output only. Time the release was updated.
- create
Time string - Output only. Time the release was created.
- disabled boolean
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- id string
- The provider-assigned unique ID for this managed resource.
- update
Time string - Output only. Time the release was updated.
- create_
time str - Output only. Time the release was created.
- disabled bool
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- id str
- The provider-assigned unique ID for this managed resource.
- update_
time str - Output only. Time the release was updated.
- create
Time String - Output only. Time the release was created.
- disabled Boolean
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- id String
- The provider-assigned unique ID for this managed resource.
- update
Time String - Output only. Time the release was updated.
Look up Existing Release Resource
Get an existing Release resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: ReleaseState, opts?: CustomResourceOptions): Release
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
create_time: Optional[str] = None,
disabled: Optional[bool] = None,
name: Optional[str] = None,
project: Optional[str] = None,
ruleset_name: Optional[str] = None,
update_time: Optional[str] = None) -> Release
func GetRelease(ctx *Context, name string, id IDInput, state *ReleaseState, opts ...ResourceOption) (*Release, error)
public static Release Get(string name, Input<string> id, ReleaseState? state, CustomResourceOptions? opts = null)
public static Release get(String name, Output<String> id, ReleaseState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Create
Time string - Output only. Time the release was created.
- Disabled bool
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- Name string
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - Project string
- The project for the resource
- Ruleset
Name string - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - Update
Time string - Output only. Time the release was updated.
- Create
Time string - Output only. Time the release was created.
- Disabled bool
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- Name string
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - Project string
- The project for the resource
- Ruleset
Name string - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - Update
Time string - Output only. Time the release was updated.
- create
Time String - Output only. Time the release was created.
- disabled Boolean
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- name String
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project String
- The project for the resource
- ruleset
Name String - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - update
Time String - Output only. Time the release was updated.
- create
Time string - Output only. Time the release was created.
- disabled boolean
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- name string
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project string
- The project for the resource
- ruleset
Name string - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - update
Time string - Output only. Time the release was updated.
- create_
time str - Output only. Time the release was created.
- disabled bool
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- name str
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project str
- The project for the resource
- ruleset_
name str - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - update_
time str - Output only. Time the release was updated.
- create
Time String - Output only. Time the release was created.
- disabled Boolean
- Disable the release to keep it from being served. The response code of NOT_FOUND will be given for executables generated from this Release.
- name String
- Format:
projects/{project_id}/releases/{release_id}
\Firestore Rules Releases will always have the name 'cloud.firestore' - project String
- The project for the resource
- ruleset
Name String - Name of the
Ruleset
referred to by thisRelease
. TheRuleset
must exist for theRelease
to be created. - update
Time String - Output only. Time the release was updated.
Import
Release can be imported using any of these accepted formats:
projects/{{project}}/releases/{{name}}
When using the pulumi import
command, Release can be imported using one of the formats above. For example:
$ pulumi import gcp:firebaserules/release:Release default projects/{{project}}/releases/{{name}}
Package Details
- Repository
- Google Cloud (GCP) Classic pulumi/pulumi-gcp
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
google-beta
Terraform Provider.