import * as pulumi from "@pulumi/pulumi"; /** * Resource for managing Harness Chaos Hub V2. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as harness from "@pulumi/harness"; * * // ============================================================================ * // Harness Chaos Hub V2 Resource Examples * // ============================================================================ * // * // Chaos Hubs store chaos artifacts (templates, faults, probes, actions). * // These examples are based on TESTED configurations from the e2e-test suite. * // * // Key Points: * // - Hubs can be created at account, org, or project scope * // - connector_ref, repo_branch, repo_name are OPTIONAL (not required) * // - Use lifecycle { ignore_changes = [tags] } to prevent drift * // ============================================================================ * // ---------------------------------------------------------------------------- * // Example 1: Account-Level Chaos Hub * // ---------------------------------------------------------------------------- * // Account-level hub accessible across all orgs and projects * const accountLevel = new harness.chaos.HubV2("account_level", { * identity: "account-chaos-hub", * name: "Account Chaos Hub", * description: "Account-level chaos hub for enterprise-wide templates", * tags: [ * "account", * "enterprise", * "chaos", * ], * }, { * ignoreChanges: ["tags"], * }); * // ---------------------------------------------------------------------------- * // Example 2: Org-Level Chaos Hub (TESTED ✅) * // ---------------------------------------------------------------------------- * // Org-level hub accessible within the organization * const orgLevel = new harness.chaos.HubV2("org_level", { * orgId: _this.id, * identity: "org-chaos-hub", * name: "Org Chaos Hub", * description: "Org-level chaos hub for shared templates", * tags: [ * "org", * "shared", * "chaos", * ], * }, { * dependsOn: [_this], * ignoreChanges: ["tags"], * }); * // ---------------------------------------------------------------------------- * // Example 3: Project-Level Chaos Hub * // ---------------------------------------------------------------------------- * // Project-level hub for project-specific templates * const projectLevel = new harness.chaos.HubV2("project_level", { * orgId: _this.id, * projectId: thisHarnessPlatformProject.id, * identity: "project-chaos-hub", * name: "Project Chaos Hub", * description: "Project-level chaos hub for team templates", * tags: [ * "project", * "team", * "chaos", * ], * }, { * dependsOn: [thisHarnessPlatformProject], * ignoreChanges: ["tags"], * }); * ``` * * ## Import * * The `pulumi import` command can be used, for example: * * Import Account level Chaos Hub * * ```sh * $ pulumi import harness:chaos/hubV2:HubV2 account_level * ``` * * Import Org level Chaos Hub * * ```sh * $ pulumi import harness:chaos/hubV2:HubV2 org_level / * ``` * * Import Project level Chaos Hub * * ```sh * $ pulumi import harness:chaos/hubV2:HubV2 project_level // * ``` */ export declare class HubV2 extends pulumi.CustomResource { /** * Get an existing HubV2 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?: HubV2State, opts?: pulumi.CustomResourceOptions): HubV2; /** * Returns true if the given object is an instance of HubV2. 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 HubV2; /** * Account ID. */ readonly accountId: pulumi.Output; /** * Number of action templates in the hub. */ readonly actionTemplateCount: pulumi.Output; /** * Connector ID (deprecated, use connector_ref). */ readonly connectorId: pulumi.Output; /** * Reference to the Git connector (format: scope.connectorId, e.g., org.myconnector or account.myconnector). */ readonly connectorRef: pulumi.Output; /** * Creation timestamp (Unix epoch). */ readonly createdAt: pulumi.Output; /** * User who created the chaos hub. */ readonly createdBy: pulumi.Output; /** * Description of the chaos hub. */ readonly description: pulumi.Output; /** * Number of experiment templates in the hub. */ readonly experimentTemplateCount: pulumi.Output; /** * Number of fault templates in the hub. */ readonly faultTemplateCount: pulumi.Output; /** * Internal hub ID returned by the API. */ readonly hubId: pulumi.Output; /** * Unique identifier for the chaos hub. */ readonly identity: pulumi.Output; /** * Whether this is the default chaos hub. */ readonly isDefault: pulumi.Output; /** * Whether the chaos hub has been removed. */ readonly isRemoved: pulumi.Output; /** * Timestamp of the last sync (Unix epoch). */ readonly lastSyncedAt: pulumi.Output; /** * Name of the chaos hub. */ readonly name: pulumi.Output; /** * The ID of the organization. */ readonly orgId: pulumi.Output; /** * Number of probe templates in the hub. */ readonly probeTemplateCount: pulumi.Output; /** * The ID of the project. */ readonly projectId: pulumi.Output; /** * Git repository branch. */ readonly repoBranch: pulumi.Output; /** * Name of the Git repository (required for account-level connectors). */ readonly repoName: pulumi.Output; /** * Git repository URL. */ readonly repoUrl: pulumi.Output; /** * Tags to associate with the chaos hub. */ readonly tags: pulumi.Output; /** * Last update timestamp (Unix epoch). */ readonly updatedAt: pulumi.Output; /** * User who last updated the chaos hub. */ readonly updatedBy: pulumi.Output; /** * Create a HubV2 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: HubV2Args, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering HubV2 resources. */ export interface HubV2State { /** * Account ID. */ accountId?: pulumi.Input; /** * Number of action templates in the hub. */ actionTemplateCount?: pulumi.Input; /** * Connector ID (deprecated, use connector_ref). */ connectorId?: pulumi.Input; /** * Reference to the Git connector (format: scope.connectorId, e.g., org.myconnector or account.myconnector). */ connectorRef?: pulumi.Input; /** * Creation timestamp (Unix epoch). */ createdAt?: pulumi.Input; /** * User who created the chaos hub. */ createdBy?: pulumi.Input; /** * Description of the chaos hub. */ description?: pulumi.Input; /** * Number of experiment templates in the hub. */ experimentTemplateCount?: pulumi.Input; /** * Number of fault templates in the hub. */ faultTemplateCount?: pulumi.Input; /** * Internal hub ID returned by the API. */ hubId?: pulumi.Input; /** * Unique identifier for the chaos hub. */ identity?: pulumi.Input; /** * Whether this is the default chaos hub. */ isDefault?: pulumi.Input; /** * Whether the chaos hub has been removed. */ isRemoved?: pulumi.Input; /** * Timestamp of the last sync (Unix epoch). */ lastSyncedAt?: pulumi.Input; /** * Name of the chaos hub. */ name?: pulumi.Input; /** * The ID of the organization. */ orgId?: pulumi.Input; /** * Number of probe templates in the hub. */ probeTemplateCount?: pulumi.Input; /** * The ID of the project. */ projectId?: pulumi.Input; /** * Git repository branch. */ repoBranch?: pulumi.Input; /** * Name of the Git repository (required for account-level connectors). */ repoName?: pulumi.Input; /** * Git repository URL. */ repoUrl?: pulumi.Input; /** * Tags to associate with the chaos hub. */ tags?: pulumi.Input[] | undefined>; /** * Last update timestamp (Unix epoch). */ updatedAt?: pulumi.Input; /** * User who last updated the chaos hub. */ updatedBy?: pulumi.Input; } /** * The set of arguments for constructing a HubV2 resource. */ export interface HubV2Args { /** * Reference to the Git connector (format: scope.connectorId, e.g., org.myconnector or account.myconnector). */ connectorRef?: pulumi.Input; /** * Description of the chaos hub. */ description?: pulumi.Input; /** * Unique identifier for the chaos hub. */ identity: pulumi.Input; /** * Name of the chaos hub. */ name?: pulumi.Input; /** * The ID of the organization. */ orgId?: pulumi.Input; /** * The ID of the project. */ projectId?: pulumi.Input; /** * Git repository branch. */ repoBranch?: pulumi.Input; /** * Name of the Git repository (required for account-level connectors). */ repoName?: pulumi.Input; /** * Tags to associate with the chaos hub. */ tags?: pulumi.Input[] | undefined>; } //# sourceMappingURL=hubV2.d.ts.map