mirror of
https://github.com/GAM-team/GAM.git
synced 2026-06-04 22:31:38 +00:00
Compare commits
52 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d8093fa1f0 | ||
|
|
2080f33fdb | ||
|
|
6a2925c546 | ||
|
|
26960c96d9 | ||
|
|
58a080fe6b | ||
|
|
3c3b7527a1 | ||
|
|
0d7028416a | ||
|
|
aa6dca4b4c | ||
|
|
3d7a7bd609 | ||
|
|
35854af1e9 | ||
|
|
4450652c32 | ||
|
|
d34e09f8d5 | ||
|
|
610ba5bf6a | ||
|
|
65debc6a27 | ||
|
|
61868d5fde | ||
|
|
998f4c6dff | ||
|
|
a2a8393775 | ||
|
|
d9ec9d3af9 | ||
|
|
7104b24633 | ||
|
|
9cd81c9148 | ||
|
|
56a60d1651 | ||
|
|
1cdf02bc31 | ||
|
|
5b469496d6 | ||
|
|
2a1d3a1ce1 | ||
|
|
9b89492d83 | ||
|
|
45b1eee8f3 | ||
|
|
e9dda2079a | ||
|
|
c279acbab8 | ||
|
|
082cd9b087 | ||
|
|
7d2e5d674a | ||
|
|
b2d95c545d | ||
|
|
127c3125ad | ||
|
|
63f1e0d504 | ||
|
|
1ad10b6954 | ||
|
|
820cf98087 | ||
|
|
15bd6beebd | ||
|
|
31871f192c | ||
|
|
7acfa4a2ac | ||
|
|
e212d68d60 | ||
|
|
6aeee89ee4 | ||
|
|
623572a652 | ||
|
|
f7c587c08b | ||
|
|
da1f346b1a | ||
|
|
056b56ed78 | ||
|
|
791581b850 | ||
|
|
08f426ba09 | ||
|
|
54371cffff | ||
|
|
c7946c0edf | ||
|
|
ae578c64a0 | ||
|
|
08bc1898cc | ||
|
|
dc626b1b3e | ||
|
|
7283e06750 |
@@ -17,17 +17,32 @@ Primitives
|
||||
<TrueValues> ::= true|on|yes|enabled|1
|
||||
<FalseValues>= false|off|no|disabled|0
|
||||
<DataTransferService> ::= googledrive|gdrive|drive|"drive and docs"
|
||||
<ProductID> ::= Google-Apps|Google-Drive-storage|Google-Vault|Google-Coordinate
|
||||
<SKUID> ::= gafb|gafw|basic|gsuite-basic|
|
||||
gafg|gsuite-government|
|
||||
gal|lite|gsuite-lite|
|
||||
gams|postini|gsuite-gams|
|
||||
gau|unlimited|gsuite-business|
|
||||
drive-20gb|drive20gb|20gb|drive-50gb|drive50gb|50gb|drive-200gb|drive200gb|200gb|drive-400gb|drive400gb|400gb|
|
||||
drive-1tb|drive1tb|1tb|drive-2tb|drive2tb|2tb|drive-4tb|drive4tb|4tb|drive-8tb|drive8tb|8tb|drive-16tb|drive16tb|16tb|
|
||||
vault|
|
||||
vfe|
|
||||
coordinate
|
||||
<ProductID> ::=
|
||||
Google-Apps|
|
||||
Google-Chrome-Device-Management|
|
||||
Google-Coordinate|
|
||||
Google-Drive-storage|
|
||||
Google-Vault
|
||||
<SKUID> ::=
|
||||
gafb|gafw|basic|gsuitebasic|Google-Apps-For-Business|
|
||||
gafg|gsuitegovernment|gsuitegov|Google-Apps-For-Government|
|
||||
gams|postini|gsuitegams|gsuitepostini|gsuitemessagesecurity|Google-Apps-For-Postini|
|
||||
gal|lite|gsuitelite|Google-Apps-Lite|
|
||||
gau|unlimited|gsuitebusiness|Google-Apps-Unlimited|
|
||||
gae|enterprise|gsuiteenterprise|1010020020|
|
||||
chrome|cdm|googlechromedevicemanagement|Google-Chrome-Device-Management|
|
||||
coordinate|googlecoordinate|Google-Coordinate|
|
||||
drive20gb|20gb|googledrivestorage20gb|Google-Drive-storage-20GB|
|
||||
drive50gb|50gb|googledrivestorage50gb|Google-Drive-storage-50GB|
|
||||
drive200gb|200gb|googledrivestorage200gb|Google-Drive-storage-200GB|
|
||||
drive400gb|400gb|googledrivestorage400gb|Google-Drive-storage-400GB|
|
||||
drive1tb|1tb|googledrivestorage1tb|Google-Drive-storage-1TB|
|
||||
drive2tb|2tb|googledrivestorage2tb|Google-Drive-storage-2TB|
|
||||
drive4tb|4tb|googledrivestorage4tb|Google-Drive-storage-4TB|
|
||||
drive8tb|8tb|googledrivestorage8tb|Google-Drive-storage-8TB|
|
||||
drive16tb|16tb|googledrivestorage16tb|Google-Drive-storage-16TB|
|
||||
vault|googlevault|Google-Vault|
|
||||
vfe|googlevaultformeremployee|Google-Vault-Former-Employee
|
||||
<Charset> ::= ascii|mbcs|utf-8|utf-8-sig|utf-16|<String>
|
||||
<FileFormat> ::= csv|html|txt|tsv|jpeg|jpg|png|svg|pdf|rtf|pptx|xlsx|docx|odt|ods|openoffice|ms|microsoft|micro$oft
|
||||
<Language> ::= ar|bn|bg|ca|zh-CN|zh-TW|hr|cs|da|nl|en|en-GB|et|fi|fr|de|el|gu|iw|is|in|it|ja|kn|ko|lv|lt|ms|ml|mr|no|or|fa|pl|pt-BR|pt-PT|ro|ru|sr|sk|sl|es|sv|tl|ta|te|th|tr|uk|ur|vi
|
||||
@@ -121,6 +136,7 @@ Named items
|
||||
<RoleAssignmentID> ::= <String>
|
||||
<SchemaName> ::= <String>
|
||||
<Section> ::= <String>
|
||||
<S/MIMEID> ::= <String>
|
||||
<StudentItem> ::= <EmailAddress>|<UniqueID>|<String>
|
||||
<Timezone> ::= <String>
|
||||
<Title> ::= <String>
|
||||
@@ -128,6 +144,25 @@ Named items
|
||||
<URL> ::= <String>
|
||||
<UserItem> ::= <EmailAddress>|<UniqueID>|<String>
|
||||
|
||||
<CourseFieldName> ::=
|
||||
alternatelink|
|
||||
coursegroupemail|
|
||||
coursematerialsets|
|
||||
coursestate|
|
||||
creationtime|
|
||||
description|
|
||||
descriptionheading|
|
||||
enrollmentcode|
|
||||
guardiansenabled|
|
||||
id|
|
||||
name|
|
||||
ownerid|
|
||||
room|
|
||||
section|
|
||||
teacherfolder|
|
||||
teachergroupemail|
|
||||
updatetime
|
||||
<CourseFieldNameList> ::= '<CourseFieldName>(,<CourseFieldName>)*'
|
||||
|
||||
<CrOSFieldName> ::=
|
||||
activetimeranges|timeranges|
|
||||
@@ -289,6 +324,8 @@ Named items
|
||||
ipwhitelisted|
|
||||
isdelegatedadmin|admin|isadmin|
|
||||
ismailboxsetup|
|
||||
is2svenforced|
|
||||
is2svenrolled|
|
||||
lastlogintime|
|
||||
noneditablealiases|aliases|nicknames|
|
||||
notes|note|
|
||||
@@ -494,6 +531,27 @@ gam <UserTypeEntity> check serviceaccount
|
||||
|
||||
gam whatis <EmailItem>
|
||||
|
||||
gam create resoldcustomer <CustomerDomain> (customer_auth_token <String>)
|
||||
(email|alternate_email <EmailAddress>) (name|organization_name <String>) (contact|contact_name <String>) [phone|phone_number <String>]
|
||||
[address|address1 <String>] [address2 <String>] [address3 <String>]
|
||||
[locality|city <String>] [region|state <String>] [postal|postal_code <String>] [country|country_code <String>]
|
||||
gam update resoldcustomer <CustomerID> [customer_auth_token <String>]
|
||||
[email|alternate_email <EmailAddress>] [name|organization_name <String>] [contact|contact_name <String>] [phone|phone_number <String>]
|
||||
[address|address1 <String>] [address2 <String>] [address3 <String>]
|
||||
[locality|city <String>] [region|state <String>] [postal|postal_code <String>] [country|country_code <String>]
|
||||
gam info resoldcustomer <CustomerID>
|
||||
|
||||
gam create resoldsubscription <CustomerID>
|
||||
[customer_auth_token <String>] [plan annual_monthly_pay|annual_yearly_pay|flexible|trial]
|
||||
[deal <String>] [purchaseorderid <String>] [seats <NumberOfSeats> <MaximumNumberOfSeats>] [sku <SKUID>]
|
||||
gam update resoldsubscription <CustomerID> <SKUID>
|
||||
activate|suspend|startpaidservice|
|
||||
(renewal auto_renew_monthly_pay|auto_renew_yearly_pay|cancel|renew_current_users_monthly_pay|renew_current_users_yearly_pay|switch_to_pay_as_you_go)|
|
||||
(seats <NumberOfSeats> [<MaximumNumberOfSeats>])|
|
||||
(plan annual_monthly_pay|annual_yearly_pay|flexible|trial [deal <String>] [purchaseorderid <String>] [seats <NumberOfSeats> [<MaximumNumberOfSeats>]])
|
||||
gam delete resoldsubscription <CustomerID> <SKUID> cancel|downgrade|transfer_to_direct
|
||||
gam info resoldsubscriptions <CustomerID> [customer_auth_token <String>]
|
||||
|
||||
gam report users|user [todrive]
|
||||
[date <Date>] [(user all|<UserItem>)] [filter|filters <String>] [fields|parameters <String>]
|
||||
gam report customers|customer|domain [todrive]
|
||||
@@ -644,6 +702,7 @@ gam update course <CourseID> <CourseAttributes>+
|
||||
gam delete course <CourseID>
|
||||
gam info course <CourseID>
|
||||
gam print courses [todrive] [teacher <UserItem>] [student <UserItem>] [alias|aliases] [delimiter <String>]
|
||||
[show all|students|teachers] [fields <CourseFieldNameList>] [skipfields <CourseFieldNameList>]
|
||||
|
||||
gam course <CourseID> add alias <CourseAlias>
|
||||
gam course <CourseID> delete alias <CourseAlias>
|
||||
@@ -731,9 +790,9 @@ gam <UserTypeEntity> delete|del alias|aliases
|
||||
|
||||
gam <UserTypeEntity> delete|del group|groups
|
||||
|
||||
gam <UserTypeEntity> add license <SKUID>
|
||||
gam <UserTypeEntity> update license <SKUID> [from] <SKUID>
|
||||
gam <UserTypeEntity> delete|del license <SKUID>
|
||||
gam <UserTypeEntity> add license <SKUID> [product|productid <ProductID>]
|
||||
gam <UserTypeEntity> update license <SKUID> [product|productid <ProductID>] [from] <SKUID>
|
||||
gam <UserTypeEntity> delete|del license <SKUID> [product|productid <ProductID>]
|
||||
|
||||
gam <UserTypeEntity> update photo <FileNamePattern>
|
||||
gam <UserTypeEntity> delete|del photo
|
||||
@@ -802,6 +861,12 @@ gam <UserTypeEntity> show sendas [format]
|
||||
gam <UserTypeEntity> info sendas <EmailAddress> [format]
|
||||
gam <UserTypeEntity> print sendas [todrive]
|
||||
|
||||
gam <UserTypeEntity> add smime file <FileName> [password <Password>] [sendas|sendasemail <EmailAddress>] [default]
|
||||
gam <UserTypeEntity> update smime [id <S/MIMEID>] [sendas|sendasemail <EmailAddress>] [default]
|
||||
gam <UserTypeEntity> delete smime [id <S/MIMEID>] [sendas|sendasemail <EmailAddress>]
|
||||
gam <UserTypeEntity> show smime [primaryonly]
|
||||
gam <UserTypeEntity> print smime [todrive] [primaryonly]
|
||||
|
||||
gam <UserTypeEntity> signature|sig <String>|(file <FileName> [charset <Charset>]) (replace <Tag> <String>)* [html] [name <String>] [replyto <EmailAddress>] [default] [treatasalias <Boolean>]
|
||||
gam <UserTypeEntity> show signature|sig [format]
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ OPTIONS:
|
||||
-d Directory where gam folder will be installed. Default is \$HOME/bin/
|
||||
-a Architecture to install (i386, x86_64, arm). Default is to detect your arch with "uname -m".
|
||||
-o OS we are running (linux, macos). Default is to detect your OS with "uname -s".
|
||||
-l Just upgrade GAM to latest version. Skips project creation and auth.
|
||||
-p Profile update (true, false). Should script add gam command to environment. Default is true.
|
||||
-u Admin user email address to use with GAM. Default is to prompt.
|
||||
-r Regular user email address. Used to test service account access to user data. Default is to prompt.
|
||||
@@ -21,16 +22,18 @@ target_dir="$HOME/bin"
|
||||
gamarch=$(uname -m)
|
||||
gamos=$(uname -s)
|
||||
update_profile=true
|
||||
upgrade_only=false
|
||||
gamversion="latest"
|
||||
adminuser=""
|
||||
regularuser=""
|
||||
while getopts "hd:a:o:p:u:r:v:" OPTION
|
||||
while getopts "hd:a:o:lp:u:r:v:" OPTION
|
||||
do
|
||||
case $OPTION in
|
||||
h) usage; exit;;
|
||||
d) target_dir=$OPTARG;;
|
||||
a) gamarch=$OPTARG;;
|
||||
o) gamos=$OPTARG;;
|
||||
l) upgrade_only=true;;
|
||||
p) update_profile=$OPTARG;;
|
||||
u) adminuser=$OPTARG;;
|
||||
r) regularuser=$OPTARG;;
|
||||
@@ -166,6 +169,19 @@ else
|
||||
echo_green "Finished extracting GAM archive."
|
||||
fi
|
||||
|
||||
if [ "$upgrade_only" = true ]; then
|
||||
echo_green "Here's information about your GAM upgrade:"
|
||||
$target_dir/gam/gam version
|
||||
rc=$?
|
||||
if (( $rc != 0 )); then
|
||||
echo_red "ERROR: Failed running GAM for the first time with $rc. Please report this error to GAM mailing list. Exiting."
|
||||
exit
|
||||
fi
|
||||
|
||||
echo_green "GAM upgrade complete!"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Update profile to add gam command
|
||||
if [ "$update_profile" = true ]; then
|
||||
alias_line="alias gam=\"$target_dir/gam/gam\""
|
||||
|
||||
880
src/gam.py
880
src/gam.py
File diff suppressed because it is too large
Load Diff
@@ -1771,7 +1771,7 @@ class DeviceFlowInfo(collections.namedtuple('DeviceFlowInfo', (
|
||||
def _oauth2_web_server_flow_params(kwargs):
|
||||
"""Configures redirect URI parameters for OAuth2WebServerFlow."""
|
||||
params = {
|
||||
'access_type': 'offline',
|
||||
# 'access_type': 'offline',
|
||||
'response_type': 'code',
|
||||
}
|
||||
|
||||
|
||||
@@ -8,4 +8,5 @@ gmail.googleapis.com
|
||||
groupssettings.googleapis.com
|
||||
licensing.googleapis.com
|
||||
plus.googleapis.com
|
||||
reseller.googleapis.com
|
||||
siteverification.googleapis.com
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
from var import GM_Globals, GM_WINDOWS, GM_SYS_ENCODING
|
||||
import collections
|
||||
import re
|
||||
import sys
|
||||
from htmlentitydefs import name2codepoint
|
||||
from HTMLParser import HTMLParser
|
||||
from var import GM_Globals, GM_WINDOWS, GM_SYS_ENCODING
|
||||
|
||||
def convertUTF8(data):
|
||||
if isinstance(data, str):
|
||||
|
||||
70
src/var.py
70
src/var.py
@@ -4,18 +4,21 @@ import platform
|
||||
import re
|
||||
|
||||
gam_author = u'Jay Lee <jay0lee@gmail.com>'
|
||||
gam_version = u'4.1'
|
||||
gam_version = u'4.12'
|
||||
gam_license = u'Apache License 2.0 (http://www.apache.org/licenses/LICENSE-2.0)'
|
||||
|
||||
GAM_URL = u'http://git.io/gam'
|
||||
GAM_INFO = u'GAM {0} - {1} / {2} / Python {3}.{4}.{5} {6} / {7} {8} /'.format(gam_version, GAM_URL,
|
||||
gam_author, sys.version_info[0], sys.version_info[1], sys.version_info[2], sys.version_info[3],
|
||||
platform.platform(), platform.machine())
|
||||
gam_author,
|
||||
sys.version_info[0], sys.version_info[1],
|
||||
sys.version_info[2], sys.version_info[3],
|
||||
platform.platform(), platform.machine())
|
||||
|
||||
GAM_RELEASES = u'https://github.com/jay0lee/GAM/releases'
|
||||
GAM_WIKI = u'https://github.com/jay0lee/GAM/wiki'
|
||||
GAM_ALL_RELEASES = u'https://api.github.com/repos/jay0lee/GAM/releases'
|
||||
GAM_LATEST_RELEASE = GAM_ALL_RELEASES+u'/latest'
|
||||
GAM_PROJECT_APIS = u'https://raw.githubusercontent.com/jay0lee/GAM/master/src/project-apis.txt'
|
||||
|
||||
TRUE = u'true'
|
||||
FALSE = u'false'
|
||||
@@ -41,39 +44,43 @@ FN_OAUTH2_TXT = u'oauth2.txt'
|
||||
MY_CUSTOMER = u'my_customer'
|
||||
SKUS = {
|
||||
u'Google-Apps-For-Business': {
|
||||
u'product': u'Google-Apps', u'aliases': [u'gafb', u'gafw', u'basic', u'gsuite-basic']},
|
||||
u'product': u'Google-Apps', u'aliases': [u'gafb', u'gafw', u'basic', u'gsuitebasic'], u'displayName': u'G Suite Basic'},
|
||||
u'Google-Apps-For-Government': {
|
||||
u'product': u'Google-Apps', u'aliases': [u'gafg', u'gsuite-government']},
|
||||
u'product': u'Google-Apps', u'aliases': [u'gafg', u'gsuitegovernment', u'gsuitegov'], u'displayName': u'G Suite Government'},
|
||||
u'Google-Apps-For-Postini': {
|
||||
u'product': u'Google-Apps', u'aliases': [u'gams', u'postini', u'gsuite-gams']},
|
||||
u'product': u'Google-Apps', u'aliases': [u'gams', u'postini', u'gsuitegams', u'gsuitepostini', u'gsuitemessagesecurity'], u'displayName': u'G Suite Message Security'},
|
||||
u'Google-Apps-Lite': {
|
||||
u'product': u'Google-Apps', u'aliases': [u'gal', u'lite', u'gsuite-lite']},
|
||||
u'product': u'Google-Apps', u'aliases': [u'gal', u'lite', u'gsuitelite'], u'displayName': u'G Suite Lite'},
|
||||
u'Google-Apps-Unlimited': {
|
||||
u'product': u'Google-Apps', u'aliases': [u'gau', u'unlimited', u'gsuite-business']},
|
||||
u'product': u'Google-Apps', u'aliases': [u'gau', u'unlimited', u'gsuitebusiness'], u'displayName': u'G Suite Business'},
|
||||
u'1010020020': {
|
||||
u'product': u'Google-Apps', u'aliases': [u'gae', u'enterprise', u'gsuiteenterprise'], u'displayName': u'G Suite Enterprise'},
|
||||
u'Google-Drive-storage-20GB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-20gb', u'drive20gb', u'20gb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive20gb', u'20gb', u'googledrivestorage20gb'], u'displayName': u'Google Drive Storage 20GB'},
|
||||
u'Google-Drive-storage-50GB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-50gb', u'drive50gb', u'50gb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive50gb', u'50gb', u'googledrivestorage50gb'], u'displayName': u'Google Drive Storage 50GB'},
|
||||
u'Google-Drive-storage-200GB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-200gb', u'drive200gb', u'200gb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive200gb', u'200gb', u'googledrivestorage200gb'], u'displayName': u'Google Drive Storage 200GB'},
|
||||
u'Google-Drive-storage-400GB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-400gb', u'drive400gb', u'400gb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive400gb', u'400gb', u'googledrivestorage400gb'], u'displayName': u'Google Drive Storage 400GB'},
|
||||
u'Google-Drive-storage-1TB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-1tb', u'drive1tb', u'1tb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive1tb', u'1tb', u'googledrivestorage1tb'], u'displayName': u'Google Drive Storage 1TB'},
|
||||
u'Google-Drive-storage-2TB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-2tb', u'drive2tb', u'2tb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive2tb', u'2tb', u'googledrivestorage2tb'], u'displayName': u'Google Drive Storage 2TB'},
|
||||
u'Google-Drive-storage-4TB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-4tb', u'drive4tb', u'4tb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive4tb', u'4tb', u'googledrivestorage4tb'], u'displayName': u'Google Drive Storage 4TB'},
|
||||
u'Google-Drive-storage-8TB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-8tb', u'drive8tb', u'8tb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive8tb', u'8tb', u'googledrivestorage8tb'], u'displayName': u'Google Drive Storage 8TB'},
|
||||
u'Google-Drive-storage-16TB': {
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive-16tb', u'drive16tb', u'16tb']},
|
||||
u'product': u'Google-Drive-storage', u'aliases': [u'drive16tb', u'16tb', u'googledrivestorage16tb'], u'displayName': u'Google Drive Storage 16TB'},
|
||||
u'Google-Vault': {
|
||||
u'product': u'Google-Vault', u'aliases': [u'vault']},
|
||||
u'product': u'Google-Vault', u'aliases': [u'vault', u'googlevault'], u'displayName': u'Google Vault'},
|
||||
u'Google-Vault-Former-Employee': {
|
||||
u'product': u'Google-Vault', u'aliases': [u'vfe']},
|
||||
u'product': u'Google-Vault', u'aliases': [u'vfe', u'googlevaultformeremployee'], u'displayName': u'Google Vault Former Employee'},
|
||||
u'Google-Coordinate': {
|
||||
u'product': u'Google-Coordinate', u'aliases': [u'coordinate']}
|
||||
u'product': u'Google-Coordinate', u'aliases': [u'coordinate', u'googlecoordinate'], u'displayName': u'Google Coordinate'},
|
||||
u'Google-Chrome-Device-Management': {
|
||||
u'product': u'Google-Chrome-Device-Management', u'aliases': [u'chrome', u'cdm', u'googlechromedevicemanagement'], u'displayName': u'Google Chrome Device Management'}
|
||||
}
|
||||
|
||||
API_VER_MAPPING = {
|
||||
@@ -91,6 +98,7 @@ API_VER_MAPPING = {
|
||||
u'oauth2': u'v2',
|
||||
u'plus': u'v1',
|
||||
u'reports': u'reports_v1',
|
||||
u'reseller': u'v1',
|
||||
u'siteVerification': u'v1',
|
||||
}
|
||||
|
||||
@@ -105,9 +113,11 @@ API_SCOPE_MAPPING = {
|
||||
u'plus': [u'https://www.googleapis.com/auth/plus.me',],
|
||||
}
|
||||
|
||||
ADDRESS_FIELDS_PRINT_ORDER = [u'contactName', u'organizationName',
|
||||
u'addressLine1', u'addressLine2', u'addressLine3', u'locality',
|
||||
u'region', u'postalCode', u'countryCode']
|
||||
ADDRESS_FIELDS_PRINT_ORDER = [
|
||||
u'contactName', u'organizationName',
|
||||
u'addressLine1', u'addressLine2', u'addressLine3',
|
||||
u'locality', u'region', u'postalCode', u'countryCode',
|
||||
]
|
||||
|
||||
ADDRESS_FIELDS_ARGUMENT_MAP = {
|
||||
u'contact': u'contactName', u'contactname': u'contactName',
|
||||
@@ -246,8 +256,11 @@ DRIVEFILE_ORDERBY_CHOICES_MAP = {
|
||||
u'viewedbymedate': u'lastViewedByMeDate',
|
||||
}
|
||||
|
||||
DELETE_DRIVEFILE_FUNCTION_TO_ACTION_MAP = {u'delete': u'purging',
|
||||
u'trash': u'trashing', u'untrash': u'untrashing',}
|
||||
DELETE_DRIVEFILE_FUNCTION_TO_ACTION_MAP = {
|
||||
u'delete': u'purging',
|
||||
u'trash': u'trashing',
|
||||
u'untrash': u'untrashing',
|
||||
}
|
||||
|
||||
DRIVEFILE_LABEL_CHOICES_MAP = {
|
||||
u'restricted': u'restricted',
|
||||
@@ -392,8 +405,10 @@ FILTER_CRITERIA_CHOICES_MAP = {
|
||||
u'subject': u'subject',
|
||||
u'to': u'to',
|
||||
}
|
||||
FILTER_ACTION_CHOICES = [u'archive', u'forward', u'important', u'label',
|
||||
u'markread', u'neverspam', u'notimportant', u'star', u'trash',]
|
||||
FILTER_ACTION_CHOICES = [
|
||||
u'archive', u'forward', u'important', u'label',
|
||||
u'markread', u'neverspam', u'notimportant', u'star', u'trash',
|
||||
]
|
||||
|
||||
CROS_ARGUMENT_TO_PROPERTY_MAP = {
|
||||
u'activetimeranges': [u'activeTimeRanges.activeTime', u'activeTimeRanges.date'],
|
||||
@@ -683,4 +698,3 @@ GAPI_USER_RATE_LIMIT_EXCEEDED = u'userRateLimitExceeded'
|
||||
GAPI_DEFAULT_RETRY_REASONS = [GAPI_QUOTA_EXCEEDED, GAPI_RATE_LIMIT_EXCEEDED, GAPI_USER_RATE_LIMIT_EXCEEDED, GAPI_BACKEND_ERROR, GAPI_INTERNAL_ERROR]
|
||||
GAPI_GMAIL_THROW_REASONS = [GAPI_SERVICE_NOT_AVAILABLE]
|
||||
GAPI_GPLUS_THROW_REASONS = [GAPI_SERVICE_NOT_AVAILABLE]
|
||||
|
||||
|
||||
@@ -1,3 +1,15 @@
|
||||
GAM 4.12
|
||||
- Realtime 2SV user status in gam info user and gam print users. Thanks hajdbo!
|
||||
- Reseller API support. Create and manage customers and subscriptions.
|
||||
- Delete or modify Gmail threads. Improved message delete/modify performance.
|
||||
- Support for the new G Suite Enterprise license
|
||||
- Manage S/MIME certificates for G Suite Enterprise users
|
||||
- Many fixes and improvements by Ross.
|
||||
|
||||
GAM 4.11
|
||||
- Allow newlines in calendar event descriptions (Ross)
|
||||
- All HTTP requests should now honor SSL verify setting, debug, etc
|
||||
|
||||
GAM 4.1
|
||||
- Fix "gam create project"
|
||||
- project create cleanups by Ross
|
||||
|
||||
Reference in New Issue
Block a user