format 75
"googleapps" // iplan::models::googleapps
  revision 129
  modified_by 5 "jviqueira"
  // class settings
  //class diagram settings
  draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
  //use case diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default class_drawing_mode default shadow default show_stereotype_properties default
  //sequence diagram settings
  show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default show_class_context_mode default show_msg_context_mode default
  //collaboration diagram settings
  show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default show_msg_context default draw_all_relations default shadow default show_stereotype_properties default
  //object diagram settings
   write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
  //component diagram settings
  package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //deployment diagram settings
  package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
  draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
  //state diagram settings
  package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
  show_activities default region_horizontally default drawing_language default show_stereotype_properties default
  //activity diagram settings
  package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
  show_infonote default drawing_language default show_stereotype_properties default
  
  php_dir "iplan/models/googleapps"
  package_ref 272133 // forms

  classview 252037 "GoogleApps Classes"
    //class diagram settings
    draw_all_relations default hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
    //collaboration diagram settings
    show_full_operations_definition default show_hierarchical_rank default write_horizontally default drawing_language default package_name_in_tab default show_context default show_msg_context default draw_all_relations default shadow default show_stereotype_properties default
    //object diagram settings
     write_horizontally default package_name_in_tab default show_context default auto_label_position default draw_all_relations default shadow default show_stereotype_properties default
    //sequence diagram settings
    show_full_operations_definition default write_horizontally default class_drawing_mode default drawing_language default draw_all_relations default shadow default show_stereotype_properties default show_class_context_mode default show_msg_context_mode default
    //state diagram settings
    package_name_in_tab default show_context default auto_label_position default write_trans_label_horizontally default show_trans_definition default draw_all_relations default shadow default
    show_activities default region_horizontally default drawing_language default show_stereotype_properties default
    //class settings
    //activity diagram settings
    package_name_in_tab default show_context default show_opaque_action_definition default auto_label_position default write_flow_label_horizontally default draw_all_relations default shadow default
    show_infonote default drawing_language default show_stereotype_properties default
    associated_deployment_view deploymentview_ref 278533 // GoogleApps Deployment
    classdiagram 278533 "GoogleApps Class Diagram"
      draw_all_relations no hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
      size A2-Landscape
    end

    classdiagram 357125 "GoogleApps API 3.0"
      draw_all_relations no hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
      size A1-Landscape
    end

    class 843525 "GoogleAppsProvisioningManager"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      attribute 1325701 "dnsSoapClient"
	private type class_ref 807813 // SoapClient
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var SoapClient una instancia para el singleton de DNS"
      end

      attribute 1401861 "lastProcessId"
	private explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int un código de proceso generado eventualmente por alguna transacción. Sólo debe usarse si la transacción no provino de 10Fold"
      end

      classrelation 1148293 // <generalisation>
	relation 1131781 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1148293 // <generalisation>
	  b parent class_ref 416901 // AbstractManager
      end

      classrelation 1246469 // <dependency>
	relation 1228421 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1246469 // <dependency>
	  b parent class_ref 896517 // GoogleAccount
      end

      classrelation 1267333 // <dependency>
	relation 1249157 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1267333 // <dependency>
	  b parent class_ref 922885 // GoogleAccountForm
      end

      classrelation 1274501 // <dependency>
	relation 1256325 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1274501 // <dependency>
	  b parent class_ref 942981 // GoogleStatusForm
      end

      classrelation 1274757 // <dependency>
	relation 1256581 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1274757 // <dependency>
	  b parent class_ref 943237 // GoogleTransactionForm
      end

      classrelation 1274629 // <dependency>
	relation 1256453 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1274629 // <dependency>
	  b parent class_ref 943109 // GoogleTransactionTypeForm
      end

      classrelation 1294981 // <dependency>
	relation 1276677 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1294981 // <dependency>
	  b parent class_ref 956293 // GoogleTransferTokenForm
      end

      classrelation 1281285 // <dependency>
	relation 1263109 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1281285 // <dependency>
	  b parent class_ref 949765 // APIGoogleApps
      end

      operation 1636101 "__listActions"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una lista de mtodos que pueden ser invocados desde la aplicacin.

@return array Un arreglo (clave, valor) donde la clave es un string con el nombre ficticio de la operacin y el valor el nombre del mtodo que le corresponde."
      end

      operation 1764485 "listGoogleAccounts"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista las cuentas creadas efectivamente por el autoprovisioning (aunque posteriormente se hayan dado de baja) y aquellas que responden a una creación manual en esta plataforma.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1738245 "abmGoogleAccount"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "En el caso de las altas y modificaciones, abre un formulario para editar una cuenta de Google.
Este proceso permite registrar la cuenta en la base de datos y encolar una tarea de autoprovisioning que posteriormente intentará crear efectivamente la cuenta en el servicio de Google.
Para el caso de la baja, directamente encolará una tarea de autoprovisioning de baja.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1771781 "listTransactions"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Muestra un listado de las transacciones registradas en la plataforma de provisioning de GoogleApps. Estas pueden ser efectivamente realizadas o pendientes.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1771909 "abmTransaction"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Permite agregar transacciones nuevas y quitar o modificar transacciones pendientes (únicamente).

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1772037 "listStatus"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los distintos estados en los que puede estar una transacción en el sistema de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1772165 "abmStatus"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Permite hacer el alta, baja o modificación de un estado de transacción de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1772293 "listTransactionTypes"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de transacciones que admite la plataforma de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1772421 "abmTransactionType"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Permite hacer el alta, baja o modificación de un tipo de transacción de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1841925 "setTransferToken"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Permite hacer el alta, baja o modificación de un tipo de transacción de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1870597 "setTxtRecord"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Permite configurar el registro TXT para aquellos clientes que tengan delegado el dominio.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1827845 "createDNSRecord"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 7
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "log" explicit_type "LogMessages"
	  param in name "domain" explicit_type "string"
	  param in name "type" explicit_type "string"
	  param in name "source" explicit_type "string"
	  param in name "destination" explicit_type "string"
	  param in name "mx_prefix" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}, ${p6}${v6}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea un registro en el DNS

@param GoogleTransaction $transaction la transacción para la cual se hace el agregado
@param LogMessages $log la clase de logueo actual
@param string $domain el dominio al que pertenece el registro, más que nada para identificar la zona
@param string $type el tipo de registro, puede ser: A, CNAME, MX o TXT
@param string $source el valor a resolver
@param string $destination el valor a retornar al resolver el source
@param string $mx_prefix la prioridad del registro en caso de ser de tipo MX

@return string Devuelve 'OK' si todo se realizó con éxito o si el registro ya existía. En caso de error retorna el mensaje del Web Service."
      end

      operation 1827973 "deleteDNSRecord"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 6
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "log" explicit_type "LogMessages"
	  param in name "domain" explicit_type "string"
	  param in name "type" explicit_type "string"
	  param in name "source" explicit_type "string"
	  param in name "destination" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Borra un registro en el DNS

@param GoogleTransaction $transaction la transacción para la cual se hace el agregado
@param LogMessages $log la clase de logueo actual
@param string $domain el dominio al que pertenece el registro, más que nada para identificar la zona
@param string $type el tipo de registro, puede ser: A, CNAME, MX o TXT
@param string $source el resuelto
@param string $destination el valor de retorno al resolver el source

@return boolean Devuelve TRUE si todo anduvo bien, FALSE en caso contrario."
      end

      operation 1827717 "getMetadata"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 1
	  param in name "transaction" type class_ref 935941 // GoogleTransaction
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupero la metadata asociada a una transacción.

@param GoogleTransaction $transaction la transacción.

@return string La metadata asociada."
      end

      attribute 1297413 "provisioningPlataform"
	private explicit_type "ProvisioningPlataformas"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ProvisioningPlataformas una instancia de dicha clase empleada para utilizar el servicio de 10Fold de actualización de suscripciones"
      end

      operation 1820677 "change10FoldAndDBStatus"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el estado de una novedad en 10Fold y en la base de datos local

@param GoogleTransaction $transaction la transacción que se relaciona con la novedad
@param string $description una descripción para 10Fold

@return boolean Devuelve TRUE si todo está bien o FALSE si no."
      end

      operation 1994629 "update10FoldStatus"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 6
	  param in name "serviceOrder" type class_ref 676357 // ServiceOrder
	  param in name "status" explicit_type "string"
	  param in name "description" explicit_type "string"
	  param in name "log" explicit_type "LogMessages"
	  param in name "user" explicit_type "string"
	    defaultvalue "null"
	  param in name "password" explicit_type "string"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el estado de la orden de servicio en 10Fold.

@param ServiceOrder $serviceOrder la orden de servicio
@param string $status el nuevo estado: CO, WI o CN
@param string $description la descripción del estado
@param string $user el usuario si corresponde
@param string $password el password si corresponde
@return true|array Devuelve true si todo fue bien o un array con claves 'codigo' y 'descripcion' en caso de error"
      end

      operation 1994757 "updateDBStatus"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 3
	  param in name "serviceOrder" type class_ref 676357 // ServiceOrder
	  param in name "status" explicit_type "string"
	  param in name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el estado de la orden de servicio en la base local.

@param ServiceOrder $serviceOrder la orden de servicio
@param string $status el nuevo estado: 7 Completado o 9 Cancelado
@return true|array Devuelve true si todo fue bien o un array con claves 'codigo' y 'descripcion' en caso de error"
      end

      operation 1967621 "saveFileLog"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 5
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "log" explicit_type "LogMessages"
	  param in name "contents" explicit_type "string|array"
	  param in name "contentType" explicit_type "int"
	  param in name "messageType" explicit_type "int"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Guarda un documento como parte del log.

@param GoogleTransaction $transaction la transacción para la cual se está guardando el log
@param LogMessages $log el objeto de logs
@param string|array $contents un string que representa el contenido del archivo o un arreglo de strings donde cada uno representa un contenido de archivo distinto.
@param int $contentType el tipo de mensaje (XML, HTTP, etc...) en el que está dado el/los string/s.
@param int $messageType la clasificación interna del mensaje (request/response).

@return boolean Devuelve True si todo anduvo bien, False en caso contrario."
      end

      operation 1711365 "aprovisionar"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Aprovisiona las novedades pendientes
@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1863301 "createAccount"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "api" type class_ref 949765 // APIGoogleApps
	  param inout name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Intenta crear una cuenta de GoogleApps

@param GoogleTransaction $transaction la transacción a ejecutar
@param ApplicationContext $context el contexto de ejecución
@param APIGoogleApps $api la instancia de la clase de comunicaciones con GoogleApps
@param LogMessages $log la instancia de log
"
      end

      operation 1988101 "validateDomain"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "api" type class_ref 949765 // APIGoogleApps
	  param inout name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Intenta crear una cuenta de GoogleApps

@param GoogleTransaction $transaction la transacción a ejecutar
@param ApplicationContext $context el contexto de ejecución
@param APIGoogleApps $api la instancia de la clase de comunicaciones con GoogleApps
@param LogMessages $log la instancia de log
"
      end

      operation 1968133 "createTXTRecord"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "api" type class_ref 949765 // APIGoogleApps
	  param inout name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Intenta crear una cuenta de GoogleApps

@param GoogleTransaction $transaction la transacción a ejecutar
@param ApplicationContext $context el contexto de ejecución
@param APIGoogleApps $api la instancia de la clase de comunicaciones con GoogleApps
@param LogMessages $log la instancia de log
"
      end

      operation 1878917 "changeLicenceLimit"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "api" type class_ref 949765 // APIGoogleApps
	  param inout name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el número máximo de usuarios que puede crear una cuenta de GoogleApps

@param GoogleTransaction $transaction la transacción a ejecutar
@param ApplicationContext $context el contexto de ejecución
@param APIGoogleApps $api la instancia de la clase de comunicaciones con GoogleApps
@param LogMessages $log la instancia de log
"
      end

      operation 1879045 "deleteAccount"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "api" type class_ref 949765 // APIGoogleApps
	  param inout name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el número máximo de usuarios que puede crear una cuenta de GoogleApps

@param GoogleTransaction $transaction la transacción a ejecutar
@param ApplicationContext $context el contexto de ejecución
@param APIGoogleApps $api la instancia de la clase de comunicaciones con GoogleApps
@param LogMessages $log la instancia de log
"
      end

      operation 1856261 "configureDNS"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "api" type class_ref 949765 // APIGoogleApps
	  param inout name "log" explicit_type "LogMessages"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Intenta crear una cuenta de GoogleApps

@param GoogleTransaction $transaction la transacción a ejecutar
@param ApplicationContext $context el contexto de ejecución
@param APIGoogleApps $api la instancia de la clase de comunicaciones con GoogleApps
@param LogMessages $log la instancia de log
"
      end

      operation 1848965 "testMethod"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Método empleado para hacer pruebas de la API de GoogleApps
@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 1841797 "prepareMail"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 4
	  param in name "name" explicit_type "string"
	  param in name "surname" explicit_type "string"
	  param in name "clientName" explicit_type "string"
	  param in name "body" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "@return PHPMailer"
      end

      operation 1807237 "sendMail"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 5
	  param in name "to" explicit_type "string"
	  param in name "client" explicit_type "string"
	  param in name "contact" explicit_type "string"
	  param in name "title" explicit_type "string"
	  param in name "body" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "@return PHPMailer"
      end

      classrelation 1321861 // <dependency>
	relation 1303173 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1321861 // <dependency>
	  b parent class_ref 975877 // GoogleTxtForm
      end

      operation 1981445 "newLoginUnificado"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 3
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param inout name "user" type class_ref 396165 // User
	  param in name "extra" explicit_type "mixed"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Notifica al facade que se ha logeado un usuario NUEVO mediante \"Login Unificado\".

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background
@param User $user el usuario nuevo que se logueó
@param mixed $extra por el momento se pasa la respuesta del llamado a CLL_Authenticate.

