forked from pulumi/pulumi-azure-native-sdk
-
Notifications
You must be signed in to change notification settings - Fork 0
/
getPool.go
317 lines (265 loc) · 19.3 KB
/
getPool.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
// Code generated by the Pulumi SDK Generator DO NOT EDIT.
// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
package batch
import (
"context"
"reflect"
"github.com/pulumi/pulumi-azure-native-sdk/v2/utilities"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
// Gets information about the specified pool.
// Azure REST API version: 2023-05-01.
//
// Other available API versions: 2020-05-01, 2023-11-01, 2024-02-01.
func LookupPool(ctx *pulumi.Context, args *LookupPoolArgs, opts ...pulumi.InvokeOption) (*LookupPoolResult, error) {
opts = utilities.PkgInvokeDefaultOpts(opts)
var rv LookupPoolResult
err := ctx.Invoke("azure-native:batch:getPool", args, &rv, opts...)
if err != nil {
return nil, err
}
return rv.Defaults(), nil
}
type LookupPoolArgs struct {
// The name of the Batch account.
AccountName string `pulumi:"accountName"`
// The pool name. This must be unique within the account.
PoolName string `pulumi:"poolName"`
// The name of the resource group that contains the Batch account.
ResourceGroupName string `pulumi:"resourceGroupName"`
}
// Contains information about a pool.
type LookupPoolResult struct {
AllocationState string `pulumi:"allocationState"`
AllocationStateTransitionTime string `pulumi:"allocationStateTransitionTime"`
// The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.
ApplicationLicenses []string `pulumi:"applicationLicenses"`
// Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool.
ApplicationPackages []ApplicationPackageReferenceResponse `pulumi:"applicationPackages"`
// This property is set only if the pool automatically scales, i.e. autoScaleSettings are used.
AutoScaleRun AutoScaleRunResponse `pulumi:"autoScaleRun"`
// For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.
//
// Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead.
Certificates []CertificateReferenceResponse `pulumi:"certificates"`
CreationTime string `pulumi:"creationTime"`
CurrentDedicatedNodes int `pulumi:"currentDedicatedNodes"`
CurrentLowPriorityNodes int `pulumi:"currentLowPriorityNodes"`
CurrentNodeCommunicationMode string `pulumi:"currentNodeCommunicationMode"`
// Using CloudServiceConfiguration specifies that the nodes should be creating using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses Azure Virtual Machines (IaaS).
DeploymentConfiguration *DeploymentConfigurationResponse `pulumi:"deploymentConfiguration"`
// The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.
DisplayName *string `pulumi:"displayName"`
// The ETag of the resource, used for concurrency statements.
Etag string `pulumi:"etag"`
// The ID of the resource.
Id string `pulumi:"id"`
// The type of identity used for the Batch Pool.
Identity *BatchPoolIdentityResponse `pulumi:"identity"`
// This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'.
InterNodeCommunication *string `pulumi:"interNodeCommunication"`
// This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state.
LastModified string `pulumi:"lastModified"`
// The Batch service does not assign any meaning to metadata; it is solely for the use of user code.
Metadata []MetadataItemResponse `pulumi:"metadata"`
// This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.
MountConfiguration []MountConfigurationResponse `pulumi:"mountConfiguration"`
// The name of the resource.
Name string `pulumi:"name"`
// The network configuration for a pool.
NetworkConfiguration *NetworkConfigurationResponse `pulumi:"networkConfiguration"`
ProvisioningState string `pulumi:"provisioningState"`
ProvisioningStateTransitionTime string `pulumi:"provisioningStateTransitionTime"`
// Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady).
ResizeOperationStatus ResizeOperationStatusResponse `pulumi:"resizeOperationStatus"`
// Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.
ScaleSettings *ScaleSettingsResponse `pulumi:"scaleSettings"`
// In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool.
StartTask *StartTaskResponse `pulumi:"startTask"`
// If omitted, the default value is Default.
TargetNodeCommunicationMode *string `pulumi:"targetNodeCommunicationMode"`
// If not specified, the default is spread.
TaskSchedulingPolicy *TaskSchedulingPolicyResponse `pulumi:"taskSchedulingPolicy"`
// The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.
TaskSlotsPerNode *int `pulumi:"taskSlotsPerNode"`
// The type of the resource.
Type string `pulumi:"type"`
UserAccounts []UserAccountResponse `pulumi:"userAccounts"`
// For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).
VmSize *string `pulumi:"vmSize"`
}
// Defaults sets the appropriate defaults for LookupPoolResult
func (val *LookupPoolResult) Defaults() *LookupPoolResult {
if val == nil {
return nil
}
tmp := *val
tmp.DeploymentConfiguration = tmp.DeploymentConfiguration.Defaults()
tmp.NetworkConfiguration = tmp.NetworkConfiguration.Defaults()
tmp.ScaleSettings = tmp.ScaleSettings.Defaults()
tmp.StartTask = tmp.StartTask.Defaults()
tmp.TaskSchedulingPolicy = tmp.TaskSchedulingPolicy.Defaults()
if tmp.TaskSlotsPerNode == nil {
taskSlotsPerNode_ := 1
tmp.TaskSlotsPerNode = &taskSlotsPerNode_
}
return &tmp
}
func LookupPoolOutput(ctx *pulumi.Context, args LookupPoolOutputArgs, opts ...pulumi.InvokeOption) LookupPoolResultOutput {
return pulumi.ToOutputWithContext(context.Background(), args).
ApplyT(func(v interface{}) (LookupPoolResult, error) {
args := v.(LookupPoolArgs)
r, err := LookupPool(ctx, &args, opts...)
var s LookupPoolResult
if r != nil {
s = *r
}
return s, err
}).(LookupPoolResultOutput)
}
type LookupPoolOutputArgs struct {
// The name of the Batch account.
AccountName pulumi.StringInput `pulumi:"accountName"`
// The pool name. This must be unique within the account.
PoolName pulumi.StringInput `pulumi:"poolName"`
// The name of the resource group that contains the Batch account.
ResourceGroupName pulumi.StringInput `pulumi:"resourceGroupName"`
}
func (LookupPoolOutputArgs) ElementType() reflect.Type {
return reflect.TypeOf((*LookupPoolArgs)(nil)).Elem()
}
// Contains information about a pool.
type LookupPoolResultOutput struct{ *pulumi.OutputState }
func (LookupPoolResultOutput) ElementType() reflect.Type {
return reflect.TypeOf((*LookupPoolResult)(nil)).Elem()
}
func (o LookupPoolResultOutput) ToLookupPoolResultOutput() LookupPoolResultOutput {
return o
}
func (o LookupPoolResultOutput) ToLookupPoolResultOutputWithContext(ctx context.Context) LookupPoolResultOutput {
return o
}
func (o LookupPoolResultOutput) AllocationState() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.AllocationState }).(pulumi.StringOutput)
}
func (o LookupPoolResultOutput) AllocationStateTransitionTime() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.AllocationStateTransitionTime }).(pulumi.StringOutput)
}
// The list of application licenses must be a subset of available Batch service application licenses. If a license is requested which is not supported, pool creation will fail.
func (o LookupPoolResultOutput) ApplicationLicenses() pulumi.StringArrayOutput {
return o.ApplyT(func(v LookupPoolResult) []string { return v.ApplicationLicenses }).(pulumi.StringArrayOutput)
}
// Changes to application package references affect all new compute nodes joining the pool, but do not affect compute nodes that are already in the pool until they are rebooted or reimaged. There is a maximum of 10 application package references on any given pool.
func (o LookupPoolResultOutput) ApplicationPackages() ApplicationPackageReferenceResponseArrayOutput {
return o.ApplyT(func(v LookupPoolResult) []ApplicationPackageReferenceResponse { return v.ApplicationPackages }).(ApplicationPackageReferenceResponseArrayOutput)
}
// This property is set only if the pool automatically scales, i.e. autoScaleSettings are used.
func (o LookupPoolResultOutput) AutoScaleRun() AutoScaleRunResponseOutput {
return o.ApplyT(func(v LookupPoolResult) AutoScaleRunResponse { return v.AutoScaleRun }).(AutoScaleRunResponseOutput)
}
// For Windows compute nodes, the Batch service installs the certificates to the specified certificate store and location. For Linux compute nodes, the certificates are stored in a directory inside the task working directory and an environment variable AZ_BATCH_CERTIFICATES_DIR is supplied to the task to query for this location. For certificates with visibility of 'remoteUser', a 'certs' directory is created in the user's home directory (e.g., /home/{user-name}/certs) and certificates are placed in that directory.
//
// Warning: This property is deprecated and will be removed after February, 2024. Please use the [Azure KeyVault Extension](https://learn.microsoft.com/azure/batch/batch-certificate-migration-guide) instead.
func (o LookupPoolResultOutput) Certificates() CertificateReferenceResponseArrayOutput {
return o.ApplyT(func(v LookupPoolResult) []CertificateReferenceResponse { return v.Certificates }).(CertificateReferenceResponseArrayOutput)
}
func (o LookupPoolResultOutput) CreationTime() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.CreationTime }).(pulumi.StringOutput)
}
func (o LookupPoolResultOutput) CurrentDedicatedNodes() pulumi.IntOutput {
return o.ApplyT(func(v LookupPoolResult) int { return v.CurrentDedicatedNodes }).(pulumi.IntOutput)
}
func (o LookupPoolResultOutput) CurrentLowPriorityNodes() pulumi.IntOutput {
return o.ApplyT(func(v LookupPoolResult) int { return v.CurrentLowPriorityNodes }).(pulumi.IntOutput)
}
func (o LookupPoolResultOutput) CurrentNodeCommunicationMode() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.CurrentNodeCommunicationMode }).(pulumi.StringOutput)
}
// Using CloudServiceConfiguration specifies that the nodes should be creating using Azure Cloud Services (PaaS), while VirtualMachineConfiguration uses Azure Virtual Machines (IaaS).
func (o LookupPoolResultOutput) DeploymentConfiguration() DeploymentConfigurationResponsePtrOutput {
return o.ApplyT(func(v LookupPoolResult) *DeploymentConfigurationResponse { return v.DeploymentConfiguration }).(DeploymentConfigurationResponsePtrOutput)
}
// The display name need not be unique and can contain any Unicode characters up to a maximum length of 1024.
func (o LookupPoolResultOutput) DisplayName() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupPoolResult) *string { return v.DisplayName }).(pulumi.StringPtrOutput)
}
// The ETag of the resource, used for concurrency statements.
func (o LookupPoolResultOutput) Etag() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.Etag }).(pulumi.StringOutput)
}
// The ID of the resource.
func (o LookupPoolResultOutput) Id() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.Id }).(pulumi.StringOutput)
}
// The type of identity used for the Batch Pool.
func (o LookupPoolResultOutput) Identity() BatchPoolIdentityResponsePtrOutput {
return o.ApplyT(func(v LookupPoolResult) *BatchPoolIdentityResponse { return v.Identity }).(BatchPoolIdentityResponsePtrOutput)
}
// This imposes restrictions on which nodes can be assigned to the pool. Enabling this value can reduce the chance of the requested number of nodes to be allocated in the pool. If not specified, this value defaults to 'Disabled'.
func (o LookupPoolResultOutput) InterNodeCommunication() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupPoolResult) *string { return v.InterNodeCommunication }).(pulumi.StringPtrOutput)
}
// This is the last time at which the pool level data, such as the targetDedicatedNodes or autoScaleSettings, changed. It does not factor in node-level changes such as a compute node changing state.
func (o LookupPoolResultOutput) LastModified() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.LastModified }).(pulumi.StringOutput)
}
// The Batch service does not assign any meaning to metadata; it is solely for the use of user code.
func (o LookupPoolResultOutput) Metadata() MetadataItemResponseArrayOutput {
return o.ApplyT(func(v LookupPoolResult) []MetadataItemResponse { return v.Metadata }).(MetadataItemResponseArrayOutput)
}
// This supports Azure Files, NFS, CIFS/SMB, and Blobfuse.
func (o LookupPoolResultOutput) MountConfiguration() MountConfigurationResponseArrayOutput {
return o.ApplyT(func(v LookupPoolResult) []MountConfigurationResponse { return v.MountConfiguration }).(MountConfigurationResponseArrayOutput)
}
// The name of the resource.
func (o LookupPoolResultOutput) Name() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.Name }).(pulumi.StringOutput)
}
// The network configuration for a pool.
func (o LookupPoolResultOutput) NetworkConfiguration() NetworkConfigurationResponsePtrOutput {
return o.ApplyT(func(v LookupPoolResult) *NetworkConfigurationResponse { return v.NetworkConfiguration }).(NetworkConfigurationResponsePtrOutput)
}
func (o LookupPoolResultOutput) ProvisioningState() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.ProvisioningState }).(pulumi.StringOutput)
}
func (o LookupPoolResultOutput) ProvisioningStateTransitionTime() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.ProvisioningStateTransitionTime }).(pulumi.StringOutput)
}
// Describes either the current operation (if the pool AllocationState is Resizing) or the previously completed operation (if the AllocationState is Steady).
func (o LookupPoolResultOutput) ResizeOperationStatus() ResizeOperationStatusResponseOutput {
return o.ApplyT(func(v LookupPoolResult) ResizeOperationStatusResponse { return v.ResizeOperationStatus }).(ResizeOperationStatusResponseOutput)
}
// Defines the desired size of the pool. This can either be 'fixedScale' where the requested targetDedicatedNodes is specified, or 'autoScale' which defines a formula which is periodically reevaluated. If this property is not specified, the pool will have a fixed scale with 0 targetDedicatedNodes.
func (o LookupPoolResultOutput) ScaleSettings() ScaleSettingsResponsePtrOutput {
return o.ApplyT(func(v LookupPoolResult) *ScaleSettingsResponse { return v.ScaleSettings }).(ScaleSettingsResponsePtrOutput)
}
// In an PATCH (update) operation, this property can be set to an empty object to remove the start task from the pool.
func (o LookupPoolResultOutput) StartTask() StartTaskResponsePtrOutput {
return o.ApplyT(func(v LookupPoolResult) *StartTaskResponse { return v.StartTask }).(StartTaskResponsePtrOutput)
}
// If omitted, the default value is Default.
func (o LookupPoolResultOutput) TargetNodeCommunicationMode() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupPoolResult) *string { return v.TargetNodeCommunicationMode }).(pulumi.StringPtrOutput)
}
// If not specified, the default is spread.
func (o LookupPoolResultOutput) TaskSchedulingPolicy() TaskSchedulingPolicyResponsePtrOutput {
return o.ApplyT(func(v LookupPoolResult) *TaskSchedulingPolicyResponse { return v.TaskSchedulingPolicy }).(TaskSchedulingPolicyResponsePtrOutput)
}
// The default value is 1. The maximum value is the smaller of 4 times the number of cores of the vmSize of the pool or 256.
func (o LookupPoolResultOutput) TaskSlotsPerNode() pulumi.IntPtrOutput {
return o.ApplyT(func(v LookupPoolResult) *int { return v.TaskSlotsPerNode }).(pulumi.IntPtrOutput)
}
// The type of the resource.
func (o LookupPoolResultOutput) Type() pulumi.StringOutput {
return o.ApplyT(func(v LookupPoolResult) string { return v.Type }).(pulumi.StringOutput)
}
func (o LookupPoolResultOutput) UserAccounts() UserAccountResponseArrayOutput {
return o.ApplyT(func(v LookupPoolResult) []UserAccountResponse { return v.UserAccounts }).(UserAccountResponseArrayOutput)
}
// For information about available sizes of virtual machines for Cloud Services pools (pools created with cloudServiceConfiguration), see Sizes for Cloud Services (https://azure.microsoft.com/documentation/articles/cloud-services-sizes-specs/). Batch supports all Cloud Services VM sizes except ExtraSmall. For information about available VM sizes for pools using images from the Virtual Machines Marketplace (pools created with virtualMachineConfiguration) see Sizes for Virtual Machines (Linux) (https://azure.microsoft.com/documentation/articles/virtual-machines-linux-sizes/) or Sizes for Virtual Machines (Windows) (https://azure.microsoft.com/documentation/articles/virtual-machines-windows-sizes/). Batch supports all Azure VM sizes except STANDARD_A0 and those with premium storage (STANDARD_GS, STANDARD_DS, and STANDARD_DSV2 series).
func (o LookupPoolResultOutput) VmSize() pulumi.StringPtrOutput {
return o.ApplyT(func(v LookupPoolResult) *string { return v.VmSize }).(pulumi.StringPtrOutput)
}
func init() {
pulumi.RegisterOutputType(LookupPoolResultOutput{})
}