This document describes the GAM command line syntax in  modified BNF, see https://en.wikipedia.org/wiki/Backus-Naur_Form
Skip the History section and start reading at Introduction.

Items on the command line are space separated, when an actual space character is required, it will be indicated by <Space>.
If an item contains spaces, it should be surrounded by ".

[] optional item
() group items
* item may appear zero or more times
+ item may appear one or more times
| separates alternative items

Primitives
<Digit> ::= 0|1|2|3|4|5|6|7|8|9
<Number> ::= <Digit>+
<Hex> ::= <Digit>|a|b|c|d|e|f|A|B|C|D|E|F
<Space> ::= an actual space character
<String> ::= a string of characters, surrounded by " if it contains spaces
<TrueValues> ::= true|on|yes|enabled|1
<FalseValues>= false|off|no|disabled|0
<DataTransferService> ::= googledrive|gdrive|drive|"drive and docs"
<ProductID> ::=
	Google-Apps|
	Google-Chrome-Device-Management|
	Google-Coordinate|
	Google-Drive-storage|
	Google-Vault
<SKUID> ::=
	free|standard|Google-Apps|
	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

Basic items built from primitives
<Boolean> ::= <TrueValues>|<FalseValues>
<ByteCount> ::= <Number>[m|k|b]
<CIDRnetmask> ::= <Number>.<Number>.<Number>.<Number>/<Number>
<ColorHex> ::= #<Hex><Hex><Hex><Hex><Hex><Hex>
<DomainName> ::= <String>(.<String>)+
<EmailAddress> ::= <String>@<DomainName>
<Year> ::= <Digit><Digit><Digit><Digit>
<Month> ::= <Digit><Digit>
<Day> ::= <Digit><Digit>
<Hour> ::= <Digit><Digit>
<Minute> ::= <Digit><Digit>
<Second> ::= <Digit><Digit>
<MilliSeconds> ::= <Digit><Digit><Digit>
<Date> ::= <Year>-<Month>-<Day>
<DateTime> ::= <Year>-<Month>-<Day>(<Space>|T)<Hour>:<Minute>
<Time> ::= <Year>-<Month>-<Day>(<Space>|T)<Hour>:<Minute>[:<Second>[.<MilliSeconds>[Z]]]
<RegularExpression> ::= <Python Regular Expression, see: https://docs.python.org/2/library/re.html>
<Tag> ::= <String>
<UniqueID> ::= uid:<String>

Named items
<AccessToken> ::= <String>
<ACLScope> ::= [user:]<EmailAddress>|group:<EmailAddress>|domain[:<DomainName>]|default
<CalendarACLRole> ::= editor|freebusy|freebusyreader|owner|reader|writer
<CalendarColorIndex> ::== <Number in range 1-24>
<CalendarItem> ::= <EmailAddress>|<String>
<ClientID> ::= <String>
<CourseAlias> ::= <String>
<CourseID> ::= <Number>|d:<CourseAlias>
<CourseParticipantType> ::= teacher|teachers|student|students
<CrOSID> ::= <String>
<CrOSItem> ::= <CrOSID>|(query:<QueryCrOS>)
<DestEmailAddress> ::= <EmailAddress>
<DomainAlias> ::= <String>
<DriveFileACLRole> :: =commenter|editor|organizer|owner|reader|writer
<DriveFileID> ::= <String>
<DriveFileURL> :: = https://docs.google.com/a/<DomainName>/document/d/<DriveFileID>/<String>
<DriveFileItem> ::= <DriveFileID>|<DriveFileURL>
<DriveFileName> ::= <String>
<DriveFolderID> ::= <String>
<DriveFolderName> ::= <String>
<EmailItem> ::= <EmailAddress>|<UniqueID>|<String>
<EventColorIndex> ::== <Number in range 1-11>
<EventID> ::= <String>
<FieldName> ::= <String>
<FileName> ::= <String>
<FileNamePattern> ::= <String>
<FilterID> ::= <Sttring>
<FolderName> ::= <String>
<GroupItem> ::= <EmailAddress>|<UniqueID>|<String>
<GuardianItem> ::= <EmailAddress>|<UniqueID>|<String>
<GuardianInvitationID> ::= <String>
<HostName> ::= <String>
<Key> ::= <String>
<LabelID> ::= <String>
<LabelName> ::= <String>
<LabelReplacement> ::= <String>
<Marker> ::= <String>
<MobileID> ::= <String>
<MobileItem> ::= <MobileID>|(query:<QueryMobile>)|(query <QueryMobile>)
<Name> ::= <String>
<NotificationID> ::= <String>
<OrgUnitID> ::= <String>
<OrgUnitPath> ::= /|(/<String)+
<ParameterKey> ::= <String>
<ParameterValue> ::= <String>
<PermissionID> ::= id:<String>|<EmailAddress>|anyone|anyonewithlink
<PrinterID> ::= <String>
<PrintJobAge> ::= <Number>[m|h|d]
<PrintJobID> ::= <String>
<PrintJobStatus> ::= done|error|held|in_progress|queued|submitted
<PropertyKey> ::= <String>
<PropertyValue> ::= <String>
<QueryCalendar> ::= <String>
<QueryContact> ::= <String> See: https://developers.google.com/google-apps/contacts/v3/reference#contacts-query-parameters-reference
<QueryCrOS> ::= <String> See: https://support.google.com/chrome/a/answer/1698333?hl=en
<QueryDriveFile> :: = <String> See: https://developers.google.com/drive/v2/web/search-parameters
<QueryGmail> ::= <String> See: https://support.google.com/mail/answer/7190
<QueryMobile> ::= <String> See: https://support.google.com/a/answer/1408863?hl=en#search
<QueryPrinter> ::= <String> See: https://developers.google.com/cloud-print/docs/appInterfaces#search
<QueryPrintJob> ::= <String> See: https://developers.google.com/cloud-print/docs/appInterfaces#parameters_3
<QueryUser> :: = <String> See: https://developers.google.com/admin-sdk/directory/v1/guides/search-users
<RequestID> ::= <String>
<ResourceID> ::= <String>
<RoleItem> ::= <UniqueID>|<String>
<RoleAssignmentID> ::= <String>
<SchemaName> ::= <String>
<Section> ::= <String>
<S/MIMEID> ::= <String>	
<StudentItem> ::= <EmailAddress>|<UniqueID>|<String>
<TeamDriveID> ::= <String>
<Timezone> ::= <String>
<Title> ::= <String>
<URI> ::= <String>
<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|
	annotatedassetid|assedid|asset|
	annotatedlocation|location|
	annotateduser|user|
	bootmode|
	deviceid|
	ethernetmacaddress|
	firmwareversion|
	lastenrollmenttime|
	lastsync|
	macaddress|
	meid|
	model|
	notes|
	ordernumber|
	orgunitpath|org|ou|
	osversion|
	platformversion|
	recentusers|
	serialnumber|
	status|
	supportenddate|
	willautorenew

