@@ -1667,7 +1667,7 @@ def update_resource_group(instance, tags=None):
16671667
16681668
16691669def export_group_as_template (
1670- cmd , resource_group_name , include_comments = False , include_parameter_default_value = False , resource_ids = None , skip_resource_name_params = False , skip_all_params = False ):
1670+ cmd , resource_group_name , include_comments = False , include_parameter_default_value = False , resource_ids = None , skip_resource_name_params = False , skip_all_params = False , output_format = None ):
16711671 """Captures a resource group as a template.
16721672 :param str resource_group_name: the name of the resource group.
16731673 :param resource_ids: space-separated resource ids to filter the export by. To export all resources, do not specify this argument or supply "*".
@@ -1701,16 +1701,33 @@ def export_group_as_template(
17011701 options = ',' .join (export_options ) if export_options else None
17021702
17031703 ExportTemplateRequest = cmd .get_models ('ExportTemplateRequest' )
1704- export_template_request = ExportTemplateRequest (resources = resources , options = options )
17051704
1705+ if output_format is None or output_format .lower () == "json" or output_format .lower () == "arm" :
1706+ export_template_request = ExportTemplateRequest (resources = resources , options = options , output_format = "Json" )
1707+
1708+ elif output_format .lower () == "bicep" :
1709+ export_template_request = ExportTemplateRequest (resources = resources , options = options , output_format = "Bicep" )
1710+
1711+ else :
1712+ raise CLIError ('az resource: error: argument --output_format: invalid OutputFormat value: \' %s\' ' % output_format )
1713+
17061714 # Exporting a resource group as a template is async since API version 2019-08-01.
17071715 if cmd .supported_api_version (min_api = '2019-08-01' ):
1708- result_poller = rcf .resource_groups .begin_export_template (resource_group_name ,
1709- parameters = export_template_request )
1716+ if cmd .supported_api_version (min_api = '2024-11-01' ):
1717+ print ("api version is 2024-11-01" )
1718+ result_poller = rcf .resource_groups .begin_export_template (resource_group_name ,
1719+ parameters = export_template_request ,
1720+ api_version = '2024-11-01' )
1721+ else :
1722+ if output_format .lower () == "bicep" :
1723+ raise CLIError ("Bicep export is not supported in API version < 2024-11-01" )
1724+ else :
1725+ result_poller = rcf .resource_groups .begin_export_template (resource_group_name ,
1726+ parameters = export_template_request )
17101727 result = LongRunningOperation (cmd .cli_ctx )(result_poller )
17111728 else :
17121729 result = rcf .resource_groups .begin_export_template (resource_group_name ,
1713- parameters = export_template_request )
1730+ parameters = export_template_request )
17141731
17151732 # pylint: disable=no-member
17161733 # On error, server still returns 200, with details in the error attribute
@@ -1722,8 +1739,11 @@ def export_group_as_template(
17221739 logger .warning (str (error ))
17231740 for detail in getattr (error , 'details' , None ) or []:
17241741 logger .error (detail .message )
1725-
1726- return result .template
1742+
1743+ if output_format is None or output_format .lower () == "json" or output_format .lower () == "arm" :
1744+ return result .template
1745+ elif output_format .lower () == "bicep" :
1746+ return result .output
17271747
17281748
17291749def create_application (cmd , resource_group_name ,
0 commit comments