| #!/usr/bin/python |
| # |
| # Copyright (C) 2007 SIOS Technology, Inc. |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| |
| """Contains objects used with Google Apps.""" |
| |
| __author__ = 'tmatsuo@sios.com (Takashi MATSUO)' |
| |
| |
| import atom |
| import gdata |
| |
| |
| # XML namespaces which are often used in Google Apps entity. |
| APPS_NAMESPACE = 'http://schemas.google.com/apps/2006' |
| APPS_TEMPLATE = '{http://schemas.google.com/apps/2006}%s' |
| |
| |
| class EmailList(atom.AtomBase): |
| """The Google Apps EmailList element""" |
| |
| _tag = 'emailList' |
| _namespace = APPS_NAMESPACE |
| _children = atom.AtomBase._children.copy() |
| _attributes = atom.AtomBase._attributes.copy() |
| _attributes['name'] = 'name' |
| |
| def __init__(self, name=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| self.name = name |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| def EmailListFromString(xml_string): |
| return atom.CreateClassFromXMLString(EmailList, xml_string) |
| |
| |
| class Who(atom.AtomBase): |
| """The Google Apps Who element""" |
| |
| _tag = 'who' |
| _namespace = gdata.GDATA_NAMESPACE |
| _children = atom.AtomBase._children.copy() |
| _attributes = atom.AtomBase._attributes.copy() |
| _attributes['rel'] = 'rel' |
| _attributes['email'] = 'email' |
| |
| def __init__(self, rel=None, email=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| self.rel = rel |
| self.email = email |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| def WhoFromString(xml_string): |
| return atom.CreateClassFromXMLString(Who, xml_string) |
| |
| |
| class Login(atom.AtomBase): |
| """The Google Apps Login element""" |
| |
| _tag = 'login' |
| _namespace = APPS_NAMESPACE |
| _children = atom.AtomBase._children.copy() |
| _attributes = atom.AtomBase._attributes.copy() |
| _attributes['userName'] = 'user_name' |
| _attributes['password'] = 'password' |
| _attributes['suspended'] = 'suspended' |
| _attributes['admin'] = 'admin' |
| _attributes['changePasswordAtNextLogin'] = 'change_password' |
| _attributes['agreedToTerms'] = 'agreed_to_terms' |
| _attributes['ipWhitelisted'] = 'ip_whitelisted' |
| _attributes['hashFunctionName'] = 'hash_function_name' |
| |
| def __init__(self, user_name=None, password=None, suspended=None, |
| ip_whitelisted=None, hash_function_name=None, |
| admin=None, change_password=None, agreed_to_terms=None, |
| extension_elements=None, extension_attributes=None, |
| text=None): |
| self.user_name = user_name |
| self.password = password |
| self.suspended = suspended |
| self.admin = admin |
| self.change_password = change_password |
| self.agreed_to_terms = agreed_to_terms |
| self.ip_whitelisted = ip_whitelisted |
| self.hash_function_name = hash_function_name |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def LoginFromString(xml_string): |
| return atom.CreateClassFromXMLString(Login, xml_string) |
| |
| |
| class Quota(atom.AtomBase): |
| """The Google Apps Quota element""" |
| |
| _tag = 'quota' |
| _namespace = APPS_NAMESPACE |
| _children = atom.AtomBase._children.copy() |
| _attributes = atom.AtomBase._attributes.copy() |
| _attributes['limit'] = 'limit' |
| |
| def __init__(self, limit=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| self.limit = limit |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def QuotaFromString(xml_string): |
| return atom.CreateClassFromXMLString(Quota, xml_string) |
| |
| |
| class Name(atom.AtomBase): |
| """The Google Apps Name element""" |
| |
| _tag = 'name' |
| _namespace = APPS_NAMESPACE |
| _children = atom.AtomBase._children.copy() |
| _attributes = atom.AtomBase._attributes.copy() |
| _attributes['familyName'] = 'family_name' |
| _attributes['givenName'] = 'given_name' |
| |
| def __init__(self, family_name=None, given_name=None, |
| extension_elements=None, extension_attributes=None, text=None): |
| self.family_name = family_name |
| self.given_name = given_name |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def NameFromString(xml_string): |
| return atom.CreateClassFromXMLString(Name, xml_string) |
| |
| |
| class Nickname(atom.AtomBase): |
| """The Google Apps Nickname element""" |
| |
| _tag = 'nickname' |
| _namespace = APPS_NAMESPACE |
| _children = atom.AtomBase._children.copy() |
| _attributes = atom.AtomBase._attributes.copy() |
| _attributes['name'] = 'name' |
| |
| def __init__(self, name=None, |
| extension_elements=None, extension_attributes=None, text=None): |
| self.name = name |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def NicknameFromString(xml_string): |
| return atom.CreateClassFromXMLString(Nickname, xml_string) |
| |
| |
| class NicknameEntry(gdata.GDataEntry): |
| """A Google Apps flavor of an Atom Entry for Nickname""" |
| |
| _tag = 'entry' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataEntry._children.copy() |
| _attributes = gdata.GDataEntry._attributes.copy() |
| _children['{%s}login' % APPS_NAMESPACE] = ('login', Login) |
| _children['{%s}nickname' % APPS_NAMESPACE] = ('nickname', Nickname) |
| |
| def __init__(self, author=None, category=None, content=None, |
| atom_id=None, link=None, published=None, |
| title=None, updated=None, |
| login=None, nickname=None, |
| extended_property=None, |
| extension_elements=None, extension_attributes=None, text=None): |
| |
| gdata.GDataEntry.__init__(self, author=author, category=category, |
| content=content, |
| atom_id=atom_id, link=link, published=published, |
| title=title, updated=updated) |
| self.login = login |
| self.nickname = nickname |
| self.extended_property = extended_property or [] |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def NicknameEntryFromString(xml_string): |
| return atom.CreateClassFromXMLString(NicknameEntry, xml_string) |
| |
| |
| class NicknameFeed(gdata.GDataFeed, gdata.LinkFinder): |
| """A Google Apps Nickname feed flavor of an Atom Feed""" |
| |
| _tag = 'feed' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataFeed._children.copy() |
| _attributes = gdata.GDataFeed._attributes.copy() |
| _children['{%s}entry' % atom.ATOM_NAMESPACE] = ('entry', [NicknameEntry]) |
| |
| def __init__(self, author=None, category=None, contributor=None, |
| generator=None, icon=None, atom_id=None, link=None, logo=None, |
| rights=None, subtitle=None, title=None, updated=None, |
| entry=None, total_results=None, start_index=None, |
| items_per_page=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| gdata.GDataFeed.__init__(self, author=author, category=category, |
| contributor=contributor, generator=generator, |
| icon=icon, atom_id=atom_id, link=link, |
| logo=logo, rights=rights, subtitle=subtitle, |
| title=title, updated=updated, entry=entry, |
| total_results=total_results, |
| start_index=start_index, |
| items_per_page=items_per_page, |
| extension_elements=extension_elements, |
| extension_attributes=extension_attributes, |
| text=text) |
| |
| |
| def NicknameFeedFromString(xml_string): |
| return atom.CreateClassFromXMLString(NicknameFeed, xml_string) |
| |
| |
| class UserEntry(gdata.GDataEntry): |
| """A Google Apps flavor of an Atom Entry""" |
| |
| _tag = 'entry' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataEntry._children.copy() |
| _attributes = gdata.GDataEntry._attributes.copy() |
| _children['{%s}login' % APPS_NAMESPACE] = ('login', Login) |
| _children['{%s}name' % APPS_NAMESPACE] = ('name', Name) |
| _children['{%s}quota' % APPS_NAMESPACE] = ('quota', Quota) |
| # This child may already be defined in GDataEntry, confirm before removing. |
| _children['{%s}feedLink' % gdata.GDATA_NAMESPACE] = ('feed_link', |
| [gdata.FeedLink]) |
| _children['{%s}who' % gdata.GDATA_NAMESPACE] = ('who', Who) |
| |
| def __init__(self, author=None, category=None, content=None, |
| atom_id=None, link=None, published=None, |
| title=None, updated=None, |
| login=None, name=None, quota=None, who=None, feed_link=None, |
| extended_property=None, |
| extension_elements=None, extension_attributes=None, text=None): |
| |
| gdata.GDataEntry.__init__(self, author=author, category=category, |
| content=content, |
| atom_id=atom_id, link=link, published=published, |
| title=title, updated=updated) |
| self.login = login |
| self.name = name |
| self.quota = quota |
| self.who = who |
| self.feed_link = feed_link or [] |
| self.extended_property = extended_property or [] |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def UserEntryFromString(xml_string): |
| return atom.CreateClassFromXMLString(UserEntry, xml_string) |
| |
| |
| class UserFeed(gdata.GDataFeed, gdata.LinkFinder): |
| """A Google Apps User feed flavor of an Atom Feed""" |
| |
| _tag = 'feed' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataFeed._children.copy() |
| _attributes = gdata.GDataFeed._attributes.copy() |
| _children['{%s}entry' % atom.ATOM_NAMESPACE] = ('entry', [UserEntry]) |
| |
| def __init__(self, author=None, category=None, contributor=None, |
| generator=None, icon=None, atom_id=None, link=None, logo=None, |
| rights=None, subtitle=None, title=None, updated=None, |
| entry=None, total_results=None, start_index=None, |
| items_per_page=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| gdata.GDataFeed.__init__(self, author=author, category=category, |
| contributor=contributor, generator=generator, |
| icon=icon, atom_id=atom_id, link=link, |
| logo=logo, rights=rights, subtitle=subtitle, |
| title=title, updated=updated, entry=entry, |
| total_results=total_results, |
| start_index=start_index, |
| items_per_page=items_per_page, |
| extension_elements=extension_elements, |
| extension_attributes=extension_attributes, |
| text=text) |
| |
| |
| def UserFeedFromString(xml_string): |
| return atom.CreateClassFromXMLString(UserFeed, xml_string) |
| |
| |
| class EmailListEntry(gdata.GDataEntry): |
| """A Google Apps EmailList flavor of an Atom Entry""" |
| |
| _tag = 'entry' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataEntry._children.copy() |
| _attributes = gdata.GDataEntry._attributes.copy() |
| _children['{%s}emailList' % APPS_NAMESPACE] = ('email_list', EmailList) |
| # Might be able to remove this _children entry. |
| _children['{%s}feedLink' % gdata.GDATA_NAMESPACE] = ('feed_link', |
| [gdata.FeedLink]) |
| |
| def __init__(self, author=None, category=None, content=None, |
| atom_id=None, link=None, published=None, |
| title=None, updated=None, |
| email_list=None, feed_link=None, |
| extended_property=None, |
| extension_elements=None, extension_attributes=None, text=None): |
| |
| gdata.GDataEntry.__init__(self, author=author, category=category, |
| content=content, |
| atom_id=atom_id, link=link, published=published, |
| title=title, updated=updated) |
| self.email_list = email_list |
| self.feed_link = feed_link or [] |
| self.extended_property = extended_property or [] |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def EmailListEntryFromString(xml_string): |
| return atom.CreateClassFromXMLString(EmailListEntry, xml_string) |
| |
| |
| class EmailListFeed(gdata.GDataFeed, gdata.LinkFinder): |
| """A Google Apps EmailList feed flavor of an Atom Feed""" |
| |
| _tag = 'feed' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataFeed._children.copy() |
| _attributes = gdata.GDataFeed._attributes.copy() |
| _children['{%s}entry' % atom.ATOM_NAMESPACE] = ('entry', [EmailListEntry]) |
| |
| def __init__(self, author=None, category=None, contributor=None, |
| generator=None, icon=None, atom_id=None, link=None, logo=None, |
| rights=None, subtitle=None, title=None, updated=None, |
| entry=None, total_results=None, start_index=None, |
| items_per_page=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| gdata.GDataFeed.__init__(self, author=author, category=category, |
| contributor=contributor, generator=generator, |
| icon=icon, atom_id=atom_id, link=link, |
| logo=logo, rights=rights, subtitle=subtitle, |
| title=title, updated=updated, entry=entry, |
| total_results=total_results, |
| start_index=start_index, |
| items_per_page=items_per_page, |
| extension_elements=extension_elements, |
| extension_attributes=extension_attributes, |
| text=text) |
| |
| |
| def EmailListFeedFromString(xml_string): |
| return atom.CreateClassFromXMLString(EmailListFeed, xml_string) |
| |
| |
| class EmailListRecipientEntry(gdata.GDataEntry): |
| """A Google Apps EmailListRecipient flavor of an Atom Entry""" |
| |
| _tag = 'entry' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataEntry._children.copy() |
| _attributes = gdata.GDataEntry._attributes.copy() |
| _children['{%s}who' % gdata.GDATA_NAMESPACE] = ('who', Who) |
| |
| def __init__(self, author=None, category=None, content=None, |
| atom_id=None, link=None, published=None, |
| title=None, updated=None, |
| who=None, |
| extended_property=None, |
| extension_elements=None, extension_attributes=None, text=None): |
| |
| gdata.GDataEntry.__init__(self, author=author, category=category, |
| content=content, |
| atom_id=atom_id, link=link, published=published, |
| title=title, updated=updated) |
| self.who = who |
| self.extended_property = extended_property or [] |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def EmailListRecipientEntryFromString(xml_string): |
| return atom.CreateClassFromXMLString(EmailListRecipientEntry, xml_string) |
| |
| |
| class EmailListRecipientFeed(gdata.GDataFeed, gdata.LinkFinder): |
| """A Google Apps EmailListRecipient feed flavor of an Atom Feed""" |
| |
| _tag = 'feed' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataFeed._children.copy() |
| _attributes = gdata.GDataFeed._attributes.copy() |
| _children['{%s}entry' % atom.ATOM_NAMESPACE] = ('entry', |
| [EmailListRecipientEntry]) |
| |
| def __init__(self, author=None, category=None, contributor=None, |
| generator=None, icon=None, atom_id=None, link=None, logo=None, |
| rights=None, subtitle=None, title=None, updated=None, |
| entry=None, total_results=None, start_index=None, |
| items_per_page=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| gdata.GDataFeed.__init__(self, author=author, category=category, |
| contributor=contributor, generator=generator, |
| icon=icon, atom_id=atom_id, link=link, |
| logo=logo, rights=rights, subtitle=subtitle, |
| title=title, updated=updated, entry=entry, |
| total_results=total_results, |
| start_index=start_index, |
| items_per_page=items_per_page, |
| extension_elements=extension_elements, |
| extension_attributes=extension_attributes, |
| text=text) |
| |
| |
| def EmailListRecipientFeedFromString(xml_string): |
| return atom.CreateClassFromXMLString(EmailListRecipientFeed, xml_string) |
| |
| |
| class Property(atom.AtomBase): |
| """The Google Apps Property element""" |
| |
| _tag = 'property' |
| _namespace = APPS_NAMESPACE |
| _children = atom.AtomBase._children.copy() |
| _attributes = atom.AtomBase._attributes.copy() |
| _attributes['name'] = 'name' |
| _attributes['value'] = 'value' |
| |
| def __init__(self, name=None, value=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| self.name = name |
| self.value = value |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def PropertyFromString(xml_string): |
| return atom.CreateClassFromXMLString(Property, xml_string) |
| |
| |
| class PropertyEntry(gdata.GDataEntry): |
| """A Google Apps Property flavor of an Atom Entry""" |
| |
| _tag = 'entry' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataEntry._children.copy() |
| _attributes = gdata.GDataEntry._attributes.copy() |
| _children['{%s}property' % APPS_NAMESPACE] = ('property', [Property]) |
| |
| def __init__(self, author=None, category=None, content=None, |
| atom_id=None, link=None, published=None, |
| title=None, updated=None, |
| property=None, |
| extended_property=None, |
| extension_elements=None, extension_attributes=None, text=None): |
| |
| gdata.GDataEntry.__init__(self, author=author, category=category, |
| content=content, |
| atom_id=atom_id, link=link, published=published, |
| title=title, updated=updated) |
| self.property = property |
| self.extended_property = extended_property or [] |
| self.text = text |
| self.extension_elements = extension_elements or [] |
| self.extension_attributes = extension_attributes or {} |
| |
| |
| def PropertyEntryFromString(xml_string): |
| return atom.CreateClassFromXMLString(PropertyEntry, xml_string) |
| |
| class PropertyFeed(gdata.GDataFeed, gdata.LinkFinder): |
| """A Google Apps Property feed flavor of an Atom Feed""" |
| |
| _tag = 'feed' |
| _namespace = atom.ATOM_NAMESPACE |
| _children = gdata.GDataFeed._children.copy() |
| _attributes = gdata.GDataFeed._attributes.copy() |
| _children['{%s}entry' % atom.ATOM_NAMESPACE] = ('entry', [PropertyEntry]) |
| |
| def __init__(self, author=None, category=None, contributor=None, |
| generator=None, icon=None, atom_id=None, link=None, logo=None, |
| rights=None, subtitle=None, title=None, updated=None, |
| entry=None, total_results=None, start_index=None, |
| items_per_page=None, extension_elements=None, |
| extension_attributes=None, text=None): |
| gdata.GDataFeed.__init__(self, author=author, category=category, |
| contributor=contributor, generator=generator, |
| icon=icon, atom_id=atom_id, link=link, |
| logo=logo, rights=rights, subtitle=subtitle, |
| title=title, updated=updated, entry=entry, |
| total_results=total_results, |
| start_index=start_index, |
| items_per_page=items_per_page, |
| extension_elements=extension_elements, |
| extension_attributes=extension_attributes, |
| text=text) |
| |
| def PropertyFeedFromString(xml_string): |
| return atom.CreateClassFromXMLString(PropertyFeed, xml_string) |