@toshicloud/sdk 0.6.0 → 0.7.0

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 (44) hide show
  1. package/README.md +39 -510
  2. package/dist/client.d.ts +6 -4
  3. package/dist/client.js +4 -2
  4. package/dist/gen/toshi/permission_pb.d.ts +12 -0
  5. package/dist/gen/toshi/permission_pb.js +14 -2
  6. package/dist/gen/toshi/workspace/v1/connections_pb.d.ts +213 -19
  7. package/dist/gen/toshi/workspace/v1/connections_pb.js +97 -25
  8. package/dist/gen/toshi/workspace/v1/domains_pb.d.ts +26 -26
  9. package/dist/gen/toshi/workspace/v1/domains_pb.js +4 -4
  10. package/dist/gen/toshi/workspace/v1/{channels_pb.d.ts → endpoints_pb.d.ts} +945 -822
  11. package/dist/gen/toshi/workspace/v1/endpoints_pb.js +488 -0
  12. package/dist/gen/toshi/workspace/v1/grants_pb.d.ts +10 -10
  13. package/dist/gen/toshi/workspace/v1/grants_pb.js +3 -3
  14. package/dist/gen/toshi/workspace/v1/hostjobs_pb.d.ts +46 -22
  15. package/dist/gen/toshi/workspace/v1/hostjobs_pb.js +1 -1
  16. package/dist/gen/toshi/workspace/v1/hosts_pb.d.ts +110 -36
  17. package/dist/gen/toshi/workspace/v1/hosts_pb.js +1 -1
  18. package/dist/gen/toshi/workspace/v1/model_credentials_pb.d.ts +654 -0
  19. package/dist/gen/toshi/workspace/v1/model_credentials_pb.js +110 -0
  20. package/dist/gen/toshi/workspace/v1/recordings_pb.d.ts +21 -2
  21. package/dist/gen/toshi/workspace/v1/recordings_pb.js +1 -1
  22. package/dist/gen/toshi/workspace/v1/roles_pb.d.ts +1 -1
  23. package/dist/gen/toshi/workspace/v1/roles_pb.js +1 -1
  24. package/dist/gen/toshi/workspace/v1/secrets_pb.d.ts +19 -2
  25. package/dist/gen/toshi/workspace/v1/secrets_pb.js +1 -1
  26. package/dist/gen/toshi/workspace/v1/triggers_pb.d.ts +28 -28
  27. package/dist/gen/toshi/workspace/v1/triggers_pb.js +6 -6
  28. package/dist/gen/toshi/workspace/v1/webhook_pb.d.ts +202 -202
  29. package/dist/gen/toshi/workspace/v1/webhook_pb.js +46 -46
  30. package/dist/gen/toshi/workspace/v1/workloads_pb.d.ts +552 -29
  31. package/dist/gen/toshi/workspace/v1/workloads_pb.js +85 -55
  32. package/dist/gen/toshi/workspace/v1/workspace_pb.d.ts +639 -119
  33. package/dist/gen/toshi/workspace/v1/workspace_pb.js +174 -88
  34. package/dist/gen/toshi/workspace/v1/workspace_service_pb.d.ts +101 -4
  35. package/dist/gen/toshi/workspace/v1/workspace_service_pb.js +20 -15
  36. package/dist/index.d.ts +2 -1
  37. package/dist/index.js +2 -1
  38. package/dist/retry.js +33 -22
  39. package/dist/test/alarms.js +1 -1
  40. package/dist/test/procedures.js +35 -25
  41. package/dist/version.d.ts +1 -1
  42. package/dist/version.js +1 -1
  43. package/package.json +1 -1
  44. package/dist/gen/toshi/workspace/v1/channels_pb.js +0 -483
@@ -2191,7 +2191,7 @@ export declare const WorkspaceSchema: GenMessage<Workspace, {
2191
2191
  /**
2192
2192
  * HostingCertificate is a workspace's wildcard certificate for its
2193
2193
  * services' provided names. Toshi orders it when the workspace first
2194
- * hosts a service with an http channel and renews it before it expires.
2194
+ * hosts a service with an http endpoint and renews it before it expires.
2195
2195
  *
2196
2196
  * @generated from message toshi.workspace.v1.HostingCertificate
2197
2197
  */
@@ -2236,7 +2236,7 @@ export type HostingCertificate = Message<"toshi.workspace.v1.HostingCertificate"
2236
2236
  /**
2237
2237
  * HostingCertificate is a workspace's wildcard certificate for its
2238
2238
  * services' provided names. Toshi orders it when the workspace first
2239
- * hosts a service with an http channel and renews it before it expires.
2239
+ * hosts a service with an http endpoint and renews it before it expires.
2240
2240
  *
2241
2241
  * @generated from message toshi.workspace.v1.HostingCertificate
2242
2242
  */
@@ -3064,6 +3064,13 @@ export type WorkspaceBilling_HeldJobs = Message<"toshi.workspace.v1.WorkspaceBil
3064
3064
  * @generated from field: google.protobuf.Timestamp since = 25;
3065
3065
  */
3066
3066
  since?: Timestamp | undefined;
3067
+ /**
3068
+ * For reason start_rate: the earliest time every start window of the
3069
+ * workspace has room again. Unset otherwise.
3070
+ *
3071
+ * @generated from field: google.protobuf.Timestamp next_start_at = 26;
3072
+ */
3073
+ nextStartAt?: Timestamp | undefined;
3067
3074
  };
3068
3075
  /**
3069
3076
  * HeldJobs counts the jobs held now for one reason.
@@ -3087,6 +3094,13 @@ export type WorkspaceBilling_HeldJobsJson = {
3087
3094
  * @generated from field: google.protobuf.Timestamp since = 25;
3088
3095
  */
3089
3096
  since?: TimestampJson;
3097
+ /**
3098
+ * For reason start_rate: the earliest time every start window of the
3099
+ * workspace has room again. Unset otherwise.
3100
+ *
3101
+ * @generated from field: google.protobuf.Timestamp next_start_at = 26;
3102
+ */
3103
+ nextStartAt?: TimestampJson;
3090
3104
  };
3091
3105
  /**
3092
3106
  * Describes the message toshi.workspace.v1.WorkspaceBilling.HeldJobs.
@@ -3431,6 +3445,13 @@ export type WorkspaceStatement = Message<"toshi.workspace.v1.WorkspaceStatement"
3431
3445
  * @generated from field: toshi.workspace.v1.DesktopSeats desktop_seats = 23;
3432
3446
  */
3433
3447
  desktopSeats?: DesktopSeats | undefined;
3448
+ /**
3449
+ * The month's paid starts; unset when there were none. Their cost is
3450
+ * included in estimated_cents.
3451
+ *
3452
+ * @generated from field: toshi.workspace.v1.PaidStarts paid_starts = 24;
3453
+ */
3454
+ paidStarts?: PaidStarts | undefined;
3434
3455
  };
3435
3456
  /**
3436
3457
  * @generated from message toshi.workspace.v1.WorkspaceStatement
@@ -3584,6 +3605,13 @@ export type WorkspaceStatementJson = {
3584
3605
  * @generated from field: toshi.workspace.v1.DesktopSeats desktop_seats = 23;
3585
3606
  */
3586
3607
  desktopSeats?: DesktopSeatsJson;
3608
+ /**
3609
+ * The month's paid starts; unset when there were none. Their cost is
3610
+ * included in estimated_cents.
3611
+ *
3612
+ * @generated from field: toshi.workspace.v1.PaidStarts paid_starts = 24;
3613
+ */
3614
+ paidStarts?: PaidStartsJson;
3587
3615
  };
3588
3616
  /**
3589
3617
  * Describes the message toshi.workspace.v1.WorkspaceStatement.
@@ -3683,6 +3711,55 @@ export type DesktopSeatsJson = {
3683
3711
  export declare const DesktopSeatsSchema: GenMessage<DesktopSeats, {
3684
3712
  jsonType: DesktopSeatsJson;
3685
3713
  }>;
3714
+ /**
3715
+ * PaidStarts is the month's paid starts: the starts past the plan's included
3716
+ * starts, within its ceiling, and what they cost.
3717
+ *
3718
+ * @generated from message toshi.workspace.v1.PaidStarts
3719
+ */
3720
+ export type PaidStarts = Message<"toshi.workspace.v1.PaidStarts"> & {
3721
+ /**
3722
+ * The starts billed for the month.
3723
+ *
3724
+ * @generated from field: int64 count = 1;
3725
+ */
3726
+ count: bigint;
3727
+ /**
3728
+ * count at the plan's price today, in the smallest unit of currency;
3729
+ * included in estimated_cents.
3730
+ *
3731
+ * @generated from field: int64 estimated_cents = 2;
3732
+ */
3733
+ estimatedCents: bigint;
3734
+ };
3735
+ /**
3736
+ * PaidStarts is the month's paid starts: the starts past the plan's included
3737
+ * starts, within its ceiling, and what they cost.
3738
+ *
3739
+ * @generated from message toshi.workspace.v1.PaidStarts
3740
+ */
3741
+ export type PaidStartsJson = {
3742
+ /**
3743
+ * The starts billed for the month.
3744
+ *
3745
+ * @generated from field: int64 count = 1;
3746
+ */
3747
+ count?: string;
3748
+ /**
3749
+ * count at the plan's price today, in the smallest unit of currency;
3750
+ * included in estimated_cents.
3751
+ *
3752
+ * @generated from field: int64 estimated_cents = 2;
3753
+ */
3754
+ estimatedCents?: string;
3755
+ };
3756
+ /**
3757
+ * Describes the message toshi.workspace.v1.PaidStarts.
3758
+ * Use `create(PaidStartsSchema)` to create a new message.
3759
+ */
3760
+ export declare const PaidStartsSchema: GenMessage<PaidStarts, {
3761
+ jsonType: PaidStartsJson;
3762
+ }>;
3686
3763
  /**
3687
3764
  * StatementSeat is one desktop seat on a statement.
3688
3765
  *
@@ -4322,16 +4399,26 @@ export type StatementCharge = Message<"toshi.workspace.v1.StatementCharge"> & {
4322
4399
  */
4323
4400
  size: string;
4324
4401
  /**
4402
+ * The metered minutes of a size billed by the minute; 0 on a line of
4403
+ * seconds.
4404
+ *
4325
4405
  * @generated from field: int64 minutes = 2;
4326
4406
  */
4327
4407
  minutes: bigint;
4328
4408
  /**
4329
4409
  * The minutes at their recorded prices, or today's for minutes with none,
4330
- * rounded up.
4410
+ * or the seconds at today's per-second price, rounded up.
4331
4411
  *
4332
4412
  * @generated from field: int64 estimated_cents = 3;
4333
4413
  */
4334
4414
  estimatedCents: bigint;
4415
+ /**
4416
+ * The billed running seconds of a size billed by the second, its
4417
+ * month's seconds summed and rounded up once; 0 on a line of minutes.
4418
+ *
4419
+ * @generated from field: int64 seconds = 4;
4420
+ */
4421
+ seconds: bigint;
4335
4422
  };
4336
4423
  /**
4337
4424
  * @generated from message toshi.workspace.v1.StatementCharge
@@ -4345,16 +4432,26 @@ export type StatementChargeJson = {
4345
4432
  */
4346
4433
  size?: string;
4347
4434
  /**
4435
+ * The metered minutes of a size billed by the minute; 0 on a line of
4436
+ * seconds.
4437
+ *
4348
4438
  * @generated from field: int64 minutes = 2;
4349
4439
  */
4350
4440
  minutes?: string;
4351
4441
  /**
4352
4442
  * The minutes at their recorded prices, or today's for minutes with none,
4353
- * rounded up.
4443
+ * or the seconds at today's per-second price, rounded up.
4354
4444
  *
4355
4445
  * @generated from field: int64 estimated_cents = 3;
4356
4446
  */
4357
4447
  estimatedCents?: string;
4448
+ /**
4449
+ * The billed running seconds of a size billed by the second, its
4450
+ * month's seconds summed and rounded up once; 0 on a line of minutes.
4451
+ *
4452
+ * @generated from field: int64 seconds = 4;
4453
+ */
4454
+ seconds?: string;
4358
4455
  };
4359
4456
  /**
4360
4457
  * Describes the message toshi.workspace.v1.StatementCharge.
@@ -10,7 +10,7 @@ import { file_toshi_workspace_v1_roles } from "./roles_pb.js";
10
10
  /**
11
11
  * Describes the file toshi/workspace/v1/workspace_service.proto.
12
12
  */