@return boolean un booleando que es TRUE si se desea conservar el usuario o FALSE si el mismo es irrelevante o no debe tener permisos para el Facade."
      end

      operation 2018181 "listDomainUsers"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista las cuentas de mail asociadas a un dominio.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2018309 "abmUserPassword"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Permite hacer el alta, baja o modificación de un estado de transacción de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      classrelation 1419269 // <dependency>
	relation 1387013 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1419269 // <dependency>
	  b parent class_ref 1042565 // GoogleChangeUserPasswordForm
      end

      operation 2025349 "goToDomainAdminPanel"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Redirige al sitio de administración de Google del dominio indicado

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2025477 "changeUserPassword"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Redirige al sitio de administración de Google del dominio indicado

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2038917 "listResellerReports"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de transacciones que admite la plataforma de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2086021 "downloadReport"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Descarga un archivo CSV con la informacin del reporte

@param ApplicationContext $context el contexto de la aplicacin
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable El archivo a descargar por el usuario"
      end

      operation 2039045 "generateResellerReport"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de transacciones que admite la plataforma de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2045701 "changeTransactionInterval"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de transacciones que admite la plataforma de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      classrelation 1432837 // <dependency>
	relation 1400325 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1432837 // <dependency>
	  b parent class_ref 1049093 // GoogleTransactionIntervalForm
      end

      classrelation 1453445 // <dependency>
	relation 1420677 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1453445 // <dependency>
	  b parent class_ref 1068933 // GoogleReseller
      end

      operation 2092549 "forceReport"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Descarga un archivo CSV con la informacin del reporte

@param ApplicationContext $context el contexto de la aplicacin
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable El archivo a descargar por el usuario"
      end

      operation 2092677 "checkReport"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Descarga un archivo CSV con la informacin del reporte

@param ApplicationContext $context el contexto de la aplicacin
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable El archivo a descargar por el usuario"
      end

      operation 2316549 "migrationProcess"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Procesa las novedades de normalizacin de cuentas de GoogleApps empleadas para migrar los dominios de los resellers reseller.iplan.com.ar y reseller2.iplan.com.ar al nuevo reseller.gapps.iplan.com.ar

@param ApplicationContext $context el contexto de la aplicacin

@return Renderable El archivo a descargar por el usuario"
      end
    end

    class 843397 "GoogleAppsManager"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      classrelation 1148165 // <generalisation>
	relation 1131653 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1148165 // <generalisation>
	  b parent class_ref 416901 // AbstractManager
      end

      operation 1635973 "__listActions"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una lista de mtodos que pueden ser invocados desde la aplicacin.

@return array Un arreglo (clave, valor) donde la clave es un string con el nombre ficticio de la operacin y el valor el nombre del mtodo que le corresponde."
      end
    end

    class 896517 "GoogleAccount"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Simboliza una cuenta de GoogleApps. La misma puede ser una cuenta existente (si la instancia la creó el AutoProvisioning) o una entidad que está pendiente de creación (si se crea desde la GUI).
Es posible identificar ésto dado que si está creada la cuenta, el campo \"created\" tendrá una fecha. También se puede ver la transacción inicial y observar el usuario que la creó.

@method string getDomain()
@method GoogleAccount setDomain()
@method int getLicences()
@method bool getDelegatedDNS()
@method DateTime getCreated()
@method GoogleAccount setCreated()
@method DateTime getDeleted()
@methdo GoogleAccount setDeleted()
@method ORMCollection getTransactions()
@method GoogleAccount setTransactions()
@method GoogleTransaction getTransaction()
@method GoogleAccount addTransaction()
@method GoogleAccount delTransaction()
@method Provider getProvider()
@method GoogleAccount setProvider
@method Client getClient()
@method GoogleAccount setClient()
@method GoogleAccount setTransferToken()
@method string getTransferToken()
@method GoogleAccount setRequireTransferToken()
@method boolean getRequireTransferToken()
@method GoogleAccount setTxt()
@method string getTxt()
@method GoogleReseller getReseller()
@method GoogleAccount setReseller()



"
      classrelation 1212933 // <generalisation>
	relation 1194885 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1212933 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1179013 "domain"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el dominio al cual se vinculó la cuenta"
      end

      attribute 1179141 "licences"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de licencias que tiene habilitadas"
      end

      attribute 1199621 "delegatedDNS"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean un flag que indica si la novedad además involucra la delegación de dominios"
      end

      attribute 1179269 "created"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha en la cual fue creado el registro"
      end

      attribute 1179525 "deleted"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha en la cual fue dada de baja la cuenta"
      end

      classrelation 1253253 // provider (<unidirectional association>)
	relation 1235205 --->
	  a role_name "provider" multiplicity "1" protected
	    comment "@var Provider el provider a nombre del cual se creó la cuenta"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1253253 // provider (<unidirectional association>)
	  b parent class_ref 443269 // Provider
      end

      classrelation 1253637 // transactions (<association>)
	relation 1235589 ----
	  a role_name "transactions" multiplicity "1..*" protected
	    comment "@var ORMCollection la lista de transacciones que se realizaron sobre la cuenta"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1253637 // transactions (<association>)
	  b role_name "account" multiplicity "1" protected
	    comment "@var GoogleAccount la cuenta sobre la que se realizó la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1253765 // account (<association>)
      end

      classrelation 1294725 // client (<unidirectional association>)
	relation 1276421 --->
	  a role_name "client" protected
	    comment "@var Client el cliente dueño de la cuenta"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1294725 // client (<unidirectional association>)
	  b parent class_ref 552837 // Client
      end

      attribute 1284101 "requireTransferToken"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean un flag que indica si la cuenta requiere transfertoken"
      end

      attribute 1283717 "transferToken"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el hash de transferencia de dominio"
      end

      attribute 1310853 "txt"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el texto de validación de dominio a través de los DNS"
      end

      attribute 1233541 "deltaLicences"
	private explicit_type "int"
	init_value "0"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de licencias que variaron del anterior valor."
      end

      attribute 1240069 "deltaDNS"
	private explicit_type "bool"
	init_value "false"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si hubo un cambio del flag de DNS"
      end

      attribute 1670789 "normalization"
	private explicit_type "bool"
	init_value "false"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	get_oper operation_ref 2283397 // getNormalization
	set_oper operation_ref 2283525 // setNormalization
	comment "@var boolean un flag que indica a la instancia se crea por medio de un proceso de confiabilización o no"
      end

      classrelation 1632005 // reseller (<association>)
	relation 1589509 ----
	  a role_name "reseller" multiplicity "1" protected
	    comment "@var GoogleReseller la distribución a la que pertenece el dominio"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1632005 // reseller (<association>)
	  b role_name "accounts" multiplicity "*" protected
	    comment "@var ORMCollection la lista de cuentas en la distribución"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1632133 // accounts (<association>)
      end

      operation 1711237 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end

      operation 1779589 "save"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Verifica si el objeto fue modificado y lo guarda.
Este método permite abstraer a las clases descendientes de la necesidad de determinar si el objeto fue alterado o no y oculta la complejidad subyacente a las clases descendientes.
@param ORM $orm opcionalmente se debe indicar la instancia del ORM que mantiene el objeto. Esto sólo es posible si el objeto es nuevo o DETACHED. En el caso que ya estuviera bajo monitoreo de un ORM arrojará una excepción.

@return boolean Un true si todo anduvo bien, false (o una excepción) si algo falló.

Se pensó que se podría hacer el cambio de un ORM a otro, pero el ID debería limpiarse, con lo cual sólo un INSERT se podría hacer sobre el destino y los objetos relacionados estarían aún con otro ORM lo cual es complicado (manejo de objetos distribudos) por lo cual se deja a consideración en futuras versiones, posiblemente en otra vida =)"
      end

      operation 1779717 "delete"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Borra fsicamente un objeto de la base. Al borrarse el objeto adems se ponen a null los campos de las entidades relacionadas que lo referenciaban y se eliminan los registros de las tablas relacin M:N

@return boolean un booleando TRUE si la operacin fue concretada con xito o FALSE sino."
      end

      operation 1779845 "setLicences"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "licences" explicit_type "int"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia la cantidad de licencias de una cuenta.

@param int licences la nueva cantidad de licencias con la que debe quedar la cuenta.

@return GoogleAccount la cuenta con las licencias cambiadas."
      end

      operation 1793157 "setDelegatedDNS"
	preserve_cpp_body_indent public return_type class_ref 896517 // GoogleAccount
	nparams 1
	  param in name "dns" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el flag de delegación de dns.

@param boolean dns un TRUE para indicar delegación y FALSE para quitarla.

@return GoogleAccount la cuenta modificada."
      end

      operation 1779973 "validate"
	preserve_cpp_body_indent public explicit_return_type "mixed"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Valida los atributos DIRECTOS del objeto segn las reglas especificadas en la propia definicin.
No llama recursivo porque sera muy \"engorroso\" y factible de caer en la circunstancia de tener una recursin infinita.
Tampoco se consideran en la validacin aquellos atributos asignados con un LazyLoader, dado que si estn en base se asume que estn OK.

@return mixed Retorna TRUE si todo est bien y una matriz 3 dimensional indexada por atributo, validacin y errores. En caso que algo falle retorna una matrz con el siguiente formato:

array (
	0 = > array (
		attribute, array(\"Error 1\", \"Error 2\")
		)
	...
)
"
      end

      attribute 1269509 "serviceOrder"
	private type class_ref 676357 // ServiceOrder
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ServiceOrder temporal para indicar cuando se trata de un cambio basado en lectura de novedad"
      end

      operation 1828101 "setServiceOrder"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "order" type class_ref 676357 // ServiceOrder
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "@return GoogleAccount"
      end

      attribute 1421701 "verified"
	protected explicit_type "bool"
	init_value "false"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si el dominio está verificado por Google"
      end

      operation 2283397 "getNormalization"
	force_body_gen const cpp_inline public explicit_return_type "bool"
	nparams 0
	
	cpp_name_spec "get_${name}"
	final 
	java_name_spec "get${Name}"
	php_final php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  return $this->normalization;
}
"
	php_name_spec "get${Name}"
	
	python_name_spec "get${Name}"
	
	idl_name_spec "get_${name}"
	get_of_attribute attribute_ref 1670789 // normalization
      end

      operation 2283525 "setNormalization"
	force_body_gen public explicit_return_type "void"
	nparams 1
	  param in name "value" explicit_type "bool"
	
	cpp_name_spec "set_${name}"
	
	java_name_spec "set${Name}"
	php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${)}
{
  $this->normalization = ${p0};
   return $this;
}
"
	php_name_spec "set${Name}"
	
	python_name_spec "set${Name}"
	
	idl_name_spec "set_${name}"
	set_of_attribute attribute_ref 1670789 // normalization
      end
    end

    class 935941 "GoogleTransaction"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "La transacción es la unidad de tarea que maneja el AutoProvisioning de GoogleApps. Se registra el tipo de tarea y la información básica para su realización.
Las transacciones pueden crearse como consecuencia de una novedad de 10Fold o como parte de una modificación de una cuenta desde la GUI. La forma de reconocerlo es viendo si tiene o no una ServiceOrder asociada (y por el usuario).

@method DateTime getReaded()
@method GoogleTransaction setReaded()
@method DateTime getFinished()
@method GoogleTransaction setFinished()
@method string getDomain()
@method GoogleTransaction setDomain()
@method int getLicences()
@method GoogleTransaction setLicences()
@method boolean getDelegatedDNS()
@method GoogleTransaction setDelegatedDNS()
@method GoogleStatus getStatus()
@method GoogleTransaction setStatus()
@method GoogleTransactionType getType()
@method GoogleTransaction setType()
@method User getUser()
@method GoogleTransaction setUser()
@method ServiceOrder getNotification()
@method GoogleTransaction setNotification()
@method GoogleTransaction setDescription()
@method string getDescription()
@method GoogleAccount getAccount()
@method GoogleTransaction setAccount()
@method GoogleTransaction setNotified()
@method boolean getNotified()
@method GoogleTransaction setInterval()
@method string getInterval()
@method DateTime getLastTry()
@method GoogleTransaction setLastTry()
@method GoogleTransaction setLastStatusChange()
@method DateTime getLastStatusChange()
"
      classrelation 1253509 // <generalisation>
	relation 1235461 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1253509 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      classrelation 1253765 // account (<association>)
	relation_ref 1235589 // <association>
      end

      attribute 1212805 "readed"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha en la cual fue leída la solicitud de la operación"
      end

      classrelation 1253893 // type (<unidirectional association>)
	relation 1235717 --->
	  a role_name "type" multiplicity "1" protected
	    comment "@var GoogleTransactionType el tipo de la transacción que se llevó a cabo"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1253893 // type (<unidirectional association>)
	  b parent class_ref 936325 // GoogleTransactionType
      end

      attribute 1212933 "finished"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de finalización de la tarea"
      end

      classrelation 1254021 // status (<unidirectional association>)
	relation 1235845 --->
	  a role_name "status" multiplicity "1" protected
	    comment "@var GoogleStatus el estado en el que se encuentra la operación"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1254021 // status (<unidirectional association>)
	  b parent class_ref 936453 // GoogleStatus
      end

      attribute 1220101 "domain"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre de dominio. Se emplea exclusivamente en la alta de cuenta"
      end

      attribute 1220229 "licences"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de licencias de la cuenta. Empleado en el upgrade/downgrade"
      end

      attribute 1220357 "delegatedDNS"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si el dominio tiene o no un dns delegado al momento de registrar la transacción"
      end

      attribute 1261957 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la descripción del error o estado final de la transacción"
      end

      classrelation 1260549 // notification (<association>)
	relation 1242373 ----
	  a role_name "notification" multiplicity "1" protected
	    comment "@var ServiceOrder la notificación de 10Fold que dio origen a la novedad"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1260549 // notification (<association>)
	  b role_name "googleAppsTransactions" multiplicity "*" protected
	    comment "@var ORMCollection la lista de transacciones de Google Apps asociadas a esta novedad"
	    php "  ${comment}