<CrOSOrderByFieldName> ::=
	lastsync|location|notes|serialnumber|status|supportenddate|user

<DriveFieldName> ::=
	appdatacontents|
	cancomment|
	canreadrevisions|
	copyable|
	createddate|createdtime|
	description|
	editable|
	explicitlytrashed|
	fileextension|
	filesize|
	foldercolorrgb|
	fullfileextension|
	headrevisionid|
	iconlink|
	id|
	lastmodifyinguser|
	lastmodifyingusername|
	lastviewedbyme|lastviewedbymedate|lastviewedbymetime|lastviewedbyuser|
	md5|md5checksum|md5sum|
	mime|mimetype|
	modifiedbyme|modifiedbymedate|modifiedbymetime|modifiedbyuser|
	modifieddate|modifiedtime|
	name|
	originalfilename|
	ownedbyme|
	ownernames|
	owners|
	parents|
	permissions|
	quotabytesused|quotaused|
	restricted|
	shareable|
	shared|
	sharedwithmedate|sharedwithmetime|
	sharinguser|
	size|
	spaces|
	starred|
	thumbnaillink|
	title|
	trashed
	userpermission|
	version|
	viewed|
	viewerscancopycontent|
	webcontentlink|
	webviewlink|
	writerscanshare

<DriveOrderByFieldName> ::=
	createddate|
	folder|
	lastviewedbyme|lastviewedbymedate|lastviewedbyuser|
	modifiedbyme|modifiedbymedate|modifiedbyuser|
	modifieddate|
	name|
	quotabytesused|quotaused|
	recency|
	sharedwithmedate|
	starred|
	title|
	viewedbymedate

<GroupFieldName> ::=
	admincreated|
	aliases|
	allowexternalmembers|
	allowgooglecommunication|
	allowwebposting|
	archiveonly|
	customreplyto|
	defaultmessagedenynotificationtext|
	description|
	directmemberscount|
	email|
	id|
	includeinglobaladdresslist|gal|
	isarchived|
	maxmessagebytes|
	memberscanpostasthegroup|
	messagedisplayfont|
	messagemoderationlevel|
	name
	primarylanguage|
	replyto|
	sendmessagedenynotification|
	showingroupdirectory|
	spammoderationlevel|
	whocanadd|
	whocancontactowner|
	whocaninvite|
	whocanjoin|
	whocanleavegroup|
	whocanpostmessage|
	whocanviewgroup|
	whocanviewmembership

<GuardianState> ::=
	complete|
	pending

<MembersFieldName> ::=
	email|
	id|
	name|
	role|
	type

<MobileFieldName> ::=
	adbstatus|
	applications|
	basebandversion|
	bootloaderversion|
	brand|
	buildnumber|
	defaultlanguage|
	developeroptionsstatus|
	devicecompromisedstatus|
	deviceid|
	devicepasswordstatus|
	email|
	encryptionstatus|
	firstsync|
	hardware|
	hardwareid|
	imei|
	kernelversion|
	lastsync|
	managedaccountisonownerprofile|
	manufacturer|
	meid|
	model|
	name|
	networkoperator|
	os|
	otheraccountsinfo|
	privilege|
	releaseversion|
	resourceid|
	securitypatchlevel|
	serialnumber|
	status|
	supportsworkprofile|
	type|
	unknownsourcesstatus|
	useragent|
	wifimacaddress

<MobileFieldNameList> ::= "<MobileFieldName>(,<MobileFieldName>)*"

<MobileOrderByFieldName> ::=
	deviceid|email|lastsync|model|name|os|status|type

<OrgUnitFieldName> ::=
	description|id|inherit|name|orgunitpath|parent|parentid|inherit

<PrintJobOrderByFieldName> ::=
	create_time|status|title

<UserFieldName> ::=
	addresses|address|
	agreedtoterms|agreed2terms|
	changepasswordatnextlogin|changepassword|
	creationtime|
	deletiontime|
	email|emails|otheremail|otheremails|
	externalids|externalid|
	familyname|firstname|fullname|givenname|lastname|name|
	id|
	ims|im|
	includeinglobaladdresslist|gal|
	ipwhitelisted|
	isdelegatedadmin|admin|isadmin|
	ismailboxsetup|
	is2svenforced|
	is2svenrolled|
	lastlogintime|
	noneditablealiases|aliases|nicknames|
	notes|note|
	organizations|organization|
	orgunitpath|org|ou|
	phones|phone|
	primaryemail|username|
	relations|relation|
	suspended|
	thumbnailphotourl|photo|photourl|
	websites|website|

<UserOrderByFieldName> ::=
	familyname|lastname|givenname|firstname|email

