This repository has been archived by the owner on Mar 11, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
fileShare.go
255 lines (231 loc) · 12 KB
/
fileShare.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
// *** WARNING: this file was generated by the Pulumi SDK Generator. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package v20190601
import (
"context"
"reflect"
"github.com/pkg/errors"
"github.com/pulumi/pulumi/sdk/v2/go/pulumi"
)
// Properties of the file share, including Id, resource name, resource type, Etag.
type FileShare struct {
pulumi.CustomResourceState
// Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.
AccessTier pulumi.StringPtrOutput `pulumi:"accessTier"`
// Indicates the last modification time for share access tier.
AccessTierChangeTime pulumi.StringOutput `pulumi:"accessTierChangeTime"`
// Indicates if there is a pending transition for access tier.
AccessTierStatus pulumi.StringOutput `pulumi:"accessTierStatus"`
// Indicates whether the share was deleted.
Deleted pulumi.BoolOutput `pulumi:"deleted"`
// The deleted time if the share was deleted.
DeletedTime pulumi.StringOutput `pulumi:"deletedTime"`
// The authentication protocol that is used for the file share. Can only be specified when creating a share.
EnabledProtocols pulumi.StringPtrOutput `pulumi:"enabledProtocols"`
// Resource Etag.
Etag pulumi.StringOutput `pulumi:"etag"`
// Returns the date and time the share was last modified.
LastModifiedTime pulumi.StringOutput `pulumi:"lastModifiedTime"`
// A name-value pair to associate with the share as metadata.
Metadata pulumi.StringMapOutput `pulumi:"metadata"`
// The name of the resource
Name pulumi.StringOutput `pulumi:"name"`
// Remaining retention days for share that was soft deleted.
RemainingRetentionDays pulumi.IntOutput `pulumi:"remainingRetentionDays"`
// The property is for NFS share only. The default is NoRootSquash.
RootSquash pulumi.StringPtrOutput `pulumi:"rootSquash"`
// The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400.
ShareQuota pulumi.IntPtrOutput `pulumi:"shareQuota"`
// The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files.
ShareUsageBytes pulumi.Float64Output `pulumi:"shareUsageBytes"`
// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
Type pulumi.StringOutput `pulumi:"type"`
// The version of the share.
Version pulumi.StringOutput `pulumi:"version"`
}
// NewFileShare registers a new resource with the given unique name, arguments, and options.
func NewFileShare(ctx *pulumi.Context,
name string, args *FileShareArgs, opts ...pulumi.ResourceOption) (*FileShare, error) {
if args == nil {
return nil, errors.New("missing one or more required arguments")
}
if args.AccountName == nil {
return nil, errors.New("invalid value for required argument 'AccountName'")
}
if args.ResourceGroupName == nil {
return nil, errors.New("invalid value for required argument 'ResourceGroupName'")
}
if args.ShareName == nil {
return nil, errors.New("invalid value for required argument 'ShareName'")
}
aliases := pulumi.Aliases([]pulumi.Alias{
{
Type: pulumi.String("azure-nextgen:storage/latest:FileShare"),
},
{
Type: pulumi.String("azure-nextgen:storage/v20190401:FileShare"),
},
{
Type: pulumi.String("azure-nextgen:storage/v20200801preview:FileShare"),
},
})
opts = append(opts, aliases)
var resource FileShare
err := ctx.RegisterResource("azure-nextgen:storage/v20190601:FileShare", name, args, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// GetFileShare gets an existing FileShare resource's state with the given name, ID, and optional
// state properties that are used to uniquely qualify the lookup (nil if not required).
func GetFileShare(ctx *pulumi.Context,
name string, id pulumi.IDInput, state *FileShareState, opts ...pulumi.ResourceOption) (*FileShare, error) {
var resource FileShare
err := ctx.ReadResource("azure-nextgen:storage/v20190601:FileShare", name, id, state, &resource, opts...)
if err != nil {
return nil, err
}
return &resource, nil
}
// Input properties used for looking up and filtering FileShare resources.
type fileShareState struct {
// Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.
AccessTier *string `pulumi:"accessTier"`
// Indicates the last modification time for share access tier.
AccessTierChangeTime *string `pulumi:"accessTierChangeTime"`
// Indicates if there is a pending transition for access tier.
AccessTierStatus *string `pulumi:"accessTierStatus"`
// Indicates whether the share was deleted.
Deleted *bool `pulumi:"deleted"`
// The deleted time if the share was deleted.
DeletedTime *string `pulumi:"deletedTime"`
// The authentication protocol that is used for the file share. Can only be specified when creating a share.
EnabledProtocols *string `pulumi:"enabledProtocols"`
// Resource Etag.
Etag *string `pulumi:"etag"`
// Returns the date and time the share was last modified.
LastModifiedTime *string `pulumi:"lastModifiedTime"`
// A name-value pair to associate with the share as metadata.
Metadata map[string]string `pulumi:"metadata"`
// The name of the resource
Name *string `pulumi:"name"`
// Remaining retention days for share that was soft deleted.
RemainingRetentionDays *int `pulumi:"remainingRetentionDays"`
// The property is for NFS share only. The default is NoRootSquash.
RootSquash *string `pulumi:"rootSquash"`
// The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400.
ShareQuota *int `pulumi:"shareQuota"`
// The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files.
ShareUsageBytes *float64 `pulumi:"shareUsageBytes"`
// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
Type *string `pulumi:"type"`
// The version of the share.
Version *string `pulumi:"version"`
}
type FileShareState struct {
// Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.
AccessTier pulumi.StringPtrInput
// Indicates the last modification time for share access tier.
AccessTierChangeTime pulumi.StringPtrInput
// Indicates if there is a pending transition for access tier.
AccessTierStatus pulumi.StringPtrInput
// Indicates whether the share was deleted.
Deleted pulumi.BoolPtrInput
// The deleted time if the share was deleted.
DeletedTime pulumi.StringPtrInput
// The authentication protocol that is used for the file share. Can only be specified when creating a share.
EnabledProtocols pulumi.StringPtrInput
// Resource Etag.
Etag pulumi.StringPtrInput
// Returns the date and time the share was last modified.
LastModifiedTime pulumi.StringPtrInput
// A name-value pair to associate with the share as metadata.
Metadata pulumi.StringMapInput
// The name of the resource
Name pulumi.StringPtrInput
// Remaining retention days for share that was soft deleted.
RemainingRetentionDays pulumi.IntPtrInput
// The property is for NFS share only. The default is NoRootSquash.
RootSquash pulumi.StringPtrInput
// The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400.
ShareQuota pulumi.IntPtrInput
// The approximate size of the data stored on the share. Note that this value may not include all recently created or recently resized files.
ShareUsageBytes pulumi.Float64PtrInput
// The type of the resource. E.g. "Microsoft.Compute/virtualMachines" or "Microsoft.Storage/storageAccounts"
Type pulumi.StringPtrInput
// The version of the share.
Version pulumi.StringPtrInput
}
func (FileShareState) ElementType() reflect.Type {
return reflect.TypeOf((*fileShareState)(nil)).Elem()
}
type fileShareArgs struct {
// Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.
AccessTier *string `pulumi:"accessTier"`
// The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
AccountName string `pulumi:"accountName"`
// The authentication protocol that is used for the file share. Can only be specified when creating a share.
EnabledProtocols *string `pulumi:"enabledProtocols"`
// A name-value pair to associate with the share as metadata.
Metadata map[string]string `pulumi:"metadata"`
// The name of the resource group within the user's subscription. The name is case insensitive.
ResourceGroupName string `pulumi:"resourceGroupName"`
// The property is for NFS share only. The default is NoRootSquash.
RootSquash *string `pulumi:"rootSquash"`
// The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
ShareName string `pulumi:"shareName"`
// The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400.
ShareQuota *int `pulumi:"shareQuota"`
}
// The set of arguments for constructing a FileShare resource.
type FileShareArgs struct {
// Access tier for specific share. GpV2 account can choose between TransactionOptimized (default), Hot, and Cool. FileStorage account can choose Premium.
AccessTier pulumi.StringPtrInput
// The name of the storage account within the specified resource group. Storage account names must be between 3 and 24 characters in length and use numbers and lower-case letters only.
AccountName pulumi.StringInput
// The authentication protocol that is used for the file share. Can only be specified when creating a share.
EnabledProtocols pulumi.StringPtrInput
// A name-value pair to associate with the share as metadata.
Metadata pulumi.StringMapInput
// The name of the resource group within the user's subscription. The name is case insensitive.
ResourceGroupName pulumi.StringInput
// The property is for NFS share only. The default is NoRootSquash.
RootSquash pulumi.StringPtrInput
// The name of the file share within the specified storage account. File share names must be between 3 and 63 characters in length and use numbers, lower-case letters and dash (-) only. Every dash (-) character must be immediately preceded and followed by a letter or number.
ShareName pulumi.StringInput
// The maximum size of the share, in gigabytes. Must be greater than 0, and less than or equal to 5TB (5120). For Large File Shares, the maximum size is 102400.
ShareQuota pulumi.IntPtrInput
}
func (FileShareArgs) ElementType() reflect.Type {
return reflect.TypeOf((*fileShareArgs)(nil)).Elem()
}
type FileShareInput interface {
pulumi.Input
ToFileShareOutput() FileShareOutput
ToFileShareOutputWithContext(ctx context.Context) FileShareOutput
}
func (*FileShare) ElementType() reflect.Type {
return reflect.TypeOf((*FileShare)(nil))
}
func (i *FileShare) ToFileShareOutput() FileShareOutput {
return i.ToFileShareOutputWithContext(context.Background())
}
func (i *FileShare) ToFileShareOutputWithContext(ctx context.Context) FileShareOutput {
return pulumi.ToOutputWithContext(ctx, i).(FileShareOutput)
}
type FileShareOutput struct {
*pulumi.OutputState
}
func (FileShareOutput) ElementType() reflect.Type {
return reflect.TypeOf((*FileShare)(nil))
}
func (o FileShareOutput) ToFileShareOutput() FileShareOutput {
return o
}
func (o FileShareOutput) ToFileShareOutputWithContext(ctx context.Context) FileShareOutput {
return o
}
func init() {
pulumi.RegisterOutputType(FileShareOutput{})
}