13
- export const file_toshi_workspace_v1_workspace_service = /*@__PURE__*/ fileDesc("Cip0b3NoaS93b3Jrc3BhY2UvdjEvd29ya3NwYWNlX3NlcnZpY2UucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSIVChNHZXRXb3Jrc3BhY2VSZXF1ZXN0IkgKFEdldFdvcmtzcGFjZVJlc3BvbnNlEjAKCXdvcmtzcGFjZRgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5Xb3Jrc3BhY2UiOQoWRGVsZXRlV29ya3NwYWNlUmVxdWVzdBIPCgdjb25maXJtGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJLChdEZWxldGVXb3Jrc3BhY2VSZXNwb25zZRIwCgl3b3Jrc3BhY2UYASABKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlIiAKHkNhbmNlbFdvcmtzcGFjZURlbGV0aW9uUmVxdWVzdCJTCh9DYW5jZWxXb3Jrc3BhY2VEZWxldGlvblJlc3BvbnNlEjAKCXdvcmtzcGFjZRgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5Xb3Jrc3BhY2UiewoWVXBkYXRlV29ya3NwYWNlUmVxdWVzdBIwCgl3b3Jrc3BhY2UYASABKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlEi8KC3VwZGF0ZV9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayJLChdVcGRhdGVXb3Jrc3BhY2VSZXNwb25zZRIwCgl3b3Jrc3BhY2UYASABKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlIj4KFUxpc3RXb3Jrc3BhY2VzUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCSJkChZMaXN0V29ya3NwYWNlc1Jlc3BvbnNlEjEKCndvcmtzcGFjZXMYASADKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSIsChpHZXRXb3Jrc3BhY2VCaWxsaW5nUmVxdWVzdBIOCgZtb250aHMYASABKAUiVAobR2V0V29ya3NwYWNlQmlsbGluZ1Jlc3BvbnNlEjUKB2JpbGxpbmcYASABKAsyJC50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlQmlsbGluZyI6ChxHZXRXb3Jrc3BhY2VTdGF0ZW1lbnRSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJEgsKA2NzdhgCIAEoCCJnCh1HZXRXb3Jrc3BhY2VTdGF0ZW1lbnRSZXNwb25zZRI5CglzdGF0ZW1lbnQYASABKAsyJi50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlU3RhdGVtZW50EgsKA2NzdhgCIAEoCSIkCiJHZXRXb3Jrc3BhY2VVcGNvbWluZ0ludm9pY2VSZXF1ZXN0ItsBCiNHZXRXb3Jrc3BhY2VVcGNvbWluZ0ludm9pY2VSZXNwb25zZRI0CgdpbnZvaWNlGAEgASgLMiMudG9zaGkud29ya3NwYWNlLnYxLlVwY29taW5nSW52b2ljZRIxCghwcm9qZWN0cxgCIAMoCzIfLnRvc2hpLndvcmtzcGFjZS52MS5Qcm9qZWN0Q29zdBIaChJtb250aF9zb19mYXJfY2VudHMYAyABKAMSHQoVZXN0aW1hdGVkX21vbnRoX2NlbnRzGAQgASgDEhAKCGN1cnJlbmN5GAUgASgJIuIBCg9VcGNvbWluZ0ludm9pY2USFAoMYW1vdW50X2NlbnRzGAEgASgDEhAKCGN1cnJlbmN5GAIgASgJEjAKDHBlcmlvZF9zdGFydBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKcGVyaW9kX2VuZBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoObWV0ZXJzX3JlYWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCWF2YWlsYWJsZRgGIAEoCCJyCgtQcm9qZWN0Q29zdBISCgpwcm9qZWN0X2lkGAEgASgJEhQKDHByb2plY3RfbmFtZRgCIAEoCRIaChJtb250aF9zb19mYXJfY2VudHMYAyABKAMSHQoVZXN0aW1hdGVkX21vbnRoX2NlbnRzGAQgASgDIpECCgRTZWF0EgoKAmlkGAEgASgJEg8KB3VzZXJfaWQYAiABKAkSLwoLYXNzaWduZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKC2Fzc2lnbmVkX2J5GAQgASgLMhsudG9zaGkud29ya3NwYWNlLnYxLlN1YmplY3QSLgoKcmVtb3ZlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoKcmVtb3ZlZF9ieRgGIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5TdWJqZWN0EhAKCHJlcGxhY2VzGAcgASgJEhYKDnJlcGxhY2VfcmVhc29uGAggASgJIiEKEExpc3RTZWF0c1JlcXVlc3QSDQoFbW9udGgYASABKAkiPAoRTGlzdFNlYXRzUmVzcG9uc2USJwoFc2VhdHMYASADKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuU2VhdCIkChFBc3NpZ25TZWF0UmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJIjwKEkFzc2lnblNlYXRSZXNwb25zZRImCgRzZWF0GAEgASgLMhgudG9zaGkud29ya3NwYWNlLnYxLlNlYXQiJAoRUmVtb3ZlU2VhdFJlcXVlc3QSDwoHc2VhdF9pZBgBIAEoCSI8ChJSZW1vdmVTZWF0UmVzcG9uc2USJgoEc2VhdBgBIAEoCzIYLnRvc2hpLndvcmtzcGFjZS52MS5TZWF0Ij0KFExpc3RFZ3Jlc3NJUHNSZXF1ZXN0EhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJIn4KFUxpc3RFZ3Jlc3NJUHNSZXNwb25zZRILCgNpcHMYASADKAkSLQoFaG9zdHMYAiADKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuRWdyZXNzSG9zdBIQCghjb21wbGV0ZRgDIAEoCBIXCg9uZXh0X3BhZ2VfdG9rZW4YBCABKAkiYwoPR2V0VXNhZ2VSZXF1ZXN0EigKBGZyb20YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL3AQoQR2V0VXNhZ2VSZXNwb25zZRIqCgRyb3dzGAEgAygLMhwudG9zaGkud29ya3NwYWNlLnYxLlVzYWdlUm93EigKBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgZmaWxsZXIYBCABKAsyHy50b3NoaS53b3Jrc3BhY2UudjEuRmlsbGVyVXNhZ2USNAoHc3RvcmFnZRgFIAMoCzIjLnRvc2hpLndvcmtzcGFjZS52MS5TdG9yYWdlVXNhZ2VSb3ciaAoUR2V0UXVldWVUaW1lc1JlcXVlc3QSKAoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJgoCdG8YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIugBChVHZXRRdWV1ZVRpbWVzUmVzcG9uc2USDAoEam9icxgBIAEoAxIOCgZwNTBfbXMYAiABKAMSDgoGcDkwX21zGAMgASgDEg4KBm1heF9tcxgEIAEoAxISCgp3YXJtX3NoYXJlGAUgASgBEigKBGZyb20YBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgRoZWxkGAggAygLMh0udG9zaGkud29ya3NwYWNlLnYxLkhvbGRUaW1lcyJrChdHZXRXb3JrZmxvd1VzYWdlUmVxdWVzdBIoCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBImCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAioAEKGEdldFdvcmtmbG93VXNhZ2VSZXNwb25zZRIyCgRyb3dzGAEgAygLMiQudG9zaGkud29ya3NwYWNlLnYxLldvcmtmbG93VXNhZ2VSb3cSKAoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJgoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjkKEExpc3RQbGFuc1JlcXVlc3QSEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkiVQoRTGlzdFBsYW5zUmVzcG9uc2USJwoFcGxhbnMYASADKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuUGxhbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiQAocQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uUmVxdWVzdBIMCgRwbGFuGAEgASgJEhIKCnJldHVybl91cmwYAiABKAkiLAodQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uUmVzcG9uc2USCwoDdXJsGAEgASgJIjcKIUNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uUmVxdWVzdBISCgpyZXR1cm5fdXJsGAEgASgJIjEKIkNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uUmVzcG9uc2USCwoDdXJsGAEgASgJIhMKEUdldFZlcnNpb25SZXF1ZXN0ImIKEkdldFZlcnNpb25SZXNwb25zZRIPCgd2ZXJzaW9uGAEgASgJEg4KBmNvbW1pdBgCIAEoCRIMCgRkYXRlGAMgASgJEh0KFW1pbmltdW1fYWdlbnRfdmVyc2lvbhgEIAEoCSKIDAoJV29ya3NwYWNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSHAoPY29uY3VycmVuY3lfY2FwGAMgASgFSACIAQESLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDAoEcGxhbhgFIAEoCRIdChVlZmZlY3RpdmVfY29uY3VycmVuY3kYBiABKAUSDgoGc3RhdHVzGAcgASgJEiMKG2VmZmVjdGl2ZV9tYXhfam9ic19wZXJfaG91chgLIAEoBRIcChRzdGFydGVyX2NyZWRpdF9jZW50cxgMIAEoAxI9ChlzdGFydGVyX2NyZWRpdF9ncmFudGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxyZXNlcnZhdGlvbnMYECADKAsyHy50b3NoaS53b3Jrc3BhY2UudjEuUmVzZXJ2YXRpb24SDQoFc3RhdGUYESABKAkSFAoMc3RhdGVfcmVhc29uGBIgASgJEi8KC3N0YXRlX3NpbmNlGBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtwdXJnZV9hZnRlchgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLZGVsZXRpb25fYnkYJyABKAkSHgoWaGlzdG9yeV9kYXlzX2VmZmVjdGl2ZRgWIAEoBRIcCg9zZWNyZXRfbWF4X3NldHMYGCABKAVIAYgBARIcCg9zZWNyZXRfbWF4X2tleXMYGSABKAVIAogBARIbCg5zZWNyZXRfbWF4X2tpYhgaIAEoA0gDiAEBEh4KEXByZXZpZXdfbWF4X3BvcnRzGBsgASgFSASIAQESIQoZc2VjcmV0X21heF9zZXRzX2VmZmVjdGl2ZRgcIAEoBRIhChlzZWNyZXRfbWF4X2tleXNfZWZmZWN0aXZlGB0gASgFEiAKGHNlY3JldF9tYXhfa2liX2VmZmVjdGl2ZRgeIAEoAxIjChtwcmV2aWV3X21heF9wb3J0c19lZmZlY3RpdmUYHyABKAUSNwoIc2V0dGluZ3MYISABKAsyJS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlU2V0dGluZ3MSDAoEZXRhZxgiIAEoCRJDChNob3N0aW5nX2NlcnRpZmljYXRlGCMgASgLMiYudG9zaGkud29ya3NwYWNlLnYxLkhvc3RpbmdDZXJ0aWZpY2F0ZRIdChVrZWVwX3ZtX21heF9lZmZlY3RpdmUYJCABKAUSPQoSa2VlcF92bV9tYXhfc291cmNlGCkgASgOMiEudG9zaGkud29ya3NwYWNlLnYxLkZlYXR1cmVTb3VyY2USFQoNa2VlcF92bV9jb3VudBglIAEoBRIiChprZWVwX3ZtX3N0b3BwZWRfbG9uZ19jb3VudBgmIAEoBRJFChFyZWNvcmRpbmdfY2hhbmdlZBgoIAEoCzIqLnRvc2hpLndvcmtzcGFjZS52MS5Xb3Jrc3BhY2VTZXR0aW5nQ2hhbmdlElEKHXJlY29yZGluZ19odW1hbl9zcGFuc19jaGFuZ2VkGCogASgLMioudG9zaGkud29ya3NwYWNlLnYxLldvcmtzcGFjZVNldHRpbmdDaGFuZ2VCEgoQX2NvbmN1cnJlbmN5X2NhcEISChBfc2VjcmV0X21heF9zZXRzQhIKEF9zZWNyZXRfbWF4X2tleXNCEQoPX3NlY3JldF9tYXhfa2liQhQKEl9wcmV2aWV3X21heF9wb3J0c0oECAgQCUoECAkQCkoECAoQC0oECA4QD0oECA8QEEoECBUQFkoECBcQGEoECCAQIVIOb3duX2hvc3RzX29ubHlSD3NwZW5kX2NhcF9jZW50c1IRbWF4X2pvYnNfcGVyX2hvdXJSDmFsbG93X292ZXJmbG93UhBhbGxvd19jYWNoZV93YXJtUgxoaXN0b3J5X2RheXNSFmNhbmNlbF9ydW5fb25fdm1fZGVhdGhSC21lbWJlcl9qb2luIvgBChJIb3N0aW5nQ2VydGlmaWNhdGUSDAoEbmFtZRgBIAEoCRI6CgVzdGF0ZRgCIAEoDjIrLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0aW5nQ2VydGlmaWNhdGVTdGF0ZRItCglub3RfYWZ0ZXIYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCHJlbmV3X2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghyZXRyeV9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFZXJyb3IYBiABKAki2QMKEVdvcmtzcGFjZVNldHRpbmdzEhMKC21lbWJlcl9qb2luGAEgASgJEkoKB3NpZ25faW4YAiABKAsyIy50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlU2lnbkluQhTa8xgQd29ya3NwYWNlLnNpZ25pbhIZCgxoaXN0b3J5X2RheXMYAyABKAVIAIgBARIWCg5vd25faG9zdHNfb25seRgEIAEoCBIWCg5hbGxvd19vdmVyZmxvdxgFIAEoCBIYChBhbGxvd19jYWNoZV93YXJtGAYgASgIEh4KFmNhbmNlbF9ydW5fb25fdm1fZGVhdGgYByABKAgSKgoPc3BlbmRfY2FwX2NlbnRzGAggASgDQhHa8xgNYmlsbGluZy53cml0ZRIsChFtYXhfam9ic19wZXJfaG91chgJIAEoBUIR2vMYDWJpbGxpbmcud3JpdGUSDwoHa2VlcF92bRgKIAEoCBIWCglyZWNvcmRpbmcYCyABKAhIAYgBARIiChVyZWNvcmRpbmdfaHVtYW5fc3BhbnMYDCABKAhIAogBAUIPCg1faGlzdG9yeV9kYXlzQgwKCl9yZWNvcmRpbmdCGAoWX3JlY29yZGluZ19odW1hbl9zcGFucyJ5ChZXb3Jrc3BhY2VTZXR0aW5nQ2hhbmdlEi8KCmNoYW5nZWRfYnkYASABKAsyGy50b3NoaS53b3Jrc3BhY2UudjEuU3ViamVjdBIuCgpjaGFuZ2VkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJvCg9Xb3Jrc3BhY2VTaWduSW4SEAoIcHJvdmlkZXIYASABKAkSDgoGaXNzdWVyGAIgASgJEg4KBnNldF9ieRgDIAEoCRIqCgZzZXRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkgKC1Jlc2VydmF0aW9uEgwKBHNpemUYASABKAkSDQoFc2xvdHMYAiABKAUSDAoEd2FybRgDIAEoBRIOCgZzb3VyY2UYBCABKAkixwcKEFdvcmtzcGFjZUJpbGxpbmcSEwoLY3VzdG9tZXJfaWQYASABKAkSFwoPc3Vic2NyaXB0aW9uX2lkGAIgASgJEjYKEmJpbGxpbmdfc3RhcnRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTc3Vic2NyaXB0aW9uX3N0YXR1cxgEIAEoCRI9ChlzdWJzY3JpcHRpb25fc3RhdHVzX3NpbmNlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgZ0b3RhbHMYBiADKAsyIS50b3NoaS53b3Jrc3BhY2UudjEuQmlsbGluZ1RvdGFscxI+Cg1mYWlsZWRfZXZlbnRzGAcgAygLMicudG9zaGkud29ya3NwYWNlLnYxLkJpbGxpbmdFdmVudEZhaWx1cmUSGgoSbWludXRlc190aGlzX21vbnRoGAggASgDEh4KFmZyZWVfbWludXRlc19wZXJfbW9udGgYCSABKAMSFQoNY2FyZF92ZXJpZmllZBgKIAEoCBI0ChBjYXJkX3ZlcmlmaWVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zcGVuZF9jYXBfY2VudHMYDCABKAMSEwoLc3BlbmRfY2VudHMYDSABKAMSEwoLc3BlbmRfbGV2ZWwYDiABKAUSEAoIY3VycmVuY3kYDyABKAkSEwoLc3BlbmRfa25vd24YECABKAgSHAoUc3RhcnRlcl9jcmVkaXRfY2VudHMYESABKAMSIQoZc3RhcnRlcl9jcmVkaXRfbGVmdF9jZW50cxgSIAEoAxI9ChlzdGFydGVyX2NyZWRpdF9hcHBsaWVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9iaWxsaW5nX2VuYWJsZWQYFCABKAgSPwoIaGVsZF9ub3cYFSADKAsyLS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlQmlsbGluZy5IZWxkSm9icxIYChBjb25jdXJyZW5jeV91c2VkGBYgASgDEiUKGGRlc2t0b3Bfc2VhdF9wcmljZV9jZW50cxgaIAEoA0gAiAEBGlMKCEhlbGRKb2JzEg4KBnJlYXNvbhgXIAEoCRIMCgRqb2JzGBggASgDEikKBXNpbmNlGBkgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEIbChlfZGVza3RvcF9zZWF0X3ByaWNlX2NlbnRzIrcBCg1CaWxsaW5nVG90YWxzEg0KBW1vbnRoGAEgASgJEgwKBHNpemUYAiABKAkSEwoLc2VudF9ldmVudHMYAyABKAMSFAoMc2VudF9taW51dGVzGAQgASgDEhYKDnBlbmRpbmdfZXZlbnRzGAUgASgDEhcKD3BlbmRpbmdfbWludXRlcxgGIAEoAxIVCg1mYWlsZWRfZXZlbnRzGAcgASgDEhYKDmZhaWxlZF9taW51dGVzGAggASgDIt4BChNCaWxsaW5nRXZlbnRGYWlsdXJlEg4KBmpvYl9pZBgBIAEoCRIMCgRzaXplGAIgASgJEhIKCmV2ZW50X25hbWUYAyABKAkSDwoHbWludXRlcxgEIAEoAxIvCgtvY2N1cnJlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLQoJZmFpbGVkX2F0GAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIQCghhdHRlbXB0cxgHIAEoBRISCgpsYXN0X2Vycm9yGAggASgJIpgHChJXb3Jrc3BhY2VTdGF0ZW1lbnQSDQoFbW9udGgYASABKAkSKAoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJgoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEgwKBHBsYW4YBCABKAkSMQoFdXNhZ2UYBSADKAsyIi50b3NoaS53b3Jrc3BhY2UudjEuU3RhdGVtZW50VXNhZ2USMQoFdG90YWwYBiABKAsyIi50b3NoaS53b3Jrc3BhY2UudjEuU3RhdGVtZW50VXNhZ2USNAoHY2hhcmdlcxgHIAMoCzIjLnRvc2hpLndvcmtzcGFjZS52MS5TdGF0ZW1lbnRDaGFyZ2USFwoPZXN0aW1hdGVkX2NlbnRzGAggASgDEhAKCGN1cnJlbmN5GAkgASgJEhYKDmVzdGltYXRlX2tub3duGAogASgIEiQKHHN0YXJ0ZXJfY3JlZGl0X2FwcGxpZWRfY2VudHMYCyABKAMSPQoZc3RhcnRlcl9jcmVkaXRfYXBwbGllZF9hdBgMIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASKwoEaGVsZBgNIAMoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5Ib2xkVGltZXMSHQoVY3VycmVudF9wcmljZV9taW51dGVzGA4gASgDEi8KBmZpbGxlchgPIAEoCzIfLnRvc2hpLndvcmtzcGFjZS52MS5GaWxsZXJVc2FnZRIXCg9iaWxsaW5nX2VuYWJsZWQYECABKAgSOAoUc3BlbmRfY2FwX3JlYWNoZWRfYXQYESABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEh8KF3NwZW5kX2NhcF9yZWFjaGVkX2NlbnRzGBIgASgDEhcKD3NwZW5kX2NhcF9jZW50cxgTIAEoAxI0Cgxvd25faG9zdF9mZWUYFCABKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuT3duSG9zdEZlZRIoCgVhd2FrZRgVIAMoCzIZLnRvc2hpLndvcmtzcGFjZS52MS5Bd2FrZRIsCgdzdG9yYWdlGBYgASgLMhsudG9zaGkud29ya3NwYWNlLnYxLlN0b3JhZ2USNwoNZGVza3RvcF9zZWF0cxgXIAEoCzIgLnRvc2hpLndvcmtzcGFjZS52MS5EZXNrdG9wU2VhdHMimwEKDERlc2t0b3BTZWF0cxIUCgxiaWxsZWRfc2VhdHMYASABKAMSGAoQc2VhdF9wcmljZV9jZW50cxgCIAEoAxIQCgh1bnByaWNlZBgDIAEoCBIXCg9lc3RpbWF0ZWRfY2VudHMYBCABKAMSMAoFc2VhdHMYBSADKAsyIS50b3NoaS53b3Jrc3BhY2UudjEuU3RhdGVtZW50U2VhdCLCAQoNU3RhdGVtZW50U2VhdBIPCgdzZWF0X2lkGAEgASgJEg8KB3VzZXJfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIvCgthc3NpZ25lZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKcmVtb3ZlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIcmVwbGFjZXMYBiABKAkSDgoGYmlsbGVkGAcgASgIImQKCk93bkhvc3RGZWUSDwoHc2Vjb25kcxgBIAEoARIUCgxmcmVlX3NlY29uZHMYAiABKAMSFgoOYmlsbGVkX3NlY29uZHMYAyABKAMSFwoPZXN0aW1hdGVkX2NlbnRzGAQgASgDInsKBUF3YWtlEgwKBHNpemUYASABKAkSDAoEcnVucxgCIAEoAxIPCgdzZWNvbmRzGAMgASgBEhQKDGlkbGVfc2Vjb25kcxgEIAEoARIWCg5iaWxsZWRfc2Vjb25kcxgFIAEoAxIXCg9lc3RpbWF0ZWRfY2VudHMYBiABKAMiqwEKB1N0b3JhZ2USLQoFa2luZHMYASADKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuU3RvcmVkS2luZBITCgtpbmNsdWRlZF9nYhgCIAEoAxIQCghnYl9ob3VycxgDIAEoARIXCg9leGNlc3NfZ2JfaG91cnMYBCABKAESGAoQYmlsbGVkX2diX21vbnRocxgFIAEoARIXCg9lc3RpbWF0ZWRfY2VudHMYBiABKAMiOwoKU3RvcmVkS2luZBIMCgRraW5kGAEgASgJEg0KBWJ5dGVzGAIgASgDEhAKCGdiX2hvdXJzGAMgASgBIk0KD1N0b3JhZ2VVc2FnZVJvdxILCgNkYXkYASABKAkSDAoEa2luZBgCIAEoCRIQCghnYl9ob3VycxgDIAEoARINCgVieXRlcxgEIAEoAyLtAQoOU3RhdGVtZW50VXNhZ2USDAoEc2l6ZRgBIAEoCRIKCgJvcxgCIAEoCRIMCgRqb2JzGAMgASgDEg8KB21pbnV0ZXMYBCABKAMSGAoQb3duX2hvc3RfbWludXRlcxgFIAEoAxIVCg1kZWJ1Z19taW51dGVzGAYgASgDEhgKEG92ZXJmbG93X21pbnV0ZXMYByABKAMSGwoTcmVzZXJ2ZWRfc2xvdF9ob3VycxgIIAEoAxIPCgdvdXRjb21lGAkgASgJEg8KB3NlY29uZHMYCiABKAESGAoQb3duX2hvc3Rfc2Vjb25kcxgLIAEoASJJCg9TdGF0ZW1lbnRDaGFyZ2USDAoEc2l6ZRgBIAEoCRIPCgdtaW51dGVzGAIgASgDEhcKD2VzdGltYXRlZF9jZW50cxgDIAEoAyKcAQoJSG9sZFRpbWVzEg4KBnJlYXNvbhgBIAEoCRIMCgRqb2JzGAIgASgDEg4KBnA1MF9tcxgDIAEoAxIOCgZwOTBfbXMYBCABKAMSDgoGbWF4X21zGAUgASgDEhEKCW9wZW5fam9icxgGIAEoAxIuCgpvcGVuX3NpbmNlGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCIsCgtGaWxsZXJVc2FnZRIMCgRqb2JzGAEgASgDEg8KB21pbnV0ZXMYAiABKAMiqQIKCFVzYWdlUm93EgsKA2RheRgBIAEoCRISCgpjb25jbHVzaW9uGAIgASgJEgwKBGpvYnMYAyABKAMSDwoHbWludXRlcxgEIAEoAxIYChBvd25faG9zdF9taW51dGVzGAUgASgDEhUKDWRlYnVnX21pbnV0ZXMYBiABKAMSGAoQb3ZlcmZsb3dfbWludXRlcxgHIAEoAxIbChNyZXNlcnZlZF9zbG90X2hvdXJzGAggASgDEg8KB291dGNvbWUYCSABKAkSDAoEa2luZBgKIAEoCRIPCgdzZWNvbmRzGAsgASgBEhgKEG93bl9ob3N0X3NlY29uZHMYDCABKAESFQoNYXdha2Vfc2Vjb25kcxgNIAEoARIUCgxpZGxlX3NlY29uZHMYDiABKAEixAEKEFdvcmtmbG93VXNhZ2VSb3cSEgoKcmVwb3NpdG9yeRgBIAEoCRIQCgh3b3JrZmxvdxgCIAEoCRIMCgRqb2JzGAMgASgDEg8KB21pbnV0ZXMYBCABKAMSGAoQb3duX2hvc3RfbWludXRlcxgFIAEoAxITCgtmYWlsZWRfam9icxgGIAEoAxISCgp0aW1lZF9qb2JzGAcgASgDEhMKC3A1MF9zZWNvbmRzGAggASgDEhMKC3A5NV9zZWNvbmRzGAkgASgDIpgDCgRQbGFuEgwKBG5hbWUYASABKAkSEwoLY29uY3VycmVuY3kYAiABKAUSFwoPbWF4X2pvYl9taW51dGVzGAMgASgFEhIKCmlzX2RlZmF1bHQYBCABKAgSEgoKc2VsZl9zZXJ2ZRgFIAEoCBISCgphbGxvd2VkX29zGAYgAygJEhAKCG1heF9zaXplGAcgASgJEhAKCG1heF92Y3B1GAggASgFEh4KFmZyZWVfbWludXRlc19wZXJfbW9udGgYCSABKAUSDQoFc2l6ZXMYCiADKAkSGQoRY2FyZF9yZXF1aXJlZF9mb3IYCyADKAkSGQoRbWF4X2pvYnNfcGVyX2hvdXIYDCABKAUSGAoQYnVyc3RfZ3VhcmRfam9icxgNIAEoBRIcChRzdGFydGVyX2NyZWRpdF9jZW50cxgOIAEoAxIUCgxoaXN0b3J5X2RheXMYDyABKAUSFQoNZGVidWdfbWludXRlcxgQIAEoBRIVCg1tYXhfb3duX2hvc3RzGBEgASgFEhMKC29wZW5fc291cmNlGBIgASgIIrcBCgpFZ3Jlc3NIb3N0Eg8KB2hvc3RfaWQYASABKAkSDAoEbmFtZRgCIAEoCRIOCgZzaGFyZWQYAyABKAgSLgoGZWdyZXNzGAQgASgLMh4udG9zaGkud29ya3NwYWNlLnYxLkhvc3RFZ3Jlc3MSEgoKcmVjZW50X2lwcxgFIAMoCRINCgVjbG91ZBgGIAEoCRIUCgxjbG91ZF9lZ3Jlc3MYByABKAkSEQoJY29uZmlybWVkGAggASgIKpYCChdIb3N0aW5nQ2VydGlmaWNhdGVTdGF0ZRIpCiVIT1NUSU5HX0NFUlRJRklDQVRFX1NUQVRFX1VOU1BFQ0lGSUVEEAASJQohSE9TVElOR19DRVJUSUZJQ0FURV9TVEFURV9JU1NVSU5HEAESKgomSE9TVElOR19DRVJUSUZJQ0FURV9TVEFURV9SQVRFX0xJTUlURUQQAhIjCh9IT1NUSU5HX0NFUlRJRklDQVRFX1NUQVRFX1ZBTElEEAMSLQopSE9TVElOR19DRVJUSUZJQ0FURV9TVEFURV9SRU5FV0FMX0ZBSUxJTkcQBBIpCiVIT1NUSU5HX0NFUlRJRklDQVRFX1NUQVRFX1NFTEZfU0lHTkVEEAUy+hQKEFdvcmtzcGFjZVNlcnZpY2USdQoMR2V0V29ya3NwYWNlEicudG9zaGkud29ya3NwYWNlLnYxLkdldFdvcmtzcGFjZVJlcXVlc3QaKC50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya3NwYWNlUmVzcG9uc2UiEsLzGA53b3Jrc3BhY2UucmVhZBKDAQoPVXBkYXRlV29ya3NwYWNlEioudG9zaGkud29ya3NwYWNlLnYxLlVwZGF0ZVdvcmtzcGFjZVJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuVXBkYXRlV29ya3NwYWNlUmVzcG9uc2UiF8LzGA93b3Jrc3BhY2Uud3JpdGXg8xgBEnsKDkxpc3RXb3Jrc3BhY2VzEikudG9zaGkud29ya3NwYWNlLnYxLkxpc3RXb3Jrc3BhY2VzUmVxdWVzdBoqLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0V29ya3NwYWNlc1Jlc3BvbnNlIhLC8xgOd29ya3NwYWNlLnJlYWQSiAEKE0dldFdvcmtzcGFjZUJpbGxpbmcSLi50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya3NwYWNlQmlsbGluZ1JlcXVlc3QaLy50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya3NwYWNlQmlsbGluZ1Jlc3BvbnNlIhDC8xgMYmlsbGluZy5yZWFkEo4BChVHZXRXb3Jrc3BhY2VTdGF0ZW1lbnQSMC50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya3NwYWNlU3RhdGVtZW50UmVxdWVzdBoxLnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3Jrc3BhY2VTdGF0ZW1lbnRSZXNwb25zZSIQwvMYDGJpbGxpbmcucmVhZBKgAQobR2V0V29ya3NwYWNlVXBjb21pbmdJbnZvaWNlEjYudG9zaGkud29ya3NwYWNlLnYxLkdldFdvcmtzcGFjZVVwY29taW5nSW52b2ljZVJlcXVlc3QaNy50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya3NwYWNlVXBjb21pbmdJbnZvaWNlUmVzcG9uc2UiEMLzGAxiaWxsaW5nLnJlYWQSaAoJTGlzdFNlYXRzEiQudG9zaGkud29ya3NwYWNlLnYxLkxpc3RTZWF0c1JlcXVlc3QaJS50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlYXRzUmVzcG9uc2UiDsLzGApzZWF0cy5yZWFkEpYBCgpBc3NpZ25TZWF0EiUudG9zaGkud29ya3NwYWNlLnYxLkFzc2lnblNlYXRSZXF1ZXN0GiYudG9zaGkud29ya3NwYWNlLnYxLkFzc2lnblNlYXRSZXNwb25zZSI5wvMYC3NlYXRzLndyaXRl0vMYJgoNc2VhdC5hc3NpZ25lZBIVc2VhdDpyZXNwb25zZS5zZWF0LmlkEn4KClJlbW92ZVNlYXQSJS50b3NoaS53b3Jrc3BhY2UudjEuUmVtb3ZlU2VhdFJlcXVlc3QaJi50b3NoaS53b3Jrc3BhY2UudjEuUmVtb3ZlU2VhdFJlc3BvbnNlIiHC8xgLc2VhdHMud3JpdGXS8xgOCgxzZWF0LnJlbW92ZWQSeAoNTGlzdEVncmVzc0lQcxIoLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0RWdyZXNzSVBzUmVxdWVzdBopLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0RWdyZXNzSVBzUmVzcG9uc2UiEsLzGA53b3Jrc3BhY2UucmVhZBJpCghHZXRVc2FnZRIjLnRvc2hpLndvcmtzcGFjZS52MS5HZXRVc2FnZVJlcXVlc3QaJC50b3NoaS53b3Jrc3BhY2UudjEuR2V0VXNhZ2VSZXNwb25zZSISwvMYDndvcmtzcGFjZS5yZWFkEngKDUdldFF1ZXVlVGltZXMSKC50b3NoaS53b3Jrc3BhY2UudjEuR2V0UXVldWVUaW1lc1JlcXVlc3QaKS50b3NoaS53b3Jrc3BhY2UudjEuR2V0UXVldWVUaW1lc1Jlc3BvbnNlIhLC8xgOd29ya3NwYWNlLnJlYWQSgQEKEEdldFdvcmtmbG93VXNhZ2USKy50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya2Zsb3dVc2FnZVJlcXVlc3QaLC50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya2Zsb3dVc2FnZVJlc3BvbnNlIhLC8xgOd29ya3NwYWNlLnJlYWQSagoJTGlzdFBsYW5zEiQudG9zaGkud29ya3NwYWNlLnYxLkxpc3RQbGFuc1JlcXVlc3QaJS50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFBsYW5zUmVzcG9uc2UiEMLzGAxiaWxsaW5nLnJlYWQSwQEKFUNyZWF0ZUNoZWNrb3V0U2Vzc2lvbhIwLnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVDaGVja291dFNlc3Npb25SZXF1ZXN0GjEudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZUNoZWNrb3V0U2Vzc2lvblJlc3BvbnNlIkPC8xgNYmlsbGluZy53cml0ZdLzGC4KF2JpbGxpbmcuY2hlY2tvdXRfb3BlbmVkEhN3b3Jrc3BhY2U6d29ya3NwYWNlEs4BChpDcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvbhI1LnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvblJlcXVlc3QaNi50b3NoaS53b3Jrc3BhY2UudjEuQ3JlYXRlQmlsbGluZ1BvcnRhbFNlc3Npb25SZXNwb25zZSJBwvMYDWJpbGxpbmcud3JpdGXS8xgsChViaWxsaW5nLnBvcnRhbF9vcGVuZWQSE3dvcmtzcGFjZTp3b3Jrc3BhY2USbwoKR2V0VmVyc2lvbhIlLnRvc2hpLndvcmtzcGFjZS52MS5HZXRWZXJzaW9uUmVxdWVzdBomLnRvc2hpLndvcmtzcGFjZS52MS5HZXRWZXJzaW9uUmVzcG9uc2UiEsLzGA53b3Jrc3BhY2UucmVhZBKiAQoPRGVsZXRlV29ya3NwYWNlEioudG9zaGkud29ya3NwYWNlLnYxLkRlbGV0ZVdvcmtzcGFjZVJlcXVlc3QaKy50b3NoaS53b3Jrc3BhY2UudjEuRGVsZXRlV29ya3NwYWNlUmVzcG9uc2UiNsLzGBB3b3Jrc3BhY2UuZGVsZXRl0vMYHgocd29ya3NwYWNlLmRlbGV0aW9uX3NjaGVkdWxlZBKvAQoXQ2FuY2VsV29ya3NwYWNlRGVsZXRpb24SMi50b3NoaS53b3Jrc3BhY2UudjEuQ2FuY2VsV29ya3NwYWNlRGVsZXRpb25SZXF1ZXN0GjMudG9zaGkud29ya3NwYWNlLnYxLkNhbmNlbFdvcmtzcGFjZURlbGV0aW9uUmVzcG9uc2UiK8LzGBB3b3Jrc3BhY2UuZGVsZXRl0vMYEwoRd29ya3NwYWNlLnJlc3VtZWRCIlogZ28udG9zaGljbG91ZC5pby9hcGkvd29ya3NwYWNldjFiBnByb3RvMw", [file_google_protobuf_field_mask, file_google_protobuf_timestamp, file_toshi_permission, file_toshi_workspace_v1_discovery, file_toshi_workspace_v1_hosts, file_toshi_workspace_v1_roles]);
13
+ export const file_toshi_workspace_v1_workspace_service = /*@__PURE__*/ fileDesc("Cip0b3NoaS93b3Jrc3BhY2UvdjEvd29ya3NwYWNlX3NlcnZpY2UucHJvdG8SEnRvc2hpLndvcmtzcGFjZS52MSIVChNHZXRXb3Jrc3BhY2VSZXF1ZXN0IkgKFEdldFdvcmtzcGFjZVJlc3BvbnNlEjAKCXdvcmtzcGFjZRgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5Xb3Jrc3BhY2UiOQoWRGVsZXRlV29ya3NwYWNlUmVxdWVzdBIPCgdjb25maXJtGAEgASgJEg4KBnJlYXNvbhgCIAEoCSJLChdEZWxldGVXb3Jrc3BhY2VSZXNwb25zZRIwCgl3b3Jrc3BhY2UYASABKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlIiAKHkNhbmNlbFdvcmtzcGFjZURlbGV0aW9uUmVxdWVzdCJTCh9DYW5jZWxXb3Jrc3BhY2VEZWxldGlvblJlc3BvbnNlEjAKCXdvcmtzcGFjZRgBIAEoCzIdLnRvc2hpLndvcmtzcGFjZS52MS5Xb3Jrc3BhY2UiewoWVXBkYXRlV29ya3NwYWNlUmVxdWVzdBIwCgl3b3Jrc3BhY2UYASABKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlEi8KC3VwZGF0ZV9tYXNrGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLkZpZWxkTWFzayJLChdVcGRhdGVXb3Jrc3BhY2VSZXNwb25zZRIwCgl3b3Jrc3BhY2UYASABKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlIj4KFUxpc3RXb3Jrc3BhY2VzUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCSJkChZMaXN0V29ya3NwYWNlc1Jlc3BvbnNlEjEKCndvcmtzcGFjZXMYASADKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSIsChpHZXRXb3Jrc3BhY2VCaWxsaW5nUmVxdWVzdBIOCgZtb250aHMYASABKAUiVAobR2V0V29ya3NwYWNlQmlsbGluZ1Jlc3BvbnNlEjUKB2JpbGxpbmcYASABKAsyJC50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlQmlsbGluZyI6ChxHZXRXb3Jrc3BhY2VTdGF0ZW1lbnRSZXF1ZXN0Eg0KBW1vbnRoGAEgASgJEgsKA2NzdhgCIAEoCCJnCh1HZXRXb3Jrc3BhY2VTdGF0ZW1lbnRSZXNwb25zZRI5CglzdGF0ZW1lbnQYASABKAsyJi50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlU3RhdGVtZW50EgsKA2NzdhgCIAEoCSIkCiJHZXRXb3Jrc3BhY2VVcGNvbWluZ0ludm9pY2VSZXF1ZXN0ItsBCiNHZXRXb3Jrc3BhY2VVcGNvbWluZ0ludm9pY2VSZXNwb25zZRI0CgdpbnZvaWNlGAEgASgLMiMudG9zaGkud29ya3NwYWNlLnYxLlVwY29taW5nSW52b2ljZRIxCghwcm9qZWN0cxgCIAMoCzIfLnRvc2hpLndvcmtzcGFjZS52MS5Qcm9qZWN0Q29zdBIaChJtb250aF9zb19mYXJfY2VudHMYAyABKAMSHQoVZXN0aW1hdGVkX21vbnRoX2NlbnRzGAQgASgDEhAKCGN1cnJlbmN5GAUgASgJIuIBCg9VcGNvbWluZ0ludm9pY2USFAoMYW1vdW50X2NlbnRzGAEgASgDEhAKCGN1cnJlbmN5GAIgASgJEjAKDHBlcmlvZF9zdGFydBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKcGVyaW9kX2VuZBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMgoObWV0ZXJzX3JlYWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEhEKCWF2YWlsYWJsZRgGIAEoCCJyCgtQcm9qZWN0Q29zdBISCgpwcm9qZWN0X2lkGAEgASgJEhQKDHByb2plY3RfbmFtZRgCIAEoCRIaChJtb250aF9zb19mYXJfY2VudHMYAyABKAMSHQoVZXN0aW1hdGVkX21vbnRoX2NlbnRzGAQgASgDIpECCgRTZWF0EgoKAmlkGAEgASgJEg8KB3VzZXJfaWQYAiABKAkSLwoLYXNzaWduZWRfYXQYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKC2Fzc2lnbmVkX2J5GAQgASgLMhsudG9zaGkud29ya3NwYWNlLnYxLlN1YmplY3QSLgoKcmVtb3ZlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLwoKcmVtb3ZlZF9ieRgGIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5TdWJqZWN0EhAKCHJlcGxhY2VzGAcgASgJEhYKDnJlcGxhY2VfcmVhc29uGAggASgJIiEKEExpc3RTZWF0c1JlcXVlc3QSDQoFbW9udGgYASABKAkiPAoRTGlzdFNlYXRzUmVzcG9uc2USJwoFc2VhdHMYASADKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuU2VhdCIkChFBc3NpZ25TZWF0UmVxdWVzdBIPCgd1c2VyX2lkGAEgASgJIjwKEkFzc2lnblNlYXRSZXNwb25zZRImCgRzZWF0GAEgASgLMhgudG9zaGkud29ya3NwYWNlLnYxLlNlYXQiJAoRUmVtb3ZlU2VhdFJlcXVlc3QSDwoHc2VhdF9pZBgBIAEoCSI8ChJSZW1vdmVTZWF0UmVzcG9uc2USJgoEc2VhdBgBIAEoCzIYLnRvc2hpLndvcmtzcGFjZS52MS5TZWF0Ij0KFExpc3RFZ3Jlc3NJUHNSZXF1ZXN0EhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJIn4KFUxpc3RFZ3Jlc3NJUHNSZXNwb25zZRILCgNpcHMYASADKAkSLQoFaG9zdHMYAiADKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuRWdyZXNzSG9zdBIQCghjb21wbGV0ZRgDIAEoCBIXCg9uZXh0X3BhZ2VfdG9rZW4YBCABKAkiYwoPR2V0VXNhZ2VSZXF1ZXN0EigKBGZyb20YASABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCL3AQoQR2V0VXNhZ2VSZXNwb25zZRIqCgRyb3dzGAEgAygLMhwudG9zaGkud29ya3NwYWNlLnYxLlVzYWdlUm93EigKBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgZmaWxsZXIYBCABKAsyHy50b3NoaS53b3Jrc3BhY2UudjEuRmlsbGVyVXNhZ2USNAoHc3RvcmFnZRgFIAMoCzIjLnRvc2hpLndvcmtzcGFjZS52MS5TdG9yYWdlVXNhZ2VSb3ciaAoUR2V0UXVldWVUaW1lc1JlcXVlc3QSKAoEZnJvbRgBIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJgoCdG8YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIugBChVHZXRRdWV1ZVRpbWVzUmVzcG9uc2USDAoEam9icxgBIAEoAxIOCgZwNTBfbXMYAiABKAMSDgoGcDkwX21zGAMgASgDEg4KBm1heF9tcxgEIAEoAxISCgp3YXJtX3NoYXJlGAUgASgBEigKBGZyb20YBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIrCgRoZWxkGAggAygLMh0udG9zaGkud29ya3NwYWNlLnYxLkhvbGRUaW1lcyJrChdHZXRXb3JrZmxvd1VzYWdlUmVxdWVzdBIoCgRmcm9tGAEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBImCgJ0bxgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAioAEKGEdldFdvcmtmbG93VXNhZ2VSZXNwb25zZRIyCgRyb3dzGAEgAygLMiQudG9zaGkud29ya3NwYWNlLnYxLldvcmtmbG93VXNhZ2VSb3cSKAoEZnJvbRgCIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASJgoCdG8YAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIjkKEExpc3RQbGFuc1JlcXVlc3QSEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkiVQoRTGlzdFBsYW5zUmVzcG9uc2USJwoFcGxhbnMYASADKAsyGC50b3NoaS53b3Jrc3BhY2UudjEuUGxhbhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiQAocQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uUmVxdWVzdBIMCgRwbGFuGAEgASgJEhIKCnJldHVybl91cmwYAiABKAkiLAodQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uUmVzcG9uc2USCwoDdXJsGAEgASgJIjcKIUNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uUmVxdWVzdBISCgpyZXR1cm5fdXJsGAEgASgJIjEKIkNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uUmVzcG9uc2USCwoDdXJsGAEgASgJIhMKEUdldFZlcnNpb25SZXF1ZXN0ImIKEkdldFZlcnNpb25SZXNwb25zZRIPCgd2ZXJzaW9uGAEgASgJEg4KBmNvbW1pdBgCIAEoCRIMCgRkYXRlGAMgASgJEh0KFW1pbmltdW1fYWdlbnRfdmVyc2lvbhgEIAEoCSKIDAoJV29ya3NwYWNlEgoKAmlkGAEgASgJEgwKBG5hbWUYAiABKAkSHAoPY29uY3VycmVuY3lfY2FwGAMgASgFSACIAQESLgoKY3JlYXRlZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDAoEcGxhbhgFIAEoCRIdChVlZmZlY3RpdmVfY29uY3VycmVuY3kYBiABKAUSDgoGc3RhdHVzGAcgASgJEiMKG2VmZmVjdGl2ZV9tYXhfam9ic19wZXJfaG91chgLIAEoBRIcChRzdGFydGVyX2NyZWRpdF9jZW50cxgMIAEoAxI9ChlzdGFydGVyX2NyZWRpdF9ncmFudGVkX2F0GA0gASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBI1CgxyZXNlcnZhdGlvbnMYECADKAsyHy50b3NoaS53b3Jrc3BhY2UudjEuUmVzZXJ2YXRpb24SDQoFc3RhdGUYESABKAkSFAoMc3RhdGVfcmVhc29uGBIgASgJEi8KC3N0YXRlX3NpbmNlGBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIvCgtwdXJnZV9hZnRlchgUIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEwoLZGVsZXRpb25fYnkYJyABKAkSHgoWaGlzdG9yeV9kYXlzX2VmZmVjdGl2ZRgWIAEoBRIcCg9zZWNyZXRfbWF4X3NldHMYGCABKAVIAYgBARIcCg9zZWNyZXRfbWF4X2tleXMYGSABKAVIAogBARIbCg5zZWNyZXRfbWF4X2tpYhgaIAEoA0gDiAEBEh4KEXByZXZpZXdfbWF4X3BvcnRzGBsgASgFSASIAQESIQoZc2VjcmV0X21heF9zZXRzX2VmZmVjdGl2ZRgcIAEoBRIhChlzZWNyZXRfbWF4X2tleXNfZWZmZWN0aXZlGB0gASgFEiAKGHNlY3JldF9tYXhfa2liX2VmZmVjdGl2ZRgeIAEoAxIjChtwcmV2aWV3X21heF9wb3J0c19lZmZlY3RpdmUYHyABKAUSNwoIc2V0dGluZ3MYISABKAsyJS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlU2V0dGluZ3MSDAoEZXRhZxgiIAEoCRJDChNob3N0aW5nX2NlcnRpZmljYXRlGCMgASgLMiYudG9zaGkud29ya3NwYWNlLnYxLkhvc3RpbmdDZXJ0aWZpY2F0ZRIdChVrZWVwX3ZtX21heF9lZmZlY3RpdmUYJCABKAUSPQoSa2VlcF92bV9tYXhfc291cmNlGCkgASgOMiEudG9zaGkud29ya3NwYWNlLnYxLkZlYXR1cmVTb3VyY2USFQoNa2VlcF92bV9jb3VudBglIAEoBRIiChprZWVwX3ZtX3N0b3BwZWRfbG9uZ19jb3VudBgmIAEoBRJFChFyZWNvcmRpbmdfY2hhbmdlZBgoIAEoCzIqLnRvc2hpLndvcmtzcGFjZS52MS5Xb3Jrc3BhY2VTZXR0aW5nQ2hhbmdlElEKHXJlY29yZGluZ19odW1hbl9zcGFuc19jaGFuZ2VkGCogASgLMioudG9zaGkud29ya3NwYWNlLnYxLldvcmtzcGFjZVNldHRpbmdDaGFuZ2VCEgoQX2NvbmN1cnJlbmN5X2NhcEISChBfc2VjcmV0X21heF9zZXRzQhIKEF9zZWNyZXRfbWF4X2tleXNCEQoPX3NlY3JldF9tYXhfa2liQhQKEl9wcmV2aWV3X21heF9wb3J0c0oECAgQCUoECAkQCkoECAoQC0oECA4QD0oECA8QEEoECBUQFkoECBcQGEoECCAQIVIOb3duX2hvc3RzX29ubHlSD3NwZW5kX2NhcF9jZW50c1IRbWF4X2pvYnNfcGVyX2hvdXJSDmFsbG93X292ZXJmbG93UhBhbGxvd19jYWNoZV93YXJtUgxoaXN0b3J5X2RheXNSFmNhbmNlbF9ydW5fb25fdm1fZGVhdGhSC21lbWJlcl9qb2luIvgBChJIb3N0aW5nQ2VydGlmaWNhdGUSDAoEbmFtZRgBIAEoCRI6CgVzdGF0ZRgCIAEoDjIrLnRvc2hpLndvcmtzcGFjZS52MS5Ib3N0aW5nQ2VydGlmaWNhdGVTdGF0ZRItCglub3RfYWZ0ZXIYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiwKCHJlbmV3X2F0GAQgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIsCghyZXRyeV9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASDQoFZXJyb3IYBiABKAki2QMKEVdvcmtzcGFjZVNldHRpbmdzEhMKC21lbWJlcl9qb2luGAEgASgJEkoKB3NpZ25faW4YAiABKAsyIy50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlU2lnbkluQhTa8xgQd29ya3NwYWNlLnNpZ25pbhIZCgxoaXN0b3J5X2RheXMYAyABKAVIAIgBARIWCg5vd25faG9zdHNfb25seRgEIAEoCBIWCg5hbGxvd19vdmVyZmxvdxgFIAEoCBIYChBhbGxvd19jYWNoZV93YXJtGAYgASgIEh4KFmNhbmNlbF9ydW5fb25fdm1fZGVhdGgYByABKAgSKgoPc3BlbmRfY2FwX2NlbnRzGAggASgDQhHa8xgNYmlsbGluZy53cml0ZRIsChFtYXhfam9ic19wZXJfaG91chgJIAEoBUIR2vMYDWJpbGxpbmcud3JpdGUSDwoHa2VlcF92bRgKIAEoCBIWCglyZWNvcmRpbmcYCyABKAhIAYgBARIiChVyZWNvcmRpbmdfaHVtYW5fc3BhbnMYDCABKAhIAogBAUIPCg1faGlzdG9yeV9kYXlzQgwKCl9yZWNvcmRpbmdCGAoWX3JlY29yZGluZ19odW1hbl9zcGFucyJ5ChZXb3Jrc3BhY2VTZXR0aW5nQ2hhbmdlEi8KCmNoYW5nZWRfYnkYASABKAsyGy50b3NoaS53b3Jrc3BhY2UudjEuU3ViamVjdBIuCgpjaGFuZ2VkX2F0GAIgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcCJvCg9Xb3Jrc3BhY2VTaWduSW4SEAoIcHJvdmlkZXIYASABKAkSDgoGaXNzdWVyGAIgASgJEg4KBnNldF9ieRgDIAEoCRIqCgZzZXRfYXQYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIkgKC1Jlc2VydmF0aW9uEgwKBHNpemUYASABKAkSDQoFc2xvdHMYAiABKAUSDAoEd2FybRgDIAEoBRIOCgZzb3VyY2UYBCABKAki+wcKEFdvcmtzcGFjZUJpbGxpbmcSEwoLY3VzdG9tZXJfaWQYASABKAkSFwoPc3Vic2NyaXB0aW9uX2lkGAIgASgJEjYKEmJpbGxpbmdfc3RhcnRlZF9hdBgDIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASGwoTc3Vic2NyaXB0aW9uX3N0YXR1cxgEIAEoCRI9ChlzdWJzY3JpcHRpb25fc3RhdHVzX3NpbmNlGAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIxCgZ0b3RhbHMYBiADKAsyIS50b3NoaS53b3Jrc3BhY2UudjEuQmlsbGluZ1RvdGFscxI+Cg1mYWlsZWRfZXZlbnRzGAcgAygLMicudG9zaGkud29ya3NwYWNlLnYxLkJpbGxpbmdFdmVudEZhaWx1cmUSGgoSbWludXRlc190aGlzX21vbnRoGAggASgDEh4KFmZyZWVfbWludXRlc19wZXJfbW9udGgYCSABKAMSFQoNY2FyZF92ZXJpZmllZBgKIAEoCBI0ChBjYXJkX3ZlcmlmaWVkX2F0GAsgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9zcGVuZF9jYXBfY2VudHMYDCABKAMSEwoLc3BlbmRfY2VudHMYDSABKAMSEwoLc3BlbmRfbGV2ZWwYDiABKAUSEAoIY3VycmVuY3kYDyABKAkSEwoLc3BlbmRfa25vd24YECABKAgSHAoUc3RhcnRlcl9jcmVkaXRfY2VudHMYESABKAMSIQoZc3RhcnRlcl9jcmVkaXRfbGVmdF9jZW50cxgSIAEoAxI9ChlzdGFydGVyX2NyZWRpdF9hcHBsaWVkX2F0GBMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9iaWxsaW5nX2VuYWJsZWQYFCABKAgSPwoIaGVsZF9ub3cYFSADKAsyLS50b3NoaS53b3Jrc3BhY2UudjEuV29ya3NwYWNlQmlsbGluZy5IZWxkSm9icxIYChBjb25jdXJyZW5jeV91c2VkGBYgASgDEiUKGGRlc2t0b3Bfc2VhdF9wcmljZV9jZW50cxgaIAEoA0gAiAEBGoYBCghIZWxkSm9icxIOCgZyZWFzb24YFyABKAkSDAoEam9icxgYIAEoAxIpCgVzaW5jZRgZIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMQoNbmV4dF9zdGFydF9hdBgaIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCGwoZX2Rlc2t0b3Bfc2VhdF9wcmljZV9jZW50cyK3AQoNQmlsbGluZ1RvdGFscxINCgVtb250aBgBIAEoCRIMCgRzaXplGAIgASgJEhMKC3NlbnRfZXZlbnRzGAMgASgDEhQKDHNlbnRfbWludXRlcxgEIAEoAxIWCg5wZW5kaW5nX2V2ZW50cxgFIAEoAxIXCg9wZW5kaW5nX21pbnV0ZXMYBiABKAMSFQoNZmFpbGVkX2V2ZW50cxgHIAEoAxIWCg5mYWlsZWRfbWludXRlcxgIIAEoAyLeAQoTQmlsbGluZ0V2ZW50RmFpbHVyZRIOCgZqb2JfaWQYASABKAkSDAoEc2l6ZRgCIAEoCRISCgpldmVudF9uYW1lGAMgASgJEg8KB21pbnV0ZXMYBCABKAMSLwoLb2NjdXJyZWRfYXQYBSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEi0KCWZhaWxlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIYXR0ZW1wdHMYByABKAUSEgoKbGFzdF9lcnJvchgIIAEoCSLNBwoSV29ya3NwYWNlU3RhdGVtZW50Eg0KBW1vbnRoGAEgASgJEigKBGZyb20YAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEiYKAnRvGAMgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIMCgRwbGFuGAQgASgJEjEKBXVzYWdlGAUgAygLMiIudG9zaGkud29ya3NwYWNlLnYxLlN0YXRlbWVudFVzYWdlEjEKBXRvdGFsGAYgASgLMiIudG9zaGkud29ya3NwYWNlLnYxLlN0YXRlbWVudFVzYWdlEjQKB2NoYXJnZXMYByADKAsyIy50b3NoaS53b3Jrc3BhY2UudjEuU3RhdGVtZW50Q2hhcmdlEhcKD2VzdGltYXRlZF9jZW50cxgIIAEoAxIQCghjdXJyZW5jeRgJIAEoCRIWCg5lc3RpbWF0ZV9rbm93bhgKIAEoCBIkChxzdGFydGVyX2NyZWRpdF9hcHBsaWVkX2NlbnRzGAsgASgDEj0KGXN0YXJ0ZXJfY3JlZGl0X2FwcGxpZWRfYXQYDCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEisKBGhlbGQYDSADKAsyHS50b3NoaS53b3Jrc3BhY2UudjEuSG9sZFRpbWVzEh0KFWN1cnJlbnRfcHJpY2VfbWludXRlcxgOIAEoAxIvCgZmaWxsZXIYDyABKAsyHy50b3NoaS53b3Jrc3BhY2UudjEuRmlsbGVyVXNhZ2USFwoPYmlsbGluZ19lbmFibGVkGBAgASgIEjgKFHNwZW5kX2NhcF9yZWFjaGVkX2F0GBEgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIfChdzcGVuZF9jYXBfcmVhY2hlZF9jZW50cxgSIAEoAxIXCg9zcGVuZF9jYXBfY2VudHMYEyABKAMSNAoMb3duX2hvc3RfZmVlGBQgASgLMh4udG9zaGkud29ya3NwYWNlLnYxLk93bkhvc3RGZWUSKAoFYXdha2UYFSADKAsyGS50b3NoaS53b3Jrc3BhY2UudjEuQXdha2USLAoHc3RvcmFnZRgWIAEoCzIbLnRvc2hpLndvcmtzcGFjZS52MS5TdG9yYWdlEjcKDWRlc2t0b3Bfc2VhdHMYFyABKAsyIC50b3NoaS53b3Jrc3BhY2UudjEuRGVza3RvcFNlYXRzEjMKC3BhaWRfc3RhcnRzGBggASgLMh4udG9zaGkud29ya3NwYWNlLnYxLlBhaWRTdGFydHMimwEKDERlc2t0b3BTZWF0cxIUCgxiaWxsZWRfc2VhdHMYASABKAMSGAoQc2VhdF9wcmljZV9jZW50cxgCIAEoAxIQCgh1bnByaWNlZBgDIAEoCBIXCg9lc3RpbWF0ZWRfY2VudHMYBCABKAMSMAoFc2VhdHMYBSADKAsyIS50b3NoaS53b3Jrc3BhY2UudjEuU3RhdGVtZW50U2VhdCI0CgpQYWlkU3RhcnRzEg0KBWNvdW50GAEgASgDEhcKD2VzdGltYXRlZF9jZW50cxgCIAEoAyLCAQoNU3RhdGVtZW50U2VhdBIPCgdzZWF0X2lkGAEgASgJEg8KB3VzZXJfaWQYAiABKAkSDAoEbmFtZRgDIAEoCRIvCgthc3NpZ25lZF9hdBgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKcmVtb3ZlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEAoIcmVwbGFjZXMYBiABKAkSDgoGYmlsbGVkGAcgASgIImQKCk93bkhvc3RGZWUSDwoHc2Vjb25kcxgBIAEoARIUCgxmcmVlX3NlY29uZHMYAiABKAMSFgoOYmlsbGVkX3NlY29uZHMYAyABKAMSFwoPZXN0aW1hdGVkX2NlbnRzGAQgASgDInsKBUF3YWtlEgwKBHNpemUYASABKAkSDAoEcnVucxgCIAEoAxIPCgdzZWNvbmRzGAMgASgBEhQKDGlkbGVfc2Vjb25kcxgEIAEoARIWCg5iaWxsZWRfc2Vjb25kcxgFIAEoAxIXCg9lc3RpbWF0ZWRfY2VudHMYBiABKAMiqwEKB1N0b3JhZ2USLQoFa2luZHMYASADKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuU3RvcmVkS2luZBITCgtpbmNsdWRlZF9nYhgCIAEoAxIQCghnYl9ob3VycxgDIAEoARIXCg9leGNlc3NfZ2JfaG91cnMYBCABKAESGAoQYmlsbGVkX2diX21vbnRocxgFIAEoARIXCg9lc3RpbWF0ZWRfY2VudHMYBiABKAMiOwoKU3RvcmVkS2luZBIMCgRraW5kGAEgASgJEg0KBWJ5dGVzGAIgASgDEhAKCGdiX2hvdXJzGAMgASgBIk0KD1N0b3JhZ2VVc2FnZVJvdxILCgNkYXkYASABKAkSDAoEa2luZBgCIAEoCRIQCghnYl9ob3VycxgDIAEoARINCgVieXRlcxgEIAEoAyLtAQoOU3RhdGVtZW50VXNhZ2USDAoEc2l6ZRgBIAEoCRIKCgJvcxgCIAEoCRIMCgRqb2JzGAMgASgDEg8KB21pbnV0ZXMYBCABKAMSGAoQb3duX2hvc3RfbWludXRlcxgFIAEoAxIVCg1kZWJ1Z19taW51dGVzGAYgASgDEhgKEG92ZXJmbG93X21pbnV0ZXMYByABKAMSGwoTcmVzZXJ2ZWRfc2xvdF9ob3VycxgIIAEoAxIPCgdvdXRjb21lGAkgASgJEg8KB3NlY29uZHMYCiABKAESGAoQb3duX2hvc3Rfc2Vjb25kcxgLIAEoASJaCg9TdGF0ZW1lbnRDaGFyZ2USDAoEc2l6ZRgBIAEoCRIPCgdtaW51dGVzGAIgASgDEhcKD2VzdGltYXRlZF9jZW50cxgDIAEoAxIPCgdzZWNvbmRzGAQgASgDIpwBCglIb2xkVGltZXMSDgoGcmVhc29uGAEgASgJEgwKBGpvYnMYAiABKAMSDgoGcDUwX21zGAMgASgDEg4KBnA5MF9tcxgEIAEoAxIOCgZtYXhfbXMYBSABKAMSEQoJb3Blbl9qb2JzGAYgASgDEi4KCm9wZW5fc2luY2UYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIiwKC0ZpbGxlclVzYWdlEgwKBGpvYnMYASABKAMSDwoHbWludXRlcxgCIAEoAyKpAgoIVXNhZ2VSb3cSCwoDZGF5GAEgASgJEhIKCmNvbmNsdXNpb24YAiABKAkSDAoEam9icxgDIAEoAxIPCgdtaW51dGVzGAQgASgDEhgKEG93bl9ob3N0X21pbnV0ZXMYBSABKAMSFQoNZGVidWdfbWludXRlcxgGIAEoAxIYChBvdmVyZmxvd19taW51dGVzGAcgASgDEhsKE3Jlc2VydmVkX3Nsb3RfaG91cnMYCCABKAMSDwoHb3V0Y29tZRgJIAEoCRIMCgRraW5kGAogASgJEg8KB3NlY29uZHMYCyABKAESGAoQb3duX2hvc3Rfc2Vjb25kcxgMIAEoARIVCg1hd2FrZV9zZWNvbmRzGA0gASgBEhQKDGlkbGVfc2Vjb25kcxgOIAEoASLEAQoQV29ya2Zsb3dVc2FnZVJvdxISCgpyZXBvc2l0b3J5GAEgASgJEhAKCHdvcmtmbG93GAIgASgJEgwKBGpvYnMYAyABKAMSDwoHbWludXRlcxgEIAEoAxIYChBvd25faG9zdF9taW51dGVzGAUgASgDEhMKC2ZhaWxlZF9qb2JzGAYgASgDEhIKCnRpbWVkX2pvYnMYByABKAMSEwoLcDUwX3NlY29uZHMYCCABKAMSEwoLcDk1X3NlY29uZHMYCSABKAMimAMKBFBsYW4SDAoEbmFtZRgBIAEoCRITCgtjb25jdXJyZW5jeRgCIAEoBRIXCg9tYXhfam9iX21pbnV0ZXMYAyABKAUSEgoKaXNfZGVmYXVsdBgEIAEoCBISCgpzZWxmX3NlcnZlGAUgASgIEhIKCmFsbG93ZWRfb3MYBiADKAkSEAoIbWF4X3NpemUYByABKAkSEAoIbWF4X3ZjcHUYCCABKAUSHgoWZnJlZV9taW51dGVzX3Blcl9tb250aBgJIAEoBRINCgVzaXplcxgKIAMoCRIZChFjYXJkX3JlcXVpcmVkX2ZvchgLIAMoCRIZChFtYXhfam9ic19wZXJfaG91chgMIAEoBRIYChBidXJzdF9ndWFyZF9qb2JzGA0gASgFEhwKFHN0YXJ0ZXJfY3JlZGl0X2NlbnRzGA4gASgDEhQKDGhpc3RvcnlfZGF5cxgPIAEoBRIVCg1kZWJ1Z19taW51dGVzGBAgASgFEhUKDW1heF9vd25faG9zdHMYESABKAUSEwoLb3Blbl9zb3VyY2UYEiABKAgitwEKCkVncmVzc0hvc3QSDwoHaG9zdF9pZBgBIAEoCRIMCgRuYW1lGAIgASgJEg4KBnNoYXJlZBgDIAEoCBIuCgZlZ3Jlc3MYBCABKAsyHi50b3NoaS53b3Jrc3BhY2UudjEuSG9zdEVncmVzcxISCgpyZWNlbnRfaXBzGAUgAygJEg0KBWNsb3VkGAYgASgJEhQKDGNsb3VkX2VncmVzcxgHIAEoCRIRCgljb25maXJtZWQYCCABKAgqlgIKF0hvc3RpbmdDZXJ0aWZpY2F0ZVN0YXRlEikKJUhPU1RJTkdfQ0VSVElGSUNBVEVfU1RBVEVfVU5TUEVDSUZJRUQQABIlCiFIT1NUSU5HX0NFUlRJRklDQVRFX1NUQVRFX0lTU1VJTkcQARIqCiZIT1NUSU5HX0NFUlRJRklDQVRFX1NUQVRFX1JBVEVfTElNSVRFRBACEiMKH0hPU1RJTkdfQ0VSVElGSUNBVEVfU1RBVEVfVkFMSUQQAxItCilIT1NUSU5HX0NFUlRJRklDQVRFX1NUQVRFX1JFTkVXQUxfRkFJTElORxAEEikKJUhPU1RJTkdfQ0VSVElGSUNBVEVfU1RBVEVfU0VMRl9TSUdORUQQBTL6FAoQV29ya3NwYWNlU2VydmljZRJ1CgxHZXRXb3Jrc3BhY2USJy50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya3NwYWNlUmVxdWVzdBooLnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3Jrc3BhY2VSZXNwb25zZSISwvMYDndvcmtzcGFjZS5yZWFkEoMBCg9VcGRhdGVXb3Jrc3BhY2USKi50b3NoaS53b3Jrc3BhY2UudjEuVXBkYXRlV29ya3NwYWNlUmVxdWVzdBorLnRvc2hpLndvcmtzcGFjZS52MS5VcGRhdGVXb3Jrc3BhY2VSZXNwb25zZSIXwvMYD3dvcmtzcGFjZS53cml0ZeDzGAESewoOTGlzdFdvcmtzcGFjZXMSKS50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFdvcmtzcGFjZXNSZXF1ZXN0GioudG9zaGkud29ya3NwYWNlLnYxLkxpc3RXb3Jrc3BhY2VzUmVzcG9uc2UiEsLzGA53b3Jrc3BhY2UucmVhZBKIAQoTR2V0V29ya3NwYWNlQmlsbGluZxIuLnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3Jrc3BhY2VCaWxsaW5nUmVxdWVzdBovLnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3Jrc3BhY2VCaWxsaW5nUmVzcG9uc2UiEMLzGAxiaWxsaW5nLnJlYWQSjgEKFUdldFdvcmtzcGFjZVN0YXRlbWVudBIwLnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3Jrc3BhY2VTdGF0ZW1lbnRSZXF1ZXN0GjEudG9zaGkud29ya3NwYWNlLnYxLkdldFdvcmtzcGFjZVN0YXRlbWVudFJlc3BvbnNlIhDC8xgMYmlsbGluZy5yZWFkEqABChtHZXRXb3Jrc3BhY2VVcGNvbWluZ0ludm9pY2USNi50b3NoaS53b3Jrc3BhY2UudjEuR2V0V29ya3NwYWNlVXBjb21pbmdJbnZvaWNlUmVxdWVzdBo3LnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3Jrc3BhY2VVcGNvbWluZ0ludm9pY2VSZXNwb25zZSIQwvMYDGJpbGxpbmcucmVhZBJoCglMaXN0U2VhdHMSJC50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFNlYXRzUmVxdWVzdBolLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0U2VhdHNSZXNwb25zZSIOwvMYCnNlYXRzLnJlYWQSlgEKCkFzc2lnblNlYXQSJS50b3NoaS53b3Jrc3BhY2UudjEuQXNzaWduU2VhdFJlcXVlc3QaJi50b3NoaS53b3Jrc3BhY2UudjEuQXNzaWduU2VhdFJlc3BvbnNlIjnC8xgLc2VhdHMud3JpdGXS8xgmCg1zZWF0LmFzc2lnbmVkEhVzZWF0OnJlc3BvbnNlLnNlYXQuaWQSfgoKUmVtb3ZlU2VhdBIlLnRvc2hpLndvcmtzcGFjZS52MS5SZW1vdmVTZWF0UmVxdWVzdBomLnRvc2hpLndvcmtzcGFjZS52MS5SZW1vdmVTZWF0UmVzcG9uc2UiIcLzGAtzZWF0cy53cml0ZdLzGA4KDHNlYXQucmVtb3ZlZBJ4Cg1MaXN0RWdyZXNzSVBzEigudG9zaGkud29ya3NwYWNlLnYxLkxpc3RFZ3Jlc3NJUHNSZXF1ZXN0GikudG9zaGkud29ya3NwYWNlLnYxLkxpc3RFZ3Jlc3NJUHNSZXNwb25zZSISwvMYDndvcmtzcGFjZS5yZWFkEmkKCEdldFVzYWdlEiMudG9zaGkud29ya3NwYWNlLnYxLkdldFVzYWdlUmVxdWVzdBokLnRvc2hpLndvcmtzcGFjZS52MS5HZXRVc2FnZVJlc3BvbnNlIhLC8xgOd29ya3NwYWNlLnJlYWQSeAoNR2V0UXVldWVUaW1lcxIoLnRvc2hpLndvcmtzcGFjZS52MS5HZXRRdWV1ZVRpbWVzUmVxdWVzdBopLnRvc2hpLndvcmtzcGFjZS52MS5HZXRRdWV1ZVRpbWVzUmVzcG9uc2UiEsLzGA53b3Jrc3BhY2UucmVhZBKBAQoQR2V0V29ya2Zsb3dVc2FnZRIrLnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3JrZmxvd1VzYWdlUmVxdWVzdBosLnRvc2hpLndvcmtzcGFjZS52MS5HZXRXb3JrZmxvd1VzYWdlUmVzcG9uc2UiEsLzGA53b3Jrc3BhY2UucmVhZBJqCglMaXN0UGxhbnMSJC50b3NoaS53b3Jrc3BhY2UudjEuTGlzdFBsYW5zUmVxdWVzdBolLnRvc2hpLndvcmtzcGFjZS52MS5MaXN0UGxhbnNSZXNwb25zZSIQwvMYDGJpbGxpbmcucmVhZBLBAQoVQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uEjAudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZUNoZWNrb3V0U2Vzc2lvblJlcXVlc3QaMS50b3NoaS53b3Jrc3BhY2UudjEuQ3JlYXRlQ2hlY2tvdXRTZXNzaW9uUmVzcG9uc2UiQ8LzGA1iaWxsaW5nLndyaXRl0vMYLgoXYmlsbGluZy5jaGVja291dF9vcGVuZWQSE3dvcmtzcGFjZTp3b3Jrc3BhY2USzgEKGkNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uEjUudG9zaGkud29ya3NwYWNlLnYxLkNyZWF0ZUJpbGxpbmdQb3J0YWxTZXNzaW9uUmVxdWVzdBo2LnRvc2hpLndvcmtzcGFjZS52MS5DcmVhdGVCaWxsaW5nUG9ydGFsU2Vzc2lvblJlc3BvbnNlIkHC8xgNYmlsbGluZy53cml0ZdLzGCwKFWJpbGxpbmcucG9ydGFsX29wZW5lZBITd29ya3NwYWNlOndvcmtzcGFjZRJvCgpHZXRWZXJzaW9uEiUudG9zaGkud29ya3NwYWNlLnYxLkdldFZlcnNpb25SZXF1ZXN0GiYudG9zaGkud29ya3NwYWNlLnYxLkdldFZlcnNpb25SZXNwb25zZSISwvMYDndvcmtzcGFjZS5yZWFkEqIBCg9EZWxldGVXb3Jrc3BhY2USKi50b3NoaS53b3Jrc3BhY2UudjEuRGVsZXRlV29ya3NwYWNlUmVxdWVzdBorLnRvc2hpLndvcmtzcGFjZS52MS5EZWxldGVXb3Jrc3BhY2VSZXNwb25zZSI2wvMYEHdvcmtzcGFjZS5kZWxldGXS8xgeChx3b3Jrc3BhY2UuZGVsZXRpb25fc2NoZWR1bGVkEq8BChdDYW5jZWxXb3Jrc3BhY2VEZWxldGlvbhIyLnRvc2hpLndvcmtzcGFjZS52MS5DYW5jZWxXb3Jrc3BhY2VEZWxldGlvblJlcXVlc3QaMy50b3NoaS53b3Jrc3BhY2UudjEuQ2FuY2VsV29ya3NwYWNlRGVsZXRpb25SZXNwb25zZSIrwvMYEHdvcmtzcGFjZS5kZWxldGXS8xgTChF3b3Jrc3BhY2UucmVzdW1lZEIiWiBnby50b3NoaWNsb3VkLmlvL2FwaS93b3Jrc3BhY2V2MWIGcHJvdG8z", [file_google_protobuf_field_mask, file_google_protobuf_timestamp, file_toshi_permission, file_toshi_workspace_v1_discovery, file_toshi_workspace_v1_hosts, file_toshi_workspace_v1_roles]);
14
14
  /**
15
15
  * Describes the message toshi.workspace.v1.GetWorkspaceRequest.
16
16
  * Use `create(GetWorkspaceRequestSchema)` to create a new message.
@@ -276,76 +276,81 @@ export const WorkspaceStatementSchema = /*@__PURE__*/ messageDesc(file_toshi_wor
276
276
  * Use `create(DesktopSeatsSchema)` to create a new message.
277
277
  */
278
278
  export const DesktopSeatsSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 51);
