|  |  | 1 |  | // Copyright (c) Microsoft Corporation. All rights reserved. | 
|  |  | 2 |  | // Licensed under the MIT License. See License.txt in the project root for license information. | 
|  |  | 3 |  | // | 
|  |  | 4 |  | // Code generated by Microsoft (R) AutoRest Code Generator. | 
|  |  | 5 |  | // Changes may cause incorrect behavior and will be lost if the code is | 
|  |  | 6 |  | // regenerated. | 
|  |  | 7 |  |  | 
|  |  | 8 |  | // | 
|  |  | 9 |  | // This file was autogenerated by a tool. | 
|  |  | 10 |  | // Do not modify it. | 
|  |  | 11 |  | // | 
|  |  | 12 |  |  | 
|  |  | 13 |  | namespace Microsoft.Azure.Batch | 
|  |  | 14 |  | { | 
|  |  | 15 |  |     using Models = Microsoft.Azure.Batch.Protocol.Models; | 
|  |  | 16 |  |     using System; | 
|  |  | 17 |  |     using System.Collections.Generic; | 
|  |  | 18 |  |     using System.Linq; | 
|  |  | 19 |  |  | 
|  |  | 20 |  |     /// <summary> | 
|  |  | 21 |  |     /// Information used to connect to an Azure Storage Container using Blobfuse. | 
|  |  | 22 |  |     /// </summary> | 
|  | 935 | 23 |  |     public partial class AzureBlobFileSystemConfiguration : ITransportObjectProvider<Models.AzureBlobFileSystemConfigura | 
|  |  | 24 |  |     { | 
|  | 935 | 25 |  |         #region Constructors | 
|  | 935 | 26 |  |         /// <summary> | 
|  | 935 | 27 |  |         /// Initializes a new instance of the <see cref="AzureBlobFileSystemConfiguration"/> class. | 
|  |  | 28 |  |         /// </summary> | 
|  |  | 29 |  |         /// <param name='accountName'>The Azure Storage account name.</param> | 
|  |  | 30 |  |         /// <param name='containerName'>The Azure Blob Storage Container name.</param> | 
|  |  | 31 |  |         /// <param name='relativeMountPath'>The relative path on the compute node where the file system will be mounted. | 
|  |  | 32 |  |         /// <param name='accountKey'>The Azure Storage Account key. This property is mutually exclusive with <see cref=" | 
|  |  | 33 |  |         /// <param name='sasKey'>The Azure Storage SAS token. This property is mutually exclusive with <see cref="Accoun | 
|  |  | 34 |  |         /// <param name='blobfuseOptions'>Additional command line options to pass to the mount command.</param> | 
|  | 935 | 35 |  |         internal AzureBlobFileSystemConfiguration( | 
|  | 935 | 36 |  |             string accountName, | 
|  | 935 | 37 |  |             string containerName, | 
|  | 935 | 38 |  |             string relativeMountPath, | 
|  | 935 | 39 |  |             string accountKey = default(string), | 
|  | 935 | 40 |  |             string sasKey = default(string), | 
|  | 935 | 41 |  |             string blobfuseOptions = default(string)) | 
|  |  | 42 |  |         { | 
|  | 935 | 43 |  |             this.AccountName = accountName; | 
|  | 935 | 44 |  |             this.ContainerName = containerName; | 
|  | 935 | 45 |  |             this.RelativeMountPath = relativeMountPath; | 
|  | 935 | 46 |  |             this.AccountKey = accountKey; | 
|  | 935 | 47 |  |             this.SasKey = sasKey; | 
|  | 935 | 48 |  |             this.BlobfuseOptions = blobfuseOptions; | 
|  | 935 | 49 |  |         } | 
|  |  | 50 |  |  | 
|  | 1372 | 51 |  |         internal AzureBlobFileSystemConfiguration(Models.AzureBlobFileSystemConfiguration protocolObject) | 
|  |  | 52 |  |         { | 
|  | 1372 | 53 |  |             this.AccountKey = protocolObject.AccountKey; | 
|  | 1372 | 54 |  |             this.AccountName = protocolObject.AccountName; | 
|  | 1372 | 55 |  |             this.BlobfuseOptions = protocolObject.BlobfuseOptions; | 
|  | 1372 | 56 |  |             this.ContainerName = protocolObject.ContainerName; | 
|  | 1372 | 57 |  |             this.RelativeMountPath = protocolObject.RelativeMountPath; | 
|  | 1372 | 58 |  |             this.SasKey = protocolObject.SasKey; | 
|  | 1372 | 59 |  |         } | 
|  |  | 60 |  |  | 
|  |  | 61 |  |         #endregion Constructors | 
|  |  | 62 |  |  | 
|  |  | 63 |  |         #region AzureBlobFileSystemConfiguration | 
|  |  | 64 |  |  | 
|  |  | 65 |  |         /// <summary> | 
|  |  | 66 |  |         /// Gets the Azure Storage Account key. This property is mutually exclusive with <see cref="SasKey"/>. | 
|  |  | 67 |  |         /// </summary> | 
|  | 3239 | 68 |  |         public string AccountKey { get; } | 
|  |  | 69 |  |  | 
|  |  | 70 |  |         /// <summary> | 
|  |  | 71 |  |         /// Gets the Azure Storage account name. | 
|  |  | 72 |  |         /// </summary> | 
|  | 3239 | 73 |  |         public string AccountName { get; } | 
|  |  | 74 |  |  | 
|  |  | 75 |  |         /// <summary> | 
|  |  | 76 |  |         /// Gets additional command line options to pass to the mount command. | 
|  |  | 77 |  |         /// </summary> | 
|  |  | 78 |  |         /// <remarks> | 
|  |  | 79 |  |         /// These are 'net use' options in Windows and 'mount' options in Linux. | 
|  |  | 80 |  |         /// </remarks> | 
|  | 3239 | 81 |  |         public string BlobfuseOptions { get; } | 
|  |  | 82 |  |  | 
|  |  | 83 |  |         /// <summary> | 
|  |  | 84 |  |         /// Gets the Azure Blob Storage Container name. | 
|  |  | 85 |  |         /// </summary> | 
|  | 3239 | 86 |  |         public string ContainerName { get; } | 
|  |  | 87 |  |  | 
|  |  | 88 |  |         /// <summary> | 
|  |  | 89 |  |         /// Gets the relative path on the compute node where the file system will be mounted. | 
|  |  | 90 |  |         /// </summary> | 
|  |  | 91 |  |         /// <remarks> | 
|  |  | 92 |  |         /// All file systems are mounted relative to the Batch mounts directory, accessible via the AZ_BATCH_NODE_MOUNTS | 
|  |  | 93 |  |         /// environment variable. | 
|  |  | 94 |  |         /// </remarks> | 
|  | 3239 | 95 |  |         public string RelativeMountPath { get; } | 
|  |  | 96 |  |  | 
|  |  | 97 |  |         /// <summary> | 
|  |  | 98 |  |         /// Gets the Azure Storage SAS token. This property is mutually exclusive with <see cref="AccountKey"/>. | 
|  |  | 99 |  |         /// </summary> | 
|  | 3239 | 100 |  |         public string SasKey { get; } | 
|  |  | 101 |  |  | 
|  |  | 102 |  |         #endregion // AzureBlobFileSystemConfiguration | 
|  |  | 103 |  |  | 
|  |  | 104 |  |         #region IPropertyMetadata | 
|  |  | 105 |  |  | 
|  |  | 106 |  |         bool IModifiable.HasBeenModified | 
|  |  | 107 |  |         { | 
|  |  | 108 |  |             //This class is compile time readonly so it cannot have been modified | 
|  | 0 | 109 |  |             get { return false; } | 
|  |  | 110 |  |         } | 
|  |  | 111 |  |  | 
|  |  | 112 |  |         bool IReadOnly.IsReadOnly | 
|  |  | 113 |  |         { | 
|  | 0 | 114 |  |             get { return true; } | 
|  |  | 115 |  |             set | 
|  |  | 116 |  |             { | 
|  |  | 117 |  |                 // This class is compile time readonly already | 
|  | 1373 | 118 |  |             } | 
|  |  | 119 |  |         } | 
|  |  | 120 |  |  | 
|  |  | 121 |  |         #endregion // IPropertyMetadata | 
|  |  | 122 |  |  | 
|  |  | 123 |  |         #region Internal/private methods | 
|  |  | 124 |  |  | 
|  |  | 125 |  |         /// <summary> | 
|  |  | 126 |  |         /// Return a protocol object of the requested type. | 
|  |  | 127 |  |         /// </summary> | 
|  |  | 128 |  |         /// <returns>The protocol object of the requested type.</returns> | 
|  |  | 129 |  |         Models.AzureBlobFileSystemConfiguration ITransportObjectProvider<Models.AzureBlobFileSystemConfiguration>.GetTra | 
|  |  | 130 |  |         { | 
|  | 933 | 131 |  |             Models.AzureBlobFileSystemConfiguration result = new Models.AzureBlobFileSystemConfiguration() | 
|  | 933 | 132 |  |             { | 
|  | 933 | 133 |  |                 AccountKey = this.AccountKey, | 
|  | 933 | 134 |  |                 AccountName = this.AccountName, | 
|  | 933 | 135 |  |                 BlobfuseOptions = this.BlobfuseOptions, | 
|  | 933 | 136 |  |                 ContainerName = this.ContainerName, | 
|  | 933 | 137 |  |                 RelativeMountPath = this.RelativeMountPath, | 
|  | 933 | 138 |  |                 SasKey = this.SasKey, | 
|  | 933 | 139 |  |             }; | 
|  |  | 140 |  |  | 
|  | 933 | 141 |  |             return result; | 
|  |  | 142 |  |         } | 
|  |  | 143 |  |  | 
|  |  | 144 |  |  | 
|  |  | 145 |  |         #endregion // Internal/private methods | 
|  |  | 146 |  |     } | 
|  |  | 147 |  | } |