-
Notifications
You must be signed in to change notification settings - Fork 4.5k
/
StorageAccountCreateOrUpdateContent.cs
103 lines (96 loc) · 8.17 KB
/
StorageAccountCreateOrUpdateContent.cs
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
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.
// <auto-generated/>
#nullable disable
using System;
using System.Collections.Generic;
using Azure.Core;
using Azure.ResourceManager.Models;
using Azure.ResourceManager.Resources.Models;
namespace Azure.ResourceManager.Storage.Models
{
/// <summary> The parameters used when creating a storage account. </summary>
public partial class StorageAccountCreateOrUpdateContent
{
/// <summary> Initializes a new instance of StorageAccountCreateOrUpdateContent. </summary>
/// <param name="sku"> Required. Gets or sets the SKU name. </param>
/// <param name="kind"> Required. Indicates the type of storage account. </param>
/// <param name="location"> Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update, the request will succeed. </param>
/// <exception cref="ArgumentNullException"> <paramref name="sku"/> is null. </exception>
public StorageAccountCreateOrUpdateContent(StorageSku sku, StorageKind kind, AzureLocation location)
{
Argument.AssertNotNull(sku, nameof(sku));
Sku = sku;
Kind = kind;
Location = location;
Tags = new ChangeTrackingDictionary<string, string>();
}
/// <summary> Required. Gets or sets the SKU name. </summary>
public StorageSku Sku { get; }
/// <summary> Required. Indicates the type of storage account. </summary>
public StorageKind Kind { get; }
/// <summary> Required. Gets or sets the location of the resource. This will be one of the supported and registered Azure Geo Regions (e.g. West US, East US, Southeast Asia, etc.). The geo region of a resource cannot be changed once it is created, but if an identical geo region is specified on update, the request will succeed. </summary>
public AzureLocation Location { get; }
/// <summary> Optional. Set the extended location of the resource. If not set, the storage account will be created in Azure main region. Otherwise it will be created in the specified extended location. </summary>
public ExtendedLocation ExtendedLocation { get; set; }
/// <summary> Gets or sets a list of key value pairs that describe the resource. These tags can be used for viewing and grouping this resource (across resource groups). A maximum of 15 tags can be provided for a resource. Each tag must have a key with a length no greater than 128 characters and a value with a length no greater than 256 characters. </summary>
public IDictionary<string, string> Tags { get; }
/// <summary> The identity of the resource. </summary>
public ManagedServiceIdentity Identity { get; set; }
/// <summary> Restrict copy to and from Storage Accounts within an AAD tenant or with Private Links to the same VNet. </summary>
public AllowedCopyScope? AllowedCopyScope { get; set; }
/// <summary> Allow or disallow public network access to Storage Account. Value is optional but if passed in, must be 'Enabled' or 'Disabled'. </summary>
public StoragePublicNetworkAccess? PublicNetworkAccess { get; set; }
/// <summary> SasPolicy assigned to the storage account. </summary>
public StorageAccountSasPolicy SasPolicy { get; set; }
/// <summary> KeyPolicy assigned to the storage account. </summary>
internal StorageAccountKeyPolicy KeyPolicy { get; set; }
/// <summary> The key expiration period in days. </summary>
public int? KeyExpirationPeriodInDays
{
get => KeyPolicy is null ? default(int?) : KeyPolicy.KeyExpirationPeriodInDays;
set
{
KeyPolicy = value.HasValue ? new StorageAccountKeyPolicy(value.Value) : null;
}
}
/// <summary> User domain assigned to the storage account. Name is the CNAME source. Only one custom domain is supported per storage account at this time. To clear the existing custom domain, use an empty string for the custom domain name property. </summary>
public StorageCustomDomain CustomDomain { get; set; }
/// <summary> Encryption settings to be used for server-side encryption for the storage account. </summary>
public StorageAccountEncryption Encryption { get; set; }
/// <summary> Network rule set. </summary>
public StorageAccountNetworkRuleSet NetworkRuleSet { get; set; }
/// <summary> Required for storage accounts where kind = BlobStorage. The access tier is used for billing. The 'Premium' access tier is the default value for premium block blobs storage account type and it cannot be changed for the premium block blobs storage account type. </summary>
public StorageAccountAccessTier? AccessTier { get; set; }
/// <summary> Provides the identity based authentication settings for Azure Files. </summary>
public FilesIdentityBasedAuthentication AzureFilesIdentityBasedAuthentication { get; set; }
/// <summary> Allows https traffic only to storage service if sets to true. The default value is true since API version 2019-04-01. </summary>
public bool? EnableHttpsTrafficOnly { get; set; }
/// <summary> Enables Secure File Transfer Protocol, if set to true. </summary>
public bool? IsSftpEnabled { get; set; }
/// <summary> Enables local users feature, if set to true. </summary>
public bool? IsLocalUserEnabled { get; set; }
/// <summary> Account HierarchicalNamespace enabled if sets to true. </summary>
public bool? IsHnsEnabled { get; set; }
/// <summary> Allow large file shares if sets to Enabled. It cannot be disabled once it is enabled. </summary>
public LargeFileSharesState? LargeFileSharesState { get; set; }
/// <summary> Maintains information about the network routing choice opted by the user for data transfer. </summary>
public StorageRoutingPreference RoutingPreference { get; set; }
/// <summary> Allow or disallow public access to all blobs or containers in the storage account. The default interpretation is true for this property. </summary>
public bool? AllowBlobPublicAccess { get; set; }
/// <summary> Set the minimum TLS version to be permitted on requests to storage. The default interpretation is TLS 1.0 for this property. </summary>
public StorageMinimumTlsVersion? MinimumTlsVersion { get; set; }
/// <summary> Indicates whether the storage account permits requests to be authorized with the account access key via Shared Key. If false, then all requests, including shared access signatures, must be authorized with Azure Active Directory (Azure AD). The default value is null, which is equivalent to true. </summary>
public bool? AllowSharedKeyAccess { get; set; }
/// <summary> NFS 3.0 protocol support enabled if set to true. </summary>
public bool? IsNfsV3Enabled { get; set; }
/// <summary> Allow or disallow cross AAD tenant object replication. The default interpretation is true for this property. </summary>
public bool? AllowCrossTenantReplication { get; set; }
/// <summary> A boolean flag which indicates whether the default authentication is OAuth or not. The default interpretation is false for this property. </summary>
public bool? IsDefaultToOAuthAuthentication { get; set; }
/// <summary> The property is immutable and can only be set to true at the account creation time. When set to true, it enables object level immutability for all the new containers in the account by default. </summary>
public ImmutableStorageAccount ImmutableStorageWithVersioning { get; set; }
/// <summary> Allows you to specify the type of endpoint. Set this to AzureDNSZone to create a large number of accounts in a single subscription, which creates accounts in an Azure DNS Zone and the endpoint URL will have an alphanumeric DNS Zone identifier. </summary>
public StorageDnsEndpointType? DnsEndpointType { get; set; }
}
}