changeset 161:2933cf1633fc

generate: Use scopes enum to obtain scope URL
author Lewin Bormann <lbo@spheniscida.de>
date Thu, 29 Oct 2020 22:05:55 +0100
parents 2db15ae9f222
children 59ccdfd217b2
files drive_example/src/drive_v3_types.rs gcs_example/src/storage_v1_types.rs generate/generate.py generate/templates.py
diffstat 4 files changed, 124 insertions(+), 118 deletions(-) [+]
line wrap: on
line diff
--- a/drive_example/src/drive_v3_types.rs	Thu Oct 29 21:51:38 2020 +0100
+++ b/drive_example/src/drive_v3_types.rs	Thu Oct 29 22:05:55 2020 +0100
@@ -3927,7 +3927,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4030,7 +4030,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4059,7 +4059,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4088,7 +4088,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4189,7 +4189,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4297,7 +4297,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4331,7 +4331,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4364,7 +4364,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4396,7 +4396,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4433,7 +4433,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4534,7 +4534,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4567,7 +4567,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4599,7 +4599,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4631,7 +4631,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4660,7 +4660,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4692,7 +4692,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4724,7 +4724,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4828,7 +4828,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.photos.readonly".to_string()];
+            let scopes = &[DriveScopes::DrivePhotosReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4858,7 +4858,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4895,7 +4895,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4935,7 +4935,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4983,7 +4983,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5012,7 +5012,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5049,7 +5049,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5078,7 +5078,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5115,7 +5115,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5144,7 +5144,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5176,7 +5176,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.scripts".to_string()];
+            let scopes = &[DriveScopes::DriveScripts.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5216,7 +5216,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.scripts".to_string()];
+            let scopes = &[DriveScopes::DriveScripts.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5267,7 +5267,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.scripts".to_string()];
+            let scopes = &[DriveScopes::DriveScripts.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5322,7 +5322,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5430,7 +5430,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5464,7 +5464,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5497,7 +5497,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5529,7 +5529,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5566,7 +5566,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5671,7 +5671,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5706,7 +5706,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5740,7 +5740,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5773,7 +5773,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5807,7 +5807,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5912,7 +5912,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5950,7 +5950,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5982,7 +5982,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6019,7 +6019,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.file".to_string()];
+            let scopes = &[DriveScopes::DriveFile.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6124,7 +6124,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6157,7 +6157,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6189,7 +6189,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6218,7 +6218,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive.readonly".to_string()];
+            let scopes = &[DriveScopes::DriveReadonly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6254,7 +6254,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/drive".to_string()];
+            let scopes = &[DriveScopes::Drive.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
--- a/gcs_example/src/storage_v1_types.rs	Thu Oct 29 21:51:38 2020 +0100
+++ b/gcs_example/src/storage_v1_types.rs	Thu Oct 29 22:05:55 2020 +0100
@@ -4470,7 +4470,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4506,7 +4506,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4542,7 +4542,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4578,7 +4578,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4615,7 +4615,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4653,7 +4653,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4757,7 +4757,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4789,7 +4789,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4821,7 +4821,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4850,7 +4850,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4880,7 +4880,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4915,7 +4915,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4947,7 +4947,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -4984,7 +4984,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5020,7 +5020,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5052,7 +5052,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5153,7 +5153,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5258,7 +5258,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5294,7 +5294,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5330,7 +5330,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5366,7 +5366,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5403,7 +5403,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5441,7 +5441,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5546,7 +5546,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5579,7 +5579,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5615,7 +5615,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5648,7 +5648,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5753,7 +5753,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5790,7 +5790,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5827,7 +5827,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5864,7 +5864,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5902,7 +5902,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -5941,7 +5941,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6052,7 +6052,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6090,7 +6090,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6124,7 +6124,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6162,7 +6162,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6195,7 +6195,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6227,7 +6227,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6267,7 +6267,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6310,7 +6310,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6358,7 +6358,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6391,7 +6391,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6425,7 +6425,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6463,7 +6463,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6500,7 +6500,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6533,7 +6533,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6570,7 +6570,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6745,7 +6745,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6778,7 +6778,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6811,7 +6811,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_only".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadOnly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6843,7 +6843,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_only".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadOnly.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6880,7 +6880,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.full_control".to_string()];
+            let scopes = &[StorageScopes::DevstorageFullControl.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
@@ -6987,7 +6987,7 @@
         let mut headers = vec![];
         let tok;
         if self.scopes.is_empty() {
-            let scopes = &["https://www.googleapis.com/auth/devstorage.read_write".to_string()];
+            let scopes = &[StorageScopes::DevstorageReadWrite.as_ref().to_string()];
             tok = self.authenticator.token(scopes).await?;
         } else {
             tok = self.authenticator.token(&self.scopes).await?;
--- a/generate/generate.py	Thu Oct 29 21:51:38 2020 +0100
+++ b/generate/generate.py	Thu Oct 29 22:05:55 2020 +0100
@@ -333,6 +333,9 @@
         formatted_simple_upload_path, required_params = resolve_parameters(simple_upload_path)
         formatted_resumable_upload_path, required_params = resolve_parameters(resumable_upload_path)
 
+        scopetype, scopeval = scopes_url_to_enum_val(discdoc['name'], method.get('scopes', [''])[-1])
+        scope_enum = scopetype + '::' + scopeval
+
         if is_download:
             data_download = {
                 'name':
@@ -362,7 +365,7 @@
                 'global_params_name':
                 rust_identifier(global_params_name(discdoc.get('name', ''))) if has_global_params else None,
                 'scopes': [{
-                    'scope': method.get('scopes', [''])[-1]
+                    'scope': scope_enum,
                 }],
                 'description':
                 method.get('description', ''),
@@ -399,7 +402,7 @@
                     'snake_param': sp
                 } for (p, sp) in required_parameters.items()],
                 'scopes': [{
-                    'scope': method.get('scopes', [''])[-1]
+                    'scope': scope_enum,
                 }],
                 'description':
                 method.get('description', ''),
@@ -431,7 +434,7 @@
                 'snake_param': sp
             } for (p, sp) in required_parameters.items()],
             'scopes': [{
-                'scope': method.get('scopes', [''])[-1]
+                'scope': scope_enum,
             }],
             'description': method.get('description', ''),
             'http_method': http_method,
@@ -454,18 +457,21 @@
             } for t in method_fragments]
         }) + '\n'.join(subresource_fragments)
 
+def scopes_url_to_enum_val(apiname, url):
+    rawname = url.split('/')[-1]
+    fancy_name = snake_to_camel(rawname.replace('-', '_').replace('.', '_'))
+    return (snake_to_camel(apiname)+'Scopes', fancy_name)
 
 def generate_scopes_type(name, scopes):
     """Generate types for the `scopes` dictionary (path: auth.oauth2.scopes in a discovery document),
     containing { scope_url: { description: "..." } }.
     """
-    name = snake_to_camel(name)
     if len(scopes) == 0:
         return ''
-    parameters = {'name': name, 'scopes': []}
+    parameters = {'scopes': []}
     for url, desc in scopes.items():
-        rawname = url.split('/')[-1]
-        fancy_name = snake_to_camel(rawname.replace('-', '_').replace('.', '_'))
+        enum_type_name, fancy_name = scopes_url_to_enum_val(name, url)
+        parameters['name'] = enum_type_name
         parameters['scopes'].append({'scope_name': fancy_name, 'desc': desc.get('description', ''), 'url': url})
     return chevron.render(OauthScopesType, parameters)
 
--- a/generate/templates.py	Thu Oct 29 21:51:38 2020 +0100
+++ b/generate/templates.py	Thu Oct 29 22:05:55 2020 +0100
@@ -24,7 +24,7 @@
 OauthScopesType = '''
 /// Scopes of this API. Convertible to their string representation with `AsRef`.
 #[derive(Debug, Clone, Copy)]
-pub enum {{{name}}}Scopes {
+pub enum {{{name}}} {
     {{#scopes}}
     /// {{{desc}}}
     ///
@@ -33,11 +33,11 @@
     {{/scopes}}
 }
 
-impl std::convert::AsRef<str> for {{{name}}}Scopes {
+impl std::convert::AsRef<str> for {{{name}}} {
     fn as_ref(&self) -> &'static str {
         match self {
             {{#scopes}}
-            {{{name}}}Scopes::{{{scope_name}}} => "{{{url}}}",
+            {{{name}}}::{{{scope_name}}} => "{{{url}}}",
             {{/scopes}}
         }
     }
@@ -176,7 +176,7 @@
     {{#wants_auth}}
     let tok;
     if self.scopes.is_empty() {
-        let scopes = &[{{#scopes}}"{{{scope}}}".to_string(),
+        let scopes = &[{{#scopes}}{{{scope}}}.as_ref().to_string(),
         {{/scopes}}];
         tok = self.authenticator.token(scopes).await?;
     } else {
@@ -222,7 +222,7 @@
     {{#wants_auth}}
     let tok;
     if self.scopes.is_empty() {
-        let scopes = &[{{#scopes}}"{{{scope}}}".to_string(),
+        let scopes = &[{{#scopes}}{{{scope}}}.as_ref().to_string(),
         {{/scopes}}];
         tok = self.authenticator.token(scopes).await?;
     } else {
@@ -273,7 +273,7 @@
     {{#wants_auth}}
     let tok;
     if self.scopes.is_empty() {
-        let scopes = &[{{#scopes}}"{{{scope}}}".to_string(),
+        let scopes = &[{{#scopes}}{{{scope}}}.as_ref().to_string(),
         {{/scopes}}];
         tok = self.authenticator.token(scopes).await?;
     } else {
@@ -327,7 +327,7 @@
     {{#wants_auth}}
     let tok;
     if self.scopes.is_empty() {
-        let scopes = &[{{#scopes}}"{{{scope}}}".to_string(),
+        let scopes = &[{{#scopes}}{{{scope}}}.as_ref().to_string(),
         {{/scopes}}];
         tok = self.authenticator.token(scopes).await?;
     } else {