@codiac.io/codiac-cli 1.3.64 → 1.3.65

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 (93) hide show
  1. package/README.md +1 -1
  2. package/dist/apis/api-plus-local/api-client-plus-local.d.ts +31 -0
  3. package/dist/apis/api-plus-local/api-client-plus-local.js +242 -0
  4. package/dist/apis/api-plus-local/api-client-plus-local.js.map +1 -0
  5. package/dist/apis/api-plus-local/asset-where-entity-merger.d.ts +8 -0
  6. package/dist/apis/api-plus-local/asset-where-entity-merger.js +33 -0
  7. package/dist/apis/api-plus-local/asset-where-entity-merger.js.map +1 -0
  8. package/dist/apis/api-plus-local/enterprise-state-entity-merger.d.ts +8 -0
  9. package/dist/apis/api-plus-local/enterprise-state-entity-merger.js +43 -0
  10. package/dist/apis/api-plus-local/enterprise-state-entity-merger.js.map +1 -0
  11. package/dist/apis/api-plus-local/i-entity-merger.d.ts +4 -0
  12. package/dist/apis/api-plus-local/i-entity-merger.js +3 -0
  13. package/dist/apis/api-plus-local/i-entity-merger.js.map +1 -0
  14. package/dist/apis/api-plus-local/root-map-entity-merger.d.ts +8 -0
  15. package/dist/apis/api-plus-local/root-map-entity-merger.js +51 -0
  16. package/dist/apis/api-plus-local/root-map-entity-merger.js.map +1 -0
  17. package/dist/apis/codiac-api/common/api-client-base.js +9 -2
  18. package/dist/apis/codiac-api/common/api-client-base.js.map +1 -1
  19. package/dist/apis/codiac-api/common/api-crud-client-base.d.ts +22 -0
  20. package/dist/apis/codiac-api/common/api-crud-client-base.js +84 -0
  21. package/dist/apis/codiac-api/common/api-crud-client-base.js.map +1 -0
  22. package/dist/apis/codiac-api/gen/client.d.ts +58 -56
  23. package/dist/apis/codiac-api/gen/client.js +745 -11217
  24. package/dist/apis/codiac-api/gen/client.js.map +1 -1
  25. package/dist/apis/codiac-api/gen/contracts.d.ts +84 -67
  26. package/dist/apis/codiac-api/gen/contracts.js +15 -11
  27. package/dist/apis/codiac-api/gen/contracts.js.map +1 -1
  28. package/dist/apis/codiac-relay/common/api-client-base.js +12 -7
  29. package/dist/apis/codiac-relay/common/api-client-base.js.map +1 -1
  30. package/dist/apis/codiac-relay/common/api-crud-client-base.d.ts +22 -0
  31. package/dist/apis/codiac-relay/common/api-crud-client-base.js +84 -0
  32. package/dist/apis/codiac-relay/common/api-crud-client-base.js.map +1 -0
  33. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.js +6 -6
  34. package/dist/apis/codiac-relay/common/security/api-auth-methods-legacy.js.map +1 -1
  35. package/dist/apis/codiac-relay/common/utils.js +1 -1
  36. package/dist/apis/codiac-relay/common/utils.js.map +1 -1
  37. package/dist/apis/codiac-relay/gen/client.d.ts +816 -145
  38. package/dist/apis/codiac-relay/gen/client.js +4645 -1162
  39. package/dist/apis/codiac-relay/gen/client.js.map +1 -1
  40. package/dist/apis/codiac-relay/gen/contracts.d.ts +1058 -155
  41. package/dist/apis/codiac-relay/gen/contracts.js +119 -27
  42. package/dist/apis/codiac-relay/gen/contracts.js.map +1 -1
  43. package/dist/codiac-entities/i-local-entity.d.ts +6 -0
  44. package/dist/codiac-entities/i-local-entity.js +3 -0
  45. package/dist/codiac-entities/i-local-entity.js.map +1 -0
  46. package/dist/command-base-enterprise.d.ts +0 -5
  47. package/dist/command-base-enterprise.js +41 -32
  48. package/dist/command-base-enterprise.js.map +1 -1
  49. package/dist/commands/asset/deploy.js +1 -1
  50. package/dist/commands/asset/recycle.js +5 -3
  51. package/dist/commands/asset/recycle.js.map +1 -1
  52. package/dist/commands/asset/undeploy.d.ts +2 -1
  53. package/dist/commands/asset/undeploy.js +33 -4
  54. package/dist/commands/asset/undeploy.js.map +1 -1
  55. package/dist/commands/asset/where.js +1 -1
  56. package/dist/commands/cabinet/obliterate.d.ts +21 -4
  57. package/dist/commands/cabinet/obliterate.js +94 -72
  58. package/dist/commands/cabinet/obliterate.js.map +1 -1
  59. package/dist/commands/config/import.js +3 -1
  60. package/dist/commands/config/import.js.map +1 -1
  61. package/dist/commands/env/add.js +3 -1
  62. package/dist/commands/env/add.js.map +1 -1
  63. package/dist/commands/environment/cluster/attach.js +5 -0
  64. package/dist/commands/environment/cluster/attach.js.map +1 -1
  65. package/dist/commands/environment/list.js +42 -20
  66. package/dist/commands/environment/list.js.map +1 -1
  67. package/dist/commands/filestore/capture.js.map +1 -1
  68. package/dist/commands/imageRegistry/capture.d.ts +1 -1
  69. package/dist/commands/imageRegistry/capture.js +10 -12
  70. package/dist/commands/imageRegistry/capture.js.map +1 -1
  71. package/dist/commands/noc/cluster/capture.js +1 -1
  72. package/dist/commands/noc/cluster/destroy.d.ts +29 -11
  73. package/dist/commands/noc/cluster/destroy.js +137 -124
  74. package/dist/commands/noc/cluster/destroy.js.map +1 -1
  75. package/dist/commands/noc/cluster/list.js +4 -1
  76. package/dist/commands/noc/cluster/list.js.map +1 -1
  77. package/dist/commands/noc/cluster/recreate.js +1 -3
  78. package/dist/commands/noc/cluster/recreate.js.map +1 -1
  79. package/dist/commands/portal.js +11 -11
  80. package/dist/commands/portal.js.map +1 -1
  81. package/dist/ops/entities/cli-config.d.ts +1 -0
  82. package/dist/ops/entities/cli-config.js.map +1 -1
  83. package/dist/relay/relay-container.d.ts +2 -1
  84. package/dist/relay/relay-container.js +18 -6
  85. package/dist/relay/relay-container.js.map +1 -1
  86. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.js +1 -0
  87. package/dist/uilogic/cloud-resource-configurators/azure-resource-configurator.js.map +1 -1
  88. package/dist/uilogic/image-registry-contextualizer.js +1 -1
  89. package/dist/uilogic/image-registry-contextualizer.js.map +1 -1
  90. package/dist/uilogic/rootmap-ui-utils.js +5 -5
  91. package/dist/uilogic/rootmap-ui-utils.js.map +1 -1
  92. package/oclif.manifest.json +117 -45
  93. package/package.json +6 -3
