1. Packages
  2. Google Cloud (GCP) Classic
  3. API Docs
  4. siteverification
  5. WebResource
Google Cloud v8.27.1 published on Friday, Apr 25, 2025 by Pulumi

gcp.siteverification.WebResource

Explore with Pulumi AI

A web resource is a website or domain with verified ownership. Once your ownership is verified you will be able to manage your website in the Google Search Console.

Note: The verification data (DNS TXT record, HTML file, meta tag, etc.) must already exist before the web resource is created, and must be deleted before the web resource is destroyed. The Google Site Verification API checks that the verification data exists at creation time and does not exist at destruction time and will fail if the required condition is not met.

To get more information about WebResource, see:

Example Usage

Site Verification Domain Record

import * as pulumi from "@pulumi/pulumi";
import * as gcp from "@pulumi/gcp";

const token = gcp.siteverification.getToken({
    type: "INET_DOMAIN",
    identifier: "www.example.com",
    verificationMethod: "DNS_TXT",
});
const example = new gcp.dns.RecordSet("example", {
    managedZone: "example.com",
    name: "www.example.com.",
    type: "TXT",
    rrdatas: [token.then(token => token.token)],
    ttl: 86400,
});
const exampleWebResource = new gcp.siteverification.WebResource("example", {
    site: {
        type: token.then(token => token.type),
        identifier: token.then(token => token.identifier),
    },
    verificationMethod: token.then(token => token.verificationMethod),
}, {
    dependsOn: [example],
});
Copy
import pulumi
import pulumi_gcp as gcp

token = gcp.siteverification.get_token(type="INET_DOMAIN",
    identifier="www.example.com",
    verification_method="DNS_TXT")
example = gcp.dns.RecordSet("example",
    managed_zone="example.com",
    name="www.example.com.",
    type="TXT",
    rrdatas=[token.token],
    ttl=86400)
example_web_resource = gcp.siteverification.WebResource("example",
    site={
        "type": token.type,
        "identifier": token.identifier,
    },
    verification_method=token.verification_method,
    opts = pulumi.ResourceOptions(depends_on=[example]))
Copy
package main

