Show / Hide Table of Contents

Namespace Pulumi.Gcp.Spanner

Classes

Database

A Cloud Spanner Database which is hosted on a Spanner instance.

To get more information about Database, see:

  • API documentation
  • How-to Guides
  • Official Documentation

Example Usage - Spanner Database Basic

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var main = new Gcp.Spanner.Instance("main", new Gcp.Spanner.InstanceArgs
    {
        Config = "regional-europe-west1",
        DisplayName = "main-instance",
    });
    var database = new Gcp.Spanner.Database("database", new Gcp.Spanner.DatabaseArgs
    {
        Instance = main.Name,
        Ddls = 
        {
            "CREATE TABLE t1 (t1 INT64 NOT NULL,) PRIMARY KEY(t1)",
            "CREATE TABLE t2 (t2 INT64 NOT NULL,) PRIMARY KEY(t2)",
        },
    });
}

}

DatabaseArgs

DatabaseIAMBinding

Three different resources help you manage your IAM policy for a Spanner database. Each of these resources serves a different use case:

  • gcp.spanner.DatabaseIAMPolicy: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.

Warning: It's entirely possibly to lock yourself out of your database using gcp.spanner.DatabaseIAMPolicy. Any permissions granted by default will be removed unless you include them in your config.

  • gcp.spanner.DatabaseIAMBinding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the database are preserved.
  • gcp.spanner.DatabaseIAMMember: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.

Note: gcp.spanner.DatabaseIAMPolicy cannot be used in conjunction with gcp.spanner.DatabaseIAMBinding and gcp.spanner.DatabaseIAMMember or they will fight over what your policy should be.

Note: gcp.spanner.DatabaseIAMBinding resources can be used in conjunction with gcp.spanner.DatabaseIAMMember resources only if they do not grant privilege to the same role.

google_spanner_database_iam_policy

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var admin = Output.Create(Gcp.Organizations.GetIAMPolicy.InvokeAsync(new Gcp.Organizations.GetIAMPolicyArgs
    {
        Binding = 
        {

            {
                { "role", "roles/editor" },
                { "members", 
                {
                    "user:jane@example.com",
                } },
            },
        },
    }));
    var database = new Gcp.Spanner.DatabaseIAMPolicy("database", new Gcp.Spanner.DatabaseIAMPolicyArgs
    {
        Instance = "your-instance-name",
        Database = "your-database-name",
        PolicyData = admin.Apply(admin => admin.PolicyData),
    });
}

}

google_spanner_database_iam_binding

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var database = new Gcp.Spanner.DatabaseIAMBinding("database", new Gcp.Spanner.DatabaseIAMBindingArgs
    {
        Database = "your-database-name",
        Instance = "your-instance-name",
        Members = 
        {
            "user:jane@example.com",
        },
        Role = "roles/compute.networkUser",
    });
}

}

google_spanner_database_iam_member

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var database = new Gcp.Spanner.DatabaseIAMMember("database", new Gcp.Spanner.DatabaseIAMMemberArgs
    {
        Database = "your-database-name",
        Instance = "your-instance-name",
        Member = "user:jane@example.com",
        Role = "roles/compute.networkUser",
    });
}

}

DatabaseIAMBindingArgs

DatabaseIAMBindingState

DatabaseIAMMember

Three different resources help you manage your IAM policy for a Spanner database. Each of these resources serves a different use case:

  • gcp.spanner.DatabaseIAMPolicy: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.

Warning: It's entirely possibly to lock yourself out of your database using gcp.spanner.DatabaseIAMPolicy. Any permissions granted by default will be removed unless you include them in your config.

  • gcp.spanner.DatabaseIAMBinding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the database are preserved.
  • gcp.spanner.DatabaseIAMMember: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.

Note: gcp.spanner.DatabaseIAMPolicy cannot be used in conjunction with gcp.spanner.DatabaseIAMBinding and gcp.spanner.DatabaseIAMMember or they will fight over what your policy should be.