279
+ /**
280
+ * Describes the message toshi.workspace.v1.PaidStarts.
281
+ * Use `create(PaidStartsSchema)` to create a new message.
282
+ */
283
+ export const PaidStartsSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 52);
279
284
  /**
280
285
  * Describes the message toshi.workspace.v1.StatementSeat.
281
286
  * Use `create(StatementSeatSchema)` to create a new message.
282
287
  */
283
- export const StatementSeatSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 52);
288
+ export const StatementSeatSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 53);
284
289
  /**
285
290
  * Describes the message toshi.workspace.v1.OwnHostFee.
286
291
  * Use `create(OwnHostFeeSchema)` to create a new message.
287
292
  */
288
- export const OwnHostFeeSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 53);
293
+ export const OwnHostFeeSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 54);
289
294
  /**
290
295
  * Describes the message toshi.workspace.v1.Awake.
291
296
  * Use `create(AwakeSchema)` to create a new message.
292
297
  */
293
- export const AwakeSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 54);
298
+ export const AwakeSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 55);
294
299
  /**
295
300
  * Describes the message toshi.workspace.v1.Storage.
296
301
  * Use `create(StorageSchema)` to create a new message.
297
302
  */
298
- export const StorageSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 55);
303
+ export const StorageSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 56);
299
304
  /**
300
305
  * Describes the message toshi.workspace.v1.StoredKind.
301
306
  * Use `create(StoredKindSchema)` to create a new message.
302
307
  */