//${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1399045 // googleAppsTransactions (<association>)
      end

      classrelation 1260677 // user (<unidirectional association>)
	relation 1242501 --->
	  a role_name "user" multiplicity "1" protected
	    comment "@var User el usuario bajo el cual se generó la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1260677 // user (<unidirectional association>)
	  b parent class_ref 396165 // User
      end

      classrelation 1260805 // provider (<unidirectional association>)
	relation 1242629 --->
	  a role_name "provider" multiplicity "1" protected
	    comment "@var Provider el dueño de la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1260805 // provider (<unidirectional association>)
	  b parent class_ref 443269 // Provider
      end

      attribute 1262725 "notified"
	protected explicit_type "bool"
	init_value "false"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean un flag que indica si el estado de 10Fold ha sido actualizado o no"
      end

      attribute 1304197 "lastStatusChange"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime una fecha que indica cuando se hizo el último cambio de estado"
      end

      attribute 1317637 "interval"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un lapso de tiempo que indica el período de revalidación de la transacción."
      end

      attribute 1317765 "lastTry"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha del último intento de aprovisionar que se hizo sobre la transacción"
      end

      operation 1771269 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 936325 "GoogleTransactionType"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Parametriza las distintas operaciones de aprovisionamiento que están contempladas en el sistema de AutoProvisioning de GoogleApps.

@method string getDescription()
@method GoogleStatus setDescription()"
      attribute 1318533 "CREATE_ACCOUNT"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Creación de Cuenta"
      end

      attribute 1318661 "DELEGATE_DNS"
	const_attribute package explicit_type "int"
	init_value "2"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Alta de Delegación de DNS"
      end

      attribute 1318789 "UPGRADE_ACCOUNT"
	const_attribute package explicit_type "int"
	init_value "3"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Agregado de licencias a la cuenta existente"
      end

      attribute 1318917 "DOWNGRADE_ACCOUNT"
	const_attribute package explicit_type "int"
	init_value "4"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Quita de licencias a la cuenta existente"
      end

      attribute 1319045 "DETACH_DNS"
	const_attribute package explicit_type "int"
	init_value "5"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Quita la delegación de DNS"
      end

      attribute 1319173 "DELETE_ACCOUNT"
	const_attribute package explicit_type "int"
	init_value "6"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Da de baja la cuenta"
      end

      attribute 1664005 "SET_TXT_RECORD"
	const_attribute package explicit_type "int"
	init_value "7"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Establece el registro TXT"
      end

      attribute 1670917 "VALIDATE_DOMAIN"
	const_attribute package explicit_type "int"
	init_value "8"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Valida la vigencia del dominio"
      end

      attribute 1671045 "DOMAIN_NORMALIZATION"
	const_attribute package explicit_type "int"
	init_value "9"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Refiere a una tarea de normalización del dominio de la cuenta"
      end

      attribute 1831557 "PROCESS_ACCOUNT_CHANGE"
	const_attribute package explicit_type "int"
	init_value "10"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Procesar un cambio de cuenta para generar las transacciones hijas necesarias"
      end

      attribute 1838341 "CREATE_SUBSCRIPTION"
	const_attribute package explicit_type "int"
	init_value "11"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Agregado de una subscripción a un customer existente"
      end

      attribute 1838469 "CREATE_ADMIN"
	const_attribute package explicit_type "int"
	init_value "12"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Creación del usuario administrador en una cuenta existente"
      end

      attribute 134534 "PROCESS_ACCOUNT"
	const_attribute package explicit_type "int"
	init_value "13"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Procesar Alta de Cuenta"
      end

      attribute 134662 "MIGRATE_ACCOUNT"
	const_attribute package explicit_type "int"
	init_value "14"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Migración de Cuenta"
      end

      attribute 1845381 "CHANGE_FLEX_TO_ANNUAL"
	const_attribute package explicit_type "int"
	init_value "15"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Cambiar el tipo de cuenta de Flex a Annual"
      end

      attribute 1845253 "CHANGE_ANNUAL_TO_FLEX"
	const_attribute package explicit_type "int"
	init_value "16"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Cambiar el tipo de cuenta de Annual a Flex"
      end

      attribute 1845509 "VALIDATE_ANNUAL_CHANGE"
	const_attribute package explicit_type "int"
	init_value "17"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Es la transacción que espera a verificar la aplicación de un cambio al fin de la vigencia de una cuenta anual"
      end

      attribute 1845637 "CHANGE_ANNUAL_SETTINGS"
	const_attribute package explicit_type "int"
	init_value "18"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Es la transacción cambia las configuraciones de pago de las cuentas anuales"
      end

      attribute 1859077 "VALIDATE_ACCOUNT_MIGRATION"
	const_attribute package explicit_type "int"
	init_value "19"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int Valida que las configuraciones de una cuenta migrada sean las esperadas"
      end

      attribute 1219973 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string una descripción del tipo de transacción"
      end

      operation 1771141 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end

      classrelation 1273989 // <generalisation>
	relation 1255813 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1273989 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end
    end

    class 936453 "GoogleStatus"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa un estado de una transacción del sistema de AutoProvisioning de GoogleApps.

@method string getDescription()
@method GoogleStatus setDescription()"
      attribute 1262085 "PENDING"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int constante que significa que la transacción está pendiente."
      end

      attribute 1262213 "IN_PROGRESS"
	const_attribute package explicit_type "int"
	init_value "2"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int indica que algo está en progreso"
      end

      attribute 1262469 "COMPLETED"
	const_attribute package explicit_type "int"
	init_value "3"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int indica que un proceso está completo y con éxito"
      end

      attribute 1262341 "SUSPENDED"
	const_attribute package explicit_type "int"
	init_value "4"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int estado que se emplea para indicar que en algun punto el proceso no pudo continuar por problemas técnicos recuperables"
      end

      attribute 1262597 "CANCELED"
	const_attribute package explicit_type "int"
	init_value "5"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int se emplea para indicar el fallo irreversible de una operación. Ejemplo: no se proveyeron datos completos o algun paso da un error de negocios que debe solventarse antes de otro modo."
      end

      attribute 1428357 "ABORTED"
	const_attribute package explicit_type "int"
	init_value "6"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int se emplea para indicar que la operación se descartó por alguna razón."
      end

      attribute 1796613 "PAUSED"
	const_attribute package explicit_type "int"
	init_value "7"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int se emplea para indicar que la operación se suspendió indefinidamente por alguna razón. Generalmente se emplea para casos en revisión interna"
      end

      attribute 1220485 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el estado de la una transacción"
      end

      operation 1771013 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end

      classrelation 1273861 // <generalisation>
	relation 1255685 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1273861 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end
    end

    class 949765 "APIGoogleApps"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Esta clase es el encapsulamiento de la API de GoogleApps y que flexibiliza los llamados a las distintas funciones cuando se hacen a nombre del mismo reseller."
      attribute 1240197 "URL_AUTHENTICATION_TOKEN"
	const_attribute package explicit_type "string"
	init_value "'https://www.google.com/accounts/ClientLogin'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const URL_AUTHENTICATION_TOKEN la URL del servicio de login de GoogleApps"
      end

      attribute 1240325 "URL_DOMAIN_VERIFICATION"
	const_attribute package explicit_type "string"
	init_value "'https://apps-apis.google.com/a/feeds/domain/2.0/%s/accountInformation/isVerified'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const URL_DOMAIN_VERIFICATION la URL a la cual se remiten los pedidos de verificación de dominios"
      end

      attribute 1240453 "URL_BASE_DOMAIN"
	const_attribute package explicit_type "string"
	init_value "'https://apps-apis.google.com/a/feeds/reseller/2.0/%s/domain/%s'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const URL_BASE_DOMAIN la URL que determina si un dominio pertenece o no al reseller"
      end

      attribute 1248517 "URL_DOMAIN_CREATE"
	const_attribute package explicit_type "string"
	init_value "'https://apps-apis.google.com/a/feeds/reseller/2.0/%s/domain'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const URL_DOMAIN_CREATE la URL que crea un dominio (una cuenta) de cliente"
      end

      attribute 1290757 "URL_DOMAIN_GENERAL"
	const_attribute package explicit_type "string"
	init_value "'https://apps-apis.google.com/a/feeds/domain/2.0/%s/general/'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const URL_DOMAIN_GENERAL la URL que se emplea para consultar cosas de los dominios"
      end

      attribute 1255429 "URL_USER_QUERY"
	const_attribute package explicit_type "string"
	init_value "'https://apps-apis.google.com/a/feeds/%s/user/2.0'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const URL_USER_QUERY la URL que crea un usuario en un dominio dado"
      end

      attribute 1434885 "URL_DOMAIN_USER"
	const_attribute package explicit_type "string"
	init_value "'https://apps-apis.google.com/a/feeds/%s/user/2.0/%s'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const URL_DOMAIN_GENERAL la URL que se emplea para modificar los usuarios de un dominio dado"
      end

      attribute 1240581 "ATOM_NAMESPACE"
	const_attribute package explicit_type "string"
	init_value "'http://www.w3.org/2005/Atom'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const ATOM_NAMESPACE la URL del namespace de los pedidos y consultas basados en el estándar de Google ATOM"
      end

      attribute 1240709 "GAPPS_NAMESPACE"
	const_attribute package explicit_type "string"
	init_value "'http://schemas.google.com/apps/2006'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const GAPPS_NAMESPACE la URL del espacio de nombres empleado para algunas solicitudes de GoogleApps"
      end

      attribute 1240837 "LOGIN_HOSTED_OR_GOOGLE"
	const_attribute package explicit_type "string"
	init_value "'HOSTED_OR_GOOGLE'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const LOGIN_HOSTED_OR_GOOGLE una constante que Google emplea como valor en ciertos pedidos"
      end

      attribute 1240965 "GAPP_SERVICE"
	const_attribute package explicit_type "string"
	init_value "'apps'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const GAPP_SERVICE una constante que Google emplea para identificar su servicio corporativo"
      end

      attribute 1241093 "SOURCE_LOG"
	const_attribute package explicit_type "string"
	init_value "'iplan-autoprovisioning2-0.1Beta'"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const SOURCE_LOG la denominación que se ha seleccionado como nombre del sistema de aprovisionamiento para GoogleApps"
      end

      attribute 1241221 "SID"
	private explicit_type "string"
	init_value "''"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el ID de la sesión con los servicios de Google"
      end

      attribute 1241349 "LSID"
	private explicit_type "string"
	init_value "''"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un token de autenticación de la antigua API. No se utiliza, al menos por el momento"
      end

      attribute 1241477 "AUTH"
	private explicit_type "string"
	init_value "''"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el token de autorización que brinda GoogleApps, con vigencia de 24 hs."
      end

      attribute 1241605 "DEBUG"
	private explicit_type "bool"
	init_value "false"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean un flag que indica si se está o no debugeando los llamados"
      end

      attribute 1310981 "lastError"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string una variable donde dejo temporalmente los mensajes de error del último llamado"
      end

      attribute 1311109 "lastErrorCode"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string temporariamente mantiene el registro del código de error del último llamado"
      end

      attribute 1346437 "lastCall"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array el mismo arreglo que devuelve el makeCall"
      end

      attribute 1346821 "context"
	private type class_ref 417029 // ApplicationContext
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ApplicationContext el contexto"
      end

      attribute 1346693 "orm"
	private type class_ref 167685 // ORM
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var ORM una instancia del ORM para usar a fines de loguear información"
      end

      attribute 1262853 "log"
	private explicit_type "LogMessages"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var LogMessages una instancia de la clase de log"
      end

      attribute 1395333 "reseller"
	private explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el dominio reseller"
      end

      attribute 1408389 "lastProcessId"
	private explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int el último código de proceso que se emplea por default en caso que la transacción no tenga una novedad asociada."
      end

      attribute 1408517 "transaction"
	private type class_ref 935941 // GoogleTransaction
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var GoogleTransaction la transacción actual para la que se deben registrar los logs."
      end

      operation 1793285 "makeCall"
	preserve_cpp_body_indent protected explicit_return_type ""
	nparams 4
	  param in name "url" explicit_type "string"
	  param in name "body" explicit_type "string"
	    defaultvalue "''"
	  param in name "method" explicit_type "string"
	    defaultvalue "'POST'"
	  param in name "headers" explicit_type "array"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Hace un llamado a una función de la API de Google.

@param string $url la dirección a la cual remitir el llamado
@param string $body el cuerpo del mensaje que debe ser enviado.
@param string $method el tipo de codificación empleada en el llamado, puede ser POST, GET o PUT
@param array $headers encabezados adicionales, en forma de una lista de strings que serán ubicados adecuadamente en el llamado a la función.

