@pulumi/harness
Version:
A Pulumi package for creating and managing Harness resources.
147 lines • 4.88 kB
JavaScript
;
// *** WARNING: this file was generated by pulumi-language-nodejs. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
Object.defineProperty(exports, "__esModule", { value: true });
exports.Slo = void 0;
const pulumi = require("@pulumi/pulumi");
const utilities = require("../utilities");
/**
* Resource for creating an SLO.
*
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as harness from "@pulumi/harness";
*
* const example = new harness.platform.Slo("example", {
* orgId: "org_id",
* projectId: "project_id",
* identifier: "identifier",
* request: {
* name: "name",
* description: "description",
* tags: [
* "foo:bar",
* "bar:foo",
* ],
* userJourneyRefs: [
* "one",
* "two",
* ],
* sloTarget: {
* type: "Calender",
* sloTargetPercentage: 10,
* spec: JSON.stringify({
* type: "Monthly",
* spec: {
* dayOfMonth: 5,
* },
* }),
* },
* type: "Simple",
* spec: JSON.stringify({
* monitoredServiceRef: "monitoredServiceRef",
* serviceLevelIndicatorType: "Availability",
* serviceLevelIndicators: [{
* name: "name",
* identifier: "identifier",
* type: "Window",
* spec: {
* type: "Threshold",
* spec: {
* metric1: "metric1",
* thresholdValue: 10,
* thresholdType: ">",
* },
* sliMissingDataType: "Good",
* },
* }],
* }),
* notificationRuleRefs: [{
* notificationRuleRef: "notification_rule_ref",
* enabled: true,
* }],
* },
* });
* ```
*
* ## Import
*
* The `pulumi import` command can be used, for example:
*
* Import account level SLO
*
* ```sh
* $ pulumi import harness:platform/slo:Slo example <slo_id>
* ```
*
* Import organization level SLO
*
* ```sh
* $ pulumi import harness:platform/slo:Slo example <org_id>/<slo_id>
* ```
*
* Import project level SLO
*
* ```sh
* $ pulumi import harness:platform/slo:Slo example <org_id>/<project_id>/<slo_id>
* ```
*/
class Slo extends pulumi.CustomResource {
/**
* Get an existing Slo 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, id, state, opts) {
return new Slo(name, state, { ...opts, id: id });
}
/**
* Returns true if the given object is an instance of Slo. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj) {
if (obj === undefined || obj === null) {
return false;
}
return obj['__pulumiType'] === Slo.__pulumiType;
}
constructor(name, argsOrState, opts) {
let resourceInputs = {};
opts = opts || {};
if (opts.id) {
const state = argsOrState;
resourceInputs["identifier"] = state?.identifier;
resourceInputs["orgId"] = state?.orgId;
resourceInputs["projectId"] = state?.projectId;
resourceInputs["request"] = state?.request;
}
else {
const args = argsOrState;
if (args?.identifier === undefined && !opts.urn) {
throw new Error("Missing required property 'identifier'");
}
if (args?.orgId === undefined && !opts.urn) {
throw new Error("Missing required property 'orgId'");
}
if (args?.projectId === undefined && !opts.urn) {
throw new Error("Missing required property 'projectId'");
}
resourceInputs["identifier"] = args?.identifier;
resourceInputs["orgId"] = args?.orgId;
resourceInputs["projectId"] = args?.projectId;
resourceInputs["request"] = args?.request;
}
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
super(Slo.__pulumiType, name, resourceInputs, opts);
}
}
exports.Slo = Slo;
/** @internal */
Slo.__pulumiType = 'harness:platform/slo:Slo';
//# sourceMappingURL=slo.js.map