303
- export const StoredKindSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 56);
308
+ export const StoredKindSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 57);
304
309
  /**
305
310
  * Describes the message toshi.workspace.v1.StorageUsageRow.
306
311
  * Use `create(StorageUsageRowSchema)` to create a new message.
307
312
  */
308
- export const StorageUsageRowSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 57);
313
+ export const StorageUsageRowSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 58);
309
314
  /**
310
315
  * Describes the message toshi.workspace.v1.StatementUsage.
311
316
  * Use `create(StatementUsageSchema)` to create a new message.
312
317
  */
313
- export const StatementUsageSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 58);
318
+ export const StatementUsageSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 59);
314
319
  /**
315
320
  * Describes the message toshi.workspace.v1.StatementCharge.
316
321
  * Use `create(StatementChargeSchema)` to create a new message.
317
322
  */
318
- export const StatementChargeSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 59);
323
+ export const StatementChargeSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 60);
319
324
  /**
320
325
  * Describes the message toshi.workspace.v1.HoldTimes.
321
326
  * Use `create(HoldTimesSchema)` to create a new message.
322
327
  */
323
- export const HoldTimesSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 60);
328
+ export const HoldTimesSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 61);
324
329
  /**
325
330
  * Describes the message toshi.workspace.v1.FillerUsage.
326
331
  * Use `create(FillerUsageSchema)` to create a new message.
327
332
  */