Note: gcp.spanner.DatabaseIAMBinding resources can be used in conjunction with gcp.spanner.DatabaseIAMMember resources only if they do not grant privilege to the same role.

google_spanner_database_iam_policy

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var admin = Output.Create(Gcp.Organizations.GetIAMPolicy.InvokeAsync(new Gcp.Organizations.GetIAMPolicyArgs
    {
        Binding = 
        {

            {
                { "role", "roles/editor" },
                { "members", 
                {
                    "user:jane@example.com",
                } },
            },
        },
    }));
    var database = new Gcp.Spanner.DatabaseIAMPolicy("database", new Gcp.Spanner.DatabaseIAMPolicyArgs
    {
        Instance = "your-instance-name",
        Database = "your-database-name",
        PolicyData = admin.Apply(admin => admin.PolicyData),
    });
}

}

google_spanner_database_iam_binding

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var database = new Gcp.Spanner.DatabaseIAMBinding("database", new Gcp.Spanner.DatabaseIAMBindingArgs
    {
        Database = "your-database-name",
        Instance = "your-instance-name",
        Members = 
        {
            "user:jane@example.com",
        },
        Role = "roles/compute.networkUser",
    });
}

}

google_spanner_database_iam_member

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var database = new Gcp.Spanner.DatabaseIAMMember("database", new Gcp.Spanner.DatabaseIAMMemberArgs
    {
        Database = "your-database-name",
        Instance = "your-instance-name",
        Member = "user:jane@example.com",
        Role = "roles/compute.networkUser",
    });
}

}

DatabaseIAMMemberArgs

DatabaseIAMMemberState

DatabaseIAMPolicy

Three different resources help you manage your IAM policy for a Spanner database. Each of these resources serves a different use case:

  • gcp.spanner.DatabaseIAMPolicy: Authoritative. Sets the IAM policy for the database and replaces any existing policy already attached.

Warning: It's entirely possibly to lock yourself out of your database using gcp.spanner.DatabaseIAMPolicy. Any permissions granted by default will be removed unless you include them in your config.

  • gcp.spanner.DatabaseIAMBinding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the database are preserved.
  • gcp.spanner.DatabaseIAMMember: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the database are preserved.

Note: gcp.spanner.DatabaseIAMPolicy cannot be used in conjunction with gcp.spanner.DatabaseIAMBinding and gcp.spanner.DatabaseIAMMember or they will fight over what your policy should be.

Note: gcp.spanner.DatabaseIAMBinding resources can be used in conjunction with gcp.spanner.DatabaseIAMMember resources only if they do not grant privilege to the same role.

google_spanner_database_iam_policy

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var admin = Output.Create(Gcp.Organizations.GetIAMPolicy.InvokeAsync(new Gcp.Organizations.GetIAMPolicyArgs
    {
        Binding = 
        {

            {
                { "role", "roles/editor" },
                { "members", 
                {
                    "user:jane@example.com",
                } },
            },
        },
    }));
    var database = new Gcp.Spanner.DatabaseIAMPolicy("database", new Gcp.Spanner.DatabaseIAMPolicyArgs
    {
        Instance = "your-instance-name",
        Database = "your-database-name",
        PolicyData = admin.Apply(admin => admin.PolicyData),
    });
}

}

google_spanner_database_iam_binding

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var database = new Gcp.Spanner.DatabaseIAMBinding("database", new Gcp.Spanner.DatabaseIAMBindingArgs
    {
        Database = "your-database-name",
        Instance = "your-instance-name",
        Members = 
        {
            "user:jane@example.com",
        },
        Role = "roles/compute.networkUser",
    });
}

}

google_spanner_database_iam_member

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var database = new Gcp.Spanner.DatabaseIAMMember("database", new Gcp.Spanner.DatabaseIAMMemberArgs
    {
        Database = "your-database-name",
        Instance = "your-instance-name",
        Member = "user:jane@example.com",
        Role = "roles/compute.networkUser",
    });
}

}