import (
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/dns"
	"github.com/pulumi/pulumi-gcp/sdk/v8/go/gcp/siteverification"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		token, err := siteverification.GetToken(ctx, &siteverification.GetTokenArgs{
			Type:               "INET_DOMAIN",
			Identifier:         "www.example.com",
			VerificationMethod: "DNS_TXT",
		}, nil)
		if err != nil {
			return err
		}
		example, err := dns.NewRecordSet(ctx, "example", &dns.RecordSetArgs{
			ManagedZone: pulumi.String("example.com"),
			Name:        pulumi.String("www.example.com."),
			Type:        pulumi.String("TXT"),
			Rrdatas: pulumi.StringArray{
				pulumi.String(token.Token),
			},
			Ttl: pulumi.Int(86400),
		})
		if err != nil {
			return err
		}
		_, err = siteverification.NewWebResource(ctx, "example", &siteverification.WebResourceArgs{
			Site: &siteverification.WebResourceSiteArgs{
				Type:       pulumi.String(token.Type),
				Identifier: pulumi.String(token.Identifier),
			},
			VerificationMethod: pulumi.String(token.VerificationMethod),
		}, pulumi.DependsOn([]pulumi.Resource{
			example,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
Copy
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Gcp = Pulumi.Gcp;

return await Deployment.RunAsync(() => 
{
    var token = Gcp.SiteVerification.GetToken.Invoke(new()
    {
        Type = "INET_DOMAIN",
        Identifier = "www.example.com",
        VerificationMethod = "DNS_TXT",
    });

    var example = new Gcp.Dns.RecordSet("example", new()
    {
        ManagedZone = "example.com",
        Name = "www.example.com.",
        Type = "TXT",
        Rrdatas = new[]
        {
            token.Apply(getTokenResult => getTokenResult.Token),
        },
        Ttl = 86400,
    });

    var exampleWebResource = new Gcp.SiteVerification.WebResource("example", new()
    {
        Site = new Gcp.SiteVerification.Inputs.WebResourceSiteArgs
        {
            Type = token.Apply(getTokenResult => getTokenResult.Type),
            Identifier = token.Apply(getTokenResult => getTokenResult.Identifier),
        },
        VerificationMethod = token.Apply(getTokenResult => getTokenResult.VerificationMethod),
    }, new CustomResourceOptions
    {
        DependsOn =
        {
            example,
        },
    });

});
Copy
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.gcp.siteverification.SiteverificationFunctions;
import com.pulumi.gcp.siteverification.inputs.GetTokenArgs;
import com.pulumi.gcp.dns.RecordSet;
import com.pulumi.gcp.dns.RecordSetArgs;
import com.pulumi.gcp.siteverification.WebResource;
import com.pulumi.gcp.siteverification.WebResourceArgs;
import com.pulumi.gcp.siteverification.inputs.WebResourceSiteArgs;
import com.pulumi.resources.CustomResourceOptions;
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) {
        final var token = SiteverificationFunctions.getToken(GetTokenArgs.builder()
            .type("INET_DOMAIN")
            .identifier("www.example.com")
            .verificationMethod("DNS_TXT")
            .build());

        var example = new RecordSet("example", RecordSetArgs.builder()
            .managedZone("example.com")
            .name("www.example.com.")
            .type("TXT")
            .rrdatas(token.token())
            .ttl(86400)
            .build());

        var exampleWebResource = new WebResource("exampleWebResource", WebResourceArgs.builder()
            .site(WebResourceSiteArgs.builder()
                .type(token.type())
                .identifier(token.identifier())
                .build())
            .verificationMethod(token.verificationMethod())
            .build(), CustomResourceOptions.builder()
                .dependsOn(example)
                .build());

    }
}
Copy
resources:
  example:
    type: gcp:dns:RecordSet
    properties:
      managedZone: example.com
      name: www.example.com.
      type: TXT
      rrdatas:
        - ${token.token}
      ttl: 86400
  exampleWebResource:
    type: gcp:siteverification:WebResource
    name: example
    properties:
      site:
        type: ${token.type}
        identifier: ${token.identifier}
      verificationMethod: ${token.verificationMethod}
    options:
      dependsOn:
        - ${example}
variables:
  token:
    fn::invoke:
      function: gcp:siteverification:getToken
      arguments:
        type: INET_DOMAIN
        identifier: www.example.com
        verificationMethod: DNS_TXT
Copy

Create WebResource Resource

Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

Constructor syntax

new WebResource(name: string, args: WebResourceArgs, opts?: CustomResourceOptions);
@overload
def WebResource(resource_name: str,
                args: WebResourceArgs,
                opts: Optional[ResourceOptions] = None)

@overload
def WebResource(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                site: Optional[WebResourceSiteArgs] = None,
                verification_method: Optional[str] = None)
func NewWebResource(ctx *Context, name string, args WebResourceArgs, opts ...ResourceOption) (*WebResource, error)
public WebResource(string name, WebResourceArgs args, CustomResourceOptions? opts = null)
public WebResource(String name, WebResourceArgs args)
public WebResource(String name, WebResourceArgs args, CustomResourceOptions options)
type: gcp:siteverification:WebResource
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

Parameters

name This property is required. string
The unique name of the resource.
args This property is required. WebResourceArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
resource_name This property is required. str
The unique name of the resource.
args This property is required. WebResourceArgs
The arguments to resource properties.
opts ResourceOptions
Bag of options to control resource's behavior.
ctx Context
Context object for the current deployment.
name This property is required. string
The unique name of the resource.
args This property is required. WebResourceArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name This property is required. string
The unique name of the resource.
args This property is required. WebResourceArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name This property is required. String
The unique name of the resource.
args This property is required. WebResourceArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

Constructor example

The following reference example uses placeholder values for all input properties.

var webResourceResource = new Gcp.SiteVerification.WebResource("webResourceResource", new()
{
    Site = new Gcp.SiteVerification.Inputs.WebResourceSiteArgs
    {
        Identifier = "string",
        Type = "string",
    },
    VerificationMethod = "string",
});
Copy
example, err := siteverification.NewWebResource(ctx, "webResourceResource", &siteverification.WebResourceArgs{
	Site: &siteverification.WebResourceSiteArgs{
		Identifier: pulumi.String("string"),
		Type:       pulumi.String("string"),
	},
	VerificationMethod: pulumi.String("string"),
})
Copy
var webResourceResource = new WebResource("webResourceResource", WebResourceArgs.builder()
    .site(WebResourceSiteArgs.builder()
        .identifier("string")
        .type("string")
        .build())
    .verificationMethod("string")
    .build());
Copy
web_resource_resource = gcp.siteverification.WebResource("webResourceResource",
    site={
        "identifier": "string",
        "type": "string",
    },
    verification_method="string")
Copy
const webResourceResource = new gcp.siteverification.WebResource("webResourceResource", {
    site: {
        identifier: "string",
        type: "string",
    },
    verificationMethod: "string",
});
Copy
type: gcp:siteverification:WebResource
properties:
    site:
        identifier: string
        type: string
    verificationMethod: string
Copy

WebResource Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

The WebResource resource accepts the following input properties:

Site
This property is required.
Changes to this property will trigger replacement.
WebResourceSite
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
VerificationMethod
This property is required.
Changes to this property will trigger replacement.
string
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
Site
This property is required.
Changes to this property will trigger replacement.
WebResourceSiteArgs
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
VerificationMethod
This property is required.
Changes to this property will trigger replacement.
string
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
site
This property is required.
Changes to this property will trigger replacement.
WebResourceSite
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verificationMethod
This property is required.
Changes to this property will trigger replacement.
String
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
site
This property is required.
Changes to this property will trigger replacement.
WebResourceSite
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verificationMethod
This property is required.
Changes to this property will trigger replacement.
string
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
site
This property is required.
Changes to this property will trigger replacement.
WebResourceSiteArgs
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verification_method
This property is required.
Changes to this property will trigger replacement.
str
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
site
This property is required.
Changes to this property will trigger replacement.
Property Map
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verificationMethod
This property is required.
Changes to this property will trigger replacement.
String
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.

Outputs

All input properties are implicitly available as output properties. Additionally, the WebResource resource produces the following output properties:

Id string
The provider-assigned unique ID for this managed resource.
Owners List<string>
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
WebResourceId string
The string used to identify this web resource.
Id string
The provider-assigned unique ID for this managed resource.
Owners []string
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
WebResourceId string
The string used to identify this web resource.
id String
The provider-assigned unique ID for this managed resource.
owners List<String>
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
webResourceId String
The string used to identify this web resource.
id string
The provider-assigned unique ID for this managed resource.
owners string[]
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
webResourceId string
The string used to identify this web resource.
id str
The provider-assigned unique ID for this managed resource.
owners Sequence[str]
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
web_resource_id str
The string used to identify this web resource.
id String
The provider-assigned unique ID for this managed resource.
owners List<String>
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
webResourceId String
The string used to identify this web resource.

Look up Existing WebResource Resource

Get an existing WebResource 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?: WebResourceState, opts?: CustomResourceOptions): WebResource
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        owners: Optional[Sequence[str]] = None,
        site: Optional[WebResourceSiteArgs] = None,
        verification_method: Optional[str] = None,
        web_resource_id: Optional[str] = None) -> WebResource