Named Lists
Lists can be in the following formats
Items, separated by commas, without spaces or commas in the items themselves: item(,item)*
Items, separated by spaces, without spaces or commas in the items themselves: "item( item)*"
Items, separated by commas, with spaces or commas in the items themselves: "'it em'(,'it,em')*"
Items, separated by spaces, with spaces or commas in the items themselves: "'it em'( 'it,em')*"

<ACLList> ::== "<ACLScope>(,<ACLScope>)*"
<CalendarList> ::= "<CalendarItem>(,<CalendarItem>)*"
<CourseAliasList> ::= "<CourseAlias>(,<CourseAlias>)*"
<CourseIDList> ::= "<CourseID>(,<CourseID>)*"
<CrOSFieldNameList> ::= "<CrOSFieldName>(,<CrOSFieldName>)*"
<CrOSList> ::= "<CrOSID>(,<CrOSID>)*"
<DriveFileList> ::= "<DriveFileItem>(,<DriveFileItem>)*"
<EmailAddressList> ::= "<EmailAddress>(,<EmailAddress>)*"
<EventIDList> ::= "<EventID>(,<EventID>)*"
<FileFormatList> ::= "<FileFormat>(,<FileFormat)*"
<FilterIDList> ::= "<FilterID>(,<FilterID>)*"
<GroupFieldNameList> ::= "<GroupFieldName>(,<GroupFieldName>)*"
<GroupList> ::= "<GroupItem>(,<GroupItem>)*"
<GuardianStateList> ::= "<GuardianState>(,<GuardianState>)*"
<LabelNameList> ::= "<LabelName>(,<LabelName)*"
<MembersFieldNameList> ::= "<MembersFieldName>(,<MembersFieldName>)*"
<MobileList> ::= "<MobileId>(,<MobileId>)*"
<OrgUnitList> ::== "<OrgUnitPath>(,<OrgUnitPath>)*"
<PrinterIDList> ::= "<PrinterID>(,<PrinterID>)*"
<ProductIDList> ::= "(<ProductID>|SKUID>)(,<ProductID>|SKUID>)*"
<PrintJobIDList> ::= "<PrintJobID>(,<PrintJobID>)*"
<ResourceIDList> ::= "<ResourceID>(,<ResourceID>)*"
<SKUIDList> ="<SKUID>(,<SKUID>)*"
<SchemaNameList> ::= "<SchemaName>(,<SchemaName>)*"
<UserFieldNameList> ::= "<UserFieldName>(,<UserFieldName>)*"
<UserList> ::= "<UserItem>(,<UserItem>)*"

Specify a collection of ChromeOS devices by directly specifying them
<CrOSTypeEntity> ::=
		(all cros)|
		(cros <CrOSList>)|
Specify a collection of Users by directly specifying them or by specifiying items that will yield a list of users
<UserTypeEntity> ::=
		(all users)|
		(user <UserItem>)|
		(users <UserList>)|
		(group <GroupItem)|
		(ou|org <OrgUnitPath)|
		(ou_and_children|ou_and_child <OrgUnitPath>)|
		(courseparticipants <CourseID>)|
		(students <CourseID>)|
		(teachers <CourseID>)|
		(file <FileName>)|
		(csvfile <FileName>:<FieldName>)|
		(license|licenses|licence|licences <SKUIDList>)|
		(query <QueryUser>)


Item attributes
<CalendarAttributes> ::=
	(selected <Boolean>)|(hidden <Boolean>)|(summary <String>)|(colorindex|colorid <CalendarColorIndex>)|(backgroundcolor <ColorHex>)|(foregroundcolor <ColorHex>)|
	(reminder clear|(email|sms|pop <Number>))|
	(notification clear|(email|sms eventcreation|eventchange|eventcancellation|eventresponse|agenda))

<CalendarSettings> ::==
	(summary <String>)|(description <String>)|(location <String>)|(timezone <String>)

<CourseAttributes> ::=
	(name <String>)|(section <string>)|(heading <String>)|(room <String>)|(description <String>)|
	(state|status active|archived|provisioned|declined)

<CrOSAttributes> ::=
	(asset|assetid|tag <String>)|
	(location <String>)|
	(notes <String>)|
	(org|ou <OrgUnitPath>)|
	(user <Name>)

<DriveFileAddAttributes> ::=
	(localfile <FileName>)|
	(convert)|(ocr)|(ocrlanguage <Language>)|(restricted|restrict)|(starred|star)|(trashed|trash)|(viewed|view)|
	(lastviewedbyme <Time>)|(modifieddate|modifiedtime <Time>)|(description <String>)|(mimetype gdoc|gdocument|gdrawing|gfolder|gdirectory|gform|gfusion|gpresentation|gscript|gsite|gsheet|gspreadsheet)|
	(parentid <DriveFolderID>)|(parentname <FolderName>)|writerscantshare
<DriveFileUpdateAttributes> ::=
	(localfile <FileName>)|
	(convert)|(ocr)|(ocrlanguage <Language>)|(restricted|restrict <Boolean>)|(starred|star <Boolean>)|(trashed|trash <Boolean>)|(viewed|view <Boolean>)|
	(lastviewedbyme <Time>)|(modifieddate <Time>)|(description <String>)|(mimetype gdoc|gdocument|gdrawing|gfolder|gdirectory|gform|gfusion|gpresentation|gscript|gsite|gsheet|gspreadsheet)|
	(parentid <DriveFolderID>)|(parentname <FolderName>)|writerscantshare
<EventAttributes> ::=
	(anyonecanaddself)|(guestscantinviteothers)|(guestscantseeothers)|(notifyattendees)|(available)|(visibility default|public|prvate)|(tentative)|
	(attendee <EmailAddress>)|(optionalattendee <EmailAddress>)|
	(description <String>)|(summary <String>)|(location <String>)|(id <String>)|
	(source <String> <URL>)|(privateproperty <PropertyKey> <PropertyValue>)|(sharedproperty <PropertyKey> <PropertyValue>)|
	(recurrence <RRULE, EXRULE, RDATE and EXDATE line>)|
	(start allday <Date>)|(start <Time>)|(end allday <Date>)|(end <Time>)|(timezone <Timezone>)|
	(noreminders|(reminder email|popup|sms <Number>))|
	(colorindex|colorid <EventColorIndex>)