@@ -1,4 +1,4 @@
1
- import { SingleResult } from "@codiac.io/codiac-common/contracts";
1
+ import { BatchResult, SingleResult } from "@codiac.io/codiac-common/contracts";
2
2
  export interface AccessGrant {
3
3
  userId: string;
4
4
  level?: string | undefined;
@@ -13,12 +13,28 @@ export interface AndOrNot {
13
13
  or?: string[] | undefined;
14
14
  not?: string[] | undefined;
15
15
  }
16
+ /** Boolean logic filter for string values. Useful for querying on tags */
17
+ export interface AndOrNotFilter {
18
+ property?: string | undefined;
19
+ /** DO NOT USE THIS: It is confusing, and it is only here to comply with IFilter. */
20
+ $not?: AndOrNotFilter | undefined;
21
+ and?: string[] | undefined;
22
+ or?: string[] | undefined;
23
+ not?: string[] | undefined;
24
+ }
16
25
  /** An expiring token scoped for a specific repository and actions within it. */
17
26
  export interface ApiAuthToken {
27
+ /** The content of a bearer token without its header prefix.
28
+ * ie: the Authorization http header will need this value to be prefixed with "Bearer". */
18
29
  token: string;
30
+ /** The name of the entity on/in which actions will be performed with this token (eg: for a registry token, this would be the image name). */
19
31
  actionScope: string;
32
+ /** The Access Control List (ACL) of permissions this token has been granted. eg: pull, push, *. */
20
33
  permissions: string[];
34
+ /** The instant after which this token will fail to authenticate a registry request. */
21
35
  expirationUtc: Date;
36
+ refreshToken?: string | undefined;
37
+ meta?: IApiAuthTokenMeta | undefined;
22
38
  }
23
39
  export interface ApiReadyState {
24
40
  currentState: ApiReadyStateEnum;
@@ -30,12 +46,132 @@ export declare enum ApiReadyStateEnum {
30
46
  ready = "ready",
31
47
  reflecting = "reflecting"
32
48
  }
49
+ /** A functional unit that is published as an individual container.
50
+ * Could be an api, service, web app, cloud function, or any other type of containerized executable system. */
51
+ export interface Asset {
52
+ enterprise: string;
53
+ code: string;
54
+ name: string;
55
+ image: Image;
56
+ port: PortMapping | PortMapping | number[] | number;
57
+ hasIngress: boolean;
58
+ routedWithoutName: boolean;
59
+ id?: string | undefined;
60
+ /** An asset may be a constituent of only one product.
61
+ * NOTE: This setting applies to product versions moving forward,
62
+ * and historical product versions remain intact with whatever assets the product included at the time. */
63
+ product?: string | undefined;
64
+ /** (Optional: defaults to "service") Differentiator for various asset behaviors (eg: "job" or "helm"). */
65
+ type?: "helm" | "job" | "service" | undefined;
66
+ /** (Optional: defaults to built-in deploymment-labeling convention) Boolean logic by which to recognize the pods
67
+ * that belong to this asset among all the other pods in a namespace.
68
+ * This property is an array type to allow for an asset to have multiple pod specs that each may have their own replicas.
69
+ *
70
+ * eg: a simple asset just looks for...
71
+ * ```
72
+ * (p,a) => x.metadata?labels["AssetName"] == a
73
+ * ```
74
+ *
75
+ * eg: an asset, such as cert manager, with multiple kinds of pods, would have multiple custom pod filters, such as...
76
+ * ```
77
+ * (p,a) => p.metadata?labels["app.kubernetes.io/component"] == "cainjector" && p.metadata?labels["app.kubernetes.io/name"] == "cert-manager"
78
+ * (p,a) => p.metadata?labels["app.kubernetes.io/component"] == "webhook" && p.metadata?labels["app.kubernetes.io/name"] == "cert-manager"
79
+ * (p,a) => p.metadata?labels["app.kubernetes.io/component"] == "controller" && p.metadata?labels["app.kubernetes.io/name"] == "cert-manager"
80
+ * ``` */
81
+ customPodFilters?: object[] | undefined;
82
+ /** Abstract declarations of folder paths inside the image
83
+ * that are to be later mapped (at configuration time) to file store definitions.
84
+ *
85
+ * NOTE: These reservations only OPTIONALLY reference existing file stores;
86
+ * they merely declare a folder path for a file store to be mapped
87
+ * later, when the asset gets configured for use in various cabinets. */
88
+ reservedFolders?: AssetFolderReservation[] | undefined;
89
+ /** Declares means by which the container platform can check health and readiness of the assets at runtime. */
90
+ probes?: Probe[] | undefined;
91
+ /** Overrides for the the container startup command. */
92
+ entryPoints?: EntryPoint[] | undefined;
93
+ /** Rules for the selecting which nodes on which this asset will be run (aka: NodeSelectors, affinities, and taints). */
94
+ nodeRequirements?: NodePlacement[] | undefined;
95
+ /** Scripts to run (via init containers) before the asset's own container starts. */
96
+ beforeStartup?: InitContainer[] | undefined;
97
+ /** Command line script (NOT run within a shell) to run within the asset container
98
+ * AFTER the asset has succcessfully completed its startup.
99
+ *
100
+ * From K8s Docs:
101
+ * Management of the container blocks until this action is complete,
102
+ * unless the container process fails, in which case the handler is aborted.
103
+ *
104
+ * called immediately after a container is created.
105
+ * If the handler fails, the container is terminated and restarted according to its restart policy.
106
+ * Other management of the container blocks until the hook completes.
107
+ * More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks
108
+ *
109
+ * The working directory for the command is root ('/') in the container's filesystem.
110
+ * The command is simply exec'd, it is NOT run inside a shell,
111
+ * so traditional shell instructions ('|', etc) won't work.
112
+ * To use a shell, you need to explicitly call out to that shell.
113
+ * Exit status of 0 is treated as live/healthy and non-zero is unhealthy. */
114
+ postStartup?: string[] | undefined;
115
+ /** Enable this setting to allow http (ie: non-SSL/TLS) requests in through the ingress controller without getting redirected to https.
116
+ *
117
+ * That is, Setting this to true will prevent the ingress controller from invoking an automatic redirect to https on any inbound http requests. */
118
+ allowHttp?: boolean | undefined;
119
+ /** (Applies only when `hasIngress=true`, defaults to false, aka: external)
120
+ * indicates whether this asset shall be available
121
+ * only through the internal ingress controller.
122
+ *
123
+ * NOTE: When set, this asset will only be accessible
124
+ * on a cluster with an internal ingress controller. */
125
+ ingressInternal?: boolean | undefined;
126
+ /** Freeform url paths to use as an override for the asset code property
127
+ * when assembling ingress routing
128
+ * for domain mapping strategies
129
+ * that place the "service" segment
130
+ * into the url path.
131
+ *
132
+ * *NOTE: Each entry must be unique within the enterprise,
133
+ * cannot be null or empty,
134
+ * cannot start or end with a slash character,
135
+ * and must uniquely identify this asset within the enterprise.*
136
+ *
137
+ * eg:
138
+ *
139
+ * For a domain mapping strategy: `cab-dot-domain-slash-service`
140
+ *
141
+ * and an asset with code: `my-api`
142
+ *
143
+ * When `mydomain.com` gets applied to cabinet `dev`,
144
+ * default ingress routing will yield: `dev.mydomain.com/my-api`
145
+ *
146
+ * So. Adding a path `v1/the-api` to this property
147
+ * will INSTEAD yield an ingress rule supporting this url:
148
+ *
149
+ * `dev.domain.com/v1/the-api`
150
+ *
151
+ * NOTE: *Adding paths to this list prevents the default ingress path (as `Asset.code`) from being mapped in the ingress. If you still want that behavior in the ingress rules, you will have to add it to this list.* */
152
+ ingressPaths?: string[] | undefined;
153
+ createdBy: string;
154
+ modifiedBy: string;
155
+ created: Date;
156
+ modified: Date;
157
+ }
33
158
  export interface AssetConfigSchemaRequest {
34
159
  enterprise: string;
35
160
  asset: string;
36
161
  configType: ConfigDefTypesEnum;
37
162
  targetFile?: string | undefined;
38
163
  }
164
+ /** Overall hashcode plus individual hashcodes for all the concrete rendered configs of a given asset.
165
+ * (scope has been deliberately left out bc this class is to be included in a contextual object itself,
166
+ * (such as a CabinetState). This way it could be part of a given concrete cabinet deployment,
167
+ * or just to a given scope within the config tree).
168
+ *
169
+ * (useful for diff/change detection). */
170
+ export interface AssetConfigState {
171
+ asset: string;
172
+ hash: string;
173
+ configs: object;
174
+ }
39
175
  /** Abstract declarations of folder paths inside the image
40
176
  * that are to be later mapped (at configuration time) to file store definitions. */
41
177
  export interface AssetFolderReservation {
@@ -51,6 +187,15 @@ export interface AssetFolderReservation {
51
187
  * to which this folder will get mapped, unless configured otherwise. */
52
188
  defaultFileStore?: string | undefined;
53
189
  }
190
+ /** Identifies a single asset, either by id
191
+ * or by one of its composite indexes (enterprise/name or enterprise/code),
192
+ * as defined by the unique indexes declared in the AssetDataMap. */
193
+ export interface AssetIdentifier {
194
+ id?: string | undefined;
195
+ enterprise?: string | undefined;
196
+ name?: string | undefined;
197
+ code?: string | undefined;
198
+ }
54
199
  /** Identifies a single asset replica (in Codiac terms). */
55
200
  export interface AssetReplicaContext {
56
201
  asset: string;
@@ -134,6 +279,11 @@ export interface AsyncAck {
134
279
  correlationId: string;
135
280
  taskMap: TaskMap;
136
281
  }
282
+ export interface AssetWhereRequest {
283
+ asset: string;
284
+ /** Optional unless there are more than one. */
285
+ enterprise?: string | undefined;
286
+ }
137
287
  export interface AuthRole {
138
288
  name: string;
139
289
  id?: string | undefined;
@@ -198,6 +348,32 @@ export interface AzureAcr {
198
348
  location: string;
199
349
  loginServer: string;
200
350
  }
351
+ /** Abstraction and specification for a share on a file store,
352
+ * to be mapped to a reserved folder on an asset.
353
+ *
354
+ * This class can be used as the specification
355
+ * to programmatically put up and take down concrete file stores.
356
+ * As such, it outlives the actual entity described by its "instance" property.
357
+ *
358
+ * @param name The name by which to identify this fileshare definition within the enterprise (Optional: defaults to the shareName).
359
+ * @param type Indicator of which type of fileshare resource is being used.
360
+ * @param storageAccount The name within the cloud provider of the file storage account within which the share resides.
361
+ * @param shareName The name of the fileshare to connect to within the file storage account.
362
+ * @param providerSubscriptionId The Id of the physical Cloud Provider Subscription in which this filestore exists (Azure-specific).
363
+ * @param resourceGroup The name of the Azure resource group under which the instance is to be created (Azure-specific).
364
+ * @param instance Info describing the concrete instance of this file store actually living within a cloud provider subscription.
365
+ */
366
+ export interface AzureFileStoreDef extends FileStoreDef {
367
+ storageAccount: string;
368
+ resourceGroup: string;
369
+ instance?: AzureFileStoreInstance | undefined;
370
+ }
371
+ /** Metadata describing an existing concrete instance
372
+ * of a FileStoreDef resource within a cloud provider. */
373
+ export interface AzureFileStoreInstance extends FileStoreInfrx {
374
+ resourceGroup: string;
375
+ accessKey: string;
376
+ }
201
377
  /** Use the `name` property as the human readable identifier to declare a location in a contract.
202
378
  *
203
379
  * EXAMPLE:
@@ -325,8 +501,6 @@ export interface AzUser {
325
501
  name: string;
326
502
  type: string;
327
503
  }
328
- export interface Boolean {
329
- }
330
504
  /** Raw data is stored in instances of the Buffer class.
331
505
  * A Buffer is similar to an array of integers but corresponds to a raw memory allocation outside the V8 heap. A Buffer cannot be resized.
332
506
  * Valid string encodings: 'ascii'|'utf8'|'utf16le'|'ucs2'(alias of 'utf16le')|'base64'|'binary'(deprecated)|'hex' */
@@ -390,6 +564,14 @@ export interface CabinetAssetList {
390
564
  cabinetName: string;
391
565
  assetNames: string[];
392
566
  }
567
+ export interface CabinetAssetVersion {
568
+ enterprise: string;
569
+ environment: string;
570
+ cabinet: string;
571
+ asset: string;
572
+ enterpriseVersion?: string | undefined;
573
+ assetVersion?: string | undefined;
574
+ }
393
575
  /** A reference to an cabinet and the cluster it's in. */
394
576
  export interface CabinetClusterRoot {
395
577
  name: string;
@@ -407,6 +589,39 @@ export interface CabinetClusterScope {
407
589
  name: string;
408
590
  cluster?: string | undefined;
409
591
  }
592
+ export interface CabinetCriteria {
593
+ name?: StringFilter | undefined;
594
+ enterpriseCode?: string | undefined;
595
+ environment?: string | undefined;
596
+ cluster?: string | undefined;
597
+ branch?: StringFilter | undefined;
598
+ /** Boolean logic filter for string values. Useful for querying on tags */
599
+ tags?: AndOrNotFilter | undefined;
600
+ ids?: string[] | undefined;
601
+ all?: boolean | undefined;
602
+ /** supports a single field name
603
+ * ```json
604
+ * "sort": "name"
605
+ * ```
606
+ * or an array of field names
607
+ * ```json
608
+ * "sort": ["name", "lastModified~desc"]
609
+ * ```
610
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
611
+ * ```json
612
+ * "sort": {
613
+ * "name": "asc",
614
+ * "lastModified": "desc"
615
+ * }
616
+ * ```
617
+ *
618
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
619
+ sort?: string[] | "asc" | "desc" | string | undefined;
620
+ skip?: number | undefined;
621
+ take?: number | undefined;
622
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
623
+ reverse?: number | boolean | undefined;
624
+ }
410
625
  /** Attributes for referencing and creating actual running resources that comprise the infrastructure for a cabinet.
411
626
  * That is, this is the pertinent information required to manage an actual physical implementation of a cabinet. */
412
627
  export interface CabinetInfrastructure {
@@ -465,6 +680,13 @@ export interface CabinetSelector {
465
680
  * * `none`: targets only cabinets that have **none** of the given tags (aka: NOT logic). */
466
681
  matchTags?: AnyAllNoneEnum | undefined;
467
682
  }
683
+ /** Manifest of all versions and configs currently deployed to a specific cabinet. */
684
+ export interface CabinetState {
685
+ enterprise: string;
686
+ cabinet: string;
687
+ cluster: string;
688
+ contents?: DeployedState | undefined;
689
+ }
468
690
  /** Identifier for a supported cloud service provider, for use in selecting infrastructure clients, provisioners, and credentials. */
469
691
  export declare enum CloudProviderEnum {
470
692
  artifactHub = "artifactHub",
@@ -496,8 +718,12 @@ export interface ClusterAccessGrantRequest {
496
718
  clusterName: string;
497
719
  users: AccessGrant | string[];
498
720
  }
721
+ export interface ClusterAttachRequest {
722
+ environmentId: string;
723
+ cluster: string;
724
+ }
499
725
  export interface ClusterConnectionRequest {
500
- cluster?: string;
726
+ cluster?: string | undefined;
501
727
  cabinet?: {
502
728
  enterprise: string;
503
729
  environment: string;
@@ -571,23 +797,78 @@ export interface ClusterDefaults {
571
797
  nodeCount: number;
572
798
  nodePools: NodePoolDef[];
573
799
  }
574
- export interface ClusterTillerInstallRequest {
575
- clusterName?: string | undefined;
576
- userContext?: UserContext | undefined;
577
- codiacAPiUrl?: string | undefined;
800
+ export interface ClusterDefCriteria {
801
+ name?: StringFilter | undefined;
802
+ providerSubscription?: string | undefined;
803
+ providerGroup?: string | undefined;
804
+ locationName?: string | undefined;
805
+ hasInstance?: boolean | undefined;
806
+ privateOwner?: string | undefined;
807
+ ids?: string[] | undefined;
808
+ all?: boolean | undefined;
809
+ /** supports a single field name
810
+ * ```json
811
+ * "sort": "name"
812
+ * ```
813
+ * or an array of field names
814
+ * ```json
815
+ * "sort": ["name", "lastModified~desc"]
816
+ * ```
817
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
818
+ * ```json
819
+ * "sort": {
820
+ * "name": "asc",
821
+ * "lastModified": "desc"
822
+ * }
823
+ * ```
824
+ *
825
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
826
+ sort?: string[] | "asc" | "desc" | string | undefined;
827
+ skip?: number | undefined;
828
+ take?: number | undefined;
829
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
830
+ reverse?: number | boolean | undefined;
578
831
  }
579
- export interface ClusterTillerInstallResponse {
580
- success: boolean;
581
- message?: string | undefined;
582
- error?: Error | undefined;
583
- /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
584
- validation?: IValidationStatus | undefined;
832
+ export interface ClusterDetachRequest {
833
+ environmentId: string;
834
+ cluster: string;
835
+ }
836
+ export interface ClusterWithIngress {
837
+ name: string;
838
+ provider: CloudProviderEnum;
839
+ providerSubscriptionId: string;
840
+ locationName: string;
841
+ k8sVersion: string;
842
+ ingressIp?: string | undefined;
843
+ modified?: Date | undefined;
844
+ modifiedBy?: string | undefined;
845
+ created?: Date | undefined;
846
+ createdBy?: string | undefined;
585
847
  }
586
848
  /** Specs describing an available WebSocket on which the client and server
587
849
  * can exchange messages related to a given transaction. */
588
850
  export interface CommChannelRef {
589
851
  socketId: string;
590
852
  }
853
+ /** A key-value pair applied to an entity in an enterprise. */
854
+ export interface Comment {
855
+ markdown: string;
856
+ ownerType: string;
857
+ ownerId: string;
858
+ enterprise: string;
859
+ /** Optional subject line of the comment. For use when larger comments are typical (such as in product reviews) */
860
+ headline?: string | undefined;
861
+ /** Indicates that this comment can be rendered just as an emoji decoration instead of as a full comment. */
862
+ isEmoji?: boolean | undefined;
863
+ /** The id of the comment (if any) that this one is responding to. */
864
+ parentId?: string | undefined;
865
+ responses?: Comment[] | undefined;
866
+ id?: string | undefined;
867
+ createdBy: string;
868
+ modifiedBy: string;
869
+ created: Date;
870
+ modified: Date;
871
+ }
591
872
  /** Values of ScopedSetting.targetFile for NON-FILE configs. */
592
873
  export declare enum ConfigDefTypesEnum {
593
874
  annotation = "annotation",
@@ -599,28 +880,66 @@ export declare enum ConfigDefTypesEnum {
599
880
  label = "label",
600
881
  probing = "probing"
601
882
  }
602
- /** Structure of settings and their data types supported by an Asset.
603
- * (ie: structure of a config file, environment variable list, Asset attributes, etc.) */
604
- export interface ConfigSchema {
605
- definitions: object;
606
- /** All properties declared here are required.
607
- * NOTE: Property names cannot overlap with optionalProperties. */
608
- properties: object;
609
- /** NOTE: Property names cannot overlap with optionalProperties. */
610
- optionalProperties: object;
611
- /** Indicates that properties may be added that are not defined in the schema. */
612
- additionalProperties?: boolean | undefined;
613
- nullable?: boolean | undefined;
614
- metadata?: any | undefined;
883
+ /** An object representation of a config file, assembled from ScopedSettings.
884
+ * This document can take any form, and is constructed solely from settings and values,
885
+ * with all meta information omitted to preserve the integrity of the ultimate config file.
886
+ * NOTE: To view the list of un-smashed settings with metadata from which this document is assembled,
887
+ * fire the same request object against the ScopedSetting endpoint. */
888
+ export interface ConfigDoc {
889
+ id?: string | undefined;
615
890
  }
616
- /** The resource allocation profile that will be assigned
617
- * to a given app/service/component container in the customer's inventory.
618
- * Declares requested and maximum memory, cpu, and replicas.
619
- * Future: This class is where we would declare container affinity. */
620
- export interface ContainerFootprint {
621
- assetName: string;
622
- replicas: number;
623
- cpuRequest?: string | undefined;
891
+ export interface ConfigDocSpecForOne {
892
+ enterprise: string;
893
+ asset: string;
894
+ targetFile: string;
895
+ cabinet: string;
896
+ ids?: string[] | undefined;
897
+ all?: boolean | undefined;
898
+ /** supports a single field name
899
+ * ```json
900
+ * "sort": "name"
901
+ * ```
902
+ * or an array of field names
903
+ * ```json
904
+ * "sort": ["name", "lastModified~desc"]
905
+ * ```
906
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
907
+ * ```json
908
+ * "sort": {
909
+ * "name": "asc",
910
+ * "lastModified": "desc"
911
+ * }
912
+ * ```
913
+ *
914
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
915
+ sort?: string[] | "asc" | "desc" | string | undefined;
916
+ skip?: number | undefined;
917
+ take?: number | undefined;
918
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
919
+ reverse?: number | boolean | undefined;
920
+ }
921
+ /** Structure of settings and their data types supported by an Asset.
922
+ * (ie: structure of a config file, environment variable list, Asset attributes, etc.) */
923
+ export interface ConfigSchema {
924
+ definitions: object;
925
+ /** All properties declared here are required.
926
+ * NOTE: Property names cannot overlap with optionalProperties. */
927
+ properties: object;
928
+ /** NOTE: Property names cannot overlap with optionalProperties. */
929
+ optionalProperties: object;
930
+ /** Indicates that properties may be added that are not defined in the schema. */
931
+ additionalProperties?: boolean | undefined;
932
+ nullable?: boolean | undefined;
933
+ metadata?: any | undefined;
934
+ }
935
+ /** The resource allocation profile that will be assigned
936
+ * to a given app/service/component container in the customer's inventory.
937
+ * Declares requested and maximum memory, cpu, and replicas.
938
+ * Future: This class is where we would declare container affinity. */
939
+ export interface ContainerFootprint {
940
+ assetName: string;
941
+ replicas: number;
942
+ cpuRequest?: string | undefined;
624
943
  cpuLimit?: string | undefined;
625
944
  memRequest?: string | undefined;
626
945
  memLimit?: string | undefined;
@@ -636,13 +955,6 @@ export interface CreateClusterAck extends AsyncAck {
636
955
  correlationId: string;
637
956
  taskMap: TaskMap;
638
957
  }
639
- export interface CreateClusterRequest {
640
- spec?: ClusterDef | undefined;
641
- acrs?: object[] | undefined;
642
- userContext?: UserContext | undefined;
643
- codiacAPiUrl?: string | undefined;
644
- skipInit?: Boolean | undefined;
645
- }
646
958
  export interface CreateClusterRequestAsync {
647
959
  spec?: ClusterDef | undefined;
648
960
  skipInit?: boolean | undefined;
@@ -664,14 +976,6 @@ export interface CreateClusterRequestAsync {
664
976
  userContext?: UserContext | undefined;
665
977
  codiacAPiUrl?: string | undefined;
666
978
  }
667
- export interface CreateClusterResponse {
668
- clusterDef?: ClusterDef | undefined;
669
- success: boolean;
670
- message?: string | undefined;
671
- error?: Error | undefined;
672
- /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
673
- validation?: IValidationStatus | undefined;
674
- }
675
979
  export type CredentialType = "client_credentials" | "username_password" | "refresh_token";
676
980
  /** This is actually the result returned (via querystring params on a redirect)
677
981
  * by the external csp login service,
@@ -718,7 +1022,7 @@ export interface CspLoginAuthCodeCatcherRequest {
718
1022
  /** (Successful scenario) */
719
1023
  session_state?: string | undefined;
720
1024
  /** Cloud Service Provider (CSP) code. eg: `azure`, `aws`, etc. */
721
- providerCode?: "aws" | "azure" | "dockerHub" | "other" | undefined;
1025
+ providerCode?: "artifactHub" | "aws" | "azure" | "dockerHub" | "other" | undefined;
722
1026
  /** (Access Token Error scenario) A list of STS-specific error codes that can help in diagnostics. */
723
1027
  error_codes?: string[] | undefined;
724
1028
  /** (Access Token Error scenario) The time at which the error occurred. */
@@ -764,9 +1068,66 @@ export interface CspLogoutInteractiveResponse {
764
1068
  /** Will be undefined if we have no tokens or credentials cached. */
765
1069
  cspUserName?: string | undefined;
766
1070
  }
1071
+ export interface CspPrimaryCredsMeta {
1072
+ tenantCode: string;
1073
+ provider: CloudProviderEnum;
1074
+ username: string;
1075
+ created: Date;
1076
+ /** eg: The AccountId in AWS or SubscriptionId in Azure. */
1077
+ subscriptionId?: string | undefined;
1078
+ expiration?: Date | undefined;
1079
+ modified?: Date | undefined;
1080
+ }
767
1081
  export interface CspTokenAndUserMeta {
768
1082
  tokenObject: ApiAuthToken;
769
- cspUser: CloudProviderUser;
1083
+ cspUser: ICspPrimaryCredsMeta;
1084
+ }
1085
+ /** Access Control List (ACL) to be applied to any new child entity created within the parent.
1086
+ *
1087
+ * Only stands as a default template for permissions on FUTURE new child entities;
1088
+ * DOES NOT get directly used to enforce permissions on any existing ones. */
1089
+ export interface DefaultChildAcl {
1090
+ parentType: string;
1091
+ parentId: string;
1092
+ childType: string;
1093
+ dotPath: string;
1094
+ permissions: object;
1095
+ /** This is a composite key enforcing uniqueness on a single instance of the entity type. (ie: there can be only one of these per entity id) */
1096
+ id: string;
1097
+ createdBy: string;
1098
+ modifiedBy: string;
1099
+ created: Date;
1100
+ modified: Date;
1101
+ }
1102
+ export interface DefaultChildAclCriteria {
1103
+ ids?: string[] | undefined;
1104
+ all?: boolean | undefined;
1105
+ parentType?: string | undefined;
1106
+ parentId?: string | undefined;
1107
+ childType?: string | undefined;
1108
+ dotPath?: string | undefined;
1109
+ /** supports a single field name
1110
+ * ```json
1111
+ * "sort": "name"
1112
+ * ```
1113
+ * or an array of field names
1114
+ * ```json
1115
+ * "sort": ["name", "lastModified~desc"]
1116
+ * ```
1117
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
1118
+ * ```json
1119
+ * "sort": {
1120
+ * "name": "asc",
1121
+ * "lastModified": "desc"
1122
+ * }
1123
+ * ```
1124
+ *
1125
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
1126
+ sort?: string[] | "asc" | "desc" | string | undefined;
1127
+ skip?: number | undefined;
1128
+ take?: number | undefined;
1129
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
1130
+ reverse?: number | boolean | undefined;
770
1131
  }
771
1132
  export interface DeleteClusterInstanceRequest {
772
1133
  name?: string | undefined;
@@ -782,6 +1143,43 @@ export interface DeleteClusterInstanceResponse {
782
1143
  /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
783
1144
  validation?: IValidationStatus | undefined;
784
1145
  }
1146
+ export interface DeployAttempt {
1147
+ name: string;
1148
+ deploymentId: string;
1149
+ result?: Result | BatchResult<Partial<Asset>> | undefined;
1150
+ id?: string | undefined;
1151
+ createdBy: string;
1152
+ modifiedBy: string;
1153
+ created: Date;
1154
+ modified: Date;
1155
+ }
1156
+ export interface DeployAttemptCriteria {
1157
+ name?: StringFilter | undefined;
1158
+ ids?: string[] | undefined;
1159
+ all?: boolean | undefined;
1160
+ /** supports a single field name
1161
+ * ```json
1162
+ * "sort": "name"
1163
+ * ```
1164
+ * or an array of field names
1165
+ * ```json
1166
+ * "sort": ["name", "lastModified~desc"]
1167
+ * ```
1168
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
1169
+ * ```json
1170
+ * "sort": {
1171
+ * "name": "asc",
1172
+ * "lastModified": "desc"
1173
+ * }
1174
+ * ```
1175
+ *
1176
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
1177
+ sort?: string[] | "asc" | "desc" | string | undefined;
1178
+ skip?: number | undefined;
1179
+ take?: number | undefined;
1180
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
1181
+ reverse?: number | boolean | undefined;
1182
+ }
785
1183
  /** Envelope for the contents of a ConfigDoc
786
1184
  * compiled into its specific content format (eg: json, yaml, ini, etc). */
787
1185
  export interface DeployedConfig {
@@ -819,7 +1217,63 @@ export interface DeployedConfigCriteria {
819
1217
  * ```
820
1218
  *
821
1219
  * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
822
- sort?: string[] | object | string | undefined;
1220
+ sort?: string[] | "asc" | "desc" | string | undefined;
1221
+ skip?: number | undefined;
1222
+ take?: number | undefined;
1223
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
1224
+ reverse?: number | boolean | undefined;
1225
+ }
1226
+ export interface DeployedState {
1227
+ version: EnterpriseVersionConfig;
1228
+ configState: object;
1229
+ deployedOn: Date;
1230
+ deployedBy: string;
1231
+ }
1232
+ /** The specification for a deployment of an enterprise to a cabinet.
1233
+ * NOTE:
1234
+ * Though the deployment does necessarily reflect the comprehensive collection of Snapshot and ConfigChanges to date of its creation,
1235
+ * it does NOT necessarily reflect the entire enterprise: a deployment can certainly be a partial deployment of an enterprise.
1236
+ * eg: a deployment may ony be deploying an upgrade to a single service in the enterprise rather than the whole thing.
1237
+ *
1238
+ * TODO: Provide for specificying hings other than services: eg ConfigMaps, Secrets, Ingress Routes, Footprint mods? */
1239
+ export interface Deployment {
1240
+ name: string;
1241
+ enterprise: string;
1242
+ environment: string;
1243
+ cabinet: string;
1244
+ version: EnterpriseVersionConfig;
1245
+ assets?: string[] | undefined;
1246
+ id?: string | undefined;
1247
+ createdBy: string;
1248
+ modifiedBy: string;
1249
+ created: Date;
1250
+ modified: Date;
1251
+ }
1252
+ export interface DeploymentCriteria {
1253
+ id?: StringFilter | undefined;
1254
+ name?: StringFilter | undefined;
1255
+ enterprise?: StringFilter | undefined;
1256
+ cabinet?: StringFilter | undefined;
1257
+ ids?: string[] | undefined;
1258
+ all?: boolean | undefined;
1259
+ /** supports a single field name
1260
+ * ```json
1261
+ * "sort": "name"
1262
+ * ```
1263
+ * or an array of field names
1264
+ * ```json
1265
+ * "sort": ["name", "lastModified~desc"]
1266
+ * ```
1267
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
1268
+ * ```json
1269
+ * "sort": {
1270
+ * "name": "asc",
1271
+ * "lastModified": "desc"
1272
+ * }
1273
+ * ```
1274
+ *
1275
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
1276
+ sort?: string[] | "asc" | "desc" | string | undefined;
823
1277
  skip?: number | undefined;
824
1278
  take?: number | undefined;
825
1279
  /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
@@ -840,6 +1294,10 @@ export interface DiscriminatorTypeDef {
840
1294
  nullable?: boolean | undefined;
841
1295
  metadata?: any | undefined;
842
1296
  }
1297
+ export interface DnsConnectionRequest {
1298
+ domain?: string | undefined;
1299
+ ingressIp?: string | undefined;
1300
+ }
843
1301
  /** Requirements for a DNS host record
844
1302
  * that routes requests within a given domain. */
845
1303
  export interface DnsRecord {
@@ -855,8 +1313,11 @@ export interface DnsRecord {
855
1313
  * for this host.domain combination shall be routed. */
856
1314
  destinationIp: string;
857
1315
  }
1316
+ export interface DNSResponse {
1317
+ results: boolean;
1318
+ }
858
1319
  export interface DomainDeleteRequest {
859
- id?: string;
1320
+ id?: string | undefined;
860
1321
  }
861
1322
  /** Defines a homogenous array of any size (possibly empty) with the elements that satisfy a given schema.
862
1323
  *
@@ -880,12 +1341,105 @@ export interface EnterprisePointer {
880
1341
  asset?: string | undefined;
881
1342
  cabinet?: string | undefined;
882
1343
  }
1344
+ export interface EnterpriseRoot {
1345
+ name: string;
1346
+ assets: Asset[];
1347
+ environments: EnvironmentRoot[];
1348
+ id: string;
1349
+ defaultEnvironmentAcl?: DefaultChildAcl | undefined;
1350
+ }
1351
+ /** Runstate is an objective observation that gets diff'ed against an entepriseVersionConfig.
1352
+ * As such, it doesn't know what enterprise version is supposed to be delployed,
1353
+ * only the actual asset versions that in fact are. */
1354
+ export interface EnterpriseRunState {
1355
+ enterprise: string;
1356
+ cabinet: string;
1357
+ entityType: string;
1358
+ entityName: string;
1359
+ version: string;
1360
+ tags?: Tag[] | undefined;
1361
+ contents?: IVersionRef[] | undefined;
1362
+ contentHash?: string | undefined;
1363
+ id?: string | undefined;
1364
+ createdBy: string;
1365
+ modifiedBy: string;
1366
+ created: Date;
1367
+ modified: Date;
1368
+ /** Markdown block of instructions or other descriptions from the author about this particular version. */
1369
+ notes?: string | undefined;
1370
+ /** Key-value pairs (aka: property bag) for this particular version. */
1371
+ labels?: Label[] | undefined;
1372
+ /** Starting point for threaded discussions on this particular version. */
1373
+ comments?: Comment[] | undefined;
1374
+ }
1375
+ export interface EnterpriseRunStateCriteria {
1376
+ enterprise?: string | undefined;
1377
+ cabinet?: string | undefined;
1378
+ contentHash?: string | undefined;
1379
+ ids?: string[] | undefined;
1380
+ all?: boolean | undefined;
1381
+ /** supports a single field name
1382
+ * ```json
1383
+ * "sort": "name"
1384
+ * ```
1385
+ * or an array of field names
1386
+ * ```json
1387
+ * "sort": ["name", "lastModified~desc"]
1388
+ * ```
1389
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
1390
+ * ```json
1391
+ * "sort": {
1392
+ * "name": "asc",
1393
+ * "lastModified": "desc"
1394
+ * }
1395
+ * ```
1396
+ *
1397
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
1398
+ sort?: string[] | "asc" | "desc" | string | undefined;
1399
+ skip?: number | undefined;
1400
+ take?: number | undefined;
1401
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
1402
+ reverse?: number | boolean | undefined;
1403
+ }
883
1404
  /** A reference to an enterprise and its environment scopes. */
884
1405
  export interface EnterpriseScope {
885
1406
  name: string;
886
1407
  environments: EnvironmentScope[];
887
1408
  id?: string | undefined;
888
1409
  }
1410
+ /** Manifest of all versions and configs currently deployed within an enterprise. */
1411
+ export interface EnterpriseState {
1412
+ enterprise: string;
1413
+ environments: object;
1414
+ id?: string | undefined;
1415
+ }
1416
+ export interface EnterpriseStateRequest {
1417
+ enterprise: string;
1418
+ environment?: string | undefined;
1419
+ cabinet?: string | undefined;
1420
+ cluster?: string | undefined;
1421
+ noCacheRead?: boolean | undefined;
1422
+ }
1423
+ export interface EnterpriseVersionConfig {
1424
+ enterprise: string;
1425
+ entityType: string;
1426
+ entityName: string;
1427
+ version: string;
1428
+ tags?: Tag[] | undefined;
1429
+ contents?: IVersionRef[] | undefined;
1430
+ contentHash?: string | undefined;
1431
+ id?: string | undefined;
1432
+ createdBy: string;
1433
+ modifiedBy: string;
1434
+ created: Date;
1435
+ modified: Date;
1436
+ /** Markdown block of instructions or other descriptions from the author about this particular version. */
1437
+ notes?: string | undefined;
1438
+ /** Key-value pairs (aka: property bag) for this particular version. */
1439
+ labels?: Label[] | undefined;
1440
+ /** Starting point for threaded discussions on this particular version. */
1441
+ comments?: Comment[] | undefined;
1442
+ }
889
1443
  /** Access Control List (ACL) for a single securable object.
890
1444
  * A list of permissions declared on a single, identifiable concrete entity. */
891
1445
  export interface EntityAcl {
@@ -941,11 +1495,77 @@ export interface EnumTypeDef {
941
1495
  nullable?: boolean | undefined;
942
1496
  metadata?: any | undefined;
943
1497
  }
1498
+ export interface Environment {
1499
+ code: string;
1500
+ enterpriseCode: string;
1501
+ subscription: string;
1502
+ sequence: number;
1503
+ id?: string | undefined;
1504
+ /** The collection of placeholders for isolated instances of a customer's service inventory. */
1505
+ cabinets: Cabinet[];
1506
+ /** The collection of predefined specs for the kubernetes clusters in this environment. */
1507
+ clusterDefs: ClusterDef[];
1508
+ /** (Optional) The default resource allocation spec to apply to containers in this cluster. */
1509
+ defaultFootprint?: Partial<ContainerFootprint> | undefined;
1510
+ /** The default privileges to grant to each role on new cabinets created within this environment
1511
+ * (optional: defaults to the permissions assigned to this environment). */
1512
+ defaultCabinetAcl?: DefaultChildAcl | undefined;
1513
+ createdBy: string;
1514
+ modifiedBy: string;
1515
+ created: Date;
1516
+ modified: Date;
1517
+ }
1518
+ export interface EnvironmentCriteria {
1519
+ code?: string | undefined;
1520
+ enterpriseCode?: string | undefined;
1521
+ subscription?: string | undefined;
1522
+ ids?: string[] | undefined;
1523
+ all?: boolean | undefined;
1524
+ /** supports a single field name
1525
+ * ```json
1526
+ * "sort": "name"
1527
+ * ```
1528
+ * or an array of field names
1529
+ * ```json
1530
+ * "sort": ["name", "lastModified~desc"]
1531
+ * ```
1532
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
1533
+ * ```json
1534
+ * "sort": {
1535
+ * "name": "asc",
1536
+ * "lastModified": "desc"
1537
+ * }
1538
+ * ```
1539
+ *
1540
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
1541
+ sort?: string[] | "asc" | "desc" | string | undefined;
1542
+ skip?: number | undefined;
1543
+ take?: number | undefined;
1544
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
1545
+ reverse?: number | boolean | undefined;
1546
+ }
1547
+ /** A reference to an environment and its cabinets. */
1548
+ export interface EnvironmentRoot {
1549
+ name: string;
1550
+ cabinets: CabinetClusterRoot[];
1551
+ id?: string | undefined;
1552
+ code?: string | undefined;
1553
+ sequence?: number | undefined;
1554
+ clusters?: ClusterWithIngress[] | undefined;
1555
+ /** The default privileges to grant to each role on new cabinets created within this environment
1556
+ * (optional: defaults to the permissions assigned to this environment). */
1557
+ defaultCabinetAcl?: DefaultChildAcl | undefined;
1558
+ }
944
1559
  /** A reference to an environment and its cabinets. */
945
1560
  export interface EnvironmentScope {
946
1561
  name: string;
947
1562
  cabinets: CabinetClusterScope[];
948
1563
  }
1564
+ /** Manifest of all versions and configs currently deployed within a specific environment. */
1565
+ export interface EnviroState {
1566
+ name: string;
1567
+ cabinets: object;
1568
+ }
949
1569
  export interface Error {
950
1570
  name: string;
951
1571
  message: string;
@@ -954,11 +1574,16 @@ export interface Error {
954
1574
  export interface ExecuteCabinetKillerRequest {
955
1575
  target?: CabinetScope | undefined;
956
1576
  }
957
- export interface ExecuteCabinetMakerResponse {
958
- /** Attributes for referencing and creating actual running resources that comprise the infrastructure for a cabinet.
959
- * That is, this is the pertinent information required to manage an actual physical implementation of a cabinet. */
960
- cabinet?: CabinetInfrastructure | undefined;
961
- k8sService?: Cabinet | undefined;
1577
+ export interface ExecuteClusterIngressDeleteRequest {
1578
+ clusterName?: string | undefined;
1579
+ cabinetUniqueDomains?: HostNameConfig[] | undefined;
1580
+ userContext?: UserContext | undefined;
1581
+ codiacAPiUrl?: string | undefined;
1582
+ }
1583
+ export interface ExecuteClusterIngressDeleteResponse {
1584
+ /** Specifications for ingress controllers and request routing.
1585
+ * Based on an ingress controller deployed as a Helm chart. */
1586
+ ingressDef?: IngressDef | undefined;
962
1587
  success: boolean;
963
1588
  message?: string | undefined;
964
1589
  error?: Error | undefined;
@@ -974,23 +1599,7 @@ export interface ExecuteClusterInitRequestAsync {
974
1599
  correlationId?: string;
975
1600
  callbackUrl?: string;
976
1601
  }
977
- export interface ExecuteClusterIngressCreateResponse {
978
- /** Specifications for ingress controllers and request routing.
979
- * Based on an ingress controller deployed as a Helm chart. */
980
- ingressDef?: IngressDef | undefined;
981
- success: boolean;
982
- message?: string | undefined;
983
- error?: Error | undefined;
984
- /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
985
- validation?: IValidationStatus | undefined;
986
- }
987
- export interface ExecuteClusterIngressDeleteRequest {
988
- clusterName?: string | undefined;
989
- cabinetUniqueDomains?: HostNameConfig[] | undefined;
990
- userContext?: UserContext | undefined;
991
- codiacAPiUrl?: string | undefined;
992
- }
993
- export interface ExecuteClusterIngressDeleteResponse {
1602
+ export interface ExecuteClusterInitResponse {
994
1603
  /** Specifications for ingress controllers and request routing.
995
1604
  * Based on an ingress controller deployed as a Helm chart. */
996
1605
  ingressDef?: IngressDef | undefined;
@@ -1031,19 +1640,6 @@ export interface ExecuteDeployIngressForAssetsResponse {
1031
1640
  /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
1032
1641
  validation?: IValidationStatus | undefined;
1033
1642
  }
1034
- export interface ExecuteDestroyAssetsRequest {
1035
- target?: CabinetScope | undefined;
1036
- assetsNames?: string[] | undefined;
1037
- userContext?: UserContext | undefined;
1038
- codiacAPiUrl?: string | undefined;
1039
- }
1040
- export interface ExecuteDestroyAssetsResponse {
1041
- success: boolean;
1042
- message?: string | undefined;
1043
- error?: Error | undefined;
1044
- /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
1045
- validation?: IValidationStatus | undefined;
1046
- }
1047
1643
  export interface ExecuteDomainUpsertRequest {
1048
1644
  domain: string;
1049
1645
  namingStrategy: HostNameStrategyEnum;
@@ -1067,16 +1663,7 @@ export interface FileRequest {
1067
1663
  *
1068
1664
  * This class can be used as the specification
1069
1665
  * to programmatically put up and take down concrete file stores.
1070
- * As such, it outlives the actual entity described by its "instance" property.
1071
- *
1072
- * @param name The name by which to identify this fileshare definition within the enterprise (Optional: defaults to the shareName).
1073
- * @param type Indicator of which type of fileshare resource is being used.
1074
- * @param storageAccount The name within the cloud provider of the file storage account within which the share resides.
1075
- * @param shareName The name of the fileshare to connect to within the file storage account.
1076
- * @param providerSubscriptionId The Id of the physical Cloud Provider Subscription in which this filestore exists (Azure-specific).
1077
- * @param resourceGroup The name of the Azure resource group under which the instance is to be created (Azure-specific).
1078
- * @param instance Info describing the concrete instance of this file store actually living within a cloud provider subscription.
1079
- */
1666
+ * As such, it outlives the actual entity described by its "instance" property. */
1080
1667
  export interface FileStoreDef {
1081
1668
  name: string;
1082
1669
  type: FileStoreTypeEnum;
@@ -1090,25 +1677,38 @@ export interface FileStoreDef {
1090
1677
  created: Date;
1091
1678
  modified: Date;
1092
1679
  }
1093
- /** Abstraction and specification for a share on a file store,
1094
- * to be mapped to a reserved folder on an asset.
1095
- *
1096
- * This class can be used as the specification
1097
- * to programmatically put up and take down concrete file stores.
1098
- * As such, it outlives the actual entity described by its "instance" property.
1099
- *
1100
- * @param name The name by which to identify this fileshare definition within the enterprise (Optional: defaults to the shareName).
1101
- * @param type Indicator of which type of fileshare resource is being used.
1102
- * @param storageAccount The name within the cloud provider of the file storage account within which the share resides.
1103
- * @param shareName The name of the fileshare to connect to within the file storage account.
1104
- * @param providerSubscriptionId The Id of the physical Cloud Provider Subscription in which this filestore exists (Azure-specific).
1105
- * @param resourceGroup The name of the Azure resource group under which the instance is to be created (Azure-specific).
1106
- * @param instance Info describing the concrete instance of this file store actually living within a cloud provider subscription.
1107
- */
1108
- export interface AzureFileStoreDef extends FileStoreDef {
1109
- storageAccount: string;
1110
- resourceGroup: string;
1111
- instance?: AzureFileStoreInstance | undefined;
1680
+ export interface FileStoreDefCriteria {
1681
+ name?: StringFilter | undefined;
1682
+ /** Supported file store adapters that can be mapped to a reserved folder on an asset. */
1683
+ type?: "AwsEbs" | "AwsEfs" | "AwsS3Bucket" | "AzureBlobStorage" | "AzureDisk" | "AzureFileStorage" | "HostMachineFolder" | undefined;
1684
+ shareName?: StringFilter | undefined;
1685
+ /** Identifier for a supported cloud service provider, for use in selecting infrastructure clients, provisioners, and credentials. */
1686
+ provider?: "artifactHub" | "aws" | "azure" | "dockerHub" | "other" | undefined;
1687
+ providerSubscriptionId?: StringFilter | undefined;
1688
+ ids?: string[] | undefined;
1689
+ all?: boolean | undefined;
1690
+ /** supports a single field name
1691
+ * ```json
1692
+ * "sort": "name"
1693
+ * ```
1694
+ * or an array of field names
1695
+ * ```json
1696
+ * "sort": ["name", "lastModified~desc"]
1697
+ * ```
1698
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
1699
+ * ```json
1700
+ * "sort": {
1701
+ * "name": "asc",
1702
+ * "lastModified": "desc"
1703
+ * }
1704
+ * ```
1705
+ *
1706
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
1707
+ sort?: string[] | "asc" | "desc" | string | undefined;
1708
+ skip?: number | undefined;
1709
+ take?: number | undefined;
1710
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
1711
+ reverse?: number | boolean | undefined;
1112
1712
  }
1113
1713
  /** Metadata describing an existing concrete instance
1114
1714
  * of a FileStoreDef resource within a cloud provider. */
@@ -1116,20 +1716,14 @@ export interface FileStoreInfrx {
1116
1716
  providerSubscriptionId: string;
1117
1717
  resourceId: string;
1118
1718
  }
1119
- /** Metadata describing an existing concrete instance
1120
- * of a FileStoreDef resource within a cloud provider. */
1121
- export interface AzureFileStoreInstance extends FileStoreInfrx {
1122
- resourceGroup: string;
1123
- accessKey: string;
1124
- }
1125
1719
  /** Supported file store adapters that can be mapped to a reserved folder on an asset. */
1126
1720
  export declare enum FileStoreTypeEnum {
1721
+ AwsEbs = "AwsEbs",
1722
+ AwsEfs = "AwsEfs",
1723
+ AwsS3Bucket = "AwsS3Bucket",
1127
1724
  AzureBlobStorage = "AzureBlobStorage",
1128
1725
  AzureDisk = "AzureDisk",
1129
1726
  AzureFileStorage = "AzureFileStorage",
1130
- AwsEfs = "AwsEfs",
1131
- AwsEbs = "AwsEbs",
1132
- AwsS3Bucket = "AwsS3Bucket",
1133
1727
  HostMachineFolder = "HostMachineFolder"
1134
1728
  }
1135
1729
  /** Calls out the cabinet and its parent structures. */
@@ -1165,6 +1759,7 @@ export interface GetAwsS3BucketsRequest {
1165
1759
  export interface GetAwsUserRequest {
1166
1760
  accessKeyId?: string | undefined;
1167
1761
  secretAccessKey?: string | undefined;
1762
+ sessionToken?: string | undefined;
1168
1763
  accountId?: string | undefined;
1169
1764
  }
1170
1765
  export interface GetAzureContainerRegistriesRequest {
@@ -1213,6 +1808,7 @@ export interface GetExistingCspClustersRequest {
1213
1808
  location?: string | undefined;
1214
1809
  }
1215
1810
  export interface GetFileStoresRequest {
1811
+ provider: CloudProviderEnum;
1216
1812
  providerSubscriptionId: string;
1217
1813
  storageAccount: StorageAccount;
1218
1814
  resourceGroup: string;
@@ -1237,16 +1833,16 @@ export interface GetSecretStoresRequest {
1237
1833
  provider: CloudProviderEnum;
1238
1834
  spec: Partial<SecretStore>;
1239
1835
  }
1240
- export interface GetStorageAccountRequest {
1241
- provider: CloudProviderEnum;
1242
- providerSubscriptionId: string;
1243
- }
1244
1836
  export interface GetStorageAccountKeysRequest {
1245
1837
  provider: CloudProviderEnum;
1246
1838
  subscriptionId: string;
1247
1839
  resourceGroup: string;
1248
1840
  storageAccountName: string;
1249
1841
  }
1842
+ export interface GetStorageAccountRequest {
1843
+ provider: CloudProviderEnum;
1844
+ providerSubscriptionId: string;
1845
+ }
1250
1846
  export interface HelmAssetTemplate {
1251
1847
  /** Maps a port number to the associated setting (full dot path name) in the chart config.
1252
1848
  *
@@ -1311,6 +1907,18 @@ export declare enum HostNameStrategyEnum {
1311
1907
  shared_ingress_ip = "shared_ingress_ip",
1312
1908
  svc_dot_cab_dot_domain = "svc_dot_cab_dot_domain"
1313
1909
  }
1910
+ export interface IApiAuthTokenMeta {
1911
+ isDefault?: boolean | undefined;
1912
+ userName?: string | undefined;
1913
+ givenName?: string | undefined;
1914
+ familyName?: string | undefined;
1915
+ /** The ApplicationId assigned to Codiac when it was registered in AzureAD. */
1916
+ clientId: string;
1917
+ /** Azure TenantId.
1918
+ * Id code for the tenant account with the cloud service provider
1919
+ * (This is NOT the Codiac tenant code). */
1920
+ cspTenantId: string;
1921
+ }
1314
1922
  export interface IAssetLog {
1315
1923
  assetName: string;
1316
1924
  logs: object[];
@@ -1332,6 +1940,18 @@ export interface ICommandLineProbeAction {
1332
1940
  command: string[];
1333
1941
  actionType: ProbeActionTypesEnum;
1334
1942
  }
1943
+ export interface ICspPrimaryCredsMeta {
1944
+ username: string;
1945
+ created: Date;
1946
+ modified?: Date | undefined;
1947
+ expiration?: Date | undefined;
1948
+ tenantCode: string;
1949
+ provider: CloudProviderEnum;
1950
+ /** eg: The AccountId in AWS or SubscriptionId in Azure.
1951
+ *
1952
+ * TODO: Make this required. */
1953
+ subscriptionId?: string | undefined;
1954
+ }
1335
1955
  export interface IGrpcProbeAction {
1336
1956
  /** Port number of the gRPC service. Number must be in the range 1 to 65535. */
1337
1957
  port: number;
@@ -1389,6 +2009,7 @@ export interface ImageRegistry {
1389
2009
  pullRequiresAuth?: boolean | undefined;
1390
2010
  infoUrl?: string | undefined;
1391
2011
  useRemoteFiltering?: boolean | undefined;
2012
+ helmSupport?: "classic" | "oci" | undefined;
1392
2013
  }
1393
2014
  /** Matches an ImageRegistry entity, just isnt a domain entity or auditable.
1394
2015
  * This class is for use as a request: it is NOT A DOMAIN ENTITY. */
@@ -1400,6 +2021,7 @@ export interface ImageRegistrySpec {
1400
2021
  pullRequiresAuth?: boolean | undefined;
1401
2022
  infoUrl?: string | undefined;
1402
2023
  useRemoteFiltering?: boolean | undefined;
2024
+ helmSupport?: "classic" | "oci" | undefined;
1403
2025
  }
1404
2026
  export declare enum ImageRegistryTypes {
1405
2027
  AmazonEcr = "AmazonEcr",
@@ -1410,8 +2032,8 @@ export declare enum ImageRegistryTypes {
1410
2032
  }
1411
2033
  export interface ImageRepository {
1412
2034
  name: string;
1413
- scope?: string;
1414
- registry?: Omit<ImageRegistry, "created" | "createdBy" | "modified" | "modifiedBy">;
2035
+ scope?: string | undefined;
2036
+ registry?: Omit<ImageRegistry, "createdBy" | "modifiedBy" | "created" | "modified"> | undefined;
1415
2037
  }
1416
2038
  /** An unversioned reference to an image repository.
1417
2039
  * Matches an Image entity. This class is for use as a request: it is NOT A DOMAIN ENTITY. */
@@ -1440,10 +2062,11 @@ export interface IngressDef {
1440
2062
  service_name: string;
1441
2063
  service_namespace: string;
1442
2064
  replicas: number;
1443
- internal?: boolean | undefined;
1444
2065
  ip_name: string;
1445
2066
  cert_secret_name: string;
1446
2067
  cert_name: string;
2068
+ internal?: boolean | undefined;
2069
+ disableExternal?: boolean | undefined;
1447
2070
  id?: string | undefined;
1448
2071
  createdBy: string;
1449
2072
  modifiedBy: string;
@@ -1577,7 +2200,7 @@ export interface InitContainer {
1577
2200
  /** (optional; defaults to false) UNLESS this is set to true, the init container will also get the volume mounts that are declared in Codiac for the asset. */
1578
2201
  preventAssetVolumes?: boolean | undefined;
1579
2202
  /** (optional) Min/Max Mem and CPU allocations */
1580
- footprint?: Pick<ContainerFootprint, "memLimit" | "memRequest" | "cpuLimit" | "cpuRequest"> | undefined;
2203
+ footprint?: Pick<ContainerFootprint, "cpuRequest" | "cpuLimit" | "memRequest" | "memLimit"> | undefined;
1581
2204
  /** (optional: defaults to all) The versions of the parent asset for which this init container is to be used. */
1582
2205
  versionRange?: string | undefined;
1583
2206
  }
@@ -1652,6 +2275,13 @@ export interface IPartialAsset {
1652
2275
  *
1653
2276
  * That is, Setting this to true will prevent the ingress controller from invoking an automatic redirect to https on any inbound http requests. */
1654
2277
  allowHttp?: boolean | undefined;
2278
+ /** (Applies only when `hasIngress=true`, defaults to false, aka: external)
2279
+ * indicates whether this asset shall be available
2280
+ * only through the internal ingress controller.
2281
+ *
2282
+ * NOTE: When set, this asset will only be accessible
2283
+ * on a cluster with an internal ingress controller. */
2284
+ ingressInternal?: boolean | undefined;
1655
2285
  /** Freeform url paths to use as an override for the asset code property
1656
2286
  * when assembling ingress routing
1657
2287
  * for domain mapping strategies
@@ -1714,6 +2344,13 @@ export interface IValidationStatus {
1714
2344
  * eg: if the status describes a property validation failure, the details may be the various constraints it failed to meet. */
1715
2345
  details?: IValidationStatus[] | undefined;
1716
2346
  }
2347
+ export interface IVersionRef {
2348
+ entityType: string;
2349
+ entityName: string;
2350
+ version: string;
2351
+ contents?: IVersionRef[] | undefined;
2352
+ contentHash?: string | undefined;
2353
+ }
1717
2354
  export interface JobAssetTemplate {
1718
2355
  image: ImageSpec;
1719
2356
  defaultPort: PortMapping | PortMapping | number[] | number;
@@ -1801,6 +2438,13 @@ export interface KnownPortNumberAssignment {
1801
2438
  reservedFor: string;
1802
2439
  group?: "privateUse" | "registered" | "wellknown" | undefined;
1803
2440
  }
2441
+ /** The information needed to access an individual key value pair
2442
+ * from a predefined data store. */
2443
+ export interface KvpReference {
2444
+ type: KvpStoreTypesEnum;
2445
+ name: string;
2446
+ key: any;
2447
+ }
1804
2448
  /** The specs for a key value store to be managed by the codiac system.
1805
2449
  * This class is used to programmatically put up and take down concrete key value stores. */
1806
2450
  export interface KvpStoreDef {
@@ -1850,6 +2494,19 @@ export declare enum KvpStoreTypesEnum {
1850
2494
  mongoCollection = "mongoCollection",
1851
2495
  mongoDocument = "mongoDocument"
1852
2496
  }
2497
+ /** A key-value pair applied to an entity in an enterprise. */
2498
+ export interface Label {
2499
+ value: string;
2500
+ name: string;
2501
+ ownerType: string;
2502
+ ownerId: string;
2503
+ enterprise: string;
2504
+ id?: string | undefined;
2505
+ createdBy: string;
2506
+ modifiedBy: string;
2507
+ created: Date;
2508
+ modified: Date;
2509
+ }
1853
2510
  export interface LogintoCloudProviderRequest {
1854
2511
  providerCode: CloudProviderEnum;
1855
2512
  providerSubscription?: string | undefined;
@@ -1985,10 +2642,10 @@ export declare enum patchOperationType {
1985
2642
  replace = "replace",
1986
2643
  test = "test"
1987
2644
  }
1988
- /** The granting of priveleges to a given Role. */
2645
+ /** The granting of privileges to a given Role. */
1989
2646
  export interface Permission {
1990
2647
  role: AuthRole;
1991
- priveleges: Privelege[];
2648
+ privileges: Privilege[];
1992
2649
  }
1993
2650
  /** Instructs the kube-scheduler how to place each incoming Pod in relation to the existing Pods across your cluster.
1994
2651
  *
@@ -2008,12 +2665,12 @@ export interface PortMapping {
2008
2665
  internal?: number | undefined;
2009
2666
  }
2010
2667
  /** A type of operation that a given Role is allowed to perform on a securable object. */
2011
- export declare enum Privelege {
2012
- "value0" = 0,
2013
- "value1" = 1,
2014
- "value2" = 2,
2015
- "value3" = 3,
2016
- "value4" = 4
2668
+ export declare enum Privilege {
2669
+ Create = "Create",
2670
+ Delete = "Delete",
2671
+ Execute = "Execute",
2672
+ Read = "Read",
2673
+ Update = "Update"
2017
2674
  }
2018
2675
  /** Declares a probe action and when to run it against an asset. */
2019
2676
  export interface Probe {
@@ -2094,18 +2751,6 @@ export interface PropertiesTypeDef {
2094
2751
  nullable?: boolean | undefined;
2095
2752
  metadata?: any | undefined;
2096
2753
  }
2097
- export interface PublishServiceRequest {
2098
- serviceName: string;
2099
- toyboxName: string;
2100
- }
2101
- export interface PublishServiceResponse {
2102
- correlationId: string;
2103
- success: boolean;
2104
- message?: string | undefined;
2105
- error?: Error | undefined;
2106
- /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
2107
- validation?: IValidationStatus | undefined;
2108
- }
2109
2754
  /** Metadata for the credentials that a cluster will use when pulling images from an image registry.
2110
2755
  * This class points to a a specific secret record in a known secret store. */
2111
2756
  export interface PullSecretRef {
@@ -2184,6 +2829,46 @@ export interface Result {
2184
2829
  /** Any errors or messages for the consumer about constraints that were not met in order to perform the operation. */
2185
2830
  validation?: IValidationStatus | undefined;
2186
2831
  }
2832
+ /** All the enterprises, assets, cabinets, environments, and clusters for a given tenant.
2833
+ * That is, a semi-detailed list of all the primary entities of a tenant's software organization.
2834
+ *
2835
+ * NOTE: Though this is a domain entity, it is an emergent entity, so it will never need an id.
2836
+ * It gets assembled from the tenant code and is filtered within itself. */
2837
+ export interface RootMap {
2838
+ enterprises: EnterpriseRoot[];
2839
+ clusters: ClusterWithIngress[];
2840
+ id?: string | undefined;
2841
+ }
2842
+ export interface RootMapCriteria {
2843
+ cabinet?: string | undefined;
2844
+ enterprise?: string | undefined;
2845
+ environment?: string | undefined;
2846
+ cluster?: string | undefined;
2847
+ ids?: string[] | undefined;
2848
+ all?: boolean | undefined;
2849
+ /** supports a single field name
2850
+ * ```json
2851
+ * "sort": "name"
2852
+ * ```
2853
+ * or an array of field names
2854
+ * ```json
2855
+ * "sort": ["name", "lastModified~desc"]
2856
+ * ```
2857
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
2858
+ * ```json
2859
+ * "sort": {
2860
+ * "name": "asc",
2861
+ * "lastModified": "desc"
2862
+ * }
2863
+ * ```
2864
+ *
2865
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
2866
+ sort?: string[] | "asc" | "desc" | string | undefined;
2867
+ skip?: number | undefined;
2868
+ take?: number | undefined;
2869
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
2870
+ reverse?: number | boolean | undefined;
2871
+ }
2187
2872
  export interface ScaleAssetRequest {
2188
2873
  enterprise: string;
2189
2874
  asset: string;
@@ -2211,11 +2896,120 @@ export interface ScopedHostNameConfig {
2211
2896
  /** (FUTURE: NOT YET SUPPORTED) Indicates that this value shall govern over otherwise higher ranking scopes during evaluation.
2212
2897
  * NOTE: This value can still be overridden by a value in a higher ranking scope whose own governs flag is set. */
2213
2898
  governs?: boolean | undefined;
2899
+ /** When set, the domain mapping will not be available on the internet,
2900
+ * and shall only be exposed on ingress controllers in the internal network.
2901
+ * That is, the domain mapping gets omitted from any internet-facing ingress controllers. */
2902
+ isPrivate?: boolean | undefined;
2903
+ createdBy: string;
2904
+ modifiedBy: string;
2905
+ created: Date;
2906
+ modified: Date;
2907
+ }
2908
+ export interface ScopedHostNameConfigCriteria {
2909
+ scope?: StringFilter | undefined;
2910
+ target?: StringFilter | undefined;
2911
+ governs?: boolean | undefined;
2912
+ enterprise?: string | undefined;
2913
+ domainName?: StringFilter | undefined;
2914
+ strategy?: StringFilter | undefined;
2915
+ /** Filter for retrieving all ScopedHostNameConfigs applicable to the given cabinets. */
2916
+ applicableTo?: HostNameConfigCabinetScopeFilter | undefined;
2917
+ ids?: string[] | undefined;
2918
+ all?: boolean | undefined;
2919
+ /** supports a single field name
2920
+ * ```json
2921
+ * "sort": "name"
2922
+ * ```
2923
+ * or an array of field names
2924
+ * ```json
2925
+ * "sort": ["name", "lastModified~desc"]
2926
+ * ```
2927
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
2928
+ * ```json
2929
+ * "sort": {
2930
+ * "name": "asc",
2931
+ * "lastModified": "desc"
2932
+ * }
2933
+ * ```
2934
+ *
2935
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
2936
+ sort?: string[] | "asc" | "desc" | string | undefined;
2937
+ skip?: number | undefined;
2938
+ take?: number | undefined;
2939
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
2940
+ reverse?: number | boolean | undefined;
2941
+ }
2942
+ /** A single key-value setting within a config for an asset, scoped for its ultimate deployment context.
2943
+ * That is, this is the value of one setting within a config file (the targetFile param);
2944
+ * the scope/target (eg: "cabinet"/"cab16") tells us where to use it. */
2945
+ export interface ScopedSetting {
2946
+ setting: string;
2947
+ value: any;
2948
+ targetFile: string;
2949
+ asset: string;
2950
+ enterprise: string;
2951
+ scope: ScopeLevel;
2952
+ target: string;
2953
+ description?: string | undefined;
2954
+ source?: KvpReference | undefined;
2955
+ id?: string | undefined;
2214
2956
  createdBy: string;
2215
2957
  modifiedBy: string;
2216
2958
  created: Date;
2217
2959
  modified: Date;
2218
2960
  }
2961
+ export interface ScopedSettingCriteria {
2962
+ setting?: string | undefined;
2963
+ targetFile?: StringFilter | undefined;
2964
+ asset?: StringFilter | undefined;
2965
+ enterprise?: StringFilter | undefined;
2966
+ scope?: "cabinet" | "enterprise" | "environment" | undefined;
2967
+ target?: string | undefined;
2968
+ /** Creates a filter expression that includes
2969
+ * all entities whose scopes are relevant input for a smash-merge
2970
+ * targeting a given context.
2971
+ * That is: given a cabinet, this filter will invoke a query expression
2972
+ * that will return all ScopedSettings that are needed
2973
+ * to perform a smash-merge into a config doc for that cabinet. */
2974
+ targetCabinet?: ScopeFilter | undefined;
2975
+ ids?: string[] | undefined;
2976
+ all?: boolean | undefined;
2977
+ /** supports a single field name
2978
+ * ```json
2979
+ * "sort": "name"
2980
+ * ```
2981
+ * or an array of field names
2982
+ * ```json
2983
+ * "sort": ["name", "lastModified~desc"]
2984
+ * ```
2985
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
2986
+ * ```json
2987
+ * "sort": {
2988
+ * "name": "asc",
2989
+ * "lastModified": "desc"
2990
+ * }
2991
+ * ```
2992
+ *
2993
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
2994
+ sort?: string[] | "asc" | "desc" | string | undefined;
2995
+ skip?: number | undefined;
2996
+ take?: number | undefined;
2997
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
2998
+ reverse?: number | boolean | undefined;
2999
+ }
3000
+ /** Creates a filter expression that includes
3001
+ * all entities whose scopes are relevant input for a smash-merge
3002
+ * targeting a given context.
3003
+ * That is: given a cabinet, this filter will invoke a query expression
3004
+ * that will return all ScopedSettings that are needed
3005
+ * to perform a smash-merge into a config doc for that cabinet. */
3006
+ export interface ScopeFilter {
3007
+ enterprise: string;
3008
+ cabinet: string;
3009
+ environment: string;
3010
+ property?: string | undefined;
3011
+ $not?: ScopeFilter | undefined;
3012
+ }
2219
3013
  export declare enum ScopeLevel {
2220
3014
  cabinet = "cabinet",
2221
3015
  enterprise = "enterprise",
@@ -2290,6 +3084,49 @@ export interface ServiceAssetTemplate {
2290
3084
  * that are to be later mapped (at configuration time) to file store definitions. */
2291
3085
  reservedFolders?: AssetFolderReservation[] | undefined;
2292
3086
  }
3087
+ /** Component-by-component history of a multi-step infrastructure provisioning operation. */
3088
+ export interface SetupJournal {
3089
+ resourceId: string;
3090
+ id?: string | undefined;
3091
+ data: object;
3092
+ createdBy: string;
3093
+ modifiedBy: string;
3094
+ created: Date;
3095
+ modified: Date;
3096
+ }
3097
+ export interface SetupJournalCriteria {
3098
+ resourceId?: string | undefined;
3099
+ ids?: string[] | undefined;
3100
+ all?: boolean | undefined;
3101
+ /** supports a single field name
3102
+ * ```json
3103
+ * "sort": "name"
3104
+ * ```
3105
+ * or an array of field names
3106
+ * ```json
3107
+ * "sort": ["name", "lastModified~desc"]
3108
+ * ```
3109
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
3110
+ * ```json
3111
+ * "sort": {
3112
+ * "name": "asc",
3113
+ * "lastModified": "desc"
3114
+ * }
3115
+ * ```
3116
+ *
3117
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
3118
+ sort?: string[] | "asc" | "desc" | string | undefined;
3119
+ skip?: number | undefined;
3120
+ take?: number | undefined;
3121
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
3122
+ reverse?: number | boolean | undefined;
3123
+ }
3124
+ export interface SetupJournalEntry {
3125
+ name: string;
3126
+ artifactType: string;
3127
+ artifactPartType?: string | undefined;
3128
+ details?: any | undefined;
3129
+ }
2293
3130
  /** A concrete declaration of a single host naming strategy for a single domain, for a single cabinet.
2294
3131
  *
2295
3132
  * DEV NOTE: We have this entity type so that we can utilize embedding and cascading
@@ -2303,6 +3140,10 @@ export interface SingleHostNameStrategyForCabinet {
2303
3140
  cabinet: string;
2304
3141
  forAsset?: string[] | string | undefined;
2305
3142
  id?: string | undefined;
3143
+ /** When set, the domain mapping will not be available on the internet,
3144
+ * and shall only be exposed on ingress controllers in the internal network.
3145
+ * That is, the domain mapping gets omitted from any internet-facing ingress controllers. */
3146
+ isPrivate?: boolean | undefined;
2306
3147
  }
2307
3148
  export interface StorageAccount {
2308
3149
  name: string;
@@ -2368,6 +3209,11 @@ export interface TaskMap {
2368
3209
  * (TBD: Duck-typeable/convertible to a Json Type Definition (JTD) or a JsonSchema) */
2369
3210
  export interface TypeDefBase {
2370
3211
  }
3212
+ /** request contract for UN-deploying an asset from a cabinet. */
3213
+ export interface UndeployAssetsRequest {
3214
+ target: CabinetScope;
3215
+ assetsNames: string[];
3216
+ }
2371
3217
  /** Archived identifier for a Toyhauler user and their accumulated tenant tokens.
2372
3218
  * NOTE: This data is simply archived and is likely to be stale,
2373
3219
  * so it should be refreshed frequently.
@@ -2376,6 +3222,7 @@ export interface TypeDefBase {
2376
3222
  export interface UserContext {
2377
3223
  currentTenantCode?: string | undefined;
2378
3224
  currentToken?: string | undefined;
3225
+ roles?: string[] | undefined;
2379
3226
  /** the full login id for the user on the Toyhauler system (defaults to anonymous). */
2380
3227
  userName: string;
2381
3228
  /** Dictionary of user-tenant tokens, mapped by tenant code. */
@@ -3700,6 +4547,17 @@ export interface ValuesTypeDef {
3700
4547
  nullable?: boolean | undefined;
3701
4548
  metadata?: any | undefined;
3702
4549
  }
4550
+ /** A time signature declaring an hour of the day for a day of the week (eg: "Mondays at 8am").
4551
+ *
4552
+ * This entity is NOT an actual in time, but instead is essentially a template,
4553
+ * which, only when applied to an actual calendar,
4554
+ * can then produce a concrete point in time. */
4555
+ export interface WeeklyTime {
4556
+ day: "fr" | "mo" | "sa" | "su" | "th" | "tu" | "we";
4557
+ hr24: "0" | "1" | "10" | "11" | "12" | "13" | "14" | "15" | "16" | "17" | "18" | "19" | "2" | "20" | "21" | "22" | "23" | "3" | "4" | "5" | "6" | "7" | "8" | "9";
4558
+ /** DEVNOTE: Do these need to be strings? why not integers? */
4559
+ m?: string | undefined;
4560
+ }
3703
4561
  /** Credentials applied to new Windows VMs to enable administrative capabilities required for cluster management.
3704
4562
  *
3705
4563
  * Backward compatibility for a legacy image format called "Windows",
@@ -3711,6 +4569,51 @@ export interface WindowsAdminProfile {
3711
4569
  userName: string;
3712
4570
  password: string;
3713
4571
  }
4572
+ /** A declaration of a template for a weekly timespan during which the given scope target will be in zombie mode. */
4573
+ export interface ZombiePeriod {
4574
+ enterprise: string;
4575
+ scope: ScopeLevel;
4576
+ target: string;
4577
+ start: WeeklyTime;
4578
+ end: WeeklyTime;
4579
+ name?: string | undefined;
4580
+ description?: string | undefined;
4581
+ id?: string | undefined;
4582
+ createdBy: string;
4583
+ modifiedBy: string;
4584
+ created: Date;
4585
+ modified: Date;
4586
+ }
4587
+ export interface ZombiePeriodCriteria {
4588
+ enterprise?: string | undefined;
4589
+ scope?: "cabinet" | "enterprise" | "environment" | undefined;
4590
+ target?: string | undefined;
4591
+ name?: string | undefined;
4592
+ ids?: string[] | undefined;
4593
+ all?: boolean | undefined;
4594
+ /** supports a single field name
4595
+ * ```json
4596
+ * "sort": "name"
4597
+ * ```
4598
+ * or an array of field names
4599
+ * ```json
4600
+ * "sort": ["name", "lastModified~desc"]
4601
+ * ```
4602
+ * or an object dictionary of `fieldName: asc|desc` pairs, eg:
4603
+ * ```json
4604
+ * "sort": {
4605
+ * "name": "asc",
4606
+ * "lastModified": "desc"
4607
+ * }
4608
+ * ```
4609
+ *
4610
+ * NOTE: Regarding sort field order, (aka: `asc|desc`) : Sort field names can be specified as EITHER: field name alone (implies asc order), eg: `"favColor"`, OR field name with order suffix `asc|desc` (delimited by tilde). eg: `"favColor~desc"`. */
4611
+ sort?: string[] | string | undefined;
4612
+ skip?: number | undefined;
4613
+ take?: number | undefined;
4614
+ /** Declares that the data be returned in the opposite order than what is specified by the `sort` property. */
4615
+ reverse?: number | boolean | undefined;
4616
+ }
3714
4617
  export interface ZombieRefreshRequest {
3715
4618
  enterprise: string;
3716
4619
  environment?: string | undefined;