@orchestraworks/cli 0.5.3 → 0.5.4

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 (30) hide show
  1. package/README.md +1 -1
  2. package/dist/generated/cli-commands.json +611 -5
  3. package/dist/generated/cli-dispatch.js +9 -0
  4. package/dist/generated/managed-skills.js +5 -0
  5. package/node_modules/@orchestraworks/client/dist/apis/OrganizationInvitationsApi.d.ts +29 -0
  6. package/node_modules/@orchestraworks/client/dist/apis/OrganizationInvitationsApi.js +96 -0
  7. package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationInvitationsApi.d.ts +29 -0
  8. package/node_modules/@orchestraworks/client/dist/esm/apis/OrganizationInvitationsApi.js +96 -0
  9. package/node_modules/@orchestraworks/client/dist/esm/models/CreateOrganizationInvitationRequest.d.ts +2 -2
  10. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationAuthPolicy.d.ts +1 -1
  11. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.d.ts +14 -1
  12. package/node_modules/@orchestraworks/client/dist/esm/models/OrganizationInvitation.js +8 -1
  13. package/node_modules/@orchestraworks/client/dist/esm/models/Principal.d.ts +6 -0
  14. package/node_modules/@orchestraworks/client/dist/esm/models/Principal.js +2 -0
  15. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.d.ts +2 -1
  16. package/node_modules/@orchestraworks/client/dist/esm/models/UpdateOrganizationInvitationRequest.js +2 -1
  17. package/node_modules/@orchestraworks/client/dist/esm/models/User.d.ts +6 -0
  18. package/node_modules/@orchestraworks/client/dist/esm/models/User.js +4 -0
  19. package/node_modules/@orchestraworks/client/dist/models/CreateOrganizationInvitationRequest.d.ts +2 -2
  20. package/node_modules/@orchestraworks/client/dist/models/OrganizationAuthPolicy.d.ts +1 -1
  21. package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.d.ts +14 -1
  22. package/node_modules/@orchestraworks/client/dist/models/OrganizationInvitation.js +8 -1
  23. package/node_modules/@orchestraworks/client/dist/models/Principal.d.ts +6 -0
  24. package/node_modules/@orchestraworks/client/dist/models/Principal.js +2 -0
  25. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.d.ts +2 -1
  26. package/node_modules/@orchestraworks/client/dist/models/UpdateOrganizationInvitationRequest.js +2 -1
  27. package/node_modules/@orchestraworks/client/dist/models/User.d.ts +6 -0
  28. package/node_modules/@orchestraworks/client/dist/models/User.js +4 -0
  29. package/node_modules/@orchestraworks/client/package.json +1 -1
  30. package/package.json +4 -4
@@ -291,6 +291,10 @@ export const CLI_DISPATCH = {
291
291
  createWorkItemActivityRequest: bind(args.body),
292
292
  xOrganizationId: args.organizationId,
293
293
  }),