<GroupAttributes> ::=
	(allowexternalmembers <Boolean>)|
	(allowgooglecommunication <Boolean>)|
	(allowwebposting <Boolean>)|
	(archiveonly <Boolean>)|
	(customfootertext <String>)|
	(customreplyto <EmailAddress>)|
	(defaultmessagedenynotificationtext <String>)|
	(description <String>)|
	(gal|includeInGlobalAddressList <Boolean>)|
	(includecustomfooter <Boolean>)|
	(isarchived <Boolean>)|
	(maxmessagebytes <ByteCount>)|
	(memberscanpostasthegroup <Boolean>)|
	(messagedisplayfont DEFAULT_FONT|FIXED_WIDTH_FONT)|
	(messagemoderationlevel MODERATE_ALL_MESSAGES|MODERATE_NON_MEMBERS|MODERATE_NEW_MEMBERS|MODERATE_NONE)|
	(name <String>)|
	(primarylanguage <Language>)|
	(replyto REPLY_TO_CUSTOM|REPLY_TO_SENDER|REPLY_TO_LIST|REPLY_TO_OWNER|REPLY_TO_IGNORE|REPLY_TO_MANAGERS)|
	(sendmessagedenynotification <Boolean>)|
	(showingroupdirectory <Boolean>)|
	(spammoderationlevel ALLOW|MODERATE|SILENTLY_MODERATE|REJECT)|
	(whocanadd ALL_MEMBERS_CAN_ADD|ALL_MANAGERS_CAN_ADD|NONE_CAN_ADD)|
	(whocancontactowner ANYONE_CAN_CONTACT|ALL_IN_DOMAIN_CAN_CONTACT|ALL_MEMBERS_CAN_CONTACT|ALL_MANAGERS_CAN_CONTACT)|
	(whocaninvite ALL_MEMBERS_CAN_INVITE|ALL_MANAGERS_CAN_INVITE|NONE_CAN_INVITE)|
	(whocanjoin ANYONE_CAN_JOIN|ALL_IN_DOMAIN_CAN_JOIN|INVITED_CAN_JOIN|CAN_REQUEST_TO_JOIN)|
	(whocanleavegroup ALL_MANAGERS_CAN_LEAVE|ALL_MEMBERS_CAN_LEAVE|NONE_CAN_LEAVE)|
	(whocanpostmessage NONE_CAN_POST|ALL_MANAGERS_CAN_POST|ALL_MEMBERS_CAN_POST|ALL_IN_DOMAIN_CAN_POST|ANYONE_CAN_POST)|
	(whocanviewgroup ANYONE_CAN_VIEW|ALL_IN_DOMAIN_CAN_VIEW|ALL_MEMBERS_CAN_VIEW|ALL_MANAGERS_CAN_VIEW)|
	(whocanviewmembership ALL_IN_DOMAIN_CAN_VIEW|ALL_MEMBERS_CAN_VIEW|ALL_MANAGERS_CAN_VIEW)

<MobileAction> ::=
	admin_remote_wipe|wipe|admin_account_wipe|accountwipe|wipeaccount|approve|block|cancel_remote_wipe_then_activate|cancel_remote_wipe_then_block

<PrinterAttributes> ::= (currentquota <Number>)|(dailyquota <Number>)|
	(defaultdisplayname <String>)|(description <String>)|(displayname <String>)|(firmware <String>)|(gcpversion <String>)|
	(istosaccepted <Boolean>)|(manufacturer <String>)|(model <String>)|(name <String>)|(ownerid <EmailAddress>)|(proxy <String>)|(public <Boolean>)|
	(quotaenabled <Boolean>)|(status <Number>)|(type <String>)|(uuid <String>)|
	(setupurl <URL>)|(supporturl <URL>)|(updateurl <URL>)

<SchemaFieldDefinition> ::=
	field <FieldName> (type bool|date|double|email|int64|phone|string) [multivalued|multivalue] [indexed] [restricted] [range <Number> <Number>] endfield