@return array devuelve un arreglo con información pertinente al resultado del llamado. La estructura del mismo contiene los headers de la respuesta empleando el nombre como clave (ejemplo $respuesta['Content-Type'] y además los siguientes elementos:
array (
   'protocol': el protocolo a través del cual se invocó el llamado: http, https, etc...
   'status': el código de estado devuelto por el servidor: 400, 200, 404, 502, etc...
   'description': la descripción literal del código de estado.
   'body': el texto del cuerpo de la respuesta
   'xml': un objeto de tipo DOMXPath tradicional, si se detecta que se trata de un XML
   'atom': un objeto de tipo DOMXPath preparado para ATOM, si se detecta que es el caso
)"
      end

      operation 1793413 "parseResponse"
	preserve_cpp_body_indent protected explicit_return_type "array"
	nparams 1
	  param in name "response" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Función auxiliar que parsea una respuesta del servidor y devuelve un array con ciertos componentes y los headers de la respuesta.

@param string $response el texto plano de la respuesta del servidor."
      end

      operation 1793541 "parseBody"
	preserve_cpp_body_indent protected explicit_return_type "DOMXPath"
	nparams 2
	  param in name "text" explicit_type "string"
	  param in name "type" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Función auxiliar que dado el cuerpo de una respuesta en XML retorna un objeto DOMXPath para trabajar con él.

@param string $text el cuerpo en texto plano.
@param string $type el tipo detectado del documento

@return DOMXPath una instancia preparada para trabajar en forma más amena con la respuesta.
"
      end

      operation 1793925 "validateClientDomain"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 1
	  param in name "domain" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Chequea si un dominio es factible de ser empleado por un cliente.

@param string $domain el dominio a verificar

@return string La función retorna una cadena de texto que puede ser:
ES_DE_IPLAN: si la cuenta existe y está administrada (comercialmente) por IPlan
NO_ES_DE_IPLAN: si la cuenta existe pero administrada por un tercero (posiblemente Google). Antigüamente se intentó discriminar entre administradas por Google y por otros Resellers, pero las API no permiten conocer dicha información.
NO_EXISTE: el dominio no tiene creada una cuenta en GoogleApps"
      end

      operation 1813765 "createDomainUser"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 6
	  param in name "domain" explicit_type "string"
	  param in name "username" explicit_type "string"
	  param in name "password" explicit_type "string"
	  param in name "name" explicit_type "string"
	  param in name "family" explicit_type "string"
	  param in name "admin" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}, ${p4}${v4}, ${p5}${v5}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
      end

      operation 1794053 "createCustomerDomain"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 3
	  param in name "domain" explicit_type "string"
	  param in name "licences" explicit_type "int"
	  param in name "countryCode" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una cuenta de GoogleApps. Es necesario que antes de invocar a esta función se hayan realizadas las validaciones pertinentes.

@param string $domain el dominio que se va a emplear en la cuenta
@param int $licences la cantidad de licencias que se le va a asignar a la cuenta
@param string $countryCode el código de país

@return boolean Un true si la creación de cuenta fue exitosa o false en caso contrario. También es posible que arroje excepciones ante inconvenientes operativos."
      end

      operation 1793797 "verifyDomain"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 1
	  param in name "domain" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Dado un dominio, chequea con Google si el mismo ya fue verificado por sus sistemas.

@param string $domain el dominio a verificar

@return boolean Retorna true si el dominio ya ha sido verificado satisfactoriamente o false en caso contrario. Además, si el pedido falla arroja distintas excepciones."
      end

      operation 1848709 "countDomainUsers"
	preserve_cpp_body_indent public explicit_return_type "int"
	nparams 1
	  param in name "domain" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve la cantidad de usuarios configurados en el dominio.

@param string $domain el dominio del cliente

@return int Devuelve la cantidad de usuarios del dominio indicado."
      end

      operation 1848837 "getMaxNumberOfLicences"
	preserve_cpp_body_indent public explicit_return_type "int"
	nparams 1
	  param in name "domain" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve la capacidad máxima de usuarios contratados en el dominio.

@param string $domain el dominio del cliente

@return int Devuelve la cantidad de usuarios que puede albergar el dominio según la contratación actual."
      end

      operation 1793669 "registerInGoogleApps"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 2
	  param in name "email" explicit_type "string"
	  param in name "password" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Valida las credenciales del reseller y prepara a la instancia para trabajar con la API de google.

@param string $email el mail de la cuenta administradora de la entidad reseller
@param string $password la contraseña del administrador

@return boolean devuelve true si todo estuvo bien o arroja una excepción si hubo un error."
      end

      operation 1848581 "listDomainUsers"
	preserve_cpp_body_indent public explicit_return_type "array|false"
	nparams 2
	  param in name "domain" explicit_type "string"
	  param in name "filterByAdmins" explicit_type "bool"
	    defaultvalue "false"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los usuarios de una cuenta. Opcionalmente se puede filtrar por aquellos usuarios que sean administradores.

@param string $domain el dominio del cliente
@param boolean $filterByAdmins un flag que indica si se desea o no que se recuperen sólo las cuentas administradoras.

@return array|false Devuelve un arreglo indexado donde cada posición tiene un arreglo con el nombre del usuario (username), un flag que indica si es o no administrador (admin) y el nombre completo del usuario (name y surname). Si ocurriera algún error devuelve false."
      end

      operation 1848453 "upgradeStandardToPremium"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 4
	  param in name "domain" explicit_type "string"
	  param in name "licences" explicit_type "int"
	  param in name "countryCode" explicit_type "string"
	  param in name "transferToken" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Promociona una cuenta de GoogleApps Standard existente a Premium.

@param string $domain el dominio que se va a emplear en la cuenta
@param int $licences la cantidad de licencias que se le va a asignar a la cuenta
@param string $countryCode el código de país
@param string $transferToken el código brindado por el usuario para realizar la actualización
@return boolean Un true si la actualización de la cuenta fue exitosa o false en caso contrario. También es posible que arroje excepciones ante inconvenientes operativos."
      end

      operation 1856517 "setMaxNumberOfLicences"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 2
	  param in name "domain" explicit_type "string"
	  param in name "licences" explicit_type "int"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Disminuye la cantidad de cuentas en una cierta cantidad.

@param string $domain el dominio que se va a emplear en la cuenta
@param int $licences la cantidad de licencias que se le va a asignar a la cuenta

@return boolean Un true si la actualización de la cuenta fue exitosa o false en caso contrario. También es posible que arroje excepciones ante inconvenientes operativos."
      end

      operation 1856645 "downgradeAccount"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 1
	  param in name "domain" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Desvincula la cuenta del reseller.

@param string $domain el dominio que se va a emplear en la cuenta

@return boolean Un true si la actualización de la cuenta fue exitosa o false en caso contrario. También es posible que arroje excepciones ante inconvenientes operativos."
      end

      operation 1856773 "listDomains"
	preserve_cpp_body_indent public explicit_return_type "array|false"
	nparams 1
	  param in name "from" explicit_type "string"
	    defaultvalue "''"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Recupera los dominios del reseller.

@param $from string el dominio a partir del cual se solicita el listado
@return array|false La lista de dominios o false si algo falló."
      end

      operation 1870853 "getLastError"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el texto correspondiente al mensaje de error del último llamado.

@return string|false El mensaje de error o false si no se produjo ningún error"
      end

      operation 1870981 "getLastErrorCode"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el texto correspondiente al código de error del último llamado.

@return string|false El código de error o false si no se produjo ningún error"
      end

      operation 1901189 "getLastCall"
	preserve_cpp_body_indent public explicit_return_type "string"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el arreglo completo resultado del último makeCall()

@return array El arreglo del último makeCall()"
      end

      operation 1901445 "initLog"
	preserve_cpp_body_indent public return_type class_ref 949765 // APIGoogleApps
	nparams 3
	  param inout name "context" type class_ref 417029 // ApplicationContext
	    defaultvalue "null"
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	  param inout name "log" explicit_type "LogMessages"
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Inicializa algunas variables necesarias para integrar la API con el sistema de Logs"
      end

      operation 1901701 "setDebug"
	preserve_cpp_body_indent public return_type class_ref 949765 // APIGoogleApps
	nparams 1
	  param in name "enable" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "@param boolean $enable true para activalo
@return APIGoogleApps
"
      end

      operation 1901829 "getDomainInfo"
	preserve_cpp_body_indent public return_type class_ref 249477 // ArrayAccess
	nparams 1
	  param in name "domain" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
      end

      operation 1967749 "setLastProcessId"
	preserve_cpp_body_indent public return_type class_ref 949765 // APIGoogleApps
	nparams 1
	  param in name "process" explicit_type "int"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Establece el último nro. de proceso para el caso que la transacción no haya venido de Tenfold."
      end

      operation 1901317 "saveFileLog"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 3
	  param in name "contents" explicit_type "string|array"
	  param in name "contentType" explicit_type "int"
	  param in name "messageType" explicit_type "int"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Guarda un documento como parte del log.

@param string|array $contents un string que representa el contenido del archivo o un arreglo de strings donde cada uno representa un contenido de archivo distinto.
@param int $contentType el tipo de mensaje (XML, HTTP, etc...) en el que está dado el/los string/s.
@param int $messageType la clasificación interna del mensaje (request/response).

@return boolean Devuelve True si todo anduvo bien, False en caso contrario."
      end

      operation 1968005 "setTransaction"
	preserve_cpp_body_indent public return_type class_ref 949765 // APIGoogleApps
	nparams 1
	  param inout name "transaction" type class_ref 935941 // GoogleTransaction
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Configura la transacción en curso a fines de registrarla en los logs.

@param GoogleTransaction $transaction la transacción en la cual se deben registrar los logs.

@return APIGoogleApps La API con el valor registrado."
      end

      operation 2018053 "changeUserPassword"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 4
	  param in name "domain" explicit_type "string"
	  param in name "username" explicit_type "string"
	  param in name "password" explicit_type "string"
	  param in name "hash" explicit_type "string"
	    defaultvalue "'SHA-1'"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el password de un usuario perteneciente a algún dominio administrado por el reseller.

@param string $domain el dominio al cual pertenece el usuario
@param string $username el nombre de usuario que se quiere modificar
@param string $password el resultado de aplicar la función de hash a la clave del usuario
@param string $hash el algoritmo de hash empleado, por default es SHA-1

@return boolean La función retorna TRUE si el cambio se realizó con éxito y FALSE si no."
      end
    end

    classdiagram 324485 "Diagrama Simplificado"
      draw_all_relations no hide_attributes default hide_operations default hide_getset_operations default show_members_full_definition default show_members_visibility default show_members_stereotype default show_members_context default show_members_multiplicity default show_members_initialization default show_attribute_modifiers default member_max_width 0 show_parameter_dir default show_parameter_name default package_name_in_tab default class_drawing_mode default drawing_language default show_context_mode default auto_label_position default show_relation_modifiers default show_relation_visibility default show_infonote default shadow default show_stereotype_properties default
      size A4
    end

    class 1062277 "GoogleReport"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method DateTime getStarted()
@method DateTime getEnded()
@method int getRegisteredDomains()
@method int getRegisteredLicences()
@method int getRegisteredAccounts()
@method GoogleReseller getReseller()
@method ORMCollection getDomains()
@method GoogleReport addDomain()
@method GoogleReportedDomain delDomain()
@method GoogleReport setStarted()
@method GoogleReport setEnded()
@method GoogleReport setRegisteredDomains()
@method GoogleReport setRegisteredLicences()
@method GoogleReport setRegisteredAccounts()
@method GoogleReport setReport()
"
      classrelation 1446149 // <generalisation>
	relation 1413637 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1446149 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1448581 "started"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha y hora de inicio de la consulta a Google"
      end

      attribute 1448709 "ended"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime el momento de finalizacin del listado"
      end

      attribute 1448837 "registeredDomains"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de dominios contabilizados en la consulta"
      end

      attribute 1456517 "registeredLicences"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de licencias de los dominios sumadas"
      end

      attribute 1448965 "registeredAccounts"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de cuentas registradas en los dominios"
      end

      attribute 1449093 "report"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el reporte en bruto, en formato csv"
      end

      classrelation 1453061 // reseller (<association>)
	relation 1420421 ----
	  a role_name "reseller" multiplicity "1" protected
	    comment "@var GoogleReseller"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1453061 // reseller (<association>)
	  b role_name "reports" multiplicity "*" protected
	    comment "@var ORMCollection los reportes generados para este reseller"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1453189 // reports (<association>)
      end

      classrelation 1452805 // domains (<association>)
	relation 1420293 ----
	  a role_name "domains" multiplicity "*" protected
	    comment "@var ORMCollection la lista de dominios informados"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1452805 // domains (<association>)
	  b role_name "report" multiplicity "1" protected
	    comment "@var GoogleReport el reporte al cual pertenece el dominio"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1452933 // report (<association>)
      end

      operation 2085637 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1062405 "GoogleReportedDomain"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method string getDomain()
@method int getLicences()
@method int getAccounts()
@method GoogleReport getReport()
@method GoogleRegisteredDomain setDomain()
@method GoogleRegisteredDomain setLicences()
@method GoogleRegisteredDomain setAccounts()
@method GoogleRegisteredDomain setReport()
"
      classrelation 1446277 // <generalisation>
	relation 1413765 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1446277 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1455621 "domain"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el dominio que fue informado por Google al momento del reporte"
      end

      attribute 1455749 "licences"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de licencias asignadas al dominio"
      end

      attribute 1455877 "accounts"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de cuentas creadas en el dominio"
      end

      classrelation 1452933 // report (<association>)
	relation_ref 1420293 // <association>
      end

      operation 2085765 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1068933 "GoogleReseller"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "@method string getDomain()
@method string getDescription()
@method string getUser()
@method string getPassword()
@method ORMCollection getReports()
@method GoogleReseller addReport()
@method GoogleReport delReport()
@method GoogleReseller setDomain()
@method GoogleReseller setDescription()
@method GoogleReseller setUser()
@method GoogleReseller setPassword()
@method ORMCollection getCustomers()
@method GoogleReseller addCustomer()
@method GoogleCustomer delCustomer()
@method DateTime getValidFrom()
@method GoogleReseller setValidFrom()
@method DateTime getValidTo()
@method GoogleReseller setValidTo()