294
+ declineInvitation: (apis, args) => apis.organizationInvitations.declineInvitationRaw({
295
+ id: bind(args.pathParams["id"]),
296
+ xOrganizationId: args.organizationId,
297
+ }),
294
298
  deleteAgent: (apis, args) => apis.agents.deleteAgentRaw({
295
299
  id: bind(args.pathParams["id"]),
296
300
  xOrganizationId: args.organizationId,
@@ -718,6 +722,11 @@ export const CLI_DISPATCH = {
718
722
  projectId: bind(args.query["projectId"]),
719
723
  xOrganizationId: args.organizationId,
720
724
  }),
725
+ listCallerInvitations: (apis, args) => apis.organizationInvitations.listCallerInvitationsRaw({
726
+ page: bind(args.query["page"]),
727
+ limit: bind(args.query["limit"]),
728
+ xOrganizationId: args.organizationId,
729
+ }),
721
730
  listComments: (apis, args) => apis.artifacts.listCommentsRaw({
722
731
  id: bind(args.pathParams["id"]),
723
732
  page: bind(args.query["page"]),
@@ -10,4 +10,9 @@ export const MANAGED_SKILL_IDS = Object.freeze([
10
10
  "skill_bug-fixing",
11
11
  "skill_feature-development",
12
12
  "skill_progress-report",
13
+ "skill_incident-response",
14
+ "skill_migrations",
15
+ "skill_code-quality",
16
+ "skill_hardening",
17
+ "skill_data-analytics",
13
18
  ]);
@@ -22,6 +22,10 @@ export interface CreateInvitationRequest {
22
22
  createOrganizationInvitationRequest: CreateOrganizationInvitationRequest;
23
23
  xOrganizationId?: string;
24
24
  }
25
+ export interface DeclineInvitationRequest {
26
+ id: string;
27
+ xOrganizationId?: string;
28
+ }
25
29
  export interface DeleteInvitationRequest {
26
30
  id: string;
27
31
  xOrganizationId?: string;
@@ -30,6 +34,11 @@ export interface GetInvitationRequest {
30
34
  id: string;
31
35
  xOrganizationId?: string;
32
36
  }
37
+ export interface ListCallerInvitationsRequest {
38
+ page?: number;
39
+ limit?: number;
40
+ xOrganizationId?: string;
41
+ }
33
42
  export interface ListInvitationsRequest {
34
43
  organizationId: string;
35
44
  page?: number;
@@ -65,6 +74,16 @@ export declare class OrganizationInvitationsApi extends runtime.BaseAPI {
65
74
  /**
66
75
  */
67
76
  createInvitation(requestParameters: CreateInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OrganizationInvitation>;
77
+ /**
78
+ * Creates request options for declineInvitation without sending the request
79
+ */
80
+ declineInvitationRequestOpts(requestParameters: DeclineInvitationRequest): Promise<runtime.RequestOpts>;
81
+ /**
82
+ */
83
+ declineInvitationRaw(requestParameters: DeclineInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<OrganizationInvitation>>;
84
+ /**
85
+ */
86
+ declineInvitation(requestParameters: DeclineInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OrganizationInvitation>;
68
87
  /**
69
88
  * Creates request options for deleteInvitation without sending the request
70
89
  */
@@ -85,6 +104,16 @@ export declare class OrganizationInvitationsApi extends runtime.BaseAPI {
85
104
  /**
86
105
  */
87
106
  getInvitation(requestParameters: GetInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OrganizationInvitation>;
107
+ /**
108
+ * Creates request options for listCallerInvitations without sending the request
109
+ */
110
+ listCallerInvitationsRequestOpts(requestParameters: ListCallerInvitationsRequest): Promise<runtime.RequestOpts>;
111
+ /**
112
+ */
113
+ listCallerInvitationsRaw(requestParameters: ListCallerInvitationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PageOrganizationInvitation>>;
114
+ /**
115
+ */
116
+ listCallerInvitations(requestParameters?: ListCallerInvitationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PageOrganizationInvitation>;
88
117
  /**
89
118
  * Creates request options for listInvitations without sending the request
90
119
  */
@@ -127,6 +127,53 @@ class OrganizationInvitationsApi extends runtime.BaseAPI {
127
127
  return yield response.value();
128
128
  });
129
129
  }
130
+ /**
131
+ * Creates request options for declineInvitation without sending the request
132
+ */
133
+ declineInvitationRequestOpts(requestParameters) {
134
+ return __awaiter(this, void 0, void 0, function* () {
135
+ if (requestParameters['id'] == null) {
136
+ throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling declineInvitation().');
137
+ }
138
+ const queryParameters = {};
139
+ const headerParameters = {};
140
+ if (requestParameters['xOrganizationId'] != null) {
141
+ headerParameters['X-Organization-Id'] = String(requestParameters['xOrganizationId']);
142
+ }
143
+ if (this.configuration && this.configuration.accessToken) {
144
+ const token = this.configuration.accessToken;
145
+ const tokenString = yield token("bearerAuth", []);
146
+ if (tokenString) {
147
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
148
+ }
149
+ }
150
+ let urlPath = `/organization-invitations/{id}/decline`;
151
+ urlPath = urlPath.replace('{id}', encodeURIComponent(String(requestParameters['id'])));
152
+ return {
153
+ path: urlPath,
154
+ method: 'POST',
155
+ headers: headerParameters,
156
+ query: queryParameters,
157
+ };
158
+ });
159
+ }
160
+ /**
161
+ */
162
+ declineInvitationRaw(requestParameters, initOverrides) {
163
+ return __awaiter(this, void 0, void 0, function* () {
164
+ const requestOptions = yield this.declineInvitationRequestOpts(requestParameters);
165
+ const response = yield this.request(requestOptions, initOverrides);
166
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, OrganizationInvitation_1.OrganizationInvitationFromJSON)(jsonValue));
167
+ });
168
+ }
169
+ /**
170
+ */
171
+ declineInvitation(requestParameters, initOverrides) {
172
+ return __awaiter(this, void 0, void 0, function* () {
173
+ const response = yield this.declineInvitationRaw(requestParameters, initOverrides);
174
+ return yield response.value();
175
+ });
176
+ }
130
177
  /**
131
178
  * Creates request options for deleteInvitation without sending the request
132
179
  */
@@ -220,6 +267,55 @@ class OrganizationInvitationsApi extends runtime.BaseAPI {
220
267
  return yield response.value();
221
268
  });
222
269
  }
270
+ /**
271
+ * Creates request options for listCallerInvitations without sending the request
272
+ */
273
+ listCallerInvitationsRequestOpts(requestParameters) {
274
+ return __awaiter(this, void 0, void 0, function* () {
275
+ const queryParameters = {};
276
+ if (requestParameters['page'] != null) {
277
+ queryParameters['page'] = requestParameters['page'];
278
+ }
279
+ if (requestParameters['limit'] != null) {
280
+ queryParameters['limit'] = requestParameters['limit'];
281
+ }
282
+ const headerParameters = {};
283
+ if (requestParameters['xOrganizationId'] != null) {
284
+ headerParameters['X-Organization-Id'] = String(requestParameters['xOrganizationId']);
285
+ }
286
+ if (this.configuration && this.configuration.accessToken) {
287
+ const token = this.configuration.accessToken;
288
+ const tokenString = yield token("bearerAuth", []);
289
+ if (tokenString) {
290
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
291
+ }
292
+ }
293
+ let urlPath = `/me/invitations`;
294
+ return {
295
+ path: urlPath,
296
+ method: 'GET',
297
+ headers: headerParameters,
298
+ query: queryParameters,
299
+ };
300
+ });
301
+ }
302
+ /**
303
+ */
304
+ listCallerInvitationsRaw(requestParameters, initOverrides) {
305
+ return __awaiter(this, void 0, void 0, function* () {
306
+ const requestOptions = yield this.listCallerInvitationsRequestOpts(requestParameters);
307
+ const response = yield this.request(requestOptions, initOverrides);
308
+ return new runtime.JSONApiResponse(response, (jsonValue) => (0, PageOrganizationInvitation_1.PageOrganizationInvitationFromJSON)(jsonValue));
309
+ });
310
+ }
311
+ /**
312
+ */
313
+ listCallerInvitations() {
314
+ return __awaiter(this, arguments, void 0, function* (requestParameters = {}, initOverrides) {
315
+ const response = yield this.listCallerInvitationsRaw(requestParameters, initOverrides);
316
+ return yield response.value();
317
+ });
318
+ }
223
319
  /**
224
320
  * Creates request options for listInvitations without sending the request
225
321
  */
@@ -22,6 +22,10 @@ export interface CreateInvitationRequest {
22
22
  createOrganizationInvitationRequest: CreateOrganizationInvitationRequest;
23
23
  xOrganizationId?: string;
24
24
  }
25
+ export interface DeclineInvitationRequest {
26
+ id: string;
27
+ xOrganizationId?: string;
28
+ }
25
29
  export interface DeleteInvitationRequest {
26
30
  id: string;
27
31
  xOrganizationId?: string;
@@ -30,6 +34,11 @@ export interface GetInvitationRequest {
30
34
  id: string;
31
35
  xOrganizationId?: string;
32
36
  }
37
+ export interface ListCallerInvitationsRequest {
38
+ page?: number;
39
+ limit?: number;
40
+ xOrganizationId?: string;
41
+ }
33
42
  export interface ListInvitationsRequest {
34
43
  organizationId: string;
35
44
  page?: number;
@@ -65,6 +74,16 @@ export declare class OrganizationInvitationsApi extends runtime.BaseAPI {
65
74
  /**
66
75
  */
67
76
  createInvitation(requestParameters: CreateInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OrganizationInvitation>;
77
+ /**
78
+ * Creates request options for declineInvitation without sending the request
79
+ */
80
+ declineInvitationRequestOpts(requestParameters: DeclineInvitationRequest): Promise<runtime.RequestOpts>;
81
+ /**
82
+ */
83
+ declineInvitationRaw(requestParameters: DeclineInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<OrganizationInvitation>>;
84
+ /**
85
+ */
86
+ declineInvitation(requestParameters: DeclineInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OrganizationInvitation>;
68
87
  /**
69
88
  * Creates request options for deleteInvitation without sending the request
70
89
  */
@@ -85,6 +104,16 @@ export declare class OrganizationInvitationsApi extends runtime.BaseAPI {
85
104
  /**
86
105
  */
87
106
  getInvitation(requestParameters: GetInvitationRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<OrganizationInvitation>;
107
+ /**
108
+ * Creates request options for listCallerInvitations without sending the request
109
+ */
110
+ listCallerInvitationsRequestOpts(requestParameters: ListCallerInvitationsRequest): Promise<runtime.RequestOpts>;
111
+ /**
112
+ */
113
+ listCallerInvitationsRaw(requestParameters: ListCallerInvitationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<PageOrganizationInvitation>>;
114
+ /**
115
+ */
116
+ listCallerInvitations(requestParameters?: ListCallerInvitationsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<PageOrganizationInvitation>;
88
117
  /**
89
118
  * Creates request options for listInvitations without sending the request
90
119
  */
@@ -124,6 +124,53 @@ export class OrganizationInvitationsApi extends runtime.BaseAPI {
124
124
  return yield response.value();
125
125
  });
126
126
  }
127
+ /**
128
+ * Creates request options for declineInvitation without sending the request
129
+ */
130
+ declineInvitationRequestOpts(requestParameters) {
131
+ return __awaiter(this, void 0, void 0, function* () {
132
+ if (requestParameters['id'] == null) {
133
+ throw new runtime.RequiredError('id', 'Required parameter "id" was null or undefined when calling declineInvitation().');
134
+ }
135
+ const queryParameters = {};
136
+ const headerParameters = {};
137
+ if (requestParameters['xOrganizationId'] != null) {
138
+ headerParameters['X-Organization-Id'] = String(requestParameters['xOrganizationId']);
139
+ }
140
+ if (this.configuration && this.configuration.accessToken) {
141
+ const token = this.configuration.accessToken;
142
+ const tokenString = yield token("bearerAuth", []);
143
+ if (tokenString) {
144
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
145
+ }
146
+ }
147
+ let urlPath = `/organization-invitations/{id}/decline`;
148
+ urlPath = urlPath.replace('{id}', encodeURIComponent(String(requestParameters['id'])));
149
+ return {
150
+ path: urlPath,
151
+ method: 'POST',
152
+ headers: headerParameters,
153
+ query: queryParameters,
154
+ };
155
+ });
156
+ }
157
+ /**
158
+ */
159
+ declineInvitationRaw(requestParameters, initOverrides) {
160
+ return __awaiter(this, void 0, void 0, function* () {
161
+ const requestOptions = yield this.declineInvitationRequestOpts(requestParameters);
162
+ const response = yield this.request(requestOptions, initOverrides);
163
+ return new runtime.JSONApiResponse(response, (jsonValue) => OrganizationInvitationFromJSON(jsonValue));
164
+ });
165
+ }
166
+ /**
167
+ */
168
+ declineInvitation(requestParameters, initOverrides) {
169
+ return __awaiter(this, void 0, void 0, function* () {
170
+ const response = yield this.declineInvitationRaw(requestParameters, initOverrides);
171
+ return yield response.value();
172
+ });
173
+ }
127
174
  /**
128
175
  * Creates request options for deleteInvitation without sending the request
129
176
  */
@@ -217,6 +264,55 @@ export class OrganizationInvitationsApi extends runtime.BaseAPI {
217
264
  return yield response.value();
218
265
  });
219
266
  }
267
+ /**
268
+ * Creates request options for listCallerInvitations without sending the request
269
+ */
270
+ listCallerInvitationsRequestOpts(requestParameters) {
271
+ return __awaiter(this, void 0, void 0, function* () {
272
+ const queryParameters = {};
273
+ if (requestParameters['page'] != null) {
274
+ queryParameters['page'] = requestParameters['page'];
275
+ }
276
+ if (requestParameters['limit'] != null) {
277
+ queryParameters['limit'] = requestParameters['limit'];
278
+ }
279
+ const headerParameters = {};
280
+ if (requestParameters['xOrganizationId'] != null) {
281
+ headerParameters['X-Organization-Id'] = String(requestParameters['xOrganizationId']);
282
+ }
283
+ if (this.configuration && this.configuration.accessToken) {
284
+ const token = this.configuration.accessToken;
285
+ const tokenString = yield token("bearerAuth", []);
286
+ if (tokenString) {
287
+ headerParameters["Authorization"] = `Bearer ${tokenString}`;
288
+ }
289
+ }
290
+ let urlPath = `/me/invitations`;
291
+ return {
292
+ path: urlPath,
293
+ method: 'GET',
294
+ headers: headerParameters,
295
+ query: queryParameters,
296
+ };
297
+ });
298
+ }
299
+ /**
300
+ */
301
+ listCallerInvitationsRaw(requestParameters, initOverrides) {
302
+ return __awaiter(this, void 0, void 0, function* () {
303
+ const requestOptions = yield this.listCallerInvitationsRequestOpts(requestParameters);
304
+ const response = yield this.request(requestOptions, initOverrides);
305
+ return new runtime.JSONApiResponse(response, (jsonValue) => PageOrganizationInvitationFromJSON(jsonValue));
306
+ });
307
+ }
308
+ /**
309
+ */
310
+ listCallerInvitations() {
311
+ return __awaiter(this, arguments, void 0, function* (requestParameters = {}, initOverrides) {
312
+ const response = yield this.listCallerInvitationsRaw(requestParameters, initOverrides);
313
+ return yield response.value();
314
+ });
315
+ }
220
316
  /**
221
317
  * Creates request options for listInvitations without sending the request
222
318
  */
@@ -29,13 +29,13 @@ export interface CreateOrganizationInvitationRequest {
29
29
  */
30
30
  email: string;
31
31
  /**
32
- * IAM role assignments to grant on the membership minted at acceptance, each with its optional project scope — the sole role grant surface (max 16)
32
+ * IAM role assignments to grant on the membership minted at acceptance, each with its optional project scope — the sole role grant surface (max 16). Empty grants the managed `factory-developer` role.
33
33
  * @type {Array<RoleAssignment>}
34
34
  * @memberof CreateOrganizationInvitationRequest
35
35
  */
36
36
  roleAssignments?: Array<RoleAssignment>;
37
37
  /**
38
- * Invitation expiration timestamp
38
+ * Invitation expiration timestamp, 1 to 30 days ahead. Defaults to 7 days ahead.
39
39
  * @type {Date}
40
40
  * @memberof CreateOrganizationInvitationRequest
41
41
  */
@@ -34,7 +34,7 @@ export interface OrganizationAuthPolicy {
34
34
  */
35
35
  requiredMfa: boolean;
36
36
  /**
37
- * Allowed email domains for bootstrap and invite flows
37
+ * Email domains an invitation may address. Empty allows any domain. An invitation to an address outside them is refused when it is created and when it is accepted.
38
38
  * @type {Set<string>}
39
39
  * @memberof OrganizationAuthPolicy
40
40
  */
@@ -28,6 +28,12 @@ export interface OrganizationInvitation {
28
28
  * @memberof OrganizationInvitation
29
29
  */
30
30
  organizationId: string;
31
+ /**
32
+ * Name of the organization the invitation is to, read when the invitation is read
33
+ * @type {string}
34
+ * @memberof OrganizationInvitation
35
+ */
36
+ organizationName: string;
31
37
  /**
32
38
  * Invited email address
33
39
  * @type {string}
@@ -35,7 +41,7 @@ export interface OrganizationInvitation {
35
41
  */
36
42
  email: string;
37
43
  /**
38
- * Invitation lifecycle status
44
+ * Invitation lifecycle status. A pending invitation whose expiry has passed reads `EXPIRED`.
39
45
  * @type {OrganizationInvitationStatusEnum}
40
46
  * @memberof OrganizationInvitation
41
47
  */
@@ -70,6 +76,12 @@ export interface OrganizationInvitation {
70
76
  * @memberof OrganizationInvitation
71
77
  */
72
78
  acceptedAt?: Date;
79
+ /**
80
+ * When the identity provider sent the invitation email. Absent when no new email went out.
81
+ * @type {Date}
82
+ * @memberof OrganizationInvitation
83
+ */
84
+ emailSentAt?: Date;
73
85
  /**
74
86
  * IAM role assignments referenced by this invitation (via `invitation_roles`), each with its optional project scope — the sole grant surface, carried to the membership minted at acceptance; a whole-list replacement on write
75
87
  * @type {Array<RoleAssignment>}
@@ -105,6 +117,7 @@ export declare const OrganizationInvitationStatusEnum: {
105
117
  readonly Accepted: "ACCEPTED";
106
118
  readonly Expired: "EXPIRED";
107
119
  readonly Revoked: "REVOKED";
120
+ readonly Declined: "DECLINED";
108
121
  };
109
122
  export type OrganizationInvitationStatusEnum = typeof OrganizationInvitationStatusEnum[keyof typeof OrganizationInvitationStatusEnum];
110
123
  /**
@@ -19,7 +19,8 @@ export const OrganizationInvitationStatusEnum = {
19
19
  Pending: 'PENDING',
20
20
  Accepted: 'ACCEPTED',
21
21
  Expired: 'EXPIRED',
22
- Revoked: 'REVOKED'
22
+ Revoked: 'REVOKED',
23
+ Declined: 'DECLINED'
23
24
  };
24
25
  /**
25
26
  * Check if a given object implements the OrganizationInvitation interface.
@@ -29,6 +30,8 @@ export function instanceOfOrganizationInvitation(value) {
29
30
  return false;
30
31
  if (!('organizationId' in value) || value['organizationId'] === undefined)
31
32
  return false;
33
+ if (!('organizationName' in value) || value['organizationName'] === undefined)
34
+ return false;
32
35
  if (!('email' in value) || value['email'] === undefined)
33
36
  return false;
34
37
  if (!('status' in value) || value['status'] === undefined)
@@ -55,6 +58,7 @@ export function OrganizationInvitationFromJSONTyped(json, ignoreDiscriminator) {
55
58
  return {
56
59
  'id': json['id'],
57
60
  'organizationId': json['organizationId'],
61
+ 'organizationName': json['organizationName'],
58
62
  'email': json['email'],
59
63
  'status': json['status'],
60
64
  'invitedByUserId': json['invitedByUserId'] == null ? undefined : json['invitedByUserId'],
@@ -62,6 +66,7 @@ export function OrganizationInvitationFromJSONTyped(json, ignoreDiscriminator) {
62
66
  'acceptedMembershipId': json['acceptedMembershipId'] == null ? undefined : json['acceptedMembershipId'],
63
67
  'expiresAt': (new Date(json['expiresAt'])),
64
68
  'acceptedAt': json['acceptedAt'] == null ? undefined : (new Date(json['acceptedAt'])),
69
+ 'emailSentAt': json['emailSentAt'] == null ? undefined : (new Date(json['emailSentAt'])),
65
70
  'roleAssignments': (json['roleAssignments'].map(RoleAssignmentFromJSON)),
66
71
  'createdAt': (new Date(json['createdAt'])),
67
72
  'updatedAt': (new Date(json['updatedAt'])),
@@ -78,6 +83,7 @@ export function OrganizationInvitationToJSONTyped(value, ignoreDiscriminator = f
78
83
  return {
79
84
  'id': value['id'],
80
85
  'organizationId': value['organizationId'],
86
+ 'organizationName': value['organizationName'],
81
87
  'email': value['email'],
82
88
  'status': value['status'],
83
89
  'invitedByUserId': value['invitedByUserId'],
@@ -85,6 +91,7 @@ export function OrganizationInvitationToJSONTyped(value, ignoreDiscriminator = f
85
91
  'acceptedMembershipId': value['acceptedMembershipId'],
86
92
  'expiresAt': value['expiresAt'].toISOString(),
87
93
  'acceptedAt': value['acceptedAt'] == null ? value['acceptedAt'] : value['acceptedAt'].toISOString(),
94
+ 'emailSentAt': value['emailSentAt'] == null ? value['emailSentAt'] : value['emailSentAt'].toISOString(),
88
95
  'roleAssignments': (value['roleAssignments'].map(RoleAssignmentToJSON)),
89
96
  'createdAt': value['createdAt'].toISOString(),
90
97
  'updatedAt': value['updatedAt'].toISOString(),
@@ -57,6 +57,12 @@ export interface Principal {
57
57
  * @memberof Principal
58
58
  */
59
59
  email?: string;
60
+ /**
61
+ * Whether the identity provider reported the user's email verified at their last sign-in, when the principal is a user
62
+ * @type {boolean}
63
+ * @memberof Principal
64
+ */
65
+ emailVerified?: boolean;
60
66
  /**
61
67
  * Human-readable principal display name
62
68
  * @type {string}
@@ -64,6 +64,7 @@ export function PrincipalFromJSONTyped(json, ignoreDiscriminator) {
64
64
  'serviceAccountId': json['serviceAccountId'] == null ? undefined : json['serviceAccountId'],
65
65
  'agentId': json['agentId'] == null ? undefined : json['agentId'],
66
66
  'email': json['email'] == null ? undefined : json['email'],
67
+ 'emailVerified': json['emailVerified'] == null ? undefined : json['emailVerified'],
67
68
  'displayName': json['displayName'] == null ? undefined : json['displayName'],
68
69
  'provider': json['provider'] == null ? undefined : json['provider'],
69
70
  'authenticationMethod': json['authenticationMethod'] == null ? undefined : json['authenticationMethod'],
@@ -85,6 +86,7 @@ export function PrincipalToJSONTyped(value, ignoreDiscriminator = false) {
85
86
  'serviceAccountId': value['serviceAccountId'],
86
87
  'agentId': value['agentId'],
87
88
  'email': value['email'],
89
+ 'emailVerified': value['emailVerified'],
88
90
  'displayName': value['displayName'],
89
91
  'provider': value['provider'],
90
92
  'authenticationMethod': value['authenticationMethod'],
@@ -29,7 +29,7 @@ export interface UpdateOrganizationInvitationRequest {
29
29
  */
30
30
  roleAssignments?: Array<RoleAssignment>;
31
31
  /**
32
- * Invitation expiration timestamp
32
+ * Invitation expiration timestamp, 1 to 30 days ahead
33
33
  * @type {Date}
34
34
  * @memberof UpdateOrganizationInvitationRequest
35
35
  */
@@ -51,6 +51,7 @@ export declare const UpdateOrganizationInvitationRequestStatusEnum: {
51
51
  readonly Accepted: "ACCEPTED";
52
52
  readonly Expired: "EXPIRED";
53
53
  readonly Revoked: "REVOKED";
54
+ readonly Declined: "DECLINED";
54
55
  };
55
56
  export type UpdateOrganizationInvitationRequestStatusEnum = typeof UpdateOrganizationInvitationRequestStatusEnum[keyof typeof UpdateOrganizationInvitationRequestStatusEnum];
56
57
  /**
@@ -19,7 +19,8 @@ export const UpdateOrganizationInvitationRequestStatusEnum = {
19
19
  Pending: 'PENDING',
20
20
  Accepted: 'ACCEPTED',
21
21
  Expired: 'EXPIRED',
22
- Revoked: 'REVOKED'
22
+ Revoked: 'REVOKED',
23
+ Declined: 'DECLINED'
23
24
  };
24
25
  /**
25
26
  * Check if a given object implements the UpdateOrganizationInvitationRequest interface.
@@ -39,6 +39,12 @@ export interface User {
39
39
  * @memberof User
40
40
  */
41
41
  status: UserStatusEnum;
42
+ /**
43
+ * Whether the identity provider reported this email address verified at the person's last sign-in. Server-owned; set by sign-in only.
44
+ * @type {boolean}
45
+ * @memberof User
46
+ */
47
+ emailVerified: boolean;
42
48
  /**
43
49
  * Labels: the customer's key-to-value tags; the platform reads no key
44
50
  * @type {{ [key: string]: string; }}
@@ -28,6 +28,8 @@ export function instanceOfUser(value) {
28
28
  return false;
29
29
  if (!('status' in value) || value['status'] === undefined)
30
30
  return false;
31
+ if (!('emailVerified' in value) || value['emailVerified'] === undefined)
32
+ return false;
31
33
  if (!('labels' in value) || value['labels'] === undefined)
32
34
  return false;
33
35
  if (!('createdAt' in value) || value['createdAt'] === undefined)
@@ -48,6 +50,7 @@ export function UserFromJSONTyped(json, ignoreDiscriminator) {
48
50
  'email': json['email'],
49
51
  'displayName': json['displayName'] == null ? undefined : json['displayName'],
50
52
  'status': json['status'],
53
+ 'emailVerified': json['emailVerified'],
51
54
  'labels': json['labels'],
52
55
  'createdAt': (new Date(json['createdAt'])),
53
56
  'updatedAt': (new Date(json['updatedAt'])),
@@ -65,6 +68,7 @@ export function UserToJSONTyped(value, ignoreDiscriminator = false) {
65
68
  'email': value['email'],
66
69
  'displayName': value['displayName'],
67
70
  'status': value['status'],
71
+ 'emailVerified': value['emailVerified'],
68
72
  'labels': value['labels'],
69
73
  'createdAt': value['createdAt'].toISOString(),
70
74
  'updatedAt': value['updatedAt'].toISOString(),
@@ -29,13 +29,13 @@ export interface CreateOrganizationInvitationRequest {
29
29
  */
30
30
  email: string;
31
31
  /**
32
- * IAM role assignments to grant on the membership minted at acceptance, each with its optional project scope — the sole role grant surface (max 16)
32
+ * IAM role assignments to grant on the membership minted at acceptance, each with its optional project scope — the sole role grant surface (max 16). Empty grants the managed `factory-developer` role.
33
33
  * @type {Array<RoleAssignment>}
34
34
  * @memberof CreateOrganizationInvitationRequest
35
35
  */
36
36
  roleAssignments?: Array<RoleAssignment>;
37
37
  /**
38
- * Invitation expiration timestamp
38
+ * Invitation expiration timestamp, 1 to 30 days ahead. Defaults to 7 days ahead.
39
39
  * @type {Date}
40
40
  * @memberof CreateOrganizationInvitationRequest
41
41
  */
@@ -34,7 +34,7 @@ export interface OrganizationAuthPolicy {
34
34
  */
35
35
  requiredMfa: boolean;
36
36
  /**
37
- * Allowed email domains for bootstrap and invite flows
37
+ * Email domains an invitation may address. Empty allows any domain. An invitation to an address outside them is refused when it is created and when it is accepted.
38
38
  * @type {Set<string>}
39
39
  * @memberof OrganizationAuthPolicy
40
40
  */
@@ -28,6 +28,12 @@ export interface OrganizationInvitation {
28
28
  * @memberof OrganizationInvitation
29
29
  */
30
30
  organizationId: string;
31
+ /**
32
+ * Name of the organization the invitation is to, read when the invitation is read
33
+ * @type {string}
34
+ * @memberof OrganizationInvitation
35
+ */
36
+ organizationName: string;
31
37
  /**
32
38
  * Invited email address
33
39
  * @type {string}
@@ -35,7 +41,7 @@ export interface OrganizationInvitation {
35
41
  */
36
42
  email: string;
37
43
  /**
38
- * Invitation lifecycle status
44
+ * Invitation lifecycle status. A pending invitation whose expiry has passed reads `EXPIRED`.
39
45
  * @type {OrganizationInvitationStatusEnum}
40
46
  * @memberof OrganizationInvitation
41
47
  */
@@ -70,6 +76,12 @@ export interface OrganizationInvitation {
70
76
  * @memberof OrganizationInvitation
71
77
  */
72
78
  acceptedAt?: Date;
79
+ /**
80
+ * When the identity provider sent the invitation email. Absent when no new email went out.
81
+ * @type {Date}
82
+ * @memberof OrganizationInvitation
83
+ */
84
+ emailSentAt?: Date;
73
85
  /**
74
86
  * IAM role assignments referenced by this invitation (via `invitation_roles`), each with its optional project scope — the sole grant surface, carried to the membership minted at acceptance; a whole-list replacement on write
75
87
  * @type {Array<RoleAssignment>}
@@ -105,6 +117,7 @@ export declare const OrganizationInvitationStatusEnum: {
105
117
  readonly Accepted: "ACCEPTED";
106
118
  readonly Expired: "EXPIRED";
107
119
  readonly Revoked: "REVOKED";
120
+ readonly Declined: "DECLINED";
108
121
  };
109
122
  export type OrganizationInvitationStatusEnum = typeof OrganizationInvitationStatusEnum[keyof typeof OrganizationInvitationStatusEnum];
110
123
  /**