<UserAttributes> ::=
	(address|addresses clear|(type work|home|other|(custom <String>) [unstructured|formatted <String>] [pobox <String>] [extendedaddress <String>] [streetaddress <String>]
		[locality <String>] [region <String>] [postalcode <String>] [country <String>] [countrycode <String>] notprimary|primary))|
	(admin <Boolean>)|
	(agreed2terms|agreedtoterms <Boolean>)|
	(changepassword|changepasswordatnextlogin <Boolean>)|
	(crypt|sha|sha1|sha-1|md5|nohash)|
	(customerid <String>)|
	(email|primaryemail|username <EmailAddress>)|
	(emails|otheremail|otheremails clear|(work|home|other|<String> <String>))|
	(externalid|externalids clear|(account|customer|network|organization|<String> <String>))|
	(firstname|givenname <String>)|
	(gal|includeinglobaladdresslist <Boolean>)|
	(im|ims clear|(type work|home|other|(custom <String>) protocol aim|gtalk|icq|jabber|msn|net_meeting|qq|skype|yahoo|(custom_protocol <String>) <String> [notprimary|primary]))|
	(ipwhitelisted <Boolean>)|
	(lastname|familyname <String>)|
	(note|notes clear|([text_plain|text_html] <String>|(file <FileName> [charset <CharSet>])))|
	(organization|organizations clear|([type domain_only|school|unknown|work] [customtype <String>] [name <String>] [title <String>] [department <String>] [symbol <String>]
		[costcenter <String>]  [location <String>] [description <String>] [domain <String>] notprimary|primary))|
	(org|ou|orgunitpath <OrgUnitPath>)
	(password random|<String>)|
	(phone|phones clear|([type work|home|other|work_fax|home_fax|other_fax|main|company_main|assistant|mobile|work_mobile|pager|work_pager|car|radio|callback|isdn|telex|tty_tdd|grand_central|(custom <String>)
		[value <String>] notprimary|primary))|
	(relation|relations clear|(spouse|child|mother|father|parent|brother|sister|friend|relative|domestic_partner|manager|assistant|referred_by|partner|<String> <String>))|
	(suspended <Boolean>)|
	(website|websites clear|(home_page|blog|profile|work|home|other|ftp|reservations|app_install_page|<String> <URL> [notprimary|primary]))|
	(<SchemaName>.<FieldName> [multivalued|multivalue|value|multinonempty [type work|home|other|(custom <String>)]] <String>)

gam version [check] [simple]
gam help

gam batch <FileName>|- [charset <Charset>]
gam csv <FileName>|- [charset <Charset>] gam <GAM argument list>

You can make substitutions in <GAMArgumentList> with values from the CSV file.
An argument containing exactly ~xxx is replaced by the value of field xxx from the CSV file
An argument containing instances of ~~xxx~~ has xxx replaced by the value of field xxx from the CSV file

Example: gam csv Users.csv gam update user "~primaryEmail" address type work unstructured "~~Street~~, ~~City~~, ~~State~~ ~~ZIP~~"
Each user (~primaryEmail, e.g. foo@bar.com) would have their work address updated

gam create project [<EmailAddress>]
gam update project [<EmailAddress>]

gam oauth|oauth2 create|request [<EmailAddress>]
gam oauth|oauth2 delete|revoke
gam oauth|oauth2 info|verify [<AccessToken>]

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> (sku <SKUID>)
	 (plan annual_monthly_pay|annual_yearly_pay|flexible|trial) (seats <NumberOfSeats> <MaximumNumberOfSeats>)
	 [customer_auth_token <String>] [deal <String>] [purchaseorderid <String>]
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]
	[date <Date>] [fields|parameters <String>]
gam report admin|calendar|calendars|drive|docs|doc|groups|group|logins|login|mobile|tokens|token [todrive]
	[start <Time>] [end <Time>] [(user all|<UserItem>)] [event <String>] [filter|filters <String>] [ip <String>]

gam create admin <UserItem> <RoleItem> customer|(org_unit <OrgUnitItem>)
gam delete admin <RoleAssignmentId>
gam print admins [todrive] [user <UserItem>] [role <RoleItem>]
gam print adminroles|roles [todrive]

gam create domain <DomainName>
gam update domain <DomainName> primary
gam delete domain <DomainName>
gam info domain [<DomainName>]
gam print domains [todrive]

gam create domainalias|aliasdomain <DomainAlias> <DomainName>
gam delete domainalias|aliasdomain <DomainAlias>
gam info domainalias|aliasdomain <DomainAlias>
gam print domainaliases|aliasdomains [todrive]

gam info customer
gam update customer [adminsecondaryemail|alternateemail <EmailAddress>] [language <LanguageCode] [phone|phonenumber <String>]
	[contact|contactname <String>] [name|organizationname <String>]
	[address1|addressline1 <String>] [address2|addressline2 <String>] [address3|addressline3 <String>]
	[locality <String>] [region <String>] [postalcode <String>] [country|countrycode <String>]

gam create datatransfer|transfer <OldOwnerID> <DataTransferService> <NewOwnerID> (<ParameterKey> <ParameterValue>)*
gam info datatransfer|transfer <TransferID>
gam print datatransfers|transfers [todrive] [olduser|oldowner <UserItem>] [newuser|newowner <UserItem>] [status <String>]

gam print transferapps

gam create org|ou <Name> [description <String>] [parent <OrgUnitPath>] [inherit|noinherit]
gam update org|ou <OrgUnitPath> [name <Name>] [description <String>] [parent <OrgUnitPath>] [inherit|noinherit]
gam update org|ou <OrgUnitPath> add|move <CrOSTypeEntity>|<UserTypeEntity>
gam delete org|ou <OrgUnitPath>
gam info org|ou <OrgUnitPath> [nousers] [children|child]
gam print orgs|ous [todrive] [toplevelonly] [from_parent <OrgUnitPath>] [allfields|<OrgUnitFieldName>*]

gam create alias|nickname <EmailAddress> user|group|target <UniqueID>|<EmailAddress>
gam update alias|nickname <EmailAddress> user|group|target <UniqueID>|<EmailAddress>
gam delete alias|nickname [user|group|target] <UniqueID>|<EmailAddress>
gam info alias|nickname <EmailAddress>
gam print aliases|nicknames [todrive]

gam calendar <CalendarItem> add <CalendarACLRole> ([user] <EmailAddress>)|(group <EmailAddress>)|(domain [<DomainName>])|default
gam calendar <CalendarItem> update <CalendarACLRole> ([user] <EmailAddress>)|(group <EmailAddress>)|(domain [<DomainName>])|default
gam calendar <CalendarItem> del|delete <CalendarACLRole> <EmailAddress>|(domain [<DomainName>])|default
gam calendar <CalendarItem> showacl

gam calendar <CalendarItem> addevent <EventAttributes>+
gam calendar <CalendarItem> deleteevent (id|eventid <EventID>)* (query|eventquery <QueryCalendar>)* [doit] [notifyattendees]
gam calendar <CalendarItem> wipe

gam update cros <CrOSItem> (<CrOSAttributes>+)|(action deprovision_same_model_replace|deprovision_different_model_replace|deprovision_retiring_device|disable|reenable [acknowledge_device_touch_requirement])
gam info cros <CrOSItem> [nolists] [listlimit <Number>] [start <Date>] [end <Date>]
	[basic|full|allfields] <CrOSFieldName>* [fields <CrOSFieldNameList>]