328
- export const FillerUsageSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 61);
333
+ export const FillerUsageSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 62);
329
334
  /**
330
335
  * Describes the message toshi.workspace.v1.UsageRow.
331
336
  * Use `create(UsageRowSchema)` to create a new message.
332
337
  */
333
- export const UsageRowSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 62);
338
+ export const UsageRowSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 63);
334
339
  /**
335
340
  * Describes the message toshi.workspace.v1.WorkflowUsageRow.
336
341
  * Use `create(WorkflowUsageRowSchema)` to create a new message.
337
342
  */
338
- export const WorkflowUsageRowSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 63);
343
+ export const WorkflowUsageRowSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 64);
339
344
  /**
340
345
  * Describes the message toshi.workspace.v1.Plan.
341
346
  * Use `create(PlanSchema)` to create a new message.
342
347
  */
343
- export const PlanSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 64);
348
+ export const PlanSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 65);
344
349
  /**
345
350
  * Describes the message toshi.workspace.v1.EgressHost.
346
351
  * Use `create(EgressHostSchema)` to create a new message.
347
352
  */
348
- export const EgressHostSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 65);
353
+ export const EgressHostSchema = /*@__PURE__*/ messageDesc(file_toshi_workspace_v1_workspace_service, 66);
349
354
  /**
350
355
  * @generated from enum toshi.workspace.v1.HostingCertificateState
351
356
  */
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export * from "./gen/toshi/workspace/v1/display_pb.js";
4
4
  export * from "./gen/toshi/workspace/v1/projects_pb.js";