DatabaseIAMPolicyArgs

DatabaseIAMPolicyState

DatabaseState

Instance

An isolated set of Cloud Spanner resources on which databases can be hosted.

To get more information about Instance, see:

  • API documentation
  • How-to Guides
  • Official Documentation

Example Usage - Spanner Instance Basic

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var example = new Gcp.Spanner.Instance("example", new Gcp.Spanner.InstanceArgs
    {
        Config = "regional-us-central1",
        DisplayName = "Test Spanner Instance",
        Labels = 
        {
            { "foo", "bar" },
        },
        NumNodes = 2,
    });
}

}

InstanceArgs

InstanceIAMBinding

Three different resources help you manage your IAM policy for a Spanner instance. Each of these resources serves a different use case:

  • gcp.spanner.InstanceIAMPolicy: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached.

Warning: It's entirely possibly to lock yourself out of your instance using gcp.spanner.InstanceIAMPolicy. Any permissions granted by default will be removed unless you include them in your config.

  • gcp.spanner.InstanceIAMBinding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the instance are preserved.
  • gcp.spanner.InstanceIAMMember: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the instance are preserved.

Note: gcp.spanner.InstanceIAMPolicy cannot be used in conjunction with gcp.spanner.InstanceIAMBinding and gcp.spanner.InstanceIAMMember or they will fight over what your policy should be.

Note: gcp.spanner.InstanceIAMBinding resources can be used in conjunction with gcp.spanner.InstanceIAMMember resources only if they do not grant privilege to the same role.

google_spanner_instance_iam_policy

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var admin = Output.Create(Gcp.Organizations.GetIAMPolicy.InvokeAsync(new Gcp.Organizations.GetIAMPolicyArgs
    {
        Binding = 
        {

            {
                { "role", "roles/editor" },
                { "members", 
                {
                    "user:jane@example.com",
                } },
            },
        },
    }));
    var instance = new Gcp.Spanner.InstanceIAMPolicy("instance", new Gcp.Spanner.InstanceIAMPolicyArgs
    {
        Instance = "your-instance-name",
        PolicyData = admin.Apply(admin => admin.PolicyData),
    });
}

}

google_spanner_instance_iam_binding

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var instance = new Gcp.Spanner.InstanceIAMBinding("instance", new Gcp.Spanner.InstanceIAMBindingArgs
    {
        Instance = "your-instance-name",
        Members = 
        {
            "user:jane@example.com",
        },
        Role = "roles/compute.networkUser",
    });
}

}

google_spanner_instance_iam_member

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var instance = new Gcp.Spanner.InstanceIAMMember("instance", new Gcp.Spanner.InstanceIAMMemberArgs
    {
        Instance = "your-instance-name",
        Member = "user:jane@example.com",
        Role = "roles/compute.networkUser",
    });
}

}

InstanceIAMBindingArgs

InstanceIAMBindingState

InstanceIAMMember

Three different resources help you manage your IAM policy for a Spanner instance. Each of these resources serves a different use case:

  • gcp.spanner.InstanceIAMPolicy: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached.

Warning: It's entirely possibly to lock yourself out of your instance using gcp.spanner.InstanceIAMPolicy. Any permissions granted by default will be removed unless you include them in your config.

  • gcp.spanner.InstanceIAMBinding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the instance are preserved.
  • gcp.spanner.InstanceIAMMember: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the instance are preserved.

Note: gcp.spanner.InstanceIAMPolicy cannot be used in conjunction with gcp.spanner.InstanceIAMBinding and gcp.spanner.InstanceIAMMember or they will fight over what your policy should be.

Note: gcp.spanner.InstanceIAMBinding resources can be used in conjunction with gcp.spanner.InstanceIAMMember resources only if they do not grant privilege to the same role.