gam print cros [todrive] [query <QueryCrOS>] [limittoou <OrgUnitItem>]
	[orderby <CrOSOrderByFieldName> [ascending|descending]] [nolists] [listlimit <Number>] [start <Date>] [end <Date>]
	[basic|full|allfields] <CrOSFieldName>* [fields <CrOSFieldNameList>]
gam <CrOSTypeEntity> print

Summary of printing:
gam print cros
Prints a header row and deviceId for all CrOS devices.
gam <CrOSTypeEntity> print cros
Prints no header row and deviceId for specified CrOS devices.
gam print cros ... basic|full
Prints a header row and selected fields for specified CrOS devices.

The basic argument yields these column headers: deviceId,annotatedAssetId,annotatedLocation,annotatedUser,lastSync,notes,serialNumber,status
The full argument yields all column headers including two headers, recentUsers and activeTimeRanges,
that repeat with two/four subvalues each, yielding a large number of columns that make the output hard to process.
The nolists argument suppresses these two headers; if you want these headers in a more manageable form use the following arguments.
If recentusers is specified, for each recent user, the columns recentUsers.email and recentUsers.type are output on a separate row
with all of the other headers.
If timeranges is specified, for each time range entry, the columns activeTimeRanges.date, activeTimeRange.activeTime,
activeTimeRanges.duration and activeTimeRanges.minutes are output on a separate row with all of the other headers.
The listlimit <Number> argument limits the number of repetitions to <Number>; if not specified or <Number> equals zero, there is no limit.
The start <Date> and end <Date> arguments filter the time ranges.

gam print crosactivity [todrive] [query <QueryCrOS>] [limittoou <OrgUnitItem>]
	[recentusers] [timeranges] [both] [listlimit <Number>] [start <Date>] [end <Date>] [delimiter <String>]

The basic column headers are: deviceId,annotatedAssetId,annotatedLocation,serialNumber,orgUnitPath.
If recentusers is specified, all of the recent users email addresses, separated by the delimiter <String>,
with header recentUsers.email, are output with the basic headers.
If timeranges is specified, for each time range entry, activeTimeRanges.date and activeTimeRanges.duration and activeTimeRanges.minutes,
are output on a separate row with the basic headers.
The default is to include both recentusers and timeranges.
The listlimit <Number> argument limits the number of recent users and time ranges to <Number>; if not specified or <Number> equals zero, there is no limit.
The start <Date> and end <Date> arguments filter the time ranges.
Delimiter defaults to comma.

gam update mobile <MobileItem> action <MobileAction>
gam delete mobile <MobileItem>
gam info mobile <MobileItem>
gam print mobile [todrive] [query <QueryMobile>] [basic|full] [orderby <MobileOrderByFieldName> [ascending|descending]]
	fields <MobileFieldNameList>] [delimiter <String>] [appslimit <Number>] [listlimit <Number>]

gam create group <EmailAddress> <GroupAttributes>*
gam update group <GroupItem> [admincreated <Boolean>] [email <EmailAddress>] <GroupAttributes>*
gam update group <GroupItem> add [member|manager|owner] [notsuspended] <UserTypeEntity>
gam update group <GroupItem> delete|remove [member|manager|owner] <UserTypeEntity>
gam update group <GroupItem> sync [member|manager|owner] [notsuspended] <UserTypeEntity>
gam update group <GroupItem> update [member|manager|owner] <UserTypeEntity>
gam delete group <GroupItem>
gam info group <GroupItem> [nousers] [noaliases] [groups]
gam update group <GroupItem> clear [member] [manager] [owner]

gam print groups [todrive] ([domain <DomainName>] [member <UserItem>])
	[maxresults <Number>] [allfields|([settings] <GroupFieldName>* [fields <GroupFieldNameList>])] [delimiter <String>]
	[members|memberscount] [managers|managerscount] [owners|ownerscount]

gam print group-members|groups-members [todrive] ([domain <DomainName>] [member <UserItem>])|[group <GroupItem>]
	[membernames] [fields <MembersFieldNameList>]

gam print license|licenses|licence|licences [todrive] [(products|product <ProductIDList>)|(skus|sku <SKUIDList>)]

gam update notification|notifications [(id all)|(id <NotificationID>)*] unread|read
gam delete notification|notifications [(id all)|(id <NotificationID>)*]
gam info notification|notifications [unreadonly]

gam create resource <ResourceID> <Name> [description <String>] [type <String>]
gam update resource <ResourceID> [name <Name>] [description <String>] [type <String>]
gam delete resource <ResourceID>
gam info resource <ResourceID>
gam print resources [todrive] [allfields] [id] [name] [description] [email] [type]

gam create schema|schemas <SchemaName> <SchemaFieldDefinition>+
gam update schema <SchemaName> <SchemaFieldDefinition>* (deletefield <FieldName>)*
gam delete schema <SchemaName>
gam info schema <SchemaName>
gam show schema|schemas
gam print schema|schemas

gam create user <EmailAddress> <UserAttributes>*
gam update user <UserItem> <UserAttributes>* [clearschema <SchemaName>] [clearschema <SchemaName>.<FieldName>]
gam delete user <UserItem>
gam undelete user <UserItem> [org|ou <OrgUnitPath>]
gam info user [<UserItem>] [noaliases] [nogroups] [nolicenses|nolicences] [noschemas] [schemas|custom <SchemaNameList>] [userview] [skus|sku <SKUIDList>]

gam print users [todrive] ([domain <DomainName>] [query <QueryUser>] [deleted_only|only_deleted])
	[groups] [license|licenses|licence|licences] [emailpart|emailparts|username]
	[orderby <UserOrderByFieldName> [ascending|descending]] [userview]
	[allfields|basic|full | ((<UserFieldName>* | fields <UserFieldNameList>) [schemas|custom all|<SchemaNameList>])]
