@@ -1651,7 +1651,7 @@ def update_resource_group(instance, tags=None):
16511651
16521652
16531653def export_group_as_template (
1654- cmd , resource_group_name , include_comments = False , include_parameter_default_value = False , resource_ids = None , skip_resource_name_params = False , skip_all_params = False ):
1654+ cmd , resource_group_name , include_comments = False , include_parameter_default_value = False , resource_ids = None , skip_resource_name_params = False , skip_all_params = False , export_format = None ):
16551655 """Captures a resource group as a template.
16561656 :param str resource_group_name: the name of the resource group.
16571657 :param resource_ids: space-separated resource ids to filter the export by. To export all resources, do not specify this argument or supply "*".
@@ -1685,12 +1685,26 @@ def export_group_as_template(
16851685 options = ',' .join (export_options ) if export_options else None
16861686
16871687 ExportTemplateRequest = cmd .get_models ('ExportTemplateRequest' )
1688- export_template_request = ExportTemplateRequest (resources = resources , options = options )
1688+
1689+ if export_format is None or export_format .lower () == "json" or export_format .lower () == "arm" :
1690+ export_template_request = ExportTemplateRequest (resources = resources , options = options , output_format = "Json" )
1691+ elif export_format .lower () == "bicep" :
1692+ export_template_request = ExportTemplateRequest (resources = resources , options = options , output_format = "Bicep" )
1693+ else :
1694+ raise InvalidArgumentValueError ('az resource: error: argument --export-format: invalid ExportFormat value: \' %s\' ' % export_format )
16891695
16901696 # Exporting a resource group as a template is async since API version 2019-08-01.
16911697 if cmd .supported_api_version (min_api = '2019-08-01' ):
1692- result_poller = rcf .resource_groups .begin_export_template (resource_group_name ,
1693- parameters = export_template_request )
1698+ if cmd .supported_api_version (min_api = '2024-11-01' ):
1699+ result_poller = rcf .resource_groups .begin_export_template (resource_group_name ,
1700+ parameters = export_template_request ,
1701+ api_version = '2024-11-01' )
1702+ else :
1703+ if export_format .lower () == "bicep" :
1704+ raise CLIError ("Bicep export is not supported in API version < 2024-11-01" )
1705+
1706+ result_poller = rcf .resource_groups .begin_export_template (resource_group_name ,
1707+ parameters = export_template_request )
16941708 result = LongRunningOperation (cmd .cli_ctx )(result_poller )
16951709 else :
16961710 result = rcf .resource_groups .begin_export_template (resource_group_name ,
@@ -1707,7 +1721,7 @@ def export_group_as_template(
17071721 for detail in getattr (error , 'details' , None ) or []:
17081722 logger .error (detail .message )
17091723
1710- return result .template
1724+ return result .output if export_format and export_format . lower () == "bicep" else result . template
17111725
17121726
17131727def create_application (cmd , resource_group_name ,
0 commit comments