@pulumiverse/buildkite 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/config/vars.d.ts +5 -1
  2. package/config/vars.js +6 -0
  3. package/config/vars.js.map +1 -1
  4. package/getMeta.d.ts +0 -3
  5. package/index.d.ts +2 -1
  6. package/index.js +3 -1
  7. package/index.js.map +1 -1
  8. package/organization/getOrganization.d.ts +2 -46
  9. package/organization/getOrganization.js +3 -32
  10. package/organization/getOrganization.js.map +1 -1
  11. package/organization/index.d.ts +4 -2
  12. package/organization/index.js +7 -3
  13. package/organization/index.js.map +1 -1
  14. package/organization/organization.d.ts +78 -0
  15. package/organization/organization.js +79 -0
  16. package/organization/organization.js.map +1 -0
  17. package/organization/settings.d.ts +2 -0
  18. package/organization/settings.js +2 -0
  19. package/organization/settings.js.map +1 -1
  20. package/package.json +2 -2
  21. package/pipeline/getPipeline.d.ts +1 -4
  22. package/pipeline/getPipeline.js.map +1 -1
  23. package/pipeline/index.d.ts +3 -0
  24. package/pipeline/index.js +6 -1
  25. package/pipeline/index.js.map +1 -1
  26. package/pipeline/pipeline.d.ts +35 -114
  27. package/pipeline/pipeline.js +0 -100
  28. package/pipeline/pipeline.js.map +1 -1
  29. package/pipeline/schedule.d.ts +17 -14
  30. package/pipeline/schedule.js +5 -11
  31. package/pipeline/schedule.js.map +1 -1
  32. package/pipeline/team.d.ts +128 -0
  33. package/pipeline/team.js +112 -0
  34. package/pipeline/team.js.map +1 -0
  35. package/provider.d.ts +6 -2
  36. package/provider.js +1 -0
  37. package/provider.js.map +1 -1
  38. package/team/getTeam.d.ts +24 -10
  39. package/team/getTeam.js +6 -4
  40. package/team/getTeam.js.map +1 -1
  41. package/team/team.d.ts +1 -1
  42. package/testsuite/index.d.ts +6 -0
  43. package/testsuite/index.js +27 -0
  44. package/testsuite/index.js.map +1 -0
  45. package/testsuite/team.d.ts +166 -0
  46. package/testsuite/team.js +150 -0
  47. package/testsuite/team.js.map +1 -0
  48. package/testsuite/testSuite.d.ts +120 -0
  49. package/testsuite/testSuite.js +91 -0
  50. package/testsuite/testSuite.js.map +1 -0
  51. package/types/input.d.ts +3 -4
  52. package/types/output.d.ts +8 -9
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Team = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * ## # Resource: pipelineTeam
10
+ *
11
+ * This resource allows you to create and manage team configuration in a pipeline.
12
+ *
13
+ * Buildkite Documentation: https://buildkite.com/docs/pipelines/permissions#permissions-with-teams-pipeline-level-permissions
14
+ *
15
+ * ## Example Usage
16
+ *
17
+ * ```typescript
18
+ * import * as pulumi from "@pulumi/pulumi";
19
+ * import * as buildkite from "@pulumiverse/buildkite";
20
+ *
21
+ * const developers = new buildkite.pipeline.Team("developers", {
22
+ * pipelineId: buildkite_pipeline.repo2,
23
+ * teamId: buildkite_team.test.id,
24
+ * accessLevel: "MANAGE_BUILD_AND_READ",
25
+ * });
26
+ * ```
27
+ *
28
+ * ## Import
29
+ *
30
+ * Pipeline teams can be imported using their `GraphQL ID`, e.g.
31
+ *
32
+ * ```sh
33
+ * $ pulumi import buildkite:Pipeline/team:Team guests VGVhbS0tLWU1YjQyMDQyLTUzN2QtNDZjNi04MjY0LTliZjFkMzkyYjZkNQ==
34
+ * ```
35
+ *
36
+ * Your pipeline team's GraphQL ID can be found with the below GraphQL query below.
37
+ *
38
+ * graphql query getPipelineTeamId {
39
+ *
40
+ * pipeline(slug"ORGANIZATION_SLUG/PIPELINE_SLUG") { teams(first5, search"PIPELINE_SEARCH_TERM") {
41
+ *
42
+ * edges{
43
+ *
44
+ * node{
45
+ *
46
+ * id
47
+ *
48
+ * }
49
+ *
50
+ * }
51
+ *
52
+ * }
53
+ *
54
+ * } }
55
+ */
56
+ class Team extends pulumi.CustomResource {
57
+ /**
58
+ * Get an existing Team resource's state with the given name, ID, and optional extra
59
+ * properties used to qualify the lookup.
60
+ *
61
+ * @param name The _unique_ name of the resulting resource.
62
+ * @param id The _unique_ provider ID of the resource to lookup.
63
+ * @param state Any extra arguments used during the lookup.
64
+ * @param opts Optional settings to control the behavior of the CustomResource.
65
+ */
66
+ static get(name, id, state, opts) {
67
+ return new Team(name, state, Object.assign(Object.assign({}, opts), { id: id }));
68
+ }
69
+ /**
70
+ * Returns true if the given object is an instance of Team. This is designed to work even
71
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
72
+ */
73
+ static isInstance(obj) {
74
+ if (obj === undefined || obj === null) {
75
+ return false;
76
+ }
77
+ return obj['__pulumiType'] === Team.__pulumiType;
78
+ }
79
+ constructor(name, argsOrState, opts) {
80
+ let resourceInputs = {};
81
+ opts = opts || {};
82
+ if (opts.id) {
83
+ const state = argsOrState;
84
+ resourceInputs["accessLevel"] = state ? state.accessLevel : undefined;
85
+ resourceInputs["pipelineId"] = state ? state.pipelineId : undefined;
86
+ resourceInputs["teamId"] = state ? state.teamId : undefined;
87
+ resourceInputs["uuid"] = state ? state.uuid : undefined;
88
+ }
89
+ else {
90
+ const args = argsOrState;
91
+ if ((!args || args.accessLevel === undefined) && !opts.urn) {
92
+ throw new Error("Missing required property 'accessLevel'");
93
+ }
94
+ if ((!args || args.pipelineId === undefined) && !opts.urn) {
95
+ throw new Error("Missing required property 'pipelineId'");
96
+ }
97
+ if ((!args || args.teamId === undefined) && !opts.urn) {
98
+ throw new Error("Missing required property 'teamId'");
99
+ }
100
+ resourceInputs["accessLevel"] = args ? args.accessLevel : undefined;
101
+ resourceInputs["pipelineId"] = args ? args.pipelineId : undefined;
102
+ resourceInputs["teamId"] = args ? args.teamId : undefined;
103
+ resourceInputs["uuid"] = undefined /*out*/;
104
+ }
105
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
106
+ super(Team.__pulumiType, name, resourceInputs, opts);
107
+ }
108
+ }
109
+ exports.Team = Team;
110
+ /** @internal */
111
+ Team.__pulumiType = 'buildkite:Pipeline/team:Team';
112
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../pipeline/team.ts"],"names":[],"mappings":"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"}
package/provider.d.ts CHANGED
@@ -12,7 +12,7 @@ export declare class Provider extends pulumi.ProviderResource {
12
12
  */
13
13
  static isInstance(obj: any): obj is Provider;
14
14
  /**
15
- * API token with GraphQL access and `write_pipelines, read_pipelines` scopes
15
+ * API token with GraphQL access and `write_pipelines, read_pipelines` and `write_suites` REST API scopes
16
16
  */
17
17
  readonly apiToken: pulumi.Output<string | undefined>;
18
18
  /**
@@ -41,9 +41,13 @@ export declare class Provider extends pulumi.ProviderResource {
41
41
  */
42
42
  export interface ProviderArgs {
43
43
  /**
44
- * API token with GraphQL access and `write_pipelines, read_pipelines` scopes
44
+ * API token with GraphQL access and `write_pipelines, read_pipelines` and `write_suites` REST API scopes
45
45
  */
46
46
  apiToken?: pulumi.Input<string>;
47
+ /**
48
+ * Archive pipelines when destroying instead of completely deleting.
49
+ */
50
+ archivePipelineOnDelete?: pulumi.Input<boolean>;
47
51
  /**
48
52
  * Base URL for the GraphQL API to use
49
53
  */
package/provider.js CHANGED
@@ -34,6 +34,7 @@ class Provider extends pulumi.ProviderResource {
34
34
  opts = opts || {};
35
35
  {
36
36
  resourceInputs["apiToken"] = (args === null || args === void 0 ? void 0 : args.apiToken) ? pulumi.secret(args.apiToken) : undefined;
37
+ resourceInputs["archivePipelineOnDelete"] = pulumi.output(args ? args.archivePipelineOnDelete : undefined).apply(JSON.stringify);
37
38
  resourceInputs["graphqlUrl"] = args ? args.graphqlUrl : undefined;
38
39
  resourceInputs["organization"] = args ? args.organization : undefined;
39
40
  resourceInputs["restUrl"] = args ? args.restUrl : undefined;
package/provider.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../provider.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,MAAM,CAAC,gBAAgB;IAIjD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC/E,CAAC;IAmBD;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,IAAmB,EAAE,IAA6B;QACxE,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB;YACI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/D;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,EAAE,uBAAuB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;;AApDL,4BAqDC;AApDG,gBAAgB;AACO,qBAAY,GAAG,WAAW,CAAC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../provider.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;GAKG;AACH,MAAa,QAAS,SAAQ,MAAM,CAAC,gBAAgB;IAIjD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,mBAAmB,GAAG,QAAQ,CAAC,YAAY,CAAC;IAC/E,CAAC;IAmBD;;;;;;OAMG;IACH,YAAY,IAAY,EAAE,IAAmB,EAAE,IAA6B;QACxE,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB;YACI,cAAc,CAAC,UAAU,CAAC,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,cAAc,CAAC,yBAAyB,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjI,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAClE,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;SAC/D;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,EAAE,uBAAuB,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC7D,CAAC;;AArDL,4BAsDC;AArDG,gBAAgB;AACO,qBAAY,GAAG,WAAW,CAAC"}
package/team/getTeam.d.ts CHANGED
@@ -13,20 +13,27 @@ import * as pulumi from "@pulumi/pulumi";
13
13
  * import * as pulumi from "@pulumi/pulumi";
14
14
  * import * as buildkite from "@pulumi/buildkite";
15
15
  *
16
- * const myTeam = buildkite.Team.getTeam({
17
- * slug: "my_team",
16
+ * const myTeamData = buildkite.Team.getTeam({
17
+ * id: "<team id>",
18
18
  * });
19
19
  * ```
20
20
  */
21
- export declare function getTeam(args: GetTeamArgs, opts?: pulumi.InvokeOptions): Promise<GetTeamResult>;
21
+ export declare function getTeam(args?: GetTeamArgs, opts?: pulumi.InvokeOptions): Promise<GetTeamResult>;
22
22
  /**
23
23
  * A collection of arguments for invoking getTeam.
24
24
  */
25
25
  export interface GetTeamArgs {
26
26
  /**
27
- * The slug of the team, available in the URL of the team on buildkite.com
27
+ * The GraphQL ID of the team, available in the Settings page for the team.
28
28
  */
29
- slug: string;
29
+ id?: string;
30
+ /**
31
+ * The slug of the team. Available in the URL of the team on buildkite.com; in the format
32
+ * "<organizaton/team-name>"
33
+ *
34
+ * The `team` data-source supports **either** the use of `id` or `slug` for lookup of a team.
35
+ */
36
+ slug?: string;
30
37
  }
31
38
  /**
32
39
  * A collection of values returned by getTeam.
@@ -80,18 +87,25 @@ export interface GetTeamResult {
80
87
  * import * as pulumi from "@pulumi/pulumi";
81
88
  * import * as buildkite from "@pulumi/buildkite";
82
89
  *
83
- * const myTeam = buildkite.Team.getTeam({
84
- * slug: "my_team",
90
+ * const myTeamData = buildkite.Team.getTeam({
91
+ * id: "<team id>",
85
92
  * });
86
93
  * ```
87
94
  */
88
- export declare function getTeamOutput(args: GetTeamOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetTeamResult>;
95
+ export declare function getTeamOutput(args?: GetTeamOutputArgs, opts?: pulumi.InvokeOptions): pulumi.Output<GetTeamResult>;
89
96
  /**
90
97
  * A collection of arguments for invoking getTeam.
91
98
  */
92
99
  export interface GetTeamOutputArgs {
93
100
  /**
94
- * The slug of the team, available in the URL of the team on buildkite.com
101
+ * The GraphQL ID of the team, available in the Settings page for the team.
102
+ */
103
+ id?: pulumi.Input<string>;
104
+ /**
105
+ * The slug of the team. Available in the URL of the team on buildkite.com; in the format
106
+ * "<organizaton/team-name>"
107
+ *
108
+ * The `team` data-source supports **either** the use of `id` or `slug` for lookup of a team.
95
109
  */
96
- slug: pulumi.Input<string>;
110
+ slug?: pulumi.Input<string>;
97
111
  }
package/team/getTeam.js CHANGED
@@ -19,14 +19,16 @@ const utilities = require("../utilities");
19
19
  * import * as pulumi from "@pulumi/pulumi";
20
20
  * import * as buildkite from "@pulumi/buildkite";
21
21
  *
22
- * const myTeam = buildkite.Team.getTeam({
23
- * slug: "my_team",
22
+ * const myTeamData = buildkite.Team.getTeam({
23
+ * id: "<team id>",
24
24
  * });
25
25
  * ```
26
26
  */
27
27
  function getTeam(args, opts) {
28
+ args = args || {};
28
29
  opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts || {});
29
30
  return pulumi.runtime.invoke("buildkite:Team/getTeam:getTeam", {
31
+ "id": args.id,
30
32
  "slug": args.slug,
31
33
  }, opts);
32
34
  }
@@ -45,8 +47,8 @@ exports.getTeam = getTeam;
45
47
  * import * as pulumi from "@pulumi/pulumi";
46
48
  * import * as buildkite from "@pulumi/buildkite";
47
49
  *
48
- * const myTeam = buildkite.Team.getTeam({
49
- * slug: "my_team",
50
+ * const myTeamData = buildkite.Team.getTeam({
51
+ * id: "<team id>",
50
52
  * });
51
53
  * ```
52
54
  */
@@ -1 +1 @@
1
- {"version":3,"file":"getTeam.js","sourceRoot":"","sources":["../../team/getTeam.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,OAAO,CAAC,IAAiB,EAAE,IAA2B;IAElE,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAgC,EAAE;QAC3D,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AAND,0BAMC;AAkDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,aAAa,CAAC,IAAuB,EAAE,IAA2B;IAC9E,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AAClE,CAAC;AAFD,sCAEC"}
1
+ {"version":3,"file":"getTeam.js","sourceRoot":"","sources":["../../team/getTeam.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,OAAO,CAAC,IAAkB,EAAE,IAA2B;IACnE,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IAElB,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IACzE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAgC,EAAE;QAC3D,IAAI,EAAE,IAAI,CAAC,EAAE;QACb,MAAM,EAAE,IAAI,CAAC,IAAI;KACpB,EAAE,IAAI,CAAC,CAAC;AACb,CAAC;AARD,0BAQC;AAyDD;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAgB,aAAa,CAAC,IAAwB,EAAE,IAA2B;IAC/E,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAA;AAClE,CAAC;AAFD,sCAEC"}
package/team/team.d.ts CHANGED
@@ -82,7 +82,7 @@ export declare class Team extends pulumi.CustomResource {
82
82
  /**
83
83
  * Whether team members can create.
84
84
  */
85
- readonly membersCanCreatePipelines: pulumi.Output<boolean | undefined>;
85
+ readonly membersCanCreatePipelines: pulumi.Output<boolean>;
86
86
  /**
87
87
  * The name of the team.
88
88
  */
@@ -0,0 +1,6 @@
1
+ export { TeamArgs, TeamState } from "./team";
2
+ export type Team = import("./team").Team;
3
+ export declare const Team: typeof import("./team").Team;
4
+ export { TestSuiteArgs, TestSuiteState } from "./testSuite";
5
+ export type TestSuite = import("./testSuite").TestSuite;
6
+ export declare const TestSuite: typeof import("./testSuite").TestSuite;
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TestSuite = exports.Team = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ exports.Team = null;
9
+ utilities.lazyLoad(exports, ["Team"], () => require("./team"));
10
+ exports.TestSuite = null;
11
+ utilities.lazyLoad(exports, ["TestSuite"], () => require("./testSuite"));
12
+ const _module = {
13
+ version: utilities.getVersion(),
14
+ construct: (name, type, urn) => {
15
+ switch (type) {
16
+ case "buildkite:TestSuite/team:Team":
17
+ return new exports.Team(name, undefined, { urn });
18
+ case "buildkite:TestSuite/testSuite:TestSuite":
19
+ return new exports.TestSuite(name, undefined, { urn });
20
+ default:
21
+ throw new Error(`unknown resource type ${type}`);
22
+ }
23
+ },
24
+ };
25
+ pulumi.runtime.registerResourceModule("buildkite", "TestSuite/team", _module);
26
+ pulumi.runtime.registerResourceModule("buildkite", "TestSuite/testSuite", _module);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../testsuite/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAK7B,QAAA,IAAI,GAAiC,IAAW,CAAC;AAC9D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAIlD,QAAA,SAAS,GAA2C,IAAW,CAAC;AAC7E,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;AAGzE,MAAM,OAAO,GAAG;IACZ,OAAO,EAAE,SAAS,CAAC,UAAU,EAAE;IAC/B,SAAS,EAAE,CAAC,IAAY,EAAE,IAAY,EAAE,GAAW,EAAmB,EAAE;QACpE,QAAQ,IAAI,EAAE;YACV,KAAK,+BAA+B;gBAChC,OAAO,IAAI,YAAI,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YAClD,KAAK,yCAAyC;gBAC1C,OAAO,IAAI,iBAAS,CAAC,IAAI,EAAO,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,CAAA;YACvD;gBACI,MAAM,IAAI,KAAK,CAAC,yBAAyB,IAAI,EAAE,CAAC,CAAC;SACxD;IACL,CAAC;CACJ,CAAC;AACF,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,gBAAgB,EAAE,OAAO,CAAC,CAAA;AAC7E,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,WAAW,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAA"}
@@ -0,0 +1,166 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * ## # Resource: testSuiteTeam
4
+ *
5
+ * This resources allows you to create, manage and import team access to Test Suites.
6
+ *
7
+ * Buildkite documentation: https://buildkite.com/docs/test-analytics
8
+ *
9
+ * ## Example Usage
10
+ *
11
+ * ```typescript
12
+ * import * as pulumi from "@pulumi/pulumi";
13
+ * import * as buildkite from "@pulumiverse/buildkite";
14
+ *
15
+ * const owners = new buildkite.team.Team("owners", {
16
+ * defaultTeam: false,
17
+ * privacy: "VISIBLE",
18
+ * defaultMemberRole: "MAINTAINER",
19
+ * });
20
+ * const viewers = new buildkite.team.Team("viewers", {
21
+ * defaultTeam: false,
22
+ * privacy: "VISIBLE",
23
+ * defaultMemberRole: "MAINTAINER",
24
+ * });
25
+ * const rspecSuite = new buildkite.testsuite.TestSuite("rspecSuite", {
26
+ * defaultBranch: "main",
27
+ * teamOwnerId: owners.id,
28
+ * });
29
+ * const viewersRspec = new buildkite.testsuite.Team("viewersRspec", {
30
+ * testSuiteId: rspecSuite.id,
31
+ * teamId: viewers.id,
32
+ * accessLevel: "READ_ONLY",
33
+ * });
34
+ * ```
35
+ *
36
+ * ## Import
37
+ *
38
+ * Test suite teams can be imported using the `GraphQL ID` (not UUID), e.g.
39
+ *
40
+ * ```sh
41
+ * $ pulumi import buildkite:TestSuite/team:Team viewers VGVhbvDf4eRef20tMzIxMGEfYTctNzEF5g00M8f5s6E2YjYtODNlOGNlZgD6HcBi
42
+ * ```
43
+ *
44
+ * To find the ID to use, you can use the GraphQL query below. Alternatively, you could use this [pre-saved query](https://buildkite.com/user/graphql/console/e8480014-37a8-4150-a011-6d35f33b4dfd), where you will need fo fill in the organization slug and suite search term (SUITE_SEARCH_TERM) for the particular test suite required. graphql query getTeamSuiteIds {
45
+ *
46
+ * organization(slug"ORGANIZATION_SLUG") {
47
+ *
48
+ * suites(first1, search:"SUITE_SEARCH_TERM") {
49
+ *
50
+ * edges {
51
+ *
52
+ * node {
53
+ *
54
+ * id
55
+ *
56
+ * name
57
+ *
58
+ * teams(first10){
59
+ *
60
+ * edges {
61
+ *
62
+ * node {
63
+ *
64
+ * id
65
+ *
66
+ * accessLevel
67
+ *
68
+ * team{
69
+ *
70
+ * name
71
+ *
72
+ * }
73
+ *
74
+ * }
75
+ *
76
+ * }
77
+ *
78
+ * }
79
+ *
80
+ * }
81
+ *
82
+ * }
83
+ *
84
+ * }
85
+ *
86
+ * } }
87
+ */
88
+ export declare class Team extends pulumi.CustomResource {
89
+ /**
90
+ * Get an existing Team resource's state with the given name, ID, and optional extra
91
+ * properties used to qualify the lookup.
92
+ *
93
+ * @param name The _unique_ name of the resulting resource.
94
+ * @param id The _unique_ provider ID of the resource to lookup.
95
+ * @param state Any extra arguments used during the lookup.
96
+ * @param opts Optional settings to control the behavior of the CustomResource.
97
+ */
98
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: TeamState, opts?: pulumi.CustomResourceOptions): Team;
99
+ /**
100
+ * Returns true if the given object is an instance of Team. This is designed to work even
101
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
102
+ */
103
+ static isInstance(obj: any): obj is Team;
104
+ /**
105
+ * The access level the team has on the test suite. Either READ_ONLY or MANAGE_AND_READ.
106
+ */
107
+ readonly accessLevel: pulumi.Output<string>;
108
+ /**
109
+ * The GraphQL ID of the team.
110
+ */
111
+ readonly teamId: pulumi.Output<string>;
112
+ /**
113
+ * The GraphQL ID of the test suite.
114
+ */
115
+ readonly testSuiteId: pulumi.Output<string>;
116
+ /**
117
+ * This is the UUID of the test suite team.
118
+ */
119
+ readonly uuid: pulumi.Output<string>;
120
+ /**
121
+ * Create a Team resource with the given unique name, arguments, and options.
122
+ *
123
+ * @param name The _unique_ name of the resource.
124
+ * @param args The arguments to use to populate this resource's properties.
125
+ * @param opts A bag of options that control this resource's behavior.
126
+ */
127
+ constructor(name: string, args: TeamArgs, opts?: pulumi.CustomResourceOptions);
128
+ }
129
+ /**
130
+ * Input properties used for looking up and filtering Team resources.
131
+ */
132
+ export interface TeamState {
133
+ /**
134
+ * The access level the team has on the test suite. Either READ_ONLY or MANAGE_AND_READ.
135
+ */
136
+ accessLevel?: pulumi.Input<string>;
137
+ /**
138
+ * The GraphQL ID of the team.
139
+ */
140
+ teamId?: pulumi.Input<string>;
141
+ /**
142
+ * The GraphQL ID of the test suite.
143
+ */
144
+ testSuiteId?: pulumi.Input<string>;
145
+ /**
146
+ * This is the UUID of the test suite team.
147
+ */
148
+ uuid?: pulumi.Input<string>;
149
+ }
150
+ /**
151
+ * The set of arguments for constructing a Team resource.
152
+ */
153
+ export interface TeamArgs {
154
+ /**
155
+ * The access level the team has on the test suite. Either READ_ONLY or MANAGE_AND_READ.
156
+ */
157
+ accessLevel: pulumi.Input<string>;
158
+ /**
159
+ * The GraphQL ID of the team.
160
+ */
161
+ teamId: pulumi.Input<string>;
162
+ /**
163
+ * The GraphQL ID of the test suite.
164
+ */
165
+ testSuiteId: pulumi.Input<string>;
166
+ }
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.Team = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("../utilities");
8
+ /**
9
+ * ## # Resource: testSuiteTeam
10
+ *
11
+ * This resources allows you to create, manage and import team access to Test Suites.
12
+ *
13
+ * Buildkite documentation: https://buildkite.com/docs/test-analytics
14
+ *
15
+ * ## Example Usage
16
+ *
17
+ * ```typescript
18
+ * import * as pulumi from "@pulumi/pulumi";
19
+ * import * as buildkite from "@pulumiverse/buildkite";
20
+ *
21
+ * const owners = new buildkite.team.Team("owners", {
22
+ * defaultTeam: false,
23
+ * privacy: "VISIBLE",
24
+ * defaultMemberRole: "MAINTAINER",
25
+ * });
26
+ * const viewers = new buildkite.team.Team("viewers", {
27
+ * defaultTeam: false,
28
+ * privacy: "VISIBLE",
29
+ * defaultMemberRole: "MAINTAINER",
30
+ * });
31
+ * const rspecSuite = new buildkite.testsuite.TestSuite("rspecSuite", {
32
+ * defaultBranch: "main",
33
+ * teamOwnerId: owners.id,
34
+ * });
35
+ * const viewersRspec = new buildkite.testsuite.Team("viewersRspec", {
36
+ * testSuiteId: rspecSuite.id,
37
+ * teamId: viewers.id,
38
+ * accessLevel: "READ_ONLY",
39
+ * });
40
+ * ```
41
+ *
42
+ * ## Import
43
+ *
44
+ * Test suite teams can be imported using the `GraphQL ID` (not UUID), e.g.
45
+ *
46
+ * ```sh
47
+ * $ pulumi import buildkite:TestSuite/team:Team viewers VGVhbvDf4eRef20tMzIxMGEfYTctNzEF5g00M8f5s6E2YjYtODNlOGNlZgD6HcBi
48
+ * ```
49
+ *
50
+ * To find the ID to use, you can use the GraphQL query below. Alternatively, you could use this [pre-saved query](https://buildkite.com/user/graphql/console/e8480014-37a8-4150-a011-6d35f33b4dfd), where you will need fo fill in the organization slug and suite search term (SUITE_SEARCH_TERM) for the particular test suite required. graphql query getTeamSuiteIds {
51
+ *
52
+ * organization(slug"ORGANIZATION_SLUG") {
53
+ *
54
+ * suites(first1, search:"SUITE_SEARCH_TERM") {
55
+ *
56
+ * edges {
57
+ *
58
+ * node {
59
+ *
60
+ * id
61
+ *
62
+ * name
63
+ *
64
+ * teams(first10){
65
+ *
66
+ * edges {
67
+ *
68
+ * node {
69
+ *
70
+ * id
71
+ *
72
+ * accessLevel
73
+ *
74
+ * team{
75
+ *
76
+ * name
77
+ *
78
+ * }
79
+ *
80
+ * }
81
+ *
82
+ * }
83
+ *
84
+ * }
85
+ *
86
+ * }
87
+ *
88
+ * }
89
+ *
90
+ * }
91
+ *
92
+ * } }
93
+ */
94
+ class Team extends pulumi.CustomResource {
95
+ /**
96
+ * Get an existing Team resource's state with the given name, ID, and optional extra
97
+ * properties used to qualify the lookup.
98
+ *
99
+ * @param name The _unique_ name of the resulting resource.
100
+ * @param id The _unique_ provider ID of the resource to lookup.
101
+ * @param state Any extra arguments used during the lookup.
102
+ * @param opts Optional settings to control the behavior of the CustomResource.
103
+ */
104
+ static get(name, id, state, opts) {
105
+ return new Team(name, state, Object.assign(Object.assign({}, opts), { id: id }));
106
+ }
107
+ /**
108
+ * Returns true if the given object is an instance of Team. This is designed to work even
109
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
110
+ */
111
+ static isInstance(obj) {
112
+ if (obj === undefined || obj === null) {
113
+ return false;
114
+ }
115
+ return obj['__pulumiType'] === Team.__pulumiType;
116
+ }
117
+ constructor(name, argsOrState, opts) {
118
+ let resourceInputs = {};
119
+ opts = opts || {};
120
+ if (opts.id) {
121
+ const state = argsOrState;
122
+ resourceInputs["accessLevel"] = state ? state.accessLevel : undefined;
123
+ resourceInputs["teamId"] = state ? state.teamId : undefined;
124
+ resourceInputs["testSuiteId"] = state ? state.testSuiteId : undefined;
125
+ resourceInputs["uuid"] = state ? state.uuid : undefined;
126
+ }
127
+ else {
128
+ const args = argsOrState;
129
+ if ((!args || args.accessLevel === undefined) && !opts.urn) {
130
+ throw new Error("Missing required property 'accessLevel'");
131
+ }
132
+ if ((!args || args.teamId === undefined) && !opts.urn) {
133
+ throw new Error("Missing required property 'teamId'");
134
+ }
135
+ if ((!args || args.testSuiteId === undefined) && !opts.urn) {
136
+ throw new Error("Missing required property 'testSuiteId'");
137
+ }
138
+ resourceInputs["accessLevel"] = args ? args.accessLevel : undefined;
139
+ resourceInputs["teamId"] = args ? args.teamId : undefined;
140
+ resourceInputs["testSuiteId"] = args ? args.testSuiteId : undefined;
141
+ resourceInputs["uuid"] = undefined /*out*/;
142
+ }
143
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
144
+ super(Team.__pulumiType, name, resourceInputs, opts);
145
+ }
146
+ }
147
+ exports.Team = Team;
148
+ /** @internal */
149
+ Team.__pulumiType = 'buildkite:TestSuite/team:Team';
150
+ //# sourceMappingURL=team.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../testsuite/team.ts"],"names":[],"mappings":"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"}