@pulumiverse/grafana
Version:
A Pulumi package for creating and managing grafana.
183 lines (182 loc) • 6.46 kB
TypeScript
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>;
}