UNPKG

@pulumiverse/grafana

Version:

A Pulumi package for creating and managing grafana.

183 lines (182 loc) 6.46 kB
import * as pulumi from "@pulumi/pulumi"; import * as inputs from "../types/input"; import * as outputs from "../types/output"; /** * Manages a k6 schedule for automated test execution. * * ## Example Usage * * ```typescript * import * as pulumi from "@pulumi/pulumi"; * import * as grafana from "@pulumiverse/grafana"; * * const scheduleProject = new grafana.k6.Project("schedule_project", {name: "Terraform Schedule Resource Project"}); * const scheduledTest = new grafana.k6.LoadTest("scheduled_test", { * projectId: scheduleProject.id, * name: "Terraform Scheduled Resource Test", * script: `export default function() { * console.log('Hello from scheduled k6 test!'); * } * `, * }, { * dependsOn: [scheduleProject], * }); * const cronMonthly = new grafana.k6.Schedule("cron_monthly", { * loadTestId: scheduledTest.id, * starts: "2024-12-25T10:00:00Z", * cron: { * schedule: "0 10 1 * *", * timezone: "UTC", * }, * }); * const daily = new grafana.k6.Schedule("daily", { * loadTestId: scheduledTest.id, * starts: "2024-12-25T10:00:00Z", * recurrenceRule: { * frequency: "DAILY", * interval: 1, * }, * }); * const weekly = new grafana.k6.Schedule("weekly", { * loadTestId: scheduledTest.id, * starts: "2024-12-25T09:00:00Z", * recurrenceRule: { * frequency: "WEEKLY", * interval: 1, * bydays: [ * "MO", * "WE", * "FR", * ], * }, * }); * // Example with YEARLY frequency and count * const yearly = new grafana.k6.Schedule("yearly", { * loadTestId: scheduledTest.id, * starts: "2024-01-01T12:00:00Z", * recurrenceRule: { * frequency: "YEARLY", * interval: 1, * count: 5, * }, * }); * // One-time schedule without recurrence * const oneTime = new grafana.k6.Schedule("one_time", { * loadTestId: scheduledTest.id, * starts: "2024-12-25T15:00:00Z", * }); * ``` * * ## Import * * ```sh * terraform import grafana_k6_schedule.name "{{ load_test_id }}" * ``` */ export declare class Schedule extends pulumi.CustomResource { /** * Get an existing Schedule 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?: ScheduleState, opts?: pulumi.CustomResourceOptions): Schedule; /** * Returns true if the given object is an instance of Schedule. 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 Schedule; /** * The email of the user who created the schedule. */ readonly createdBy: pulumi.Output<string>; /** * The cron schedule to trigger the test periodically. If not specified, the test will run only once on the 'starts' date. Only one of `recurrenceRule` and `cron` can be set. */ readonly cron: pulumi.Output<outputs.k6.ScheduleCron | undefined>; /** * Whether the schedule is deactivated. */ readonly deactivated: pulumi.Output<boolean>; /** * The identifier of the load test to schedule. */ readonly loadTestId: pulumi.Output<string>; /** * The next scheduled execution time. */ readonly nextRun: pulumi.Output<string>; /** * The schedule recurrence settings. If not specified, the test will run only once on the 'starts' date. Only one of `recurrenceRule` and `cron` can be set. */ readonly recurrenceRule: pulumi.Output<outputs.k6.ScheduleRecurrenceRule | undefined>; /** * The start time for the schedule (RFC3339 format). */ readonly starts: pulumi.Output<string>; /** * Create a Schedule 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: ScheduleArgs, opts?: pulumi.CustomResourceOptions); } /** * Input properties used for looking up and filtering Schedule resources. */ export interface ScheduleState { /** * The email of the user who created the schedule. */ createdBy?: pulumi.Input<string>; /** * The cron schedule to trigger the test periodically. If not specified, the test will run only once on the 'starts' date. Only one of `recurrenceRule` and `cron` can be set. */ cron?: pulumi.Input<inputs.k6.ScheduleCron>; /** * Whether the schedule is deactivated. */ deactivated?: pulumi.Input<boolean>; /** * The identifier of the load test to schedule. */ loadTestId?: pulumi.Input<string>; /** * The next scheduled execution time. */ nextRun?: pulumi.Input<string>; /** * The schedule recurrence settings. If not specified, the test will run only once on the 'starts' date. Only one of `recurrenceRule` and `cron` can be set. */ recurrenceRule?: pulumi.Input<inputs.k6.ScheduleRecurrenceRule>; /** * The start time for the schedule (RFC3339 format). */ starts?: pulumi.Input<string>; } /** * The set of arguments for constructing a Schedule resource. */ export interface ScheduleArgs { /** * The cron schedule to trigger the test periodically. If not specified, the test will run only once on the 'starts' date. Only one of `recurrenceRule` and `cron` can be set. */ cron?: pulumi.Input<inputs.k6.ScheduleCron>; /** * The identifier of the load test to schedule. */ loadTestId: pulumi.Input<string>; /** * The schedule recurrence settings. If not specified, the test will run only once on the 'starts' date. Only one of `recurrenceRule` and `cron` can be set. */ recurrenceRule?: pulumi.Input<inputs.k6.ScheduleRecurrenceRule>; /** * The start time for the schedule (RFC3339 format). */ starts: pulumi.Input<string>; }