"
      classrelation 1453317 // <generalisation>
	relation 1420549 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1453317 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1456005 "domain"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el dominio del Reseller"
      end

      attribute 1456133 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un nombre descriptivo que se pueda emplear en lugar del dominio"
      end

      attribute 1456261 "user"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre de usuario del administrador o equivalente que se vaya a emplear para realizar las tareas de provisioning"
      end

      attribute 1456389 "password"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la clave del usuario"
      end

      attribute 1767301 "validFrom"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de inicio de la vigencia del reseller"
      end

      attribute 1767429 "validTo"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de fin de la vigencia del reseller"
      end

      classrelation 1453189 // reports (<association>)
	relation_ref 1420421 // <association>
      end

      classrelation 1632133 // accounts (<association>)
	relation_ref 1589509 // <association>
      end

      classrelation 1667717 // <association>
	relation_ref 1624581 // <association>
      end

      classrelation 1713029 // summaries (<association>)
	relation 1668101 ----
	  a role_name "summaries" multiplicity "*" protected
	    comment "@var ORMCollection la lista de reportes generados para este reseller en la API 3.0"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1713029 // summaries (<association>)
	  b role_name "reseller" multiplicity "1" protected
	    comment "@var GoogleReseller el reseller al que pertenece el reporte"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1713157 // reseller (<association>)
      end

      operation 2085893 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1191685 "GoogleAppsManagerAPI3"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      ncouples 1
      key "uses" value "chdir('iplan/models/googleapps/google-api-php-client-1.0.6-beta/src/');
 //Require de la libería de Cliente de Google.
require_once 'Google/Client.php';

//Require de la libería de Resseller de Google.
require_once 'Google/Service/Reseller.php';

//Require de la libería de Directory de Google.
require_once 'Google/Service/Directory.php';

//Require de la libería de SiteVerification de Google.
require_once 'Google/Service/SiteVerification.php';
chdir('../../../../../');"
      comment "Facade del sistema de Provisioning de GoogleApps reconstruído en base al facade anterior (GoogleAppsProvisioningManager) contemplando el uso de la API 3.0 de GoogleApps.
"
      classrelation 1653381 // <generalisation>
	relation 1610757 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1653381 // <generalisation>
	  b parent class_ref 416901 // AbstractManager
      end

      classrelation 1653509 // <dependency>
	relation 1610885 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1653509 // <dependency>
	  b parent class_ref 1068933 // GoogleReseller
      end

      classrelation 1692165 // <dependency>
	relation 1647493 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1692165 // <dependency>
	  b parent class_ref 1225349 // GoogleProductForm
      end

      classrelation 1692421 // <dependency>
	relation 1647749 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1692421 // <dependency>
	  b parent class_ref 1225477 // GoogleRenewalTypeForm
      end

      classrelation 1692677 // <dependency>
	relation 1648005 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1692677 // <dependency>
	  b parent class_ref 1225605 // GoogleSubscriptionStatusForm
      end

      classrelation 1699717 // <dependency>
	relation 1654917 -_->
	  a default
	    php "${type}"
	    classrelation_ref 1699717 // <dependency>
	  b parent class_ref 1232261 // GooglePlanForm
      end

      attribute 1691141 "lastProcessId"
	private explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int el código de proceso de la última ejecución de aprovisionamiento. Todas las transacciones procesadas en la misma ejecución comparte el código de proceso."
      end

      attribute 1795973 "CANCEL"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int la constante que indica que se debe cancelar en TenFold"
      end

      attribute 1796101 "SUSPEND"
	const_attribute package explicit_type "int"
	init_value "2"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int la constante que indica que se debe suspender la transacción actual hasta la siguiente vez"
      end

      attribute 1796741 "PAUSE"
	const_attribute package explicit_type "int"
	init_value "4"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int la constante que indica que se debe crear un ticket en TSRM"
      end

      attribute 1796229 "NOTIFY_USER"
	const_attribute package explicit_type "int"
	init_value "8"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int la constante que indica que se debe notificar via alerta de mail al usuario"
      end

      attribute 1796357 "NOTIFY_DEVELOPER"
	const_attribute package explicit_type "int"
	init_value "16"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int la constante que indica que se debe notificar al desarrollador"
      end

      attribute 1796485 "TSRM"
	const_attribute package explicit_type "int"
	init_value "32"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int la constante que indica que se debe crear un ticket en TSRM"
      end

      operation 2413317 "__construct"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "application" type class_ref 423557 // Application
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea una instancia del Manager y configura la aplicacin

@param iplan\\security\\Application $application la aplicacin que es la propietaria del manager
@param string $name el nombre que dentro del framework tiene el Manager

@return iplan\\security\\AbstractManager Una instancia del Manager en cuestin"
      end

      operation 2329605 "__listActions"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna una lista de métodos que pueden ser invocados desde la aplicación.

@return array Un arreglo (clave, valor) donde la clave es un string con el nombre ficticio de la operación y el valor el nombre del método que le corresponde."
      end

      operation 2400005 "_parseGoogleMetadata"
	preserve_cpp_body_indent private explicit_return_type ""
	nparams 1
	  param inout name "metadata" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve la información de la metadata en forma de un arreglo.

@param string $metadata la metadata a parsear.

@return array un arreglo asociativo con las claves 'domain', 'licences', y 'plan'."
      end

      operation 2483205 "_maybeOne"
	preserve_cpp_body_indent private explicit_return_type "mixed"
	nparams 3
	  param inout name "list" explicit_type "array"
	  param in name "message" explicit_type "string"
	  param in name "code" explicit_type "int"
	    defaultvalue "null"
	nexceptions 1
	  exception class_ref 321797 // Exception
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Evalua un arreglo para verificar que no tenga más de un elemento, en cuyo caso genera una excepción con el mensaje pasado por parámetro. Si tuviera un elemento lo retorna, o devuelve null tanto si $list es un array vacío o null.

@param array $list la lista de la cual se desea extraer el primer elemento si existe
@param string $message el mensaje de la excepción en caso que haya más de un elemento.
@param int $code un código para la excepción, es opcional

@return mixed retorna el primer elemento del arreglo o null si el mismo estuviese vacío o fuera null.
@throws Exception en caso de haber más de un elemento en la lista arroja una excepción con ($message,code)"
      end

      operation 2489733 "_setNew"
	preserve_cpp_body_indent private explicit_return_type ""
	nparams 4
	  param inout name "options" explicit_type "array"
	  param in name "key" explicit_type "string"
	  param in name "old" explicit_type "mixed"
	  param in name "new" explicit_type "mixed"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}, ${p2}${v2}, ${p3}${v3}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Dado un arreglo y una clave, coloca el valor \"new\" cuando es distinto del \"old\"

@param array $options el arreglo al cual agregar el valor
@param string $key la clave en la cual asignar el valor
@param mixed $old el valor a comparar
@param mixed $new el valor a asignar

@return array el arreglo modificado."
      end

      operation 2366469 "abmGooglePlan"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los planes de pago/vencimientos posibles para el producto.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2359045 "abmGoogleProduct"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los productos de Google con los códigos respectivos.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2359173 "abmGoogleRenewalType"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de renovación disponibles para los productos de Google

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2359301 "abmGoogleSubscriptionStatus"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los estados que pueden adquirir las suscripciones de Google.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2373125 "abmStatus"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "ABM de los distintos estados en los que puede estar una transacción en el sistema de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2379653 "abmTransactionType"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de transacciones que admite la plataforma de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 128262 "abortUnresolvedTransactions"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "orm" type class_ref 167685 // ORM
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Aborta la transaccin y sus hijas que no estn en un estado resuelto.

@param ORM $orm La instancia de ORM asociada.
@param GoogleTransaction3 $transaction la transaccin con los parmetros de la subscripcin

@return boolean devuelve TRUE si todo se proces correctamente y FALSE en caso contrario"
      end

      operation 2330501 "aprovisionar"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Procesa las transacciones pendientes a fin de realizar el aprovisionamiento.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2462597 "changeLicenceLimit"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia la cantidad de licencias de la cuenta

@param GoogleTransaction3 $transaction la transacción con los parámetros para el cambio sobre la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2462725 "changePlan"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia el tipo de plan de la cuenta de la transacción

@param GoogleTransaction3 $transaction la transacción con los parámetros para el cambio sobre la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2476549 "changeRenewalSettings"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Cambia la configuración de la renovación anual automática.

@param GoogleTransaction3 $transaction la transacción con los parámetros para el cambio sobre la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2462469 "createAccount"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Crea la cuenta especificada en la transacción.

@param GoogleTransaction3 $transaction la transacción con los parámetros de la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2469765 "createAdmin"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega un usuario administrador a una subscripción de GoogleApps for Bussiness

@param GoogleTransaction3 $transaction la transacción con los parámetros de la subscripción

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2469637 "createSubscription"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega la subscripción especificada en la transacción a un customer existente.

@param GoogleTransaction3 $transaction la transacción con los parámetros de la subscripción

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2462853 "deleteAccount"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Quita una cuenta de la distribución de IPlan

@param GoogleTransaction3 $transaction la transacción con los parámetros para la baja de la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2392837 "detailAddress"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Muestra la dirección de uno de los clientes registrados en la plataforma de GoogleApps.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2330629 "interpretar"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Interpreta las novedades que ingresan via el ESBCheck.

@param ApplicationContext $context el contexto de la aplicación

@return boolean Devuelve TRUE si la novedad pudo ser interpretada (aún cuando la misma resulte cancelada en el proceso) o FALSE si hubo un fallo grave."
      end

      operation 2476293 "isAprovisioned"
	preserve_cpp_body_indent public return_type class_ref 1218565 // GoogleTransaction3
	nparams 1
	  param in name "subscriptionId" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Verifica si existe una transacción de \"alta\" en el sistema y la devuelve o arroja excepciones en caso contrario. Se emplea para verificar que el dominio ha sido aprovisionado por el AP, para no modificar cosas que no pertenezcan al sistema.

@param string $subscriptionId la subscripción a verificar

@return GoogleTransaction3 la transacción de alta correspondiente a la subscripción."
      end

      operation 2351621 "listCustomers"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los clientes registrados en la plataforma de GoogleApps, incluso los dados de baja.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2329861 "listDomainUsers"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista las cuentas de mail asociadas a un dominio.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2351749 "listGoogleProducts"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los productos de Google con los códigos respectivos.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2351877 "listGoogleRenewalTypes"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de renovación disponibles para los productos de Google

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2352005 "listGoogleSubscriptionStatus"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los estados que pueden adquirir las suscripciones de Google.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2330373 "listSubscriptions"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista las suscripciones creadas por el autoprovisioning (aunque posteriormente se hayan dado de baja), las que están en proceso de creación y aquellas fruto del proceso de confiabilización.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2366341 "listGooglePlans"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los planes de pago/vencimientos posibles para el producto.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2330245 "listTransactions"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Muestra un listado de las transacciones registradas en la plataforma de provisioning de GoogleApps. Estas pueden ser efectivamente realizadas o pendientes.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2379781 "listReports"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 1
	  param inout name "context" type class_ref 417029 // ApplicationContext
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los reportes de las suscripciones de Google.

@param ApplicationContext $context el contexto de la aplicación

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2329733 "listResellerReports"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de transacciones que admite la plataforma de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2330117 "listStatus"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los distintos estados en los que puede estar una transacción en el sistema de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 2329989 "listTransactionTypes"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Lista los tipos de transacciones que admite la plataforma de autoprovisioning de GoogleApps

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end

      operation 170118 "migrateAccount"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Migra la cuenta especificada en la transacción.

@param GoogleTransaction3 $transaction la transacción con los parámetros de la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2463109 "normalize"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega o actualiza los datos de una cuenta en la base de datos del Auto Provisioning.

@param GoogleTransaction3 $transaction la transacción con los datos actualizados y supuestamente \"confiabilizados\" para la cuenta.

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 169990 "processAccount"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Procesa el Alta de la Cuenta y decide si es alta o migración

@param GoogleTransaction3 $transaction la transacción con los parámetros de la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 128134 "processChildrenTransactions"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "orm" type class_ref 167685 // ORM
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Procesa las transacciones hijas y actualiza su estado segn el resultado de los hijos

@param ORM $orm La instancia de ORM asociada.
@param GoogleTransaction3 $transaction la transaccin con los parmetros de la subscripcin

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 128006 "processTransaction"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "orm" type class_ref 167685 // ORM
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Ejecuta acciones comunes para todos los tipos de transaccin y selecciona el mtodo a ejecutar segn cual sea.

@param ORM $orm La instancia de ORM asociada.
@param GoogleTransaction3 $transaction la transacción con los parámetros de la subscripción

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2476421 "processAccountChange"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Determina las transacciones a disparar para un posible cambio.

@param GoogleTransaction3 $transaction la transacción con los parámetros para el cambio sobre la cuenta

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 196358 "propagateExecutionInterval"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param inout name "orm" type class_ref 167685 // ORM
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Propaga el intervalo de ejecución desde los hijos al padre, respetando estados y el menor de todos.

@param ORM $orm La instancia de ORM asociada.
@param GoogleTransaction3 $transaction la transacción asociada.

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2462981 "validate"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Comprueba si el dominio de la transacción está validado.

@param GoogleTransaction3 $transaction la transacción con el dato del dominio de la cuenta.

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2515845 "validateAccountMigration"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Comprueba si los una cuenta recién migrada tiene la configuración esperada.

@param GoogleTransaction3 $transaction la transacción con el dato del dominio de la cuenta.

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 2476677 "validateAnnualChange"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "transaction" type class_ref 1218565 // GoogleTransaction3
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Comprueba si los cambios a los settings de las anuales han sido aplicados en forma efectiva.

@param GoogleTransaction3 $transaction la transacción con el dato del dominio de la cuenta.

@return boolean devuelve TRUE si todo se procesó correctamente y FALSE en caso contrario"
      end

      operation 209414 "unformatPhoneNumber"
	preserve_cpp_body_indent private explicit_return_type "string"
	nparams 1
	  param in name "phoneNumber" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Normaliza el número de teléfono.

