diff --git a/src/azure-cli/azure/cli/command_modules/storage/_params.py b/src/azure-cli/azure/cli/command_modules/storage/_params.py index 4b9928ccc86..dccc7b2eb03 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/_params.py +++ b/src/azure-cli/azure/cli/command_modules/storage/_params.py @@ -762,6 +762,12 @@ def load_arguments(self, _): # pylint: disable=too-many-locals, too-many-statem c.argument('channel_encryption', arg_group='SMB Setting', help="SMB channel encryption supported by server. Valid values are AES-128-CCM, AES-128-GCM, " "AES-256-GCM. Should be passed as a string with delimiter ';' ") + c.argument('require_smb_encryption_in_transit', arg_group='SMB Setting', + arg_type=get_three_state_flag(), options_list=['--require-smb-encryption-in-transit', '--smb-eit'], + help="Whether SMB Encryption in transit is required.") + c.argument('require_nfs_encryption_in_transit', arg_group='NFS Setting', + arg_type=get_three_state_flag(), options_list=['--require-nfs-encryption-in-transit', '--nfs-eit'], + help="Whether NFS Encryption in transit is required.") with self.argument_context('storage account generate-sas', resource_type=ResourceType.DATA_STORAGE_BLOB) as c: t_account_permissions = self.get_sdk('_shared.models#AccountSasPermissions', diff --git a/src/azure-cli/azure/cli/command_modules/storage/operations/account.py b/src/azure-cli/azure/cli/command_modules/storage/operations/account.py index 50a76358e0f..d848b51f683 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/operations/account.py +++ b/src/azure-cli/azure/cli/command_modules/storage/operations/account.py @@ -931,7 +931,8 @@ def update_blob_service_properties(cmd, instance, enable_change_feed=None, chang def update_file_service_properties(cmd, instance, enable_delete_retention=None, delete_retention_days=None, enable_smb_multichannel=None, versions=None, authentication_methods=None, kerberos_ticket_encryption=None, - channel_encryption=None): + channel_encryption=None, require_smb_encryption_in_transit=None, + require_nfs_encryption_in_transit=None): from azure.cli.core.azclierror import ValidationError params = {} # set delete retention policy according input @@ -958,11 +959,18 @@ def update_file_service_properties(cmd, instance, enable_delete_retention=None, params['share_delete_retention_policy'] = instance.share_delete_retention_policy # set protocol settings - if not instance.protocol_settings or not instance.protocol_settings.smb: - instance.protocol_settings = cmd.get_models('ProtocolSettings')(smb=cmd.get_models('SmbSetting')()) + smbSetting = cmd.get_models('SmbSetting') + nfsSetting = cmd.get_models('NfsSetting') + if not instance.protocol_settings: + instance.protocol_settings = cmd.get_models('ProtocolSettings')(smb=smbSetting(), nfs=nfsSetting()) + else: + if not instance.protocol_settings.smb: + instance.protocol_settings.smb = smbSetting() + if not instance.protocol_settings.nfs: + instance.protocol_settings.nfs = nfsSetting() + if enable_smb_multichannel is not None: instance.protocol_settings.smb.multichannel = cmd.get_models('Multichannel')(enabled=enable_smb_multichannel) - if versions is not None: instance.protocol_settings.smb.versions = versions if authentication_methods is not None: @@ -971,7 +979,14 @@ def update_file_service_properties(cmd, instance, enable_delete_retention=None, instance.protocol_settings.smb.kerberos_ticket_encryption = kerberos_ticket_encryption if channel_encryption is not None: instance.protocol_settings.smb.channel_encryption = channel_encryption - if instance.protocol_settings and instance.protocol_settings.smb and any(instance.protocol_settings.smb.__dict__.values()): + if require_smb_encryption_in_transit is not None: + instance.protocol_settings.smb.encryption_in_transit = ( + cmd.get_models('EncryptionInTransit')(required=require_smb_encryption_in_transit)) + if require_nfs_encryption_in_transit is not None: + instance.protocol_settings.nfs.encryption_in_transit = ( + cmd.get_models('EncryptionInTransit')(required=require_nfs_encryption_in_transit)) + + if any(instance.protocol_settings.smb.__dict__.values()) or any(instance.protocol_settings.nfs.__dict__.values()): params['protocol_settings'] = instance.protocol_settings return params diff --git a/src/azure-cli/azure/cli/command_modules/storage/tests/latest/recordings/test_storage_account_file_smb_nfs_encryption_in_transit.yaml b/src/azure-cli/azure/cli/command_modules/storage/tests/latest/recordings/test_storage_account_file_smb_nfs_encryption_in_transit.yaml new file mode 100644 index 00000000000..efa52a6ec69 --- /dev/null +++ b/src/azure-cli/azure/cli/command_modules/storage/tests/latest/recordings/test_storage_account_file_smb_nfs_encryption_in_transit.yaml @@ -0,0 +1,408 @@ +interactions: +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --require-smb-encryption-in-transit --require-nfs-encryption-in-transit -n + -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"sku":{"name":"Premium_LRS","tier":"Premium"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"smb":{"multichannel":{"enabled":true}}},"cors":{"corsRules":[]},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + content-length: + - '447' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:06:56 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/cc92f6a4-8562-401f-a0ff-6ee4d189a019 + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"shareDeleteRetentionPolicy": {"enabled": true, "days": + 7}, "protocolSettings": {"smb": {"multichannel": {"enabled": true}, "encryptionInTransit": + {"required": true}}, "nfs": {"encryptionInTransit": {"required": true}}}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + Content-Length: + - '237' + Content-Type: + - application/json + ParameterSetName: + - --require-smb-encryption-in-transit --require-nfs-encryption-in-transit -n + -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"nfs":{"encryptionInTransit":{"required":true}},"smb":{"encryptionInTransit":{"required":true},"multichannel":{"enabled":true}}},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + content-length: + - '465' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:06:59 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/90dac311-a67f-483e-ac0d-3d3d5521da95 + x-ms-ratelimit-remaining-subscription-writes: + - '199' + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --require-smb-encryption-in-transit --require-nfs-encryption-in-transit -n + -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"sku":{"name":"Premium_LRS","tier":"Premium"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"nfs":{"encryptionInTransit":{"required":true}},"smb":{"encryptionInTransit":{"required":true},"multichannel":{"enabled":true}}},"cors":{"corsRules":[]},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + content-length: + - '535' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:07:01 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/4abfafb0-037a-4501-a828-6bd784f591db + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"shareDeleteRetentionPolicy": {"enabled": true, "days": + 7}, "protocolSettings": {"smb": {"multichannel": {"enabled": true}, "encryptionInTransit": + {"required": false}}, "nfs": {"encryptionInTransit": {"required": false}}}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + Content-Length: + - '239' + Content-Type: + - application/json + ParameterSetName: + - --require-smb-encryption-in-transit --require-nfs-encryption-in-transit -n + -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"nfs":{"encryptionInTransit":{"required":false}},"smb":{"encryptionInTransit":{"required":false},"multichannel":{"enabled":true}}},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + content-length: + - '467' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:07:04 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/97a1182b-d3e4-4726-88c9-8ec0f6c1ee7a + x-ms-ratelimit-remaining-subscription-writes: + - '199' + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --require-smb-encryption-in-transit -n -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"sku":{"name":"Premium_LRS","tier":"Premium"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"nfs":{"encryptionInTransit":{"required":false}},"smb":{"encryptionInTransit":{"required":false},"multichannel":{"enabled":true}}},"cors":{"corsRules":[]},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + content-length: + - '537' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:07:05 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/5426e0da-39ca-45da-9cc3-b0223ca36c5a + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"shareDeleteRetentionPolicy": {"enabled": true, "days": + 7}, "protocolSettings": {"smb": {"multichannel": {"enabled": true}, "encryptionInTransit": + {"required": true}}, "nfs": {"encryptionInTransit": {"required": false}}}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + Content-Length: + - '238' + Content-Type: + - application/json + ParameterSetName: + - --require-smb-encryption-in-transit -n -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"nfs":{"encryptionInTransit":{"required":false}},"smb":{"encryptionInTransit":{"required":true},"multichannel":{"enabled":true}}},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + content-length: + - '466' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:07:08 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/54815f83-38b2-46d1-a7c0-8c90602c0d9c + x-ms-ratelimit-remaining-subscription-writes: + - '199' + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + ParameterSetName: + - --require-nfs-encryption-in-transit -n -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: GET + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"sku":{"name":"Premium_LRS","tier":"Premium"},"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"nfs":{"encryptionInTransit":{"required":false}},"smb":{"encryptionInTransit":{"required":true},"multichannel":{"enabled":true}}},"cors":{"corsRules":[]},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + connection: + - close + content-length: + - '536' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:07:09 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/41c158f3-fb37-40df-bc38-6e10d68fa530 + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +- request: + body: '{"properties": {"shareDeleteRetentionPolicy": {"enabled": true, "days": + 7}, "protocolSettings": {"smb": {"multichannel": {"enabled": true}, "encryptionInTransit": + {"required": true}}, "nfs": {"encryptionInTransit": {"required": true}}}}}' + headers: + Accept: + - application/json + Accept-Encoding: + - gzip, deflate + CommandName: + - storage account file-service-properties update + Connection: + - keep-alive + Content-Length: + - '237' + Content-Type: + - application/json + ParameterSetName: + - --require-nfs-encryption-in-transit -n -g + User-Agent: + - AZURECLI/2.82.0 azsdk-python-core/1.37.0 Python/3.12.10 (Windows-10-10.0.19045-SP0) + method: PUT + uri: https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default?api-version=2025-06-01 + response: + body: + string: '{"id":"/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/cli_file_eit000001/providers/Microsoft.Storage/storageAccounts/fileeit000002/fileServices/default","name":"default","type":"Microsoft.Storage/storageAccounts/fileServices","properties":{"protocolSettings":{"nfs":{"encryptionInTransit":{"required":true}},"smb":{"encryptionInTransit":{"required":true},"multichannel":{"enabled":true}}},"shareDeleteRetentionPolicy":{"enabled":true,"days":7}}}' + headers: + cache-control: + - no-cache + content-length: + - '465' + content-type: + - application/json + date: + - Mon, 12 Jan 2026 08:07:12 GMT + expires: + - '-1' + pragma: + - no-cache + server: + - Microsoft-Azure-Storage-Resource-Provider/1.0,Microsoft-HTTPAPI/2.0 Microsoft-HTTPAPI/2.0 + strict-transport-security: + - max-age=31536000; includeSubDomains + x-content-type-options: + - nosniff + x-ms-operation-identifier: + - tenantId=54826b22-38d6-4fb2-bad9-b7b93a3e9c5a,objectId=a7250e3a-0e5e-48e2-9a34-45f1f5e1a91e/eastus2euap/a1442cb6-66c9-472b-852f-a6a15c92db3b + x-ms-ratelimit-remaining-subscription-writes: + - '199' + x-ms-throttling-version: + - v2 + status: + code: 200 + message: OK +version: 1 diff --git a/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_account_scenarios.py b/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_account_scenarios.py index 79408d4ff81..ae7cfe9b74c 100644 --- a/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_account_scenarios.py +++ b/src/azure-cli/azure/cli/command_modules/storage/tests/latest/test_storage_account_scenarios.py @@ -2277,6 +2277,39 @@ def test_storage_account_file_secured_smb(self, resource_group, storage_account) JMESPathCheck('protocolSettings.smb.kerberosTicketEncryption', "RC4-HMAC;AES-256"), JMESPathCheck('protocolSettings.smb.versions', "SMB2.1;SMB3.0;SMB3.1.1")) + @ResourceGroupPreparer(name_prefix='cli_file_eit') + @StorageAccountPreparer(name_prefix='fileeit', kind='FileStorage', sku='Premium_LRS', location='eastus2euap') + def test_storage_account_file_smb_nfs_encryption_in_transit(self, resource_group, storage_account): + self.kwargs.update({ + 'sa': storage_account, + 'rg': resource_group, + 'cmd': 'storage account file-service-properties' + }) + + self.cmd( + '{cmd} update --require-smb-encryption-in-transit --require-nfs-encryption-in-transit ' + '-n {sa} -g {rg}').assert_with_checks( + JMESPathCheck('protocolSettings.smb.encryptionInTransit.required', True), + JMESPathCheck('protocolSettings.nfs.encryptionInTransit.required', True)) + + self.cmd( + '{cmd} update --require-smb-encryption-in-transit False --require-nfs-encryption-in-transit False' + ' -n {sa} -g {rg}').assert_with_checks( + JMESPathCheck('protocolSettings.smb.encryptionInTransit.required', False), + JMESPathCheck('protocolSettings.nfs.encryptionInTransit.required', False)) + + self.cmd( + '{cmd} update --require-smb-encryption-in-transit' + ' -n {sa} -g {rg}').assert_with_checks( + JMESPathCheck('protocolSettings.smb.encryptionInTransit.required', True), + JMESPathCheck('protocolSettings.nfs.encryptionInTransit.required', False)) + + self.cmd( + '{cmd} update --require-nfs-encryption-in-transit' + ' -n {sa} -g {rg}').assert_with_checks( + JMESPathCheck('protocolSettings.smb.encryptionInTransit.required', True), + JMESPathCheck('protocolSettings.nfs.encryptionInTransit.required', True)) + class StorageAccountPrivateLinkScenarioTest(ScenarioTest): @ResourceGroupPreparer(name_prefix='cli_test_sa_plr')