@@ -931,7 +931,8 @@ def update_blob_service_properties(cmd, instance, enable_change_feed=None, chang
931931def update_file_service_properties (cmd , instance , enable_delete_retention = None ,
932932 delete_retention_days = None , enable_smb_multichannel = None ,
933933 versions = None , authentication_methods = None , kerberos_ticket_encryption = None ,
934- channel_encryption = None ):
934+ channel_encryption = None , require_smb_encryption_in_transit = None ,
935+ require_nfs_encryption_in_transit = None ):
935936 from azure .cli .core .azclierror import ValidationError
936937 params = {}
937938 # set delete retention policy according input
@@ -958,11 +959,18 @@ def update_file_service_properties(cmd, instance, enable_delete_retention=None,
958959 params ['share_delete_retention_policy' ] = instance .share_delete_retention_policy
959960
960961 # set protocol settings
961- if not instance .protocol_settings or not instance .protocol_settings .smb :
962- instance .protocol_settings = cmd .get_models ('ProtocolSettings' )(smb = cmd .get_models ('SmbSetting' )())
962+ smbSetting = cmd .get_models ('SmbSetting' )
963+ nfsSetting = cmd .get_models ('NfsSetting' )
964+ if not instance .protocol_settings :
965+ instance .protocol_settings = cmd .get_models ('ProtocolSettings' )(smb = smbSetting (), nfs = nfsSetting ())
966+ else :
967+ if not instance .protocol_settings .smb :
968+ instance .protocol_settings .smb = smbSetting ()
969+ if not instance .protocol_settings .nfs :
970+ instance .protocol_settings .nfs = nfsSetting ()
971+
963972 if enable_smb_multichannel is not None :
964973 instance .protocol_settings .smb .multichannel = cmd .get_models ('Multichannel' )(enabled = enable_smb_multichannel )
965-
966974 if versions is not None :
967975 instance .protocol_settings .smb .versions = versions
968976 if authentication_methods is not None :
@@ -971,7 +979,14 @@ def update_file_service_properties(cmd, instance, enable_delete_retention=None,
971979 instance .protocol_settings .smb .kerberos_ticket_encryption = kerberos_ticket_encryption
972980 if channel_encryption is not None :
973981 instance .protocol_settings .smb .channel_encryption = channel_encryption
974- if instance .protocol_settings and instance .protocol_settings .smb and any (instance .protocol_settings .smb .__dict__ .values ()):
982+ if require_smb_encryption_in_transit is not None :
983+ instance .protocol_settings .smb .encryption_in_transit = (
984+ cmd .get_models ('EncryptionInTransit' )(required = require_smb_encryption_in_transit ))
985+ if require_nfs_encryption_in_transit is not None :
986+ instance .protocol_settings .nfs .encryption_in_transit = (
987+ cmd .get_models ('EncryptionInTransit' )(required = require_nfs_encryption_in_transit ))
988+
989+ if any (instance .protocol_settings .smb .__dict__ .values ()) or any (instance .protocol_settings .nfs .__dict__ .values ()):
975990 params ['protocol_settings' ] = instance .protocol_settings
976991
977992 return params
0 commit comments