importargparseimportuuidfromoffice365.runtime.client_value_collectionimportClientValueCollectionfromoffice365.sharepoint.client_contextimportClientContextfromoffice365.sharepoint.sitedesigns.creation_infoimportSiteDesignCreationInfofromoffice365.sharepoint.sitescripts.utilityimportSiteScriptUtilityfromtests.settingsimportclient_id,password,site_url,tenant,usernamedefmain():parser=argparse.ArgumentParser(description="Create a site design")parser.add_argument("--script-title",default="Contoso theme script",help="site script title")parser.add_argument("--design-title",default="Contoso site",help="site design title")args=parser.parse_args()ctx=ClientContext(site_url).with_username_and_password(tenant=tenant,client_id=client_id,username=username,password=password)# First create a site scriptsite_script={"$schema":"schema.json","actions":[{"verb":"applyTheme","themeName":"Contoso Theme"}],"bindata":{},"version":1,}script_result=SiteScriptUtility.create_site_script(ctx,args.script_title,"Applies the Contoso branding theme",site_script).execute_query()script_id=script_result.value.Id# Bundle it into a site designdesign_info=SiteDesignCreationInfo(Title=args.design_title,Description="Standard Contoso team site with branding",WebTemplate="64",# 64 = team site, 68 = communication siteSiteScriptIds=ClientValueCollection(uuid.UUID,[uuid.UUID(script_id)]),)design=SiteScriptUtility.create_site_design(ctx,design_info).execute_query()print(f"Site design created: {design.value.Title} (ID: {design.value.Id})")if__name__=="__main__":main()