@param string $phoneNumber El número a procesar

@return string el número formateado."
      end

      operation 235782 "getGoogleService"
	preserve_cpp_body_indent private explicit_return_type "mixed"
	nparams 2
	  param in name "serviceType" explicit_type "Int"
	  param in name "scopes" explicit_type "array"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el Google_Service_Directory o Google_Service_Reseller para usar los llamados a la API 3.0 de Google según se le indique.

@param $serviceType 1 para Reseller, 2 para Directory
@param $scopes un arreglo con los scopes a usar
@return mixed"
      end

      operation 235526 "getGoogleServiceDirectory"
	preserve_cpp_body_indent public explicit_return_type "Google_Service_Directory"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el Google_Service_Directory para usar los llamados a la API 3.0 de Google.

@return Google_Service_Directory"
      end

      operation 235654 "getGoogleServiceReseller"
	preserve_cpp_body_indent public explicit_return_type "Google_Service_Reseller"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el Google_Service_Reseller para usar los llamados a la API 3.0 de Google.

@return Google_Service_Reseller"
      end

      operation 255878 "listTransaction3Data"
	preserve_cpp_body_indent public return_type class_ref 410117 // Renderable
	nparams 2
	  param inout name "context" type class_ref 417029 // ApplicationContext
	  param in name "ajax" explicit_type "bool"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Muestra un listado de la Transaction3Data.

@param ApplicationContext $context el contexto de la aplicación
@param boolean $ajax indica si el llamado es para página completa o para ser devuelto en background

@return Renderable La página a mostrar encapsulada en un Renderable."
      end
    end

    class 1204869 "GoogleCustomer"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa un cliente o \"Customer\" de la interfaz API 3.0 de GoogleApps.

@method string getCustomerId()
@method GoogleCustomer setCustomerId()
@method string getCustomerDomain()
@method GoogleCustomer setCustomerDomain()
@method boolean getCustomerEnabled()
@method GoogleCustomer setCustomerEnabled()
@method Client getClient()
@method GoogleCustomer setClient()
@method GoogleCustomerAddress getAddress()
@method GoogleCustomer setAddress()
@method GoogleCustomer setEnabled()
@method ORMCollection getSubscriptions()
@method GoogleCustomer addSubscription()
@method GoogleSubscription delSubscription()
@method GoogleReseller getReseller()
@method GoogleCustomer setReseller()
"
      classrelation 1684229 // <generalisation>
	relation 1639557 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1684229 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1711365 "customerId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el identificador de Google del cliente"
      end

      attribute 1712261 "customerDomain"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el dominio principal del cliente"
      end

      attribute 1734789 "enabled"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si el cliente está activo o no en la distribución"
      end

      classrelation 1667589 // reseller (<association>)
	relation 1624581 ----
	  a role_name "reseller" multiplicity "1" protected
	    comment "@var GoogleReseller el revendedor al cual pertenece la cuenta"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1667589 // reseller (<association>)
	  b role_name "customers" multiplicity "*" protected
	    comment "@var ORMCollection la lista de clientes del reseller"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1667717 // <association>
      end

      classrelation 1667333 // address (<association>)
	relation 1624453 ----
	  a role_name "address" multiplicity "1" protected
	    comment "@var GoogleAddress la dirección del cliente"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1667333 // address (<association>)
	  b role_name "customers" multiplicity "1..*" protected
	    comment "@var ORMCollection la lista de clientes que comparten la dirección"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1667461 // customers (<association>)
      end

      classrelation 1667845 // subscriptions (<association>)
	relation 1624709 ----
	  a role_name "subscriptions" multiplicity "*" protected
	    comment "@var ORMCOllection la lista de suscripciones del cliente"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1667845 // subscriptions (<association>)
	  b role_name "customer" multiplicity "1" protected
	    comment "@var GoogleCustomer el cliente dueño de la suscripción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1667973 // customer (<association>)
      end

      classrelation 1668101 // client (<unidirectional association>)
	relation 1624837 --->
	  a role_name "client" multiplicity "1" protected
	    comment "@var Client el cliente dueño del servicio"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1668101 // client (<unidirectional association>)
	  b parent class_ref 552837 // Client
      end

      operation 2351365 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end

      operation 2358789 "delete"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Borra fsicamente un objeto de la base. Al borrarse el objeto adems se ponen a null los campos de las entidades relacionadas que lo referenciaban y se eliminan los registros de las tablas relacin M:N

@return boolean un booleando TRUE si la operacin fue concretada con xito o FALSE sino."
      end
    end

    class 1204997 "GoogleSubscription"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Es el equivalente interno a la subscripción de GoogleApps según la especificación de la API 3.0

@method string getSubscriptionId()
@method GoogleSubscription setSubscriptionId()
@method GoogleCustomer getCustomer()
@method GoogleSubscription setCustomer()
@method DateTime getCreationTime()
@method GoogleSubscription setCreationTime()
@method DateTime getStartTime()
@method GoogleSubscription setStartTime()
@method DateTime getEndTime()
@method GoogleSubscription setEndTime()
@method int getNumberOfSeats()
@method GoogleSubscription setNumberOfSeats()
@method int getMaximumNumberOfSeats()
@method GoogleSubscription setMaximumNumberOfSeats()
@method string getPurchaseOrderId()
@method GoogleSubscription setPurchaseOrderId()
@method string getResourceUiUrl()
@method GoogleSubscription setResourceUiUrl()
@method GoogleProduct getProduct()
@method GoogleSubscription setProduct()
@method GoogleSubscriptionStatus getStatus()
@method GoogleSubscription setStatus()
@method GooglePlan getPlan()
@method GoogleSubscription setPlan()
@method ORMCollection getTransactions()
@method GoogleSubscription addTransaction()
@method GoogleTransaction3 delTransaction()
@method GoogleRenewalType getRenewalType()
@method GoogleTransaction3 setRenewalType()
@method int getProvisionedNumberOfSeats()
@method GoogleSubscription setProvisionedNumberOfSeats()

"
      classrelation 1667973 // customer (<association>)
	relation_ref 1624709 // <association>
      end

      classrelation 1668357 // product (<association>)
	relation 1624965 ----
	  a role_name "product" multiplicity "1" protected
	    comment "@var GoogleProduct el producto de la suscripción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1668357 // product (<association>)
	  b role_name "subscriptions" multiplicity "*" protected
	    comment "@var ORMCollection la lista de suscripciones del SKU actual"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1668485 // subscriptions (<association>)
      end

      attribute 1712645 "subscriptionId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el último código de subscripción conocido."
      end

      attribute 1712773 "creationTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime el momento en el que se creó la suscripción"
      end

      attribute 1712901 "startTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime el inicio del período de vigencia de la suscripción"
      end

      attribute 1719557 "endTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de finalización de la vigencia de la suscripción"
      end

      attribute 1719685 "numberOfSeats"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int el número de cuentas iniciales de la suscripción"
      end

      attribute 1719813 "maximumNumberOfSeats"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad máxima de cuentas de la suscripción"
      end

      classrelation 1675013 // renewalType (<association>)
	relation 1631493 ----
	  a role_name "renewalType" multiplicity "1" protected
	    comment "@var GoogleRenewalType el tipo de renovación que se efectuará sobre la suscripción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1675013 // renewalType (<association>)
	  b role_name "subscriptions" multiplicity "*" protected
	    comment "@var ORMCollection la lista de subscripciones que utilizan ésta forma de renovación"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1675141 // subscriptions (<association>)
      end

      attribute 1720197 "purchaseOrderId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string información que el reseller emplea para fines de seguimiento o identificación"
      end

      classrelation 1675269 // status (<association>)
	relation 1631621 ----
	  a role_name "status" multiplicity "1" protected
	    comment "@var GoogleSuscriptionStatus el estado de la suscripción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1675269 // status (<association>)
	  b role_name "subscriptions" multiplicity "*" protected
	    comment "@var ORMCollection la lista de las suscripciones que están en éste estado"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1675397 // subscriptions (<association>)
      end

      attribute 1720581 "resourceUiUrl"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string URL a la consola de administración de la suscripción"
      end

      classrelation 1681925 // transactions (<association>)
	relation 1638149 ----
	  a role_name "transactions" multiplicity "*" protected
	    comment "@var ORMCollection la lista de operaciones que se efectuaron o están efectuando sobre la suscripción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1681925 // transactions (<association>)
	  b role_name "subscription" multiplicity "1" protected
	    comment "@var GoogleSuscription la suscripción a la que afecta la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1682053 // subscription (<association>)
      end

      classrelation 1684485 // <generalisation>
	relation 1639813 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1684485 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      classrelation 1699205 // plan (<association>)
	relation 1654533 ----
	  a role_name "plan" multiplicity "1" protected
	    comment "@var GooglePlan el plan de pago de la suscripción."
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1699205 // plan (<association>)
	  b role_name "subscriptions" multiplicity "*" protected
	    comment "@var ORMCollection las suscripciones que tienen este plan"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1699333 // subscriptions (<association>)
      end

      attribute 1872261 "provisionedNumberOfSeats"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int el número de licencias aprovisionadas según la política de 80% solicitada por Marketing/Producto (Pablo Luna)"
      end

      operation 2351237 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1205125 "GoogleCustomerAddress"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa la dirección de uno o más entidades customer (es decir, que pueden ser compartidas).

Como nota vale mencionar que las direcciones de Google tienen 3 líneas de \"address\", sin embargo aqu´i las guardamos en un sólo campo y las separamos por \"enters\" de ser necesario.

@method string getLocality()
@method GoogleCustomerAddress setLocality()
@method string getRegion()
@method GoogleCustomerAddress setRegion()
@method string getPostalCode()
@method GoogleCustomerAddress setPostalCode()
@method string getCountryCode()
@method GoogleCustomerAddress setCountryCode()
@method string getAddress()
@method GoogleCustomerAddress setAddress()
@method ORMCollection getCustomers()
@method GoogleCustomerAddress addCustomer()
@method GoogleCustomer delCustomer()
"
      classrelation 1667461 // customers (<association>)
	relation_ref 1624453 // <association>
      end

      attribute 1711493 "locality"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la localidad donde reside la administración de la empresa"
      end

      attribute 1711749 "region"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la región en la que reside la administración de la empresa"
      end

      attribute 1711877 "postalCode"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el código postal de la administración del cliente"
      end

      attribute 1712005 "countryCode"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el código del país del cliente"
      end

      attribute 1712133 "address"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la direccion del cliente, puede contener hasta 3 líneas de texto."
      end

      classrelation 1684357 // <generalisation>
	relation 1639685 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1684357 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      operation 2351109 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end

      operation 2358533 "save"
	preserve_cpp_body_indent cpp_virtual public explicit_return_type "bool"
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Verifica si el objeto fue modificado y lo guarda.
Este método permite abstraer a las clases descendientes de la necesidad de determinar si el objeto fue alterado o no y oculta la complejidad subyacente a las clases descendientes.
@param ORM $orm opcionalmente se debe indicar la instancia del ORM que mantiene el objeto. Esto sólo es posible si el objeto es nuevo o DETACHED. En el caso que ya estuviera bajo monitoreo de un ORM arrojará una excepción.

@return boolean Un true si todo anduvo bien, false (o una excepción) si algo falló.

Se pensó que se podría hacer el cambio de un ORM a otro, pero el ID debería limpiarse, con lo cual sólo un INSERT se podría hacer sobre el destino y los objetos relacionados estarían aún con otro ORM lo cual es complicado (manejo de objetos distribudos) por lo cual se deja a consideración en futuras versiones, posiblemente en otra vida =)"
      end

      operation 2358661 "delete"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Borra fsicamente un objeto de la base. Al borrarse el objeto adems se ponen a null los campos de las entidades relacionadas que lo referenciaban y se eliminan los registros de las tablas relacin M:N

@return boolean un booleando TRUE si la operacin fue concretada con xito o FALSE sino."
      end
    end

    class 1205381 "GoogleProduct"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa un producto de Google según lo especificado en la API 3.0

@method string getProduct()
@method GoogleProduct setProduct()
@method string getDescription()
@method GoogleProduct setDescription()
@method string getStockKeepingUnit()
@method GoogleProduct setStockKeepingUnit()
@method ORMCollection getSubscriptions()
@method GoogleProduct addSubscription()
@method GoogleSubscription delSubscription()

"
      attribute 1773957 "GOOGLE_APPS_FOR_BUSSINESS"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int código de producto de Google Apps for Bussiness"
      end

      attribute 1774213 "GOOGLE_DRIVE"
	const_attribute package explicit_type "int"
	init_value "2"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int código de producto de Google Drive"
      end

      attribute 1774085 "GOOGLE_VAULT"
	const_attribute package explicit_type "int"
	init_value "3"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const int código de producto de Google Vault"
      end

      classrelation 1668485 // subscriptions (<association>)
	relation_ref 1624965 // <association>
      end

      attribute 1712389 "product"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre del producto"
      end

      attribute 1712517 "stockKeepingUnit"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el código de stock del producto"
      end

      classrelation 1684613 // <generalisation>
	relation 1639941 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1684613 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1741701 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la descripción del producto"
      end

      operation 2350981 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1211909 "GoogleRenewalType"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Es uno de los tipos de renovación que prevé Google en su API 3.0

