@@ -73,7 +73,7 @@ def create_storage_account(cmd, resource_group_name, account_name, sku=None, loc
7373 min_tls_version = None , allow_shared_key_access = None , edge_zone = None ,
7474 identity_type = None , user_identity_id = None ,
7575 key_vault_user_identity_id = None , federated_identity_client_id = None ,
76- sas_expiration_period = None , key_expiration_period_in_days = None ,
76+ sas_expiration_action = None , sas_expiration_period = None , key_expiration_period_in_days = None ,
7777 allow_cross_tenant_replication = None , default_share_permission = None ,
7878 enable_nfs_v3 = None , subnet = None , vnet_name = None , action = 'Allow' , enable_alw = None ,
7979 immutability_period_since_creation_in_days = None , immutability_policy_state = None ,
@@ -265,9 +265,16 @@ def create_storage_account(cmd, resource_group_name, account_name, sku=None, loc
265265 KeyPolicy = cmd .get_models ('KeyPolicy' )
266266 params .key_policy = KeyPolicy (key_expiration_period_in_days = key_expiration_period_in_days )
267267
268- if sas_expiration_period :
268+ if sas_expiration_period is not None or sas_expiration_action is not None :
269269 SasPolicy = cmd .get_models ('SasPolicy' )
270- params .sas_policy = SasPolicy (sas_expiration_period = sas_expiration_period )
270+ if sas_expiration_period is None and sas_expiration_action is not None :
271+ from azure .cli .core .azclierror import InvalidArgumentValueError
272+ raise InvalidArgumentValueError ('--sas-expiration-action can only be specified together with'
273+ ' --sas-expiration-period' )
274+ if sas_expiration_action is None :
275+ sas_expiration_action = 'Log'
276+ params .sas_policy = SasPolicy (sas_expiration_period = sas_expiration_period ,
277+ expiration_action = sas_expiration_action )
271278
272279 if allow_cross_tenant_replication is not None :
273280 params .allow_cross_tenant_replication = allow_cross_tenant_replication
@@ -387,7 +394,7 @@ def update_storage_account(cmd, instance, sku=None, tags=None, custom_domain=Non
387394 allow_blob_public_access = None , min_tls_version = None , allow_shared_key_access = None ,
388395 identity_type = None , user_identity_id = None ,
389396 key_vault_user_identity_id = None , federated_identity_client_id = None ,
390- sas_expiration_period = None , key_expiration_period_in_days = None ,
397+ sas_expiration_action = None , sas_expiration_period = None , key_expiration_period_in_days = None ,
391398 allow_cross_tenant_replication = None , default_share_permission = None ,
392399 immutability_period_since_creation_in_days = None , immutability_policy_state = None ,
393400 allow_protected_append_writes = None , public_network_access = None , upgrade_to_storagev2 = None ,
@@ -646,9 +653,19 @@ def update_storage_account(cmd, instance, sku=None, tags=None, custom_domain=Non
646653 KeyPolicy = cmd .get_models ('KeyPolicy' )
647654 params .key_policy = KeyPolicy (key_expiration_period_in_days = key_expiration_period_in_days )
648655
649- if sas_expiration_period :
656+ if sas_expiration_period is not None or sas_expiration_action is not None :
650657 SasPolicy = cmd .get_models ('SasPolicy' )
651- params .sas_policy = SasPolicy (sas_expiration_period = sas_expiration_period )
658+ if sas_expiration_period is None and sas_expiration_action is not None :
659+ from azure .cli .core .azclierror import InvalidArgumentValueError
660+ raise InvalidArgumentValueError ('--sas-expiration-action can only be specified together '
661+ 'with --sas-expiration-period' )
662+ if sas_expiration_action is None :
663+ sas_expiration_action = 'Log'
664+ if instance .sas_policy is not None and instance .sas_policy .expiration_action is not None :
665+ sas_expiration_action = instance .sas_policy .expiration_action
666+
667+ params .sas_policy = SasPolicy (sas_expiration_period = sas_expiration_period ,
668+ expiration_action = sas_expiration_action )
652669
653670 if allow_cross_tenant_replication is not None :
654671 params .allow_cross_tenant_replication = allow_cross_tenant_replication
0 commit comments