func GetWebResource(ctx *Context, name string, id IDInput, state *WebResourceState, opts ...ResourceOption) (*WebResource, error)
public static WebResource Get(string name, Input<string> id, WebResourceState? state, CustomResourceOptions? opts = null)
public static WebResource get(String name, Output<String> id, WebResourceState state, CustomResourceOptions options)
resources:  _:    type: gcp:siteverification:WebResource    get:      id: ${id}
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
The unique provider ID of the resource to lookup.
name This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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 This property is required.
The unique name of the resulting resource.
id This property is required.
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.
The following state arguments are supported:
Owners List<string>
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
Site Changes to this property will trigger replacement. WebResourceSite
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
VerificationMethod Changes to this property will trigger replacement. string
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
WebResourceId string
The string used to identify this web resource.
Owners []string
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
Site Changes to this property will trigger replacement. WebResourceSiteArgs
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
VerificationMethod Changes to this property will trigger replacement. string
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
WebResourceId string
The string used to identify this web resource.
owners List<String>
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
site Changes to this property will trigger replacement. WebResourceSite
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verificationMethod Changes to this property will trigger replacement. String
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
webResourceId String
The string used to identify this web resource.
owners string[]
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
site Changes to this property will trigger replacement. WebResourceSite
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verificationMethod Changes to this property will trigger replacement. string
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
webResourceId string
The string used to identify this web resource.
owners Sequence[str]
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
site Changes to this property will trigger replacement. WebResourceSiteArgs
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verification_method Changes to this property will trigger replacement. str
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
web_resource_id str
The string used to identify this web resource.
owners List<String>
The email addresses of all direct, verified owners of this exact property. Indirect owners — for example verified owners of the containing domain—are not included in this list.
site Changes to this property will trigger replacement. Property Map
Container for the address and type of a site for which a verification token will be verified. Structure is documented below.
verificationMethod Changes to this property will trigger replacement. String
The verification method for the Site Verification system to use to verify this site or domain. Possible values are: ANALYTICS, DNS_CNAME, DNS_TXT, FILE, META, TAG_MANAGER.
webResourceId String
The string used to identify this web resource.