gam <UserTypeEntity> print

Summary of printing:
gam print users
Prints a header row and primaryEmail for all users.
gam <UserTypeEntity> print
Prints no header row and primaryEmail for specified users.

gam create verify|verification <DomainName>
gam update verify|verification <DomainName> cname|txt|text|site|file
gam info verify|verification

gam create course id|alias <CourseAlias> [teacher <UserItem>] <CourseAttributes>*
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] [countsonly] [fields <CourseFieldNameList>] [skipfields <CourseFieldNameList>]

gam course <CourseID> add alias <CourseAlias>
gam course <CourseID> delete alias <CourseAlias>
gam course <CourseID> add teachers|students <UserItem>
gam course <CourseID> delete|remove teachers|students <UserItem>
gam course <CourseID> sync teachers|students <UserTypeEntity>
gam print course-participants [todrive] (course|class <CourseID>)*|([teacher <UserItem>] [student <UserItem>]) [show all|students|teachers]

gam create guardian|guardianinvite|inviteguardian <EmailAddress> <StudentItem>
gam delete guardian|guardians <GuardianItem> <StudentItem> [invitation]
gam show guardian|guardians [invitedguardian <EmailAddress>] [student <StudentItem>] [invitations] [states <GuardianStateList>] [<UserTypeEntity>]
gam print guardian|guardians [todrive] [invitedguardian <EmailAddress>] [student <StudentItem>] [invitations [states <GuardianStateList>]] [<UserTypeEntity>]
gam cancel guardianinvitation|guardianinvitations <GuardianInvitationID> <StudentItem>

gam printer register
gam update printer <PrinterID> <PrinterAttributes>+
gam delete printer <PrinterID>
gam info printer <PrinterID> [everything]
gam print printers [todrive] [query <QueryPrinter>] [type <String>] [status <String>] [extrafields <String>]

gam printer <PrinterID> add user|manager|owner <EmailAddress>|[domain:]<DomainName>|public
gam printer <PrinterID> delete <EmailAddress>|[domain:]<DomainName>|public
gam printer <PrinterID> showacl
gam printjob <PrintJobID> cancel
gam printjob <PrintJobID> delete
gam printjob <PrintJobID> resubmit <PrinterID>

gam printjob <PrinterID>|any fetch
	[olderthan|newerthan <PrintJobAge>] [query <QueryPrintJob>]
	[status <PrintJobStatus>]
	[orderby <PrintJobOrderByFieldName> [ascending|descending]]
	[owner|user <EmailAddress>]
	[limit <Number>] [drivedir|(targetfolder <FilePath>)]
gam printjob <PrinterID> submit <FileName>|<URL> [name|title <String>] (tag <String>)*
gam print printjobs [todrive] [printer|printerid <PrinterID>]
	[olderthan|newerthan <PrintJobAge>] [query <QueryPrintJob>]
	[status <PrintJobStatus>]
	[orderby <PrintJobOrderByFieldName> [ascending|descending]]
	[owner|user <EmailAddress>]
	[limit <Number>]

gam <UserTypeEntity> delete|del asp|asps|applicationspecificpasswords <AspID>
gam <UserTypeEntity> show asps|asp|applicationspecificpasswords

gam <UserTypeEntity> update backupcodes|backupcode|verificationcodes
gam <UserTypeEntity> delete|del backupcodes|backupcode|verificationcodes
gam <UserTypeEntity> show backupcodes|backupcode|verificationcodes

gam <UserTypeEntity> add calendar <CalendarItem> <CalendarAttributes>*
gam <UserTypeEntity> update calendar <CalendarItem>|primary <CalendarAttributes>+
gam <UserTypeEntity> delete|del calendar <CalendarItem>
gam <UserTypeEntity> show calendars
gam <UserTypeEntity> info calendar <CalendarItem>|primary
gam <UserTypeEntity> print calendars [todrive]

gam <UserTypeEntity> show calsettings
gam <UserTypeEntity> update calattendees csv <FileName> [dryrun] [start <Date>] [end <Date>] [allevents]
gam <UserTypeEntity> transfer seccals <UserItem> [keepuser]

gam <UserTypeEntity> print|show driveactivity [todrive] [fileid <DriveFileID>] [folderid <DriveFolderID>]
gam <UserTypeEntity> print|show drivesettings [todrive]
gam <UserTypeEntity> print|show filelist [todrive] [anyowner] [query <QueryDriveFile>] [fullquery <QueryDriveFile>]
	[allfields|<DriveFieldName>*] (orderby <DriveOrderByFieldName> [ascending|descending])*

gam <UserTypeEntity> show fileinfo <DriveFileID> [allfields|<DriveFieldName>*]
gam <UserTypeEntity> show filerevisions <DriveFileID>
gam <UserTypeEntity> show filetree [anyowner] (orderby <DriveOrderByFieldName> [ascending|descending])*

gam <UserTypeEntity> add drivefile [drivefilename <DriveFileName>] <DriveFileAddAttributes>*
gam <UserTypeEntity> update drivefile (id <DriveFileID)|(drivefilename <DriveFileName>)|(query <QueryDriveFile) [copy] [newfilename <DriveFileName>] <DriveFileUpdateAttributes>*
gam <UserTypeEntity> get drivefile (id <DriveFileID>)|(drivefilename <DriveFileName>)|(query <QueryDriveFile>) [format <FileFormatList>] [targetfolder <FilePath>] [revision <Number>]
gam <UserTypeEntity> delete|del drivefile <DriveFileID>|<DriveFileURL>|(query:<QueryDriveFile>) [purge|untrash]
gam <UserTypeEntity> transfer drive <UserItem> [keepuser]
gam <UserTypeEntity> delete|del emptydrivefolders
gam <UserTypeEntity> empty drivetrash