5
5
  export * from "./gen/toshi/workspace/v1/secrets_pb.js";
6
6
  export * from "./gen/toshi/workspace/v1/webhook_pb.js";
7
- export * from "./gen/toshi/workspace/v1/channels_pb.js";
7
+ export * from "./gen/toshi/workspace/v1/endpoints_pb.js";
8
8
  export * from "./gen/toshi/workspace/v1/recordings_pb.js";
9
9
  export * from "./gen/toshi/workspace/v1/volumes_pb.js";
10
10
  export * from "./gen/toshi/workspace/v1/artifacts_pb.js";
@@ -23,6 +23,7 @@ export * from "./gen/toshi/workspace/v1/account_pb.js";
23
23
  export * from "./gen/toshi/workspace/v1/images_pb.js";
24
24
  export * from "./gen/toshi/workspace/v1/triggers_pb.js";
25
25
  export * from "./gen/toshi/workspace/v1/domains_pb.js";
26
+ export * from "./gen/toshi/workspace/v1/model_credentials_pb.js";
26
27
  export * from "./gen/toshi/workspace/v1/workspace_service_pb.js";
27
28
  export { createToshiClient } from "./client.js";
28
29
  export { paginate } from "./paginate.js";
package/dist/index.js CHANGED
@@ -5,7 +5,7 @@ export * from "./gen/toshi/workspace/v1/display_pb.js";
5
5
  export * from "./gen/toshi/workspace/v1/projects_pb.js";