Supporting Types

WebResourceSite
, WebResourceSiteArgs

Identifier
This property is required.
Changes to this property will trigger replacement.
string
The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the identifier is a domain name.


Type
This property is required.
Changes to this property will trigger replacement.
string
The type of resource to be verified. Possible values are: INET_DOMAIN, SITE.
Identifier
This property is required.
Changes to this property will trigger replacement.
string
The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the identifier is a domain name.


Type
This property is required.
Changes to this property will trigger replacement.
string
The type of resource to be verified. Possible values are: INET_DOMAIN, SITE.
identifier
This property is required.
Changes to this property will trigger replacement.
String
The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the identifier is a domain name.


type
This property is required.
Changes to this property will trigger replacement.
String
The type of resource to be verified. Possible values are: INET_DOMAIN, SITE.
identifier
This property is required.
Changes to this property will trigger replacement.
string
The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the identifier is a domain name.


type
This property is required.
Changes to this property will trigger replacement.
string
The type of resource to be verified. Possible values are: INET_DOMAIN, SITE.
identifier
This property is required.
Changes to this property will trigger replacement.
str
The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the identifier is a domain name.


type
This property is required.
Changes to this property will trigger replacement.
str
The type of resource to be verified. Possible values are: INET_DOMAIN, SITE.
identifier
This property is required.
Changes to this property will trigger replacement.
String
The site identifier. If the type is set to SITE, the identifier is a URL. If the type is set to INET_DOMAIN, the identifier is a domain name.


type
This property is required.
Changes to this property will trigger replacement.
String
The type of resource to be verified. Possible values are: INET_DOMAIN, SITE.

Import

WebResource can be imported using any of these accepted formats:

  • webResource/{{web_resource_id}}

  • {{web_resource_id}}

When using the pulumi import command, WebResource can be imported using one of the formats above. For example:

$ pulumi import gcp:siteverification/webResource:WebResource default webResource/{{web_resource_id}}
Copy
$ pulumi import gcp:siteverification/webResource:WebResource default {{web_resource_id}}
Copy

To learn more about importing existing cloud resources, see Importing resources.

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.