@method string getDescription()
@method GoogleRenewalType setDescription()
@method string getValue()
@method GoogleRenewalType setValue()
@method ORMCollection getSubscriptions()
@method GoogleRenewalType addSubscription()
@method GoogleSubscription delSubscription()
"
      attribute 1781893 "AUTO_RENEW_MONTHLY_PAY"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 1782021 "AUTO_RENEW_YEARLY_PAY"
	const_attribute package explicit_type "int"
	init_value "2"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 1782149 "CANCEL"
	const_attribute package explicit_type "int"
	init_value "3"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 1782277 "RENEW_CURRENT_USERS_MONTHLY_PAY"
	const_attribute package explicit_type "int"
	init_value "4"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 1782405 "RENEW_CURRENT_USERS_YEARLY_PAY"
	const_attribute package explicit_type "int"
	init_value "5"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 1782533 "SWITCH_TO_PAY_AS_YOU_GO"
	const_attribute package explicit_type "int"
	init_value "6"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
      end

      attribute 1719941 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la descripción del tipo de renovación."
      end

      attribute 1720069 "value"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el valor pasado a Google para indicar este estilo de renovación"
      end

      classrelation 1675141 // subscriptions (<association>)
	relation_ref 1631493 // <association>
      end

      classrelation 1684741 // <generalisation>
	relation 1640069 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1684741 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      operation 2350853 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1212037 "GoogleSubscriptionStatus"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Cada uno de los estados especificados en la API 3.0 de GoogleApps Reseller

@method string getDescription()
@method GoogleSubscriptionStatus setDescription()
@method string getValue()
@method GoogleSubscriptionStatus setValue()
@method ORMCollection getSubscriptions()
@method GoogleSubscriptionStatus addSubscription()
@method GoogleSubscription delSubscription()
"
      attribute 1781253 "ACTIVE"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const la constate que representa el estado ACTIVE de la API 3.0 de GoogleApps"
      end

      attribute 1781381 "CANCELLED"
	const_attribute package explicit_type "int"
	init_value "2"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const la constate que representa el estado CANCELLED de la API 3.0 de GoogleApps"
      end

      attribute 1781509 "PENDING"
	const_attribute package explicit_type "int"
	init_value "3"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const la constate que representa el estado PENDING de la API 3.0 de GoogleApps"
      end

      attribute 1781637 "SUSPENDED"
	const_attribute package explicit_type "int"
	init_value "4"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const la constate que representa el estado SUSPENDED de la API 3.0 de GoogleApps"
      end

      attribute 1781765 "BILLING_ACTIVATION_PENDING"
	const_attribute package explicit_type "int"
	init_value "5"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const la constate que representa el estado BILLING_ACTIVATION_PENDING de la API 3.0 de GoogleApps"
      end

      attribute 1720325 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la descripción del estado de la suscripción"
      end

      attribute 1720453 "value"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el valor que emplea Google para reconocer el estado de la suscripción"
      end

      classrelation 1675397 // subscriptions (<association>)
	relation_ref 1631621 // <association>
      end

      classrelation 1684869 // <generalisation>
	relation 1640197 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1684869 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      operation 2350725 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1218565 "GoogleTransaction3"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Las transacciones son las operaciones que se monitorean para el mantenimiento de las subscripciones. Atento a los grandes cambios existentes entre la API 2.0 y la API 3.0 de GoogleApps, se generó ésta clase y una forma alternativa de mantener la información relacionada.

@method DateTime getReaded()
@method GoogleTransaction3 setReaded()
@method DateTime getFinished()
@method GoogleTransaction3 setFinished()
@method string getDescription()
@method GoogleTransaction3 setDescription()
@method boolean getNotified()
@method GoogleTransaction3 setNotified()
@method DateTime getLastStatusChange()
@method GoogleTransaction3 setLastStatusChange()
@method string getInterval()
@method GoogleTransaction3 setInterval()
@method DateTime getLastTry()
@method GoogleTransaction3 setLastTry()
@method GoogleStatus getStatus()
@method GoogleTransaction3 setStatus()
@method GoogleTransactionType getType()
@method GoogleTransaction3 setType()
@method ServiceOrder getNotification()
@method GoogleTransaction3 setNotification()
@method User getUser()
@method GoogleTransaction3 setUser()
@method Provider getProvider()
@method GoogleTransaction3 setProvider()
@method ORMCollection getData()
@method GoogleTransaction3 addData()
@method GoogleTransaction3Data delData()
@method GoogleSubscription getSubscription()
@method GoogleTransaction3 setSubscription()
@method GoogleTransaction3 setParent()
@method GoogleTransaction3 getParent()

"
      attribute 1728005 "readed"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha en la cual fue leída la solicitud de la operación"
      end

      attribute 1727877 "finished"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de finalización de la tarea"
      end

      attribute 1727749 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la descripción del error o estado final de la transacción"
      end

      attribute 1727621 "notified"
	protected explicit_type "bool"
	init_value "false"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean un flag que indica si el estado de 10Fold ha sido actualizado o no"
      end

      attribute 1727493 "lastStatusChange"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime una fecha que indica cuando se hizo el último cambio de estado"
      end

      attribute 1727365 "interval"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string un lapso de tiempo que indica el período de revalidación de la transacción."
      end

      attribute 1727237 "lastTry"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha del último intento de aprovisionar que se hizo sobre la transacción"
      end

      classrelation 169094 // parent (<association>)
	relation 168966 ----
	  a role_name "parent" multiplicity "0..1" protected
	    comment "@var GoogleTransaction3 $parent El padre de la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 169094 // parent (<association>)
	  b role_name "childs" multiplicity "*" protected
	    comment "@var ORMCollection la lista de transacciones hijas"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1779333 // childs (<association>)
      end

      classrelation 1682053 // subscription (<association>)
	relation_ref 1638149 // <association>
      end

      classrelation 1683205 // type (<unidirectional association>)
	relation 1638789 --->
	  a role_name "type" multiplicity "1" protected
	    comment "@var GoogleTransactionType el tipo de la transacción (indica la operación a realizar)"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1683205 // type (<unidirectional association>)
	  b parent class_ref 936325 // GoogleTransactionType
      end

      classrelation 1683333 // status (<unidirectional association>)
	relation 1638917 --->
	  a role_name "status" multiplicity "1" protected
	    comment "@var GoogleStatus el estado en el que se encuentra la operación"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1683333 // status (<unidirectional association>)
	  b parent class_ref 936453 // GoogleStatus
      end

      classrelation 1683461 // user (<unidirectional association>)
	relation 1639045 --->
	  a role_name "user" multiplicity "1" protected
	    comment "@var User el usuario bajo el cual se generó la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1683461 // user (<unidirectional association>)
	  b parent class_ref 396165 // User
      end

      classrelation 1683589 // provider (<unidirectional association>)
	relation 1639173 --->
	  a role_name "provider" multiplicity "1" protected
	    comment "@var Provider el dueño de la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1683589 // provider (<unidirectional association>)
	  b parent class_ref 443269 // Provider
      end

      classrelation 1683717 // notification (<association>)
	relation 1639301 ----
	  a role_name "notification" multiplicity "1" protected
	    comment "@var ServiceOrder la notificación de 10Fold que dio origen a la novedad"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1683717 // notification (<association>)
	  b role_name "googleAppsTransactions" multiplicity "*" protected
	    comment "@var ORMCollection la lista de transacciones de Google Apps asociadas a esta novedad"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1683845 // googleAppsTransactions (<association>)
      end

      classrelation 1684101 // <association>
	relation_ref 1639429 // <association>
      end

      classrelation 1684997 // <generalisation>
	relation 1640325 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1684997 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      classrelation 1779333 // childs (<association>)
	relation_ref 168966 // <association>
      end

      operation 2350597 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end

      operation 2419845 "getArrayData"
	preserve_cpp_body_indent public explicit_return_type "array"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna los datos relacionados como un arreglo asociativo de la forma array('name' => 'value').

@return array El arreglo con los valores planos de todos los GoogleTransaction3Data."
      end

      operation 176646 "setTransaction3Data"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 2
	  param in name "name" explicit_type "string"
	  param in name "value" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}, ${p1}${v1}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Setea una GoogleTransaction3Data a partir de un name y un value

@param string $name El nombre de la data a agregar.
@param string $value El valor de la data a agregar.

@return GoogleTransaction3"
      end

      operation 189830 "getTransaction3Data"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Devuelve el valor de la GoogleTransaction3Data a partir de un name

@param string $name El nombre de la data a agregar.

@return string"
      end

      operation 183302 "unsetTransaction3Data"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "name" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Unsetea una GoogleTransaction3Data a partir de un name

@param string $name El nombre de la data a agregar.

@return GoogleTransaction3"
      end

      operation 176774 "clearTransaction3Data"
	preserve_cpp_body_indent public return_type class_ref 1218565 // GoogleTransaction3
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Elimina todas las GoogleTransaction3Data asociadas a la transacción

@return GoogleTransaction3"
      end
    end

    class 1218693 "GoogleTransaction3Data"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Almacena un par´ametro necesario para resolver la transacci´on.

@method string getName()
@method GoogleTransaction3Data setName()
@method string getValue()
@method GoogleTransaction3Data setValue()
@method GoogleTransaction3 getTransaction()
@method GoogleTransaction3Data setTransaction()
"
      attribute 1728133 "name"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre del dato"
      end

      attribute 1728261 "value"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el valor"
      end

      classrelation 1683973 // transaction (<association>)
	relation 1639429 ----
	  a role_name "transaction" multiplicity "1" protected
	    comment "@var GoogleTransaction3 la transacción a la que pertenece el dato"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1683973 // transaction (<association>)
	  b role_name "data" multiplicity "*" protected
	    comment "@var ORMCollection la lista de pares (nombre, valor) que se relacionan con la transacción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1684101 // <association>
      end

      classrelation 1685125 // <generalisation>
	relation 1640453 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1685125 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      operation 2351493 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1232133 "GooglePlan"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa un plan de pago para el producto de la suscripción.

@method boolean getCommitmentPlan()
@method GooglePlan setCommitmentPlan()
@method string getDescription()
@method GooglePlan setDescription()
@method string getValue()
@method GooglePlan setValue()
@method ORMCollection getSubscriptions()
"
      attribute 1780869 "PLAN_ANNUAL_MONTHLY_PAY"
	const_attribute package explicit_type "int"
	init_value "1"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const constante que representa la forma de pago Anual con pago mensual"
      end

      attribute 1780997 "PLAN_ANNUAL_ANNUAL_PAY"
	const_attribute package explicit_type "int"
	init_value "2"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const constante que representa el plan Anual con pago Anual"
      end

      attribute 1780741 "PLAN_FLEXIBLE"
	const_attribute package explicit_type "int"
	init_value "3"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const Constante que representa el plan \"Flexible\" de Google"
      end

      attribute 1781125 "PLAN_TRIAL"
	const_attribute package explicit_type "int"
	init_value "4"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@const Constante que representa el modo de prueba de Google"
      end

      classrelation 1699333 // subscriptions (<association>)
	relation_ref 1654533 // <association>
      end

      classrelation 1699461 // <generalisation>
	relation 1654661 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1699461 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1741317 "commitmentPlan"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si es un plan anual o no"
      end

      attribute 1741445 "description"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la descripción del plan"
      end

      attribute 1741573 "value"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el valor a pasar a Google para que identifique el plan"
      end

      operation 2366213 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1238789 "GoogleSummary"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa el estado de la distribución en un momento dado.

@method GoogleStatus getStatus()
@method GoogleSummary setStatus()
@method DateTime getStarted()
@method GoogleSummary setStarted()
@method DateTime getEnded()
@method GoogleSummary setEnded()
@method GoogleReseller getReseller()
@method GoogleSummary setReseller()
@method string getSummary()
@method GoogleSummary setSummary()
@method int getCustomersCount()
@method GoogleSummary setCustomersCount()
@method int getBusinessSubscriptions()
@method GoogleSummary setBusinessSubscriptions()
@method int getBusinessMaxAccounts()
@method GoogleSummary setBusinessMaxAccounts()
@method int getBUsinessUsedAccounts()
@method GoogleSummary setBUsinessUsedAccounts()
@method int getDriveSubscriptions()
@method GoogleSummary setDriveSubscriptions()
@method int getDriveMaxGB()
@method GoogleSummary setDriveMaxGB()
@method int getVaultSubscriptions()
@method GoogleSummary setVaultSubscriptions()
@method int getVaultAccounts()
@method GoogleSummary setVaultAccounts()
@method string getNextPage()
@method GoogleSummary setNextPage()
@method ORMCollection @getCustomers()
"
      classrelation 1706245 // <generalisation>
	relation 1661445 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1706245 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1748229 "started"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha y hora de inicio de la consulta a Google"
      end

      attribute 1748357 "ended"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime el momento de finalizacin del listado"
      end

      attribute 1748869 "summary"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el reporte en bruto, en formato csv"
      end

      attribute 1755397 "customersCount"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de clientes registrados en la distribución"
      end

      attribute 1755525 "businessSubscriptions"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de suscripciones de Google Apps For Business"
      end

      attribute 1760133 "businessMaxAccounts"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad máxima total de las suscripciones de Google Apps For Business"
      end

      attribute 1760261 "businessUsedAccounts"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad total de cuentas en uso de las suscripciones de Google Apps For Business"
      end

      attribute 1755653 "driveSubscriptions"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de suscripciones de Google Drive"
      end

      attribute 1760389 "driveMaxGB"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de espacio total asignado en las suscripciones de Google Drive"
      end

      attribute 1755781 "vaultSubscriptions"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de suscripciones de Google Vault"
      end

      attribute 1760517 "vaultAccounts"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad total de cuentas en las suscripciones de Google Vault"
      end

      classrelation 1713157 // reseller (<association>)
	relation_ref 1668101 // <association>
      end

      classrelation 1713541 // customers (<association>)
	relation 1668357 ----
	  a role_name "customers" multiplicity "*" protected
	    comment "@var ORMCollection la lista de clientes obtenidos al confeccionar el reporte"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1713541 // customers (<association>)
	  b role_name "summary" multiplicity "1" protected
	    comment "@var GoogleSummary el reporte al cual pertenece la información del cliente"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1713669 // summary (<association>)
      end

      attribute 1757701 "nextPage"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la última página de subscripciones en proceso"
      end

      classrelation 1714053 // status (<unidirectional association>)
	relation 1668741 --->
	  a role_name "status" multiplicity "1" protected
	    comment "@var GoogleStatus el estado del reporte"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1714053 // status (<unidirectional association>)
	  b parent class_ref 936453 // GoogleStatus
      end

      operation 2386309 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end

      attribute 1760645 "actualPage"
	private explicit_type "string"
	init_value "''"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la página en proceso, es asignada por el llamado a startPage()"
      end

      attribute 1760773 "subscriptions"
	private explicit_type "array"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var array la lista de subscripciones agregadas al sumario que están sin persistirse."
      end

      operation 2393349 "startPage"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param in name "page" explicit_type "string"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Inicia una página del sumario. Toma como parámetro el valor del atributo nextPage para registrarlo cuando se llame a endPage() si todo es procesado correctamente.