6
6
  export * from "./gen/toshi/workspace/v1/secrets_pb.js";
7
7
  export * from "./gen/toshi/workspace/v1/webhook_pb.js";
8
- export * from "./gen/toshi/workspace/v1/channels_pb.js";
8
+ export * from "./gen/toshi/workspace/v1/endpoints_pb.js";
9
9
  export * from "./gen/toshi/workspace/v1/recordings_pb.js";
10
10
  export * from "./gen/toshi/workspace/v1/volumes_pb.js";
11
11
  export * from "./gen/toshi/workspace/v1/artifacts_pb.js";
@@ -24,6 +24,7 @@ export * from "./gen/toshi/workspace/v1/account_pb.js";
24
24
  export * from "./gen/toshi/workspace/v1/images_pb.js";
25
25
  export * from "./gen/toshi/workspace/v1/triggers_pb.js";
26
26
  export * from "./gen/toshi/workspace/v1/domains_pb.js";
27
+ export * from "./gen/toshi/workspace/v1/model_credentials_pb.js";
27
28
  export * from "./gen/toshi/workspace/v1/workspace_service_pb.js";
28
29
  export { createToshiClient } from "./client.js";
29
30
  export { paginate } from "./paginate.js";
package/dist/retry.js CHANGED
@@ -24,6 +24,8 @@ const procedureRetryClass = {
24
24
  "/toshi.workspace.v1.WorkloadService/CreateJob": "keyed",
25
25
  "/toshi.workspace.v1.WorkloadService/GetJob": "read",
26
26
  "/toshi.workspace.v1.WorkloadService/ListJobs": "read",
27
+ "/toshi.workspace.v1.WorkloadService/GetWorkloadUsage": "read",
28
+ "/toshi.workspace.v1.WorkloadService/ListWorkloadUsages": "read",
27
29
  "/toshi.workspace.v1.WorkloadService/UpdateJob": "keyed",
28
30
  "/toshi.workspace.v1.WorkloadService/DeleteJob": "keyed",
29
31
  "/toshi.workspace.v1.WorkloadService/CancelJob": "none",
@@ -122,12 +124,12 @@ const procedureRetryClass = {
122
124
  "/toshi.workspace.v1.ProjectService/SetEnvironmentRetention": "none",
123
125
  "/toshi.workspace.v1.ProjectService/SetEnvironmentVolumes": "none",
124
126
  "/toshi.workspace.v1.ProjectService/UpdateEnvironment": "none",
125
- "/toshi.workspace.v1.WebhookService/CreateWebhookEndpoint": "keyed",
126
- "/toshi.workspace.v1.WebhookService/GetWebhookEndpoint": "read",
127
- "/toshi.workspace.v1.WebhookService/ListWebhookEndpoints": "read",
128
- "/toshi.workspace.v1.WebhookService/UpdateWebhookEndpoint": "keyed",
129
- "/toshi.workspace.v1.WebhookService/DeleteWebhookEndpoint": "keyed",
130
- "/toshi.workspace.v1.WebhookService/RotateWebhookEndpointSecret": "keyed",
127
+ "/toshi.workspace.v1.WebhookService/CreateWebhook": "keyed",
128
+ "/toshi.workspace.v1.WebhookService/GetWebhook": "read",
129
+ "/toshi.workspace.v1.WebhookService/ListWebhooks": "read",
130
+ "/toshi.workspace.v1.WebhookService/UpdateWebhook": "keyed",
131
+ "/toshi.workspace.v1.WebhookService/DeleteWebhook": "keyed",
132
+ "/toshi.workspace.v1.WebhookService/RotateWebhookSecret": "keyed",
131
133
  "/toshi.workspace.v1.WebhookService/ListWebhookDeliveries": "read",
132
134
  "/toshi.workspace.v1.WebhookService/ReplayWebhookEvents": "keyed",
133
135
  // A retry returns the session the first call opened, with replayed set and
@@ -141,22 +143,22 @@ const procedureRetryClass = {
141
143
  "/toshi.workspace.v1.DisplayService/SendDisplayPointer": "none",
142
144
  "/toshi.workspace.v1.DisplayService/SetDisplayClipboard": "none",
143
145
  "/toshi.workspace.v1.DisplayService/TakeDisplayScreenshot": "none",
144
- "/toshi.workspace.v1.ChannelService/CreateChannel": "keyed",
145
- "/toshi.workspace.v1.ChannelService/ListChannels": "read",
146
- "/toshi.workspace.v1.ChannelService/GetChannel": "read",
147
- "/toshi.workspace.v1.ChannelService/GetChannelPolicy": "read",
148
- "/toshi.workspace.v1.ChannelService/SetChannelPolicy": "none",
149
- "/toshi.workspace.v1.ChannelService/ListChannelRequests": "read",
150
- "/toshi.workspace.v1.ChannelService/GetChannelRequest": "read",
151
- "/toshi.workspace.v1.ChannelService/ExportChannelLog": "none",
152
- "/toshi.workspace.v1.ChannelService/CreateChannelConnectToken": "none",
153
- "/toshi.workspace.v1.ChannelService/RevokeChannelConnectToken": "none",
154
- "/toshi.workspace.v1.ChannelService/DeleteChannel": "none",
155
- "/toshi.workspace.v1.ChannelService/ListForwards": "read",
156
- "/toshi.workspace.v1.ChannelService/GetLink": "read",
157
- "/toshi.workspace.v1.ChannelService/ReplayChannelMessage": "none",
158
- "/toshi.workspace.v1.ChannelService/SendChannelMessage": "keyed",
159
- "/toshi.workspace.v1.ChannelService/TailChannelMessages": "none",
146
+ "/toshi.workspace.v1.EndpointService/CreateEndpoint": "keyed",
147
+ "/toshi.workspace.v1.EndpointService/ListEndpoints": "read",
148
+ "/toshi.workspace.v1.EndpointService/GetEndpoint": "read",
149
+ "/toshi.workspace.v1.EndpointService/GetEndpointPolicy": "read",
150
+ "/toshi.workspace.v1.EndpointService/SetEndpointPolicy": "none",
151
+ "/toshi.workspace.v1.EndpointService/ListEndpointRequests": "read",
152
+ "/toshi.workspace.v1.EndpointService/GetEndpointRequest": "read",
153
+ "/toshi.workspace.v1.EndpointService/ExportEndpointLog": "none",
154
+ "/toshi.workspace.v1.EndpointService/CreateEndpointConnectToken": "none",
155
+ "/toshi.workspace.v1.EndpointService/RevokeEndpointConnectToken": "none",
156
+ "/toshi.workspace.v1.EndpointService/DeleteEndpoint": "none",
157
+ "/toshi.workspace.v1.EndpointService/ListForwards": "read",
158
+ "/toshi.workspace.v1.EndpointService/GetTunnel": "read",
159
+ "/toshi.workspace.v1.EndpointService/ReplayEndpointMessage": "none",
160
+ "/toshi.workspace.v1.EndpointService/SendEndpointMessage": "keyed",
161
+ "/toshi.workspace.v1.EndpointService/TailEndpointMessages": "none",
160
162
  "/toshi.workspace.v1.RecordingService/ListRecordings": "read",
161
163
  "/toshi.workspace.v1.RecordingService/GetRecording": "read",
162
164
  "/toshi.workspace.v1.RecordingService/CreateRecordingShareLink": "none",
@@ -283,6 +285,15 @@ const procedureRetryClass = {
283
285
  "/toshi.workspace.v1.DomainService/VerifyDomain": "keyed",
284
286
  "/toshi.workspace.v1.DomainService/IssueDomain": "keyed",
285
287
  "/toshi.workspace.v1.DomainService/DeleteDomain": "none",
288
+ // CreateModelCredential takes no request_key, and a repeat answers
289
+ // ALREADY_EXISTS ("a key that already serves a credential fails with
290
+ // ALREADY_EXISTS, and so does a second credential of the same name and
291
+ // owner"), so a retry would report failure for a call that worked.
292
+ "/toshi.workspace.v1.ModelCredentialService/CreateModelCredential": "none",
293
+ "/toshi.workspace.v1.ModelCredentialService/GetModelCredential": "read",
294
+ "/toshi.workspace.v1.ModelCredentialService/ListModelCredentials": "read",
295
+ "/toshi.workspace.v1.ModelCredentialService/UpdateModelCredential": "none",
296
+ "/toshi.workspace.v1.ModelCredentialService/DeleteModelCredential": "none",
286
297
  };
287
298
  /** The retry class of a generated procedure path; an unknown path is "none". */
288
299
  export function retryClassFor(procedure) {
@@ -19,7 +19,7 @@ export class AlarmStore {
19
19
  const alarm = create(ServiceAlarmSchema, {
20
20
  name: request.name,
21
21
  timezone: request.timezone,
22
- channel: request.channel,
22
+ endpoint: request.endpoint,
23
23
  event: request.event,
24
24
  data: request.data.slice(),
25
25
  misfire: request.misfire,
@@ -1,7 +1,7 @@
1
1
  import { AccountService } from "../gen/toshi/workspace/v1/account_pb.js";
2
2
  import { ArtifactService, ArtifactUploadService } from "../gen/toshi/workspace/v1/artifacts_pb.js";
3
3
  import { AuditEventService } from "../gen/toshi/workspace/v1/audit_events_pb.js";
4
- import { ChannelService } from "../gen/toshi/workspace/v1/channels_pb.js";
4
+ import { EndpointService } from "../gen/toshi/workspace/v1/endpoints_pb.js";
5
5
  import { DisplayService } from "../gen/toshi/workspace/v1/display_pb.js";
6
6
  import { DomainService } from "../gen/toshi/workspace/v1/domains_pb.js";
7
7
  import { FillerService } from "../gen/toshi/workspace/v1/fillers_pb.js";
@@ -9,6 +9,7 @@ import { GrantService } from "../gen/toshi/workspace/v1/grants_pb.js";
9
9
  import { HostJobService } from "../gen/toshi/workspace/v1/hostjobs_pb.js";
10
10
  import { HostService } from "../gen/toshi/workspace/v1/hosts_pb.js";
11
11
  import { ImageService } from "../gen/toshi/workspace/v1/images_pb.js";
12
+ import { ModelCredentialService } from "../gen/toshi/workspace/v1/model_credentials_pb.js";
12
13
  import { ProductService } from "../gen/toshi/workspace/v1/products_pb.js";
13
14
  import { ProjectService } from "../gen/toshi/workspace/v1/projects_pb.js";
14
15
  import { RecordingService } from "../gen/toshi/workspace/v1/recordings_pb.js";
@@ -28,7 +29,7 @@ export const apiServices = [
28
29
  ProjectService,
29
30
  WebhookService,
30
31
  DisplayService,
31
- ChannelService,
32
+ EndpointService,
32
33
  RecordingService,
33
34
  VolumeService,
34
35
  ArtifactService,
@@ -45,6 +46,7 @@ export const apiServices = [
45
46
  ImageService,
46
47
  ProductService,
47
48
  DomainService,
49
+ ModelCredentialService,
48
50
  ];
49
51
  /** The path a client calls a method by, for example `/toshi.workspace.v1.WorkloadService/CreateJob`. */
50
52
  export function procedurePath(method) {
@@ -87,6 +89,8 @@ export const hookOnly = [
87
89
  ProductService.method.listProducts,
88
90
  ProductService.method.updateProduct,
89
91
  // WorkloadService
92
+ WorkloadService.method.getWorkloadUsage,
93
+ WorkloadService.method.listWorkloadUsages,
90
94
  WorkloadService.method.updateJob,
91
95
  WorkloadService.method.deleteJob,
92
96
  WorkloadService.method.updateSandbox,
@@ -175,12 +179,12 @@ export const hookOnly = [
175
179
  ProjectService.method.setEnvironmentRetention,
176
180
  ProjectService.method.setEnvironmentVolumes,
177
181
  // WebhookService
178
- WebhookService.method.createWebhookEndpoint,
179
- WebhookService.method.getWebhookEndpoint,
180
- WebhookService.method.listWebhookEndpoints,
181
- WebhookService.method.updateWebhookEndpoint,
182
- WebhookService.method.deleteWebhookEndpoint,
183
- WebhookService.method.rotateWebhookEndpointSecret,
182
+ WebhookService.method.createWebhook,
183
+ WebhookService.method.getWebhook,
184
+ WebhookService.method.listWebhooks,
185
+ WebhookService.method.updateWebhook,
186
+ WebhookService.method.deleteWebhook,
187
+ WebhookService.method.rotateWebhookSecret,
184
188
  WebhookService.method.listWebhookDeliveries,
185
189
  WebhookService.method.replayWebhookEvents,
186
190
  // DisplayService
@@ -192,23 +196,23 @@ export const hookOnly = [
192
196
  DisplayService.method.sendDisplayPointer,
193
197
  DisplayService.method.setDisplayClipboard,
194
198
  DisplayService.method.takeDisplayScreenshot,
195
- // ChannelService
196
- ChannelService.method.createChannel,
197
- ChannelService.method.listChannels,
198
- ChannelService.method.getChannel,
199
- ChannelService.method.getChannelPolicy,
200
- ChannelService.method.setChannelPolicy,
201
- ChannelService.method.listChannelRequests,
202
- ChannelService.method.getChannelRequest,
203
- ChannelService.method.exportChannelLog,
204
- ChannelService.method.createChannelConnectToken,
205
- ChannelService.method.revokeChannelConnectToken,
206
- ChannelService.method.deleteChannel,
207
- ChannelService.method.listForwards,
208
- ChannelService.method.getLink,
209
- ChannelService.method.sendChannelMessage,
210
- ChannelService.method.tailChannelMessages,
211
- ChannelService.method.replayChannelMessage,
199
+ // EndpointService
200
+ EndpointService.method.createEndpoint,
201
+ EndpointService.method.listEndpoints,
202
+ EndpointService.method.getEndpoint,
203
+ EndpointService.method.getEndpointPolicy,
204
+ EndpointService.method.setEndpointPolicy,
205
+ EndpointService.method.listEndpointRequests,
206
+ EndpointService.method.getEndpointRequest,
207
+ EndpointService.method.exportEndpointLog,
208
+ EndpointService.method.createEndpointConnectToken,
209
+ EndpointService.method.revokeEndpointConnectToken,
210
+ EndpointService.method.deleteEndpoint,
211
+ EndpointService.method.listForwards,
212
+ EndpointService.method.getTunnel,
213
+ EndpointService.method.sendEndpointMessage,
214
+ EndpointService.method.tailEndpointMessages,
215
+ EndpointService.method.replayEndpointMessage,
212
216
  // RecordingService
213
217
  RecordingService.method.listRecordings,
214
218
  RecordingService.method.getRecording,
@@ -307,4 +311,10 @@ export const hookOnly = [
307
311
  DomainService.method.verifyDomain,
308
312
  DomainService.method.issueDomain,
309
313
  DomainService.method.deleteDomain,
314
+ // ModelCredentialService
315
+ ModelCredentialService.method.createModelCredential,
316
+ ModelCredentialService.method.getModelCredential,
317
+ ModelCredentialService.method.listModelCredentials,
318
+ ModelCredentialService.method.updateModelCredential,
319
+ ModelCredentialService.method.deleteModelCredential,
310
320
  ];
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** The package version; test/node.test.ts keeps it equal to package.json. */
2
- export declare const VERSION = "0.6.0";
2
+ export declare const VERSION = "0.7.0";
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /** The package version; test/node.test.ts keeps it equal to package.json. */
2
- export const VERSION = "0.6.0";
2
+ export const VERSION = "0.7.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toshicloud/sdk",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "TypeScript client for the Toshi Workspace API",
5
5
  "license": "Apache-2.0",
6
6
  "packageManager": "pnpm@12.15.0+sha512.b3951d6d6ff4a9f13dc7cf56cd28d2b8eb37dbcc9c68e52e1e1191873ea9f82a017287ab50baadc5ccc494f036c67c0e47eb13608c2fa36f47711b61ea128e61",