import * as pulumi from "@pulumi/pulumi"; /** * Provides a Datadog Software Catalog Entity resource. This can be used to create and manage entities in Datadog Software Catalog using the YAML/JSON definition. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as datadog from "@pulumi/datadog"; * * // v3 service entity * const serviceV3 = new datadog.SoftwareCatalog("service_v3", {entity: `apiVersion: v3 * kind: service * metadata: * name: shopping-cart * displayName: Shopping Cart * inheritFrom: service:otherService * tags: * - tag:value * links: * - name: shopping-cart runbook * type: runbook * url: https://runbook/shopping-cart * - name: shopping-cart architecture * provider: gdoc * url: https://google.drive/shopping-cart-architecture * type: doc * - name: shopping-cart Wiki * provider: wiki * url: https://wiki/shopping-cart * type: doc * - name: shopping-cart source code * provider: github * url: http://github/shopping-cart * type: repo * contacts: * - name: Support Email * type: email * contact: team@shopping.com * - name: Support Slack * type: slack * contact: https://www.slack.com/archives/shopping-cart * owner: myteam * additionalOwners: * - name: opsTeam * type: operator * integrations: * pagerduty: * serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart * opsgenie: * serviceURL: https://www.opsgenie.com/service/shopping-cart * region: US * extensions: * datadoghq.com/shopping-cart: * customField: customValue * spec: * lifecycle: production * tier: "1" * type: web * languages: * - go * - python * dependsOn: * - service:serviceA * - service:serviceB * datadog: * performanceData: * tags: * - 'service:shopping-cart' * - 'hostname:shopping-cart' * events: * - name: "deployment events" * query: "app:myapp AND type:github" * - name: "event type B" * query: "app:myapp AND type:github" * logs: * - name: "critical logs" * query: "app:myapp AND type:github" * - name: "ops logs" * query: "app:myapp AND type:github" * pipelines: * fingerprints: * - fp1 * - fp2 * codeLocations: * - repositoryURL: http://github/shopping-cart.git * paths: * - baz/*.c * - bat/**/* * - ../plop/*.java * - repositoryURL: http://github/shopping-cart-2.git * paths: * - baz/*.c * - bat/**/* * - ../plop/*.java * `}); * // v3 datastore entity * const datastoreV3 = new datadog.SoftwareCatalog("datastore_v3", {entity: `apiVersion: v3 * kind: datastore * metadata: * name: shopping-cart-db * tags: * - tag:value * links: * - name: shopping-cart-db runbook * type: runbook * url: https://runbook/shopping-cart * contacts: * - name: Support Email * type: email * contact: team@shopping.com * - name: Support Slack * type: slack * contact: https://www.slack.com/archives/shopping-cart * owner: myteam * additionalOwners: * - name: opsTeam * type: operator * integrations: * pagerduty: * serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart * opsgenie: * serviceURL: https://www.opsgenie.com/service/shopping-cart * region: US * extensions: * datadoghq.com/shopping-cart-db: * customField: customValue * spec: * lifecycle: production * tier: "1" * type: "postgres" * datadog: * performanceData: * tags: ['tag:random'] * `}); * // v3 queue entity * const queueV3 = new datadog.SoftwareCatalog("queue_v3", {entity: `apiVersion: v3 * kind: queue * metadata: * name: order-queue * tags: * - tag:value * links: * - name: order-queue runbook * type: runbook * url: https://runbook/order-queue * contacts: * - name: Support Email * type: email * contact: team@shopping.com * - name: Support Slack * type: slack * contact: https://www.slack.com/archives/shopping-cart * owner: myteam * additionalOwners: * - name: opsTeam * type: operator * integrations: * pagerduty: * serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart * opsgenie: * serviceURL: https://www.opsgenie.com/service/shopping-cart * region: US * extensions: * datadoghq.com/order-queue: * customField: customValue * spec: * lifecycle: production * tier: "1" * type: kafka * datadog: * performanceData: * tags: ['tag:random'] * `}); * // v3 system entity * const systemV3 = new datadog.SoftwareCatalog("system_v3", {entity: `apiVersion: v3 * kind: system * metadata: * name: shopping-system * displayName: Shopping System * tags: * - tag:value * links: * - name: shopping-system runbook * type: runbook * url: https://runbook/shopping-system * contacts: * - name: Support Email * type: email * contact: team@shopping.com * - name: Support Slack * type: slack * contact: https://www.slack.com/archives/shopping-cart * owner: myteam * additionalOwners: * - name: opsTeam * type: operator * integrations: * pagerduty: * serviceURL: https://www.pagerduty.com/service-directory/Pshopping-cart * opsgenie: * serviceURL: https://www.opsgenie.com/service/shopping-cart * region: US * spec: * components: * - service:shopping-cart * - queue:order-queue * - database:shopping-cart-db * extensions: * datadoghq.com/shopping-system: * customField: customValue * datadog: * events: * - name: "deployment events" * query: "app:myapp AND type:github" * - name: "event type B" * query: "app:myapp AND type:github" * logs: * - name: "critical logs" * query: "app:myapp AND type:github" * - name: "ops logs" * query: "app:myapp AND type:github" * `}); * ``` * * ## Import * * The `pulumi import` command can be used, for example: * * ```sh * $ pulumi import datadog:index/softwareCatalog:SoftwareCatalog this * ``` */ export declare class SoftwareCatalog extends pulumi.CustomResource { /** * Get an existing SoftwareCatalog 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, state?: SoftwareCatalogState, opts?: pulumi.CustomResourceOptions): SoftwareCatalog; /** * Returns true if the given object is an instance of SoftwareCatalog. 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 SoftwareCatalog; /** * The catalog entity definition. Entity must be a valid entity YAML/JSON structure. */ readonly entity: pulumi.Output; /** * Create a SoftwareCatalog 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: SoftwareCatalogArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering SoftwareCatalog resources. */ export interface SoftwareCatalogState { /** * The catalog entity definition. Entity must be a valid entity YAML/JSON structure. */ entity?: pulumi.Input; } /** * The set of arguments for constructing a SoftwareCatalog resource. */ export interface SoftwareCatalogArgs { /** * The catalog entity definition. Entity must be a valid entity YAML/JSON structure. */ entity: pulumi.Input; }