@param string $page la página que dará comienzo a su procesamiento

@return GoogleSummary el sumario listo para iniciar el procesamiento de un set de subscripciones."
      end

      operation 2393221 "addSubscription"
	preserve_cpp_body_indent public explicit_return_type ""
	nparams 1
	  param inout name "subscription" type class_ref 1245317 // GoogleSummarySubscription
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Agrega una subscripción al reporte. Este método es el encargado de hacer los \"save()\" de los objetos una vez concluído la página del listado.

@param GoogleSummarySubscription $subscription la subscripción a agregar al sumario.

@return GoogleSummary el reporte con la subscripción agregada para procesamiento."
      end

      operation 2393477 "endPage"
	preserve_cpp_body_indent public explicit_return_type "bool"
	nparams 0
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Indica la conclusión de una página del sumario. Establece el valor del atributo nextPage si toda la página es procesada correctamente.

@return boolean devuelve TRUE si todo se registró correctamente y el reporte está listo para procesar la siguiente página de datos o FALSE en caso contrario."
      end
    end

    class 1245445 "GoogleSummaryCustomer"
      visibility protected 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa un Customer tal y como Google lo retorna en su API 3.0

@method string getCustomerId()
@method GoogleSummaryCustomer setCustomerId()
@method string getCustomerDomain()
@method GoogleSummaryCustomer setCustomerDomain()
@method string getContactName()
@method GoogleSummaryCustomer setContactName()
@method string getOrganizationName()
@method GoogleSummaryCustomer setOrganizationName()
@method string getLocality()
@method GoogleSummaryCustomer setLocality()
@method string getRegion()
@method GoogleSummaryCustomer setRegion()
@method string getPostalCode()
@method GoogleSummaryCustomer setPostalCode()
@method string getCountryCode()
@method GoogleSummaryCustomer setCountryCode()
@method string getAddressLine1()
@method GoogleSummaryCustomer setAddressLine1()
@method string getAddressLine2()
@method GoogleSummaryCustomer setAddressLine2()
@method string getAddressLine3()
@method GoogleSummaryCustomer setAddressLine3()
@method string getPhoneNumber()
@method GoogleSummaryCustomer setPhoneNumber()
@method string getAlternateEmail()
@method GoogleSummaryCustomer setAlternateEmail()
@method string getResourceUiUrl()
@method GoogleSummaryCustomer setResourceUiUrl()
@method GoogleSummary getSummary()
@method GoogleSummaryCustomer setSummary()
@method ORMCollection getSubscriptions()
"
      classrelation 1713285 // subscriptions (<association>)
	relation 1668229 ----
	  a role_name "subscriptions" multiplicity "*" protected
	    comment "@var ORMCollection la lista de subscripciones del cliente"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1713285 // subscriptions (<association>)
	  b role_name "customer" multiplicity "1" protected
	    comment "@var GoogleSummaryCustomer el cliente al que corresponde la suscripción"
	    php "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	    classrelation_ref 1713413 // customer (<association>)
      end

      classrelation 1713669 // summary (<association>)
	relation_ref 1668357 // <association>
      end

      attribute 1755909 "customerId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el identificador del customer de Google"
      end

      attribute 1756037 "customerDomain"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el dominio del cliente"
      end

      attribute 1756165 "contactName"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre del contacto"
      end

      attribute 1756293 "organizationName"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el nombre de la persona/empresa/entidad dueña del dominio"
      end

      attribute 1756421 "locality"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la localidad según la codificación de Google"
      end

      attribute 1756549 "region"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la región según la codificación de Google"
      end

      attribute 1756677 "postalCode"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el código postal"
      end

      attribute 1756805 "countryCode"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el país según la codificación de Google"
      end

      attribute 1756933 "addressLine1"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el primer línea de la dirección del cliente"
      end

      attribute 1757061 "addressLine2"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la segunda línea de la dirección del cliente"
      end

      attribute 1757189 "addressLine3"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la tercer línea de la dirección del cliente"
      end

      attribute 1757317 "phoneNumber"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el número telefónico del cliente"
      end

      attribute 1757445 "alternateEmail"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el email del cliente"
      end

      attribute 1757573 "resourceUiUrl"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la dirección al panel de control del cliente"
      end

      classrelation 1713797 // <generalisation>
	relation 1668485 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1713797 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      operation 2393093 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end

    class 1245317 "GoogleSummarySubscription"
      visibility package 
      cpp_decl ""
      java_decl ""
      php_decl "${comment}${final}${abstract}class ${name}${extends}${implements} {
${members}}
"
      python_2_2 python_decl ""
      idl_decl ""
      explicit_switch_type ""
      
      comment "Representa una subscripción tal como la retorna la API 3.0 de GoogleApps

@method string getCustomerId()
@method GoogleSummarySubscription setCustomerId()
@method string getSubscriptionId()
@method GoogleSummarySubscription setSubscriptionId()
@method string getSkuId()
@method GoogleSummarySubscription setSkuId()
@method DateTime getCreationTime()
@method GoogleSummarySubscription setCreationTime()
@method string getPlanName()
@method GoogleSummarySubscription setPlanName()
@method boolean getIsCommitmentPlan()
@method GoogleSummarySubscription setIsCommitmentPlan()
@method DateTime getStartTime()
@method GoogleSummarySubscription setStartTime()
@method DateTime getEndTime()
@method GoogleSummarySubscription setEndTime()
@method int getNumberOfSeats()
@method GoogleSummarySubscription setNumberOfSeats()
@method int getMaximumNumberOfSeats()
@method GoogleSummarySubscription setMaximumNumberOfSeats()
@method boolean getIsInTrial()
@method GoogleSummarySubscription setIsInTrial()
@method DateTime getTrialEndTime()
@method GoogleSummarySubscription setTrialEndTime()
@method string getRenewalType()
@method GoogleSummarySubscription setRenewalType()
@method DateTime getTransferabilityExpirationTime()
@method GoogleSummarySubscription setTransferabilityExpirationTime()
@method int getMinimumTransferableSeats()
@method GoogleSummarySubscription setMinimumTransferableSeats()
@method string getPurchaseOrderId()
@method GoogleSummarySubscription setPurchaseOrderId()
@method string getStatus()
@method GoogleSummarySubscription setStatus()
@method string getResourceUiUrl()
@method GoogleSummarySubscription setResourceUiUrl()
@method GoogleSummaryCustomer getCustomer()
@method GoogleSummarySubscription setCustomer()
"
      classrelation 1713413 // customer (<association>)
	relation_ref 1668229 // <association>
      end

      classrelation 1713925 // <generalisation>
	relation 1668613 ---|>
	  a public
	    php "${type}"
	    classrelation_ref 1713925 // <generalisation>
	  b parent class_ref 141317 // ORMObject
      end

      attribute 1757829 "customerId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el identificador del customer de Google"
      end

      attribute 1757957 "subscriptionId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el identificador de la subscripción de Google"
      end

      attribute 1758085 "skuId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el identificador del producto de Google"
      end

      attribute 1758213 "creationTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de creación de la subscripción"
      end

      attribute 1758341 "planName"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el plan de la subscripción"
      end

      attribute 1758469 "isCommitmentPlan"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si el plan es anual o no"
      end

      attribute 1758597 "startTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de inicio de la subscripción"
      end

      attribute 1758725 "endTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime la fecha de fin de la subscripción"
      end

      attribute 1758853 "numberOfSeats"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad de cuentas base de la subscripción"
      end

      attribute 1758981 "maximumNumberOfSeats"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la cantidad máxima de cuentas de la subscripción"
      end

      attribute 1759109 "isInTrial"
	protected explicit_type "bool"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var boolean indica si la cuenta está en período de prueba o no"
      end

      attribute 1759237 "trialEndTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime indica el fin del período de prueba en caso de estar activo"
      end

      attribute 1759365 "renewalType"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el tipo de renovación del plan de la subscripción"
      end

      attribute 1759493 "transferabilityExpirationTime"
	protected explicit_type "DateTime"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var DateTime el momento de expiración del último transfer token generado"
      end

      attribute 1759621 "minimumTransferableSeats"
	protected explicit_type "int"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var int la mínima cantidad de licencias que puede transferirse"
      end

      attribute 1759749 "purchaseOrderId"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el número de orden de compra de la subscripción"
      end

      attribute 1759877 "status"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string el estado de la subscripción"
      end

      attribute 1760005 "resourceUiUrl"
	protected explicit_type "string"
	cpp_decl ""
	java_decl ""
	php_decl "  ${comment}${visibility}${const}${static}${var}${name}${value};
"
	python_decl ""
	idl_decl ""
	comment "@var string la URL del panel de control de la subscripción"
      end

      operation 2392965 "define"
	class_operation preserve_cpp_body_indent public return_type class_ref 236293 // ORMDefinition
	nparams 1
	  param inout name "orm" type class_ref 167685 // ORM
	    defaultvalue "null"
	
	preserve_java_body_indent 
	preserve_php_body_indent php_def "  ${comment}${final}${visibility}${abstract}${static}function ${name}${(}${p0}${v0}${)}
{
  ${body}}
"
	preserve_python_body_indent 
	
	comment "Retorna la definición para el ORM de la clase GoogleAccount

@param ORM $orm el manejador de objetos para el cual se registra la definición
@return ORMDefinition La definición de la clase GoogleAccount"
      end
    end
  end

  deploymentview 278533 "GoogleApps Deployment"
    //deployment diagram settings
    package_name_in_tab default show_context default write_horizontally default auto_label_position default draw_all_relations default shadow default
    draw_component_as_icon default show_component_req_prov default show_component_rea default show_stereotype_properties default
    ncouples 1
    key "uses" value ""
    artifact 715653 "GoogleAppsManager"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 843397 // GoogleAppsManager
      end
    end

    artifact 715781 "GoogleAppsProvisioningManager"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 843525 // GoogleAppsProvisioningManager
      end
      ncouples 1
      key "uses" value "require_once 'iplan/models/provisioning/ProvisioningPlataformas.php';
require_once 'iplan/models/provisioning/LogMessages.php';"
    end

    artifact 788357 "GoogleAccount"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 896517 // GoogleAccount
      end
    end

    artifact 795013 "GoogleTransaction"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 935941 // GoogleTransaction
      end
    end

    artifact 795141 "GoogleTransactionType"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 936325 // GoogleTransactionType
      end
    end

    artifact 795269 "GoogleStatus"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 936453 // GoogleStatus
      end
    end

    artifact 808581 "APIGoogleApps"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 949765 // APIGoogleApps
      end
    end

    artifact 921605 "GoogleReport"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1062277 // GoogleReport
      end
    end

    artifact 921733 "GoogleReportedDomain"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1062405 // GoogleReportedDomain
      end
    end

    artifact 921861 "GoogleReseller"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1068933 // GoogleReseller
      end
    end

    artifact 1018245 "GoogleAppsManagerAPI3"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1191685 // GoogleAppsManagerAPI3
      end
      ncouples 1
      key "uses" value "chdir('iplan/models/googleapps/google-api-php-client-1.0.6-beta/src/');
 //Require de la libería de Cliente de Google.
require_once 'Google/Client.php';

//Require de la libería de Resseller de Google.
require_once 'Google/Service/Reseller.php';

//Require de la libería de Directory de Google.
require_once 'Google/Service/Directory.php';

//Require de la libería de SiteVerification de Google.
require_once 'Google/Service/SiteVerification.php';
chdir('../../../../../');"
    end

    artifact 1031429 "GoogleCustomer"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1204869 // GoogleCustomer
      end
    end

    artifact 1031557 "GoogleSubscription"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1204997 // GoogleSubscription
      end
    end

    artifact 1031685 "GoogleCustomerAddress"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1205125 // GoogleCustomerAddress
      end
    end

    artifact 1031813 "GoogleProduct"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1205381 // GoogleProduct
      end
    end

    artifact 1031941 "GoogleRenewalType"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1211909 // GoogleRenewalType
      end
    end

    artifact 1032069 "GoogleSubscriptionStatus"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1212037 // GoogleSubscriptionStatus
      end
    end

    artifact 1032197 "GoogleTransaction3"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1218565 // GoogleTransaction3
      end
    end

    artifact 1032325 "GoogleTransaction3Data"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1218693 // GoogleTransaction3Data
      end
    end

    artifact 1045765 "GooglePlan"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1232133 // GooglePlan
      end
    end

    artifact 1052421 "GoogleSummary"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1238789 // GoogleSummary
      end
    end

    artifact 1052549 "GoogleSummaryCustomer"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1245445 // GoogleSummaryCustomer
      end
    end

    artifact 1052677 "GoogleSummarySubscription"
      stereotype "source"
      php_src "<?php
${require_once}
@{uses}

/**
* Author: @{author}
* ${description}
*/
${definition}
?>"
      associated_classes
	class_ref 1245317 // GoogleSummarySubscription
      end
    end
  end
end
