UNPKG

@pulumi/gcp

Version:

A Pulumi package for creating and managing Google Cloud Platform resources.

277 lines • 10.8 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * An analytics datastore for an Apigee organization. Datastores configure * export destinations for Apigee Analytics data, supporting either Google * Cloud Storage (GCS) or BigQuery as targets. * * To get more information about Datastore, see: * * * [API documentation](https://cloud.google.com/apigee/docs/reference/apis/apigee/rest/v1/organizations.analytics.datastores) * * How-to Guides * * [Export analytics data](https://cloud.google.com/apigee/docs/api-platform/analytics/analytics-export) * * ## Example Usage * * ### Apigee Datastore Basic * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const current = gcp.organizations.getClientConfig({}); * const apigeeNetwork = new gcp.compute.Network("apigee_network", {name: "apigee-network"}); * const apigeeRange = new gcp.compute.GlobalAddress("apigee_range", { * name: "apigee-range", * purpose: "VPC_PEERING", * addressType: "INTERNAL", * prefixLength: 16, * network: apigeeNetwork.id, * }); * const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigee_vpc_connection", { * network: apigeeNetwork.id, * service: "servicenetworking.googleapis.com", * reservedPeeringRanges: [apigeeRange.name], * }); * const apigeeOrg = new gcp.apigee.Organization("apigee_org", { * analyticsRegion: "us-central1", * projectId: current.then(current => current.project), * authorizedNetwork: apigeeNetwork.id, * }, { * dependsOn: [apigeeVpcConnection], * }); * const analyticsBucket = new gcp.storage.Bucket("analytics_bucket", { * name: "my-analytics-bucket", * location: "US", * }); * const apigeeDatastore = new gcp.apigee.Datastore("apigee_datastore", { * orgId: apigeeOrg.id, * displayName: "my_datastore", * targetType: "gcs", * datastoreConfig: { * projectId: current.then(current => current.project), * bucketName: analyticsBucket.name, * path: "/analytics", * }, * }); * ``` * ### Apigee Datastore Bigquery * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as gcp from "@pulumi/gcp"; * * const current = gcp.organizations.getClientConfig({}); * const apigeeNetwork = new gcp.compute.Network("apigee_network", {name: "apigee-network"}); * const apigeeRange = new gcp.compute.GlobalAddress("apigee_range", { * name: "apigee-range", * purpose: "VPC_PEERING", * addressType: "INTERNAL", * prefixLength: 16, * network: apigeeNetwork.id, * }); * const apigeeVpcConnection = new gcp.servicenetworking.Connection("apigee_vpc_connection", { * network: apigeeNetwork.id, * service: "servicenetworking.googleapis.com", * reservedPeeringRanges: [apigeeRange.name], * }); * const apigeeOrg = new gcp.apigee.Organization("apigee_org", { * analyticsRegion: "us-central1", * projectId: current.then(current => current.project), * authorizedNetwork: apigeeNetwork.id, * }, { * dependsOn: [apigeeVpcConnection], * }); * const analyticsDataset = new gcp.bigquery.Dataset("analytics_dataset", { * datasetId: "my_analytics_dataset", * location: "US", * }); * const apigeeDatastore = new gcp.apigee.Datastore("apigee_datastore", { * orgId: apigeeOrg.id, * displayName: "my_bigquery_datastore", * targetType: "bigquery", * datastoreConfig: { * projectId: current.then(current => current.project), * datasetName: analyticsDataset.datasetId, * tablePrefix: "apigee_", * }, * }); * ``` * * ## Import * * Datastore can be imported using any of these accepted formats: * * * `{{org_id}}/analytics/datastores/{{name}}` * * `{{org_id}}/{{name}}` * * When using the `pulumi import` command, Datastore can be imported using one of the formats above. For example: * * ```sh * $ pulumi import gcp:apigee/datastore:Datastore default {{org_id}}/analytics/datastores/{{name}} * $ pulumi import gcp:apigee/datastore:Datastore default {{org_id}}/{{name}} * ``` */ export declare class Datastore extends pulumi.CustomResource { /** * Get an existing Datastore 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: string, id: pulumi.Input<pulumi.ID>, state?: DatastoreState, opts?: pulumi.CustomResourceOptions): Datastore; /** * Returns true if the given object is an instance of Datastore. This is designed to work even * when multiple copies of the Pulumi SDK have been loaded into the same process. */ static isInstance(obj: any): obj is Datastore; /** * The time at which the datastore was created in milliseconds since the epoch. */ readonly createTime: pulumi.Output<string>; /** * Configuration of the datastore target. * Structure is documented below. */ readonly datastoreConfig: pulumi.Output<outputs.apigee.DatastoreDatastoreConfig>; /** * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. * When a 'terraform destroy' or 'pulumi up' would delete the resource, * the command will fail if this field is set to "PREVENT" in Terraform state. * When set to "ABANDON", the command will remove the resource from Terraform * management without updating or deleting the resource in the API. * When set to "DELETE", deleting the resource is allowed. */ readonly deletionPolicy: pulumi.Output<string>; /** * The display name for the datastore. */ readonly displayName: pulumi.Output<string>; /** * The time at which the datastore was last updated in milliseconds since the epoch. */ readonly lastUpdateTime: pulumi.Output<string>; /** * The server-assigned UUID identifier for the datastore. Extracted * from the `self` field in the API response. */ readonly name: pulumi.Output<string>; /** * The Apigee organization name. */ readonly org: pulumi.Output<string>; /** * The Apigee Organization associated with the Apigee datastore, * in the format `organizations/{{org_name}}`. */ readonly orgId: pulumi.Output<string>; /** * The resource link for the datastore, including the full API path. */ readonly self: pulumi.Output<string>; /** * The type of target for the datastore. Must be `gcs` for Google * Cloud Storage or `bigquery` for BigQuery. */ readonly targetType: pulumi.Output<string>; /** * Create a Datastore resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ constructor(name: string, args: DatastoreArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Datastore resources. */ export interface DatastoreState { /** * The time at which the datastore was created in milliseconds since the epoch. */ createTime?: pulumi.Input<string | undefined>; /** * Configuration of the datastore target. * Structure is documented below. */ datastoreConfig?: pulumi.Input<inputs.apigee.DatastoreDatastoreConfig | undefined>; /** * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. * When a 'terraform destroy' or 'pulumi up' would delete the resource, * the command will fail if this field is set to "PREVENT" in Terraform state. * When set to "ABANDON", the command will remove the resource from Terraform * management without updating or deleting the resource in the API. * When set to "DELETE", deleting the resource is allowed. */ deletionPolicy?: pulumi.Input<string | undefined>; /** * The display name for the datastore. */ displayName?: pulumi.Input<string | undefined>; /** * The time at which the datastore was last updated in milliseconds since the epoch. */ lastUpdateTime?: pulumi.Input<string | undefined>; /** * The server-assigned UUID identifier for the datastore. Extracted * from the `self` field in the API response. */ name?: pulumi.Input<string | undefined>; /** * The Apigee organization name. */ org?: pulumi.Input<string | undefined>; /** * The Apigee Organization associated with the Apigee datastore, * in the format `organizations/{{org_name}}`. */ orgId?: pulumi.Input<string | undefined>; /** * The resource link for the datastore, including the full API path. */ self?: pulumi.Input<string | undefined>; /** * The type of target for the datastore. Must be `gcs` for Google * Cloud Storage or `bigquery` for BigQuery. */ targetType?: pulumi.Input<string | undefined>; } /** * The set of arguments for constructing a Datastore resource. */ export interface DatastoreArgs { /** * Configuration of the datastore target. * Structure is documented below. */ datastoreConfig: pulumi.Input<inputs.apigee.DatastoreDatastoreConfig>; /** * Whether Terraform will be prevented from destroying the resource. Defaults to DELETE. * When a 'terraform destroy' or 'pulumi up' would delete the resource, * the command will fail if this field is set to "PREVENT" in Terraform state. * When set to "ABANDON", the command will remove the resource from Terraform * management without updating or deleting the resource in the API. * When set to "DELETE", deleting the resource is allowed. */ deletionPolicy?: pulumi.Input<string | undefined>; /** * The display name for the datastore. */ displayName: pulumi.Input<string>; /** * The Apigee Organization associated with the Apigee datastore, * in the format `organizations/{{org_name}}`. */ orgId: pulumi.Input<string>; /** * The type of target for the datastore. Must be `gcs` for Google * Cloud Storage or `bigquery` for BigQuery. */ targetType: pulumi.Input<string>; } //# sourceMappingURL=datastore.d.ts.map