gam <UserTypeEntity> add drivefileacl <DriveFileID> anyone|(user <UserItem>)|(group <GroupItem>)|(domain <DomainName>)
	(role <DriveFileACLRole>) [withlink|discoverable] [sendemail] [emailmessage <String>]
gam <UserTypeEntity> update drivefileacl <DriveFileID> <PermissionID>
	(role <DriveFileACLRole>) [withlink|discoverable] [removeexpiration]
gam <UserTypeEntity> delete|del drivefileacl <DriveFileID> <PermissionID>
gam <UserTypeEntity> show drivefileacl <DriveFileID>

gam <UserTypeEntity> delete|del alias|aliases

gam <UserTypeEntity> delete|del group|groups

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
gam <UserTypeEntity> get photo [drivedir|(targetfolder <FilePath>)] [noshow]

gam <UserTypeEntity> profile share|shared|unshare|unshared
gam <UserTypeEntity> show profile

gam <UserTypeEntity> delete|del token|tokens clientid <ClientID>
gam <UserTypeEntity> show tokens|token [clientid <ClientID>]
gam <UserTypeEntity> print tokens|token [todrive] [clientid <ClientID>]
gam print tokens|token [todrive] [clientid <ClientID>] [<UserTypeEntity>]

gam <UserTypeEntity> update user <UserAttributes>

gam <UserTypeEntity> deprovision|deprov

gam <UserTypeEntity> [add] label|labels <Name> [messagelistvisibility hide|show] [labellistvisibility hide|show|showifunread]
gam <UserTypeEntity> update labelsettings <LabelName> [name <Name>] [messagelistvisibility hide|show] [labellistvisibility hide|show|showifunread]
gam <UserTypeEntity> update label|labels [search <RegularExpression>] [replace <LabelReplacement>] [merge]
gam <UserTypeEntity> delete|del label|labels <LabelName>|regex:<RegularExpression>|--ALL_LABELS--
gam <UserTypeEntity> show labels|label [onlyuser] [showcounts]

gam <UserTypeEntity> delete messages query <QueryGmail> [doit] [max_to_delete|max_to_process <Number>]
gam <UserTypeEntity> modify messages query <QueryGmail> [doit] [max_to_modify|max_to_process <Number>] (addlabel <LabelName>)* (removelabel <LabelName>)*
gam <UserTypeEntity> trash messages query <QueryGmail> [doit] [max_to_trash|max_to_process <Number>]
gam <UserTypeEntity> untrash messages query <QueryGmail> [doit] [max_to_untrash|max_to_process <Number>]

gam <UserTypeEntity> show gmailprofile [todrive]
gam <UserTypeEntity> show gplusprofile [todrive]

gam <UserTypeEntity> add delegate|delegates <EmailAddress>
gam <UserTypeEntity> delegate|delegates to <EmailAddress>
gam <UserTypeEntity> delete|del delegate|delegates <EmailAddress>
gam <UserTypeEntity> show delegates|delegate [csv]
gam <UserTypeEntity> print delegates [todrive]

gam <UserTypeEntity> [add] filter [from <EmailAddress>] [to <EmailAddress>] [subject <String>] [haswords|query <List>] [nowords|negatedquery <List>] [musthaveattachment|hasattachment] [excludechats] [size larger|smaller <ByteCount>]
	[label <LabelID>] [important|notimportant] [star] [trash] [markread] [archive] [neverspam] [forward <EmailAddress>]
gam <UserTypeEntity> delete filters <FilterIDEntity>
gam <UserTypeEntity> show filters
gam <UserTypeEntity> info filters <FilterIDEntity>
gam <UserTypeEntity> print filters [todrive]

gam <UserTypeEntity> forward <FalseValues>
gam <UserTypeEntity> forward <TrueValues> keep|leaveininbox|archive|delete|trash|markread <EmailAddress>
gam <UserTypeEntity> show forward
gam <UserTypeEntity> print forward [todrive]

gam <UserTypeEntity> add forwardingaddress|forwardingaddresses <EmailAddress>
gam <UserTypeEntity> delete forwardingaddress|forwardingaddresses <EmailAddress>
gam <UserTypeEntity> show forwardingaddress|forwardingaddresses
gam <UserTypeEntity> info forwardingaddress|forwardingaddresses <EmailAddress>
gam <UserTypeEntity> print forwardingaddress|forwardingaddresses [todrive]

gam <UserTypeEntity> imap|imap4 <Boolean> [noautoexpunge] [expungebehavior archive|deleteforever|trash] [maxfoldersize 0|1000|2000|5000|10000]
gam <UserTypeEntity> show imap|imap4

gam <UserTypeEntity> pop|pop3 <Boolean> [for allmail|newmail|mailfromnowon|fromnowown] [action keep|leaveininbox|archive|delete|trash|markread]
gam <UserTypeEntity> show pop|pop3

gam <UserTypeEntity> [add] sendas <EmailAddress> <Name> [signature|sig <String>|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)*] [html] [replyto <EmailAddress>] [default] [treatasalias <Boolean>]
gam <UserTypeEntity> update sendas <EmailAddress> [name <Name>] [signature|sig <String>|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)*] [html] [replyto <EmailAddress>] [default] [treatasalias <Boolean>]
gam <UserTypeEntity> delete sendas <EmailAddress>
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]

gam <UserTypeEntity> add teamdrive <Name>
gam <UserTypeEntity> update teamdrive <TeamDriveID> [name <Name>]
gam <UserTypeEntity> delete teamdrive <TeamDriveID>
gam <UserTypeEntity> show teamdrives
gam <UserTypeEntity> print teamdrives [todrive]

gam <UserTypeEntity> vacation <FalseValues>
gam <UserTypeEntity> vacation <TrueValues> subject <String> (message <String>)|(file <FileName> [charset <CharSet>]) (replace <Tag> <String>)* [html]
	[contactsonly] [domainonly] [startdate <Date>] [enddate <Date>]
gam <UserTypeEntity> show vacation [format]