google_spanner_instance_iam_policy

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var admin = Output.Create(Gcp.Organizations.GetIAMPolicy.InvokeAsync(new Gcp.Organizations.GetIAMPolicyArgs
    {
        Binding = 
        {

            {
                { "role", "roles/editor" },
                { "members", 
                {
                    "user:jane@example.com",
                } },
            },
        },
    }));
    var instance = new Gcp.Spanner.InstanceIAMPolicy("instance", new Gcp.Spanner.InstanceIAMPolicyArgs
    {
        Instance = "your-instance-name",
        PolicyData = admin.Apply(admin => admin.PolicyData),
    });
}

}

google_spanner_instance_iam_binding

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var instance = new Gcp.Spanner.InstanceIAMBinding("instance", new Gcp.Spanner.InstanceIAMBindingArgs
    {
        Instance = "your-instance-name",
        Members = 
        {
            "user:jane@example.com",
        },
        Role = "roles/compute.networkUser",
    });
}

}

google_spanner_instance_iam_member

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var instance = new Gcp.Spanner.InstanceIAMMember("instance", new Gcp.Spanner.InstanceIAMMemberArgs
    {
        Instance = "your-instance-name",
        Member = "user:jane@example.com",
        Role = "roles/compute.networkUser",
    });
}

}

InstanceIAMMemberArgs

InstanceIAMMemberState

InstanceIAMPolicy

Three different resources help you manage your IAM policy for a Spanner instance. Each of these resources serves a different use case:

  • gcp.spanner.InstanceIAMPolicy: Authoritative. Sets the IAM policy for the instance and replaces any existing policy already attached.

Warning: It's entirely possibly to lock yourself out of your instance using gcp.spanner.InstanceIAMPolicy. Any permissions granted by default will be removed unless you include them in your config.

  • gcp.spanner.InstanceIAMBinding: Authoritative for a given role. Updates the IAM policy to grant a role to a list of members. Other roles within the IAM policy for the instance are preserved.
  • gcp.spanner.InstanceIAMMember: Non-authoritative. Updates the IAM policy to grant a role to a new member. Other members for the role for the instance are preserved.

Note: gcp.spanner.InstanceIAMPolicy cannot be used in conjunction with gcp.spanner.InstanceIAMBinding and gcp.spanner.InstanceIAMMember or they will fight over what your policy should be.

Note: gcp.spanner.InstanceIAMBinding resources can be used in conjunction with gcp.spanner.InstanceIAMMember resources only if they do not grant privilege to the same role.

google_spanner_instance_iam_policy

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var admin = Output.Create(Gcp.Organizations.GetIAMPolicy.InvokeAsync(new Gcp.Organizations.GetIAMPolicyArgs
    {
        Binding = 
        {

            {
                { "role", "roles/editor" },
                { "members", 
                {
                    "user:jane@example.com",
                } },
            },
        },
    }));
    var instance = new Gcp.Spanner.InstanceIAMPolicy("instance", new Gcp.Spanner.InstanceIAMPolicyArgs
    {
        Instance = "your-instance-name",
        PolicyData = admin.Apply(admin => admin.PolicyData),
    });
}

}

google_spanner_instance_iam_binding

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var instance = new Gcp.Spanner.InstanceIAMBinding("instance", new Gcp.Spanner.InstanceIAMBindingArgs
    {
        Instance = "your-instance-name",
        Members = 
        {
            "user:jane@example.com",
        },
        Role = "roles/compute.networkUser",
    });
}

}

google_spanner_instance_iam_member

using Pulumi;
using Gcp = Pulumi.Gcp;

class MyStack : Stack
{
public MyStack()
{
    var instance = new Gcp.Spanner.InstanceIAMMember("instance", new Gcp.Spanner.InstanceIAMMemberArgs
    {
        Instance = "your-instance-name",
        Member = "user:jane@example.com",
        Role = "roles/compute.networkUser",
    });
}

}

InstanceIAMPolicyArgs

InstanceIAMPolicyState

InstanceState

Back to top Copyright 2016-2020, Pulumi Corporation.