Skip to content

Commit fd82ccc

Browse files
yoshi-automationsofisl
authored andcommitted
feat(workstations): update the API
#### workstations:v1beta The following keys were added: - schemas.GceInstanceHost.description - schemas.GceInstanceHost.id - schemas.GceInstanceHost.properties.id.description - schemas.GceInstanceHost.properties.id.readOnly - schemas.GceInstanceHost.properties.id.type - schemas.GceInstanceHost.properties.name.description - schemas.GceInstanceHost.properties.name.readOnly - schemas.GceInstanceHost.properties.name.type - schemas.GceInstanceHost.properties.zone.description - schemas.GceInstanceHost.properties.zone.readOnly - schemas.GceInstanceHost.properties.zone.type - schemas.GceInstanceHost.type - schemas.HttpOptions.properties.disableLocalhostReplacement.description - schemas.HttpOptions.properties.disableLocalhostReplacement.type - schemas.RuntimeHost.description - schemas.RuntimeHost.id - schemas.RuntimeHost.properties.gceInstanceHost.$ref - schemas.RuntimeHost.properties.gceInstanceHost.description - schemas.RuntimeHost.type - schemas.Workstation.properties.runtimeHost.$ref - schemas.Workstation.properties.runtimeHost.description - schemas.Workstation.properties.runtimeHost.readOnly - schemas.WorkstationCluster.properties.tags.additionalProperties.type - schemas.WorkstationCluster.properties.tags.description - schemas.WorkstationCluster.properties.tags.type The following keys were changed: - resources.projects.resources.locations.resources.operations.methods.cancel.description - resources.projects.resources.locations.resources.workstationClusters.resources.workstationConfigs.resources.workstations.methods.generateAccessToken.description - schemas.BoostConfig.description - schemas.BoostConfig.properties.id.description - schemas.GceInstance.properties.boostConfigs.description - schemas.PersistentDirectory.description #### workstations:v1 The following keys were added: - schemas.BoostConfig.description - schemas.BoostConfig.id - schemas.BoostConfig.properties.accelerators.description - schemas.BoostConfig.properties.accelerators.items.$ref - schemas.BoostConfig.properties.accelerators.type - schemas.BoostConfig.properties.bootDiskSizeGb.description - schemas.BoostConfig.properties.bootDiskSizeGb.format - schemas.BoostConfig.properties.bootDiskSizeGb.type - schemas.BoostConfig.properties.enableNestedVirtualization.description - schemas.BoostConfig.properties.enableNestedVirtualization.type - schemas.BoostConfig.properties.id.description - schemas.BoostConfig.properties.id.type - schemas.BoostConfig.properties.machineType.description - schemas.BoostConfig.properties.machineType.type - schemas.BoostConfig.properties.poolSize.description - schemas.BoostConfig.properties.poolSize.format - schemas.BoostConfig.properties.poolSize.type - schemas.BoostConfig.type - schemas.GceInstance.properties.boostConfigs.description - schemas.GceInstance.properties.boostConfigs.items.$ref - schemas.GceInstance.properties.boostConfigs.type - schemas.GceInstanceHost.description - schemas.GceInstanceHost.id - schemas.GceInstanceHost.properties.id.description - schemas.GceInstanceHost.properties.id.readOnly - schemas.GceInstanceHost.properties.id.type - schemas.GceInstanceHost.properties.name.description - schemas.GceInstanceHost.properties.name.readOnly - schemas.GceInstanceHost.properties.name.type - schemas.GceInstanceHost.properties.zone.description - schemas.GceInstanceHost.properties.zone.readOnly - schemas.GceInstanceHost.properties.zone.type - schemas.GceInstanceHost.type - schemas.RuntimeHost.description - schemas.RuntimeHost.id - schemas.RuntimeHost.properties.gceInstanceHost.$ref - schemas.RuntimeHost.properties.gceInstanceHost.description - schemas.RuntimeHost.type - schemas.StartWorkstationRequest.properties.boostConfig.description - schemas.StartWorkstationRequest.properties.boostConfig.type - schemas.Workstation.properties.runtimeHost.$ref - schemas.Workstation.properties.runtimeHost.description - schemas.Workstation.properties.runtimeHost.readOnly - schemas.Workstation.properties.sourceWorkstation.description - schemas.Workstation.properties.sourceWorkstation.type - schemas.WorkstationCluster.properties.tags.additionalProperties.type - schemas.WorkstationCluster.properties.tags.description - schemas.WorkstationCluster.properties.tags.type The following keys were changed: - resources.projects.resources.locations.resources.operations.methods.cancel.description - resources.projects.resources.locations.resources.workstationClusters.resources.workstationConfigs.resources.workstations.methods.generateAccessToken.description - schemas.PersistentDirectory.description
1 parent 0acb6c4 commit fd82ccc

File tree

4 files changed

+278
-20
lines changed

4 files changed

+278
-20
lines changed

‎discovery/workstations-v1.json

Lines changed: 100 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@
180180
"operations": {
181181
"methods": {
182182
"cancel": {
183-
"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
183+
"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
184184
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
185185
"httpMethod": "POST",
186186
"id": "workstations.projects.locations.operations.cancel",
@@ -873,7 +873,7 @@
873873
]
874874
},
875875
"generateAccessToken": {
876-
"description": "Returns a short-lived credential that can be used to send authenticated and authorized traffic to a workstation.",
876+
"description": "Returns a short-lived credential that can be used to send authenticated and authorized traffic to a workstation. Once generated this token cannot be revoked and is good for the lifetime of the token.",
877877
"flatPath": "v1/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:generateAccessToken",
878878
"httpMethod": "POST",
879879
"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.generateAccessToken",
@@ -1195,7 +1195,7 @@
11951195
}
11961196
}
11971197
},
1198-
"revision": "20240904",
1198+
"revision": "20250101",
11991199
"rootUrl": "https://workstations.googleapis.com/",
12001200
"schemas": {
12011201
"Accelerator": {
@@ -1284,6 +1284,42 @@
12841284
},
12851285
"type": "object"
12861286
},
1287+
"BoostConfig": {
1288+
"description": "A boost configuration is a set of resources that a workstation can use to increase its performance. If you specify a boost configuration, upon startup, workstation users can choose to use a VM provisioned under the boost config by passing the boost config ID in the start request. If the workstation user does not provide a boost config ID in the start request, the system will choose a VM from the pool provisioned under the default config.",
1289+
"id": "BoostConfig",
1290+
"properties": {
1291+
"accelerators": {
1292+
"description": "Optional. A list of the type and count of accelerator cards attached to the boost instance. Defaults to `none`.",
1293+
"items": {
1294+
"$ref": "Accelerator"
1295+
},
1296+
"type": "array"
1297+
},
1298+
"bootDiskSizeGb": {
1299+
"description": "Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum boot disk size is `30` GB. Defaults to `50` GB.",
1300+
"format": "int32",
1301+
"type": "integer"
1302+
},
1303+
"enableNestedVirtualization": {
1304+
"description": "Optional. Whether to enable nested virtualization on boosted Cloud Workstations VMs running using this boost configuration. Defaults to false. Nested virtualization lets you run virtual machine (VM) instances inside your workstation. Before enabling nested virtualization, consider the following important considerations. Cloud Workstations instances are subject to the [same restrictions as Compute Engine instances](https://cloud.google.com/compute/docs/instances/nested-virtualization/overview#restrictions): * **Organization policy**: projects, folders, or organizations may be restricted from creating nested VMs if the **Disable VM nested virtualization** constraint is enforced in the organization policy. For more information, see the Compute Engine section, [Checking whether nested virtualization is allowed](https://cloud.google.com/compute/docs/instances/nested-virtualization/managing-constraint#checking_whether_nested_virtualization_is_allowed). * **Performance**: nested VMs might experience a 10% or greater decrease in performance for workloads that are CPU-bound and possibly greater than a 10% decrease for workloads that are input/output bound. * **Machine Type**: nested virtualization can only be enabled on boost configurations that specify a machine_type in the N1 or N2 machine series.",
1305+
"type": "boolean"
1306+
},
1307+
"id": {
1308+
"description": "Required. The ID to be used for the boost configuration.",
1309+
"type": "string"
1310+
},
1311+
"machineType": {
1312+
"description": "Optional. The type of machine that boosted VM instances will use—for example, `e2-standard-4`. For more information about machine types that Cloud Workstations supports, see the list of [available machine types](https://cloud.google.com/workstations/docs/available-machine-types). Defaults to `e2-standard-4`.",
1313+
"type": "string"
1314+
},
1315+
"poolSize": {
1316+
"description": "Optional. The number of boost VMs that the system should keep idle so that workstations can be boosted quickly. Defaults to `0`.",
1317+
"format": "int32",
1318+
"type": "integer"
1319+
}
1320+
},
1321+
"type": "object"
1322+
},
12871323
"CancelOperationRequest": {
12881324
"description": "The request message for Operations.CancelOperation.",
12891325
"id": "CancelOperationRequest",
@@ -1417,6 +1453,13 @@
14171453
},
14181454
"type": "array"
14191455
},
1456+
"boostConfigs": {
1457+
"description": "Optional. A list of the boost configurations that workstations created using this workstation configuration are allowed to use. If specified, users will have the option to choose from the list of boost configs when starting a workstation.",
1458+
"items": {
1459+
"$ref": "BoostConfig"
1460+
},
1461+
"type": "array"
1462+
},
14201463
"bootDiskSizeGb": {
14211464
"description": "Optional. The size of the boot disk for the VM in gigabytes (GB). The minimum boot disk size is `30` GB. Defaults to `50` GB.",
14221465
"format": "int32",
@@ -1485,6 +1528,28 @@
14851528
},
14861529
"type": "object"
14871530
},
1531+
"GceInstanceHost": {
1532+
"description": "The Compute Engine instance host.",
1533+
"id": "GceInstanceHost",
1534+
"properties": {
1535+
"id": {
1536+
"description": "Optional. Output only. The ID of the Compute Engine instance.",
1537+
"readOnly": true,
1538+
"type": "string"
1539+
},
1540+
"name": {
1541+
"description": "Optional. Output only. The name of the Compute Engine instance.",
1542+
"readOnly": true,
1543+
"type": "string"
1544+
},
1545+
"zone": {
1546+
"description": "Optional. Output only. The zone of the Compute Engine instance.",
1547+
"readOnly": true,
1548+
"type": "string"
1549+
}
1550+
},
1551+
"type": "object"
1552+
},
14881553
"GcePersistentDisk": {
14891554
"description": "An EphemeralDirectory is backed by a Compute Engine persistent disk.",
14901555
"id": "GcePersistentDisk",
@@ -1895,7 +1960,7 @@
18951960
"type": "object"
18961961
},
18971962
"PersistentDirectory": {
1898-
"description": "A directory to persist across workstation sessions.",
1963+
"description": "A directory to persist across workstation sessions. Updates to this field will not update existing workstations and will only take effect on new workstations.",
18991964
"id": "PersistentDirectory",
19001965
"properties": {
19011966
"gcePd": {
@@ -2001,6 +2066,17 @@
20012066
},
20022067
"type": "object"
20032068
},
2069+
"RuntimeHost": {
2070+
"description": "Runtime host for the workstation.",
2071+
"id": "RuntimeHost",
2072+
"properties": {
2073+
"gceInstanceHost": {
2074+
"$ref": "GceInstanceHost",
2075+
"description": "Specifies a Compute Engine instance as the host."
2076+
}
2077+
},
2078+
"type": "object"
2079+
},
20042080
"SetIamPolicyRequest": {
20052081
"description": "Request message for `SetIamPolicy` method.",
20062082
"id": "SetIamPolicyRequest",
@@ -2021,6 +2097,10 @@
20212097
"description": "Request message for StartWorkstation.",
20222098
"id": "StartWorkstationRequest",
20232099
"properties": {
2100+
"boostConfig": {
2101+
"description": "Optional. If set, the workstation starts using the boost configuration with the specified ID.",
2102+
"type": "string"
2103+
},
20242104
"etag": {
20252105
"description": "Optional. If set, the request will be rejected if the latest version of the workstation on the server does not have this ETag.",
20262106
"type": "string"
@@ -2166,6 +2246,15 @@
21662246
"readOnly": true,
21672247
"type": "boolean"
21682248
},
2249+
"runtimeHost": {
2250+
"$ref": "RuntimeHost",
2251+
"description": "Optional. Output only. Runtime host for the workstation when in STATE_RUNNING.",
2252+
"readOnly": true
2253+
},
2254+
"sourceWorkstation": {
2255+
"description": "Optional. The source workstation from which this workstation's persistent directories were cloned on creation.",
2256+
"type": "string"
2257+
},
21692258
"startTime": {
21702259
"description": "Output only. Time when this workstation was most recently successfully started, regardless of the workstation's initial state.",
21712260
"format": "google-datetime",
@@ -2286,6 +2375,13 @@
22862375
"description": "Immutable. Name of the Compute Engine subnetwork in which instances associated with this workstation cluster will be created. Must be part of the subnetwork specified for this workstation cluster.",
22872376
"type": "string"
22882377
},
2378+
"tags": {
2379+
"additionalProperties": {
2380+
"type": "string"
2381+
},
2382+
"description": "Optional. Tag keys/values directly bound to this resource. For example: \"123/environment\": \"production\", \"123/costCenter\": \"marketing\"",
2383+
"type": "object"
2384+
},
22892385
"uid": {
22902386
"description": "Output only. A system-assigned unique identifier for this workstation cluster.",
22912387
"readOnly": true,

‎discovery/workstations-v1beta.json

Lines changed: 56 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@
112112
"operations": {
113113
"methods": {
114114
"cancel": {
115-
"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
115+
"description": "Starts asynchronous cancellation on a long-running operation. The server makes a best effort to cancel the operation, but success is not guaranteed. If the server doesn't support this method, it returns `google.rpc.Code.UNIMPLEMENTED`. Clients can use Operations.GetOperation or other methods to check whether the cancellation succeeded or whether the operation completed despite cancellation. On successful cancellation, the operation is not deleted; instead, it becomes an operation with an Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
116116
"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/operations/{operationsId}:cancel",
117117
"httpMethod": "POST",
118118
"id": "workstations.projects.locations.operations.cancel",
@@ -805,7 +805,7 @@
805805
]
806806
},
807807
"generateAccessToken": {
808-
"description": "Returns a short-lived credential that can be used to send authenticated and authorized traffic to a workstation.",
808+
"description": "Returns a short-lived credential that can be used to send authenticated and authorized traffic to a workstation. Once generated this token cannot be revoked and is good for the lifetime of the token.",
809809
"flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workstationClusters/{workstationClustersId}/workstationConfigs/{workstationConfigsId}/workstations/{workstationsId}:generateAccessToken",
810810
"httpMethod": "POST",
811811
"id": "workstations.projects.locations.workstationClusters.workstationConfigs.workstations.generateAccessToken",
@@ -1127,7 +1127,7 @@
11271127
}
11281128
}
11291129
},
1130-
"revision": "20240904",
1130+
"revision": "20250101",
11311131
"rootUrl": "https://workstations.googleapis.com/",
11321132
"schemas": {
11331133
"Accelerator": {
@@ -1217,7 +1217,7 @@
12171217
"type": "object"
12181218
},
12191219
"BoostConfig": {
1220-
"description": "A configuration that workstations can boost to.",
1220+
"description": "A boost configuration is a set of resources that a workstation can use to increase its performance. If you specify a boost configuration, upon startup, workstation users can choose to use a VM provisioned under the boost config by passing the boost config ID in the start request. If the workstation user does not provide a boost config ID in the start request, the system will choose a VM from the pool provisioned under the default config.",
12211221
"id": "BoostConfig",
12221222
"properties": {
12231223
"accelerators": {
@@ -1237,7 +1237,7 @@
12371237
"type": "boolean"
12381238
},
12391239
"id": {
1240-
"description": "Optional. Required. The id to be used for the boost configuration.",
1240+
"description": "Required. The ID to be used for the boost configuration.",
12411241
"type": "string"
12421242
},
12431243
"machineType": {
@@ -1386,7 +1386,7 @@
13861386
"type": "array"
13871387
},
13881388
"boostConfigs": {
1389-
"description": "Optional. A list of the boost configurations that workstations created using this workstation configuration are allowed to use.",
1389+
"description": "Optional. A list of the boost configurations that workstations created using this workstation configuration are allowed to use. If specified, users will have the option to choose from the list of boost configs when starting a workstation.",
13901390
"items": {
13911391
"$ref": "BoostConfig"
13921392
},
@@ -1460,6 +1460,28 @@
14601460
},
14611461
"type": "object"
14621462
},
1463+
"GceInstanceHost": {
1464+
"description": "The Compute Engine instance host.",
1465+
"id": "GceInstanceHost",
1466+
"properties": {
1467+
"id": {
1468+
"description": "Optional. Output only. The ID of the Compute Engine instance.",
1469+
"readOnly": true,
1470+
"type": "string"
1471+
},
1472+
"name": {
1473+
"description": "Optional. Output only. The name of the Compute Engine instance.",
1474+
"readOnly": true,
1475+
"type": "string"
1476+
},
1477+
"zone": {
1478+
"description": "Optional. Output only. The zone of the Compute Engine instance.",
1479+
"readOnly": true,
1480+
"type": "string"
1481+
}
1482+
},
1483+
"type": "object"
1484+
},
14631485
"GcePersistentDisk": {
14641486
"description": "An EphemeralDirectory is backed by a Compute Engine persistent disk.",
14651487
"id": "GcePersistentDisk",
@@ -1602,6 +1624,10 @@
16021624
"allowedUnauthenticatedCorsPreflightRequests": {
16031625
"description": "Optional. By default, the workstations service makes sure that all requests to the workstation are authenticated. CORS preflight requests do not include cookies or custom headers, and so are considered unauthenticated and blocked by the workstations service. Enabling this option allows these unauthenticated CORS preflight requests through to the workstation, where it becomes the responsibility of the destination server in the workstation to validate the request.",
16041626
"type": "boolean"
1627+
},
1628+
"disableLocalhostReplacement": {
1629+
"description": "Optional. By default, the workstations service replaces references to localhost, 127.0.0.1, and 0.0.0.0 with the workstation's hostname in http responses from the workstation so that applications under development run properly on the workstation. This may intefere with some applications, and so this option allows that behavior to be disabled.",
1630+
"type": "boolean"
16051631
}
16061632
},
16071633
"type": "object"
@@ -1829,7 +1855,7 @@
18291855
"type": "object"
18301856
},
18311857
"PersistentDirectory": {
1832-
"description": "A directory to persist across workstation sessions.",
1858+
"description": "A directory to persist across workstation sessions. Updates to this field will not update existing workstations and will only take effect on new workstations.",
18331859
"id": "PersistentDirectory",
18341860
"properties": {
18351861
"gcePd": {
@@ -1935,6 +1961,17 @@
19351961
},
19361962
"type": "object"
19371963
},
1964+
"RuntimeHost": {
1965+
"description": "Runtime host for the workstation.",
1966+
"id": "RuntimeHost",
1967+
"properties": {
1968+
"gceInstanceHost": {
1969+
"$ref": "GceInstanceHost",
1970+
"description": "Specifies a Compute Engine instance as the host."
1971+
}
1972+
},
1973+
"type": "object"
1974+
},
19381975
"SetIamPolicyRequest": {
19391976
"description": "Request message for `SetIamPolicy` method.",
19401977
"id": "SetIamPolicyRequest",
@@ -2112,6 +2149,11 @@
21122149
"readOnly": true,
21132150
"type": "boolean"
21142151
},
2152+
"runtimeHost": {
2153+
"$ref": "RuntimeHost",
2154+
"description": "Optional. Output only. Runtime host for the workstation when in STATE_RUNNING.",
2155+
"readOnly": true
2156+
},
21152157
"satisfiesPzi": {
21162158
"description": "Output only. Reserved for future use.",
21172159
"readOnly": true,
@@ -2268,6 +2310,13 @@
22682310
"description": "Immutable. Name of the Compute Engine subnetwork in which instances associated with this workstation cluster will be created. Must be part of the subnetwork specified for this workstation cluster.",
22692311
"type": "string"
22702312
},
2313+
"tags": {
2314+
"additionalProperties": {
2315+
"type": "string"
2316+
},
2317+
"description": "Optional. Tag keys/values directly bound to this resource. For example: \"123/environment\": \"production\", \"123/costCenter\": \"marketing\"",
2318+
"type": "object"
2319+
},
22712320
"uid": {
22722321
"description": "Output only. A system-assigned unique identifier for this workstation cluster.",
22732322
"readOnly": true,

0 commit comments

Comments
 (0)