internal PSUserAccount(Microsoft.Azure.Batch.UserAccount omObject)
 {
     if ((omObject == null))
     {
         throw new System.ArgumentNullException("omObject");
     }
     this.omObject = omObject;
 }
 public PSUserAccount(string name, string password, System.Nullable <Microsoft.Azure.Batch.Common.ElevationLevel> elevationLevel = null, PSLinuxUserConfiguration linuxUserConfiguration = default(PSLinuxUserConfiguration))
 {
     Microsoft.Azure.Batch.LinuxUserConfiguration linuxUserConfigurationOmObject = null;
     if ((linuxUserConfiguration != null))
     {
         linuxUserConfigurationOmObject = linuxUserConfiguration.omObject;
     }
     this.omObject = new Microsoft.Azure.Batch.UserAccount(name, password, elevationLevel, linuxUserConfigurationOmObject);
 }
 public PropertyContainer(Models.CloudPool protocolObject) : base(BindingState.Bound)
 {
     this.AllocationStateProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.MapNullableEnum <Models.AllocationState, Common.AllocationState>(protocolObject.AllocationState),
         nameof(AllocationState),
         BindingAccess.Read);
     this.AllocationStateTransitionTimeProperty = this.CreatePropertyAccessor(
         protocolObject.AllocationStateTransitionTime,
         nameof(AllocationStateTransitionTime),
         BindingAccess.Read);
     this.ApplicationLicensesProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CollectionToThreadSafeCollection(protocolObject.ApplicationLicenses, o => o),
         nameof(ApplicationLicenses),
         BindingAccess.Read);
     this.ApplicationPackageReferencesProperty = this.CreatePropertyAccessor(
         ApplicationPackageReference.ConvertFromProtocolCollection(protocolObject.ApplicationPackageReferences),
         nameof(ApplicationPackageReferences),
         BindingAccess.Read | BindingAccess.Write);
     this.AutoScaleEnabledProperty = this.CreatePropertyAccessor(
         protocolObject.EnableAutoScale,
         nameof(AutoScaleEnabled),
         BindingAccess.Read);
     this.AutoScaleEvaluationIntervalProperty = this.CreatePropertyAccessor(
         protocolObject.AutoScaleEvaluationInterval,
         nameof(AutoScaleEvaluationInterval),
         BindingAccess.Read);
     this.AutoScaleFormulaProperty = this.CreatePropertyAccessor(
         protocolObject.AutoScaleFormula,
         nameof(AutoScaleFormula),
         BindingAccess.Read);
     this.AutoScaleRunProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.AutoScaleRun, o => new AutoScaleRun(o).Freeze()),
         nameof(AutoScaleRun),
         BindingAccess.Read);
     this.CertificateReferencesProperty = this.CreatePropertyAccessor(
         CertificateReference.ConvertFromProtocolCollection(protocolObject.CertificateReferences),
         nameof(CertificateReferences),
         BindingAccess.Read | BindingAccess.Write);
     this.CloudServiceConfigurationProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.CloudServiceConfiguration, o => new CloudServiceConfiguration(o).Freeze()),
         nameof(CloudServiceConfiguration),
         BindingAccess.Read);
     this.CreationTimeProperty = this.CreatePropertyAccessor(
         protocolObject.CreationTime,
         nameof(CreationTime),
         BindingAccess.Read);
     this.CurrentDedicatedComputeNodesProperty = this.CreatePropertyAccessor(
         protocolObject.CurrentDedicatedNodes,
         nameof(CurrentDedicatedComputeNodes),
         BindingAccess.Read);
     this.CurrentLowPriorityComputeNodesProperty = this.CreatePropertyAccessor(
         protocolObject.CurrentLowPriorityNodes,
         nameof(CurrentLowPriorityComputeNodes),
         BindingAccess.Read);
     this.DisplayNameProperty = this.CreatePropertyAccessor(
         protocolObject.DisplayName,
         nameof(DisplayName),
         BindingAccess.Read);
     this.ETagProperty = this.CreatePropertyAccessor(
         protocolObject.ETag,
         nameof(ETag),
         BindingAccess.Read);
     this.IdProperty = this.CreatePropertyAccessor(
         protocolObject.Id,
         nameof(Id),
         BindingAccess.Read);
     this.IdentityProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.Identity, o => new BatchPoolIdentity(o)),
         nameof(Identity),
         BindingAccess.Read | BindingAccess.Write);
     this.InterComputeNodeCommunicationEnabledProperty = this.CreatePropertyAccessor(
         protocolObject.EnableInterNodeCommunication,
         nameof(InterComputeNodeCommunicationEnabled),
         BindingAccess.Read);
     this.LastModifiedProperty = this.CreatePropertyAccessor(
         protocolObject.LastModified,
         nameof(LastModified),
         BindingAccess.Read);
     this.MetadataProperty = this.CreatePropertyAccessor(
         MetadataItem.ConvertFromProtocolCollection(protocolObject.Metadata),
         nameof(Metadata),
         BindingAccess.Read | BindingAccess.Write);
     this.MountConfigurationProperty = this.CreatePropertyAccessor(
         Batch.MountConfiguration.ConvertFromProtocolCollectionAndFreeze(protocolObject.MountConfiguration),
         nameof(MountConfiguration),
         BindingAccess.Read);
     this.NetworkConfigurationProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.NetworkConfiguration, o => new NetworkConfiguration(o).Freeze()),
         nameof(NetworkConfiguration),
         BindingAccess.Read);
     this.ResizeErrorsProperty = this.CreatePropertyAccessor(
         ResizeError.ConvertFromProtocolCollectionReadOnly(protocolObject.ResizeErrors),
         nameof(ResizeErrors),
         BindingAccess.Read);
     this.ResizeTimeoutProperty = this.CreatePropertyAccessor(
         protocolObject.ResizeTimeout,
         nameof(ResizeTimeout),
         BindingAccess.Read);
     this.StartTaskProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.StartTask, o => new StartTask(o)),
         nameof(StartTask),
         BindingAccess.Read | BindingAccess.Write);
     this.StateProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.MapNullableEnum <Models.PoolState, Common.PoolState>(protocolObject.State),
         nameof(State),
         BindingAccess.Read);
     this.StateTransitionTimeProperty = this.CreatePropertyAccessor(
         protocolObject.StateTransitionTime,
         nameof(StateTransitionTime),
         BindingAccess.Read);
     this.StatisticsProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.Stats, o => new PoolStatistics(o).Freeze()),
         nameof(Statistics),
         BindingAccess.Read);
     this.TargetDedicatedComputeNodesProperty = this.CreatePropertyAccessor(
         protocolObject.TargetDedicatedNodes,
         nameof(TargetDedicatedComputeNodes),
         BindingAccess.Read);
     this.TargetLowPriorityComputeNodesProperty = this.CreatePropertyAccessor(
         protocolObject.TargetLowPriorityNodes,
         nameof(TargetLowPriorityComputeNodes),
         BindingAccess.Read);
     this.TaskSchedulingPolicyProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.TaskSchedulingPolicy, o => new TaskSchedulingPolicy(o).Freeze()),
         nameof(TaskSchedulingPolicy),
         BindingAccess.Read);
     this.TaskSlotsPerNodeProperty = this.CreatePropertyAccessor(
         protocolObject.TaskSlotsPerNode,
         nameof(TaskSlotsPerNode),
         BindingAccess.Read);
     this.UrlProperty = this.CreatePropertyAccessor(
         protocolObject.Url,
         nameof(Url),
         BindingAccess.Read);
     this.UserAccountsProperty = this.CreatePropertyAccessor(
         UserAccount.ConvertFromProtocolCollectionAndFreeze(protocolObject.UserAccounts),
         nameof(UserAccounts),
         BindingAccess.Read);
     this.VirtualMachineConfigurationProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.VirtualMachineConfiguration, o => new VirtualMachineConfiguration(o).Freeze()),
         nameof(VirtualMachineConfiguration),
         BindingAccess.Read);
     this.VirtualMachineSizeProperty = this.CreatePropertyAccessor(
         protocolObject.VmSize,
         nameof(VirtualMachineSize),
         BindingAccess.Read);
 }
 public PropertyContainer(Models.PoolSpecification protocolObject) : base(BindingState.Bound)
 {
     this.ApplicationLicensesProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CollectionToThreadSafeCollection(protocolObject.ApplicationLicenses, o => o),
         nameof(ApplicationLicenses),
         BindingAccess.Read | BindingAccess.Write);
     this.ApplicationPackageReferencesProperty = this.CreatePropertyAccessor(
         ApplicationPackageReference.ConvertFromProtocolCollection(protocolObject.ApplicationPackageReferences),
         nameof(ApplicationPackageReferences),
         BindingAccess.Read | BindingAccess.Write);
     this.AutoScaleEnabledProperty = this.CreatePropertyAccessor(
         protocolObject.EnableAutoScale,
         nameof(AutoScaleEnabled),
         BindingAccess.Read | BindingAccess.Write);
     this.AutoScaleEvaluationIntervalProperty = this.CreatePropertyAccessor(
         protocolObject.AutoScaleEvaluationInterval,
         nameof(AutoScaleEvaluationInterval),
         BindingAccess.Read | BindingAccess.Write);
     this.AutoScaleFormulaProperty = this.CreatePropertyAccessor(
         protocolObject.AutoScaleFormula,
         nameof(AutoScaleFormula),
         BindingAccess.Read | BindingAccess.Write);
     this.CertificateReferencesProperty = this.CreatePropertyAccessor(
         CertificateReference.ConvertFromProtocolCollection(protocolObject.CertificateReferences),
         nameof(CertificateReferences),
         BindingAccess.Read | BindingAccess.Write);
     this.CloudServiceConfigurationProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.CloudServiceConfiguration, o => new CloudServiceConfiguration(o)),
         nameof(CloudServiceConfiguration),
         BindingAccess.Read | BindingAccess.Write);
     this.DisplayNameProperty = this.CreatePropertyAccessor(
         protocolObject.DisplayName,
         nameof(DisplayName),
         BindingAccess.Read | BindingAccess.Write);
     this.InterComputeNodeCommunicationEnabledProperty = this.CreatePropertyAccessor(
         protocolObject.EnableInterNodeCommunication,
         nameof(InterComputeNodeCommunicationEnabled),
         BindingAccess.Read);
     this.MaxTasksPerComputeNodeProperty = this.CreatePropertyAccessor(
         protocolObject.MaxTasksPerNode,
         nameof(MaxTasksPerComputeNode),
         BindingAccess.Read | BindingAccess.Write);
     this.MetadataProperty = this.CreatePropertyAccessor(
         MetadataItem.ConvertFromProtocolCollection(protocolObject.Metadata),
         nameof(Metadata),
         BindingAccess.Read | BindingAccess.Write);
     this.MountConfigurationProperty = this.CreatePropertyAccessor(
         Batch.MountConfiguration.ConvertFromProtocolCollectionAndFreeze(protocolObject.MountConfiguration),
         nameof(MountConfiguration),
         BindingAccess.Read);
     this.NetworkConfigurationProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.NetworkConfiguration, o => new NetworkConfiguration(o).Freeze()),
         nameof(NetworkConfiguration),
         BindingAccess.Read);
     this.ResizeTimeoutProperty = this.CreatePropertyAccessor(
         protocolObject.ResizeTimeout,
         nameof(ResizeTimeout),
         BindingAccess.Read | BindingAccess.Write);
     this.StartTaskProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.StartTask, o => new StartTask(o)),
         nameof(StartTask),
         BindingAccess.Read | BindingAccess.Write);
     this.TargetDedicatedComputeNodesProperty = this.CreatePropertyAccessor(
         protocolObject.TargetDedicatedNodes,
         nameof(TargetDedicatedComputeNodes),
         BindingAccess.Read | BindingAccess.Write);
     this.TargetLowPriorityComputeNodesProperty = this.CreatePropertyAccessor(
         protocolObject.TargetLowPriorityNodes,
         nameof(TargetLowPriorityComputeNodes),
         BindingAccess.Read | BindingAccess.Write);
     this.TaskSchedulingPolicyProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.TaskSchedulingPolicy, o => new TaskSchedulingPolicy(o)),
         nameof(TaskSchedulingPolicy),
         BindingAccess.Read | BindingAccess.Write);
     this.UserAccountsProperty = this.CreatePropertyAccessor(
         UserAccount.ConvertFromProtocolCollection(protocolObject.UserAccounts),
         nameof(UserAccounts),
         BindingAccess.Read | BindingAccess.Write);
     this.VirtualMachineConfigurationProperty = this.CreatePropertyAccessor(
         UtilitiesInternal.CreateObjectWithNullCheck(protocolObject.VirtualMachineConfiguration, o => new VirtualMachineConfiguration(o)),
         nameof(VirtualMachineConfiguration),
         BindingAccess.Read | BindingAccess.Write);
     this.VirtualMachineSizeProperty = this.CreatePropertyAccessor(
         protocolObject.VmSize,
         nameof(VirtualMachineSize),
         BindingAccess.Read | BindingAccess.Write);
 }