

# Conexión a Zoom Meetings
<a name="connecting-to-data-zoom-meetings"></a>

Zoom Meetings es una plataforma de videoconferencia basada en la nube que se puede utilizar para reuniones de videoconferencia, audioconferencia, seminarios web, grabaciones de reuniones y chat en directo.

**Topics**
+ [Compatibilidad de AWS Glue con Zoom Meetings](zoom-meetings-support.md)
+ [Políticas que contienen las operaciones de la API para crear y usar conexiones](zoom-meetings-configuring-iam-permissions.md)
+ [Configuración de Zoom Meetings](zoom-meetings-configuring.md)
+ [Configuración de la aplicación cliente Zoom Meetings](zoom-meetings-configuring-client-app.md)
+ [Configuración de las conexiones a Zoom Meetings](zoom-meetings-configuring-connections.md)
+ [Cómo leer de las entidades de Zoom Meetings](zoom-meetings-reading-from-entities.md)
+ [Opciones de conexión a Zoom Meetings](zoom-meetings-connection-options.md)
+ [Limitaciones de Zoom Meetings](zoom-meetings-limitations.md)

# Compatibilidad de AWS Glue con Zoom Meetings
<a name="zoom-meetings-support"></a>

AWS Glue admite Zoom Meetings de la siguiente manera:

**¿Es compatible como origen?**  
Sí. Puede usar los trabajos de ETL de AWS Glue para consultar datos de Zoom Meetings.

**¿Es compatible como destino?**  
No.

**Versiones de la API de Zoom Meetings compatibles**  
Las siguientes versiones de la API de Zoom Meetings son compatibles:
+ v2

# Políticas que contienen las operaciones de la API para crear y usar conexiones
<a name="zoom-meetings-configuring-iam-permissions"></a>

En el siguiente ejemplo de política se describen los permisos de AWS IAM necesarios para crear y utilizar conexiones. Si va a crear un nuevo rol, cree una política que contenga lo siguiente:

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "glue:ListConnectionTypes",
        "glue:DescribeConnectionType",
        "glue:RefreshOAuth2Tokens",
        "glue:ListEntities",
        "glue:DescribeEntity"
      ],
      "Resource": "*"
    }
  ]
}
```

------

Si no desea utilizar el método anterior, puede utilizar las siguientes políticas de IAM administradas:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole): da acceso a recursos que precisan diversos procesos de AWS Glue para ejecutarse en su nombre. Entre estos recursos se incluyen AWS Glue, Amazon S3, IAM, CloudWatch Logs y Amazon EC2. Si aplica la convención de nomenclatura en los recursos especificados en esta política, los procesos de AWS Glue tienen los permisos necesarios. Normalmente, esta política se asocia a los roles que se especifican a la hora de definir rastreadores, trabajos y puntos de conexión de desarrollo.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): otorga acceso total a los recursos de AWS Glue cuando una identidad a la que está asociada la política utiliza la Consola de administración de AWS. Si sigue la convención de nomenclatura para los recursos especificados en esta política, los usuarios dispondrán de todas las funciones de la consola. Esta política se suele adjuntar a los usuarios de la consola AWS Glue.

# Configuración de Zoom Meetings
<a name="zoom-meetings-configuring"></a>

Antes de poder utilizar AWS Glue para transferir datos desde Zoom Meetings, deberá cumplir estos requisitos:

## Requisitos mínimos
<a name="zoom-meetings-configuring-min-requirements"></a>

Los requisitos mínimos son los siguientes:
+ Tener una cuenta de Zoom Meetings.
+ La cuenta de Zoom debe estar habilitada para el acceso de API.
+ Haber creado una aplicación OAuth 2 en la cuenta de Zoom Meetings. Esta integración proporciona las credenciales que AWS Glue utiliza para acceder a sus datos de forma segura cuando hace llamadas autenticadas a su cuenta. Para obtener más información, consulte [Configuración de la aplicación cliente Zoom Meetings](zoom-meetings-configuring-client-app.md).

Si cumple estos requisitos, estará listo para conectar AWS Glue a la cuenta de Zoom Meetings. Para conexiones típicas, no necesita hacer nada más en Zoom Meetings.

# Configuración de la aplicación cliente Zoom Meetings
<a name="zoom-meetings-configuring-client-app"></a>

1. Inicie sesión en Zoom App Marketplace.

1. Elija **Desarrollar** > **Crear aplicación**.

1. Elija **Aplicación general** para una aplicación basada en OAuth 2.0.

1. En la página **Información básica**, agregue o actualice información sobre la aplicación, como el nombre de la aplicación, el modo en que se administra, las credenciales de la aplicación y la información de OAuth.

1. En la sección **Seleccione cómo se administra la aplicación**, confirme el modo en que desea que se administre la aplicación:

   1. **Administrada por el administrador**: los administradores de la cuenta agregan y administran la aplicación

   1. **Administrada por el usuario**: los usuarios individuales agregan y administran la aplicación. La aplicación solo tiene acceso a los datos autorizados del usuario.

1. **Credenciales de la aplicación**: el flujo de compilación genera automáticamente credenciales de aplicación (ID de cliente y secreto de cliente) para la aplicación.

1. En la sección Información de OAuth, configure OAuth para la aplicación.

   1. **URL de redireccionamiento de OAuth** (obligatorio): ingrese la URL de redirección o el punto de conexión para configurar OAuth entre la aplicación y Zoom.

   1. **Utilizar URL de modo estricto** (opcional)

   1. **Comprobación de subdominio** (opcional)

   1. **Listas de permitidos de OAuth** (obligatorio): agregue cualquier URL única que Zoom deba permitir como redirecciones válidas para los flujos de OAuth.

1. En la página **Ámbitos**, seleccione los métodos de la API de Zoom a los que la aplicación tiene permitido llamar. Los ámbitos definen qué información y capacidades están disponibles para el usuario. Seleccione los siguientes ámbitos detallados:
   + user:read:list\$1users:admin
   + zoom\$1rooms:read:list\$1rooms:admin
   + group:read:list\$1members:admin
   + group:read:administrator:admin
   + group:read:list\$1groups:admin
   + report:read:admin
   + role:read:list\$1roles, role:read:list\$1roles:admin

   Una vez agregados los ámbitos, seleccione **Continuar** y la aplicación estará lista para su uso.

Para obtener más información sobre la configuración de OAuth 2.0, consulte [Integraciones (aplicaciones OAuth)](https://developers.zoom.us/docs/integrations/).

# Configuración de las conexiones a Zoom Meetings
<a name="zoom-meetings-configuring-connections"></a>

Zoom Meetings admite el tipo de concesión AUTHORIZATION\$1CODE para OAuth2. El tipo de concesión determina cómo AWS Glue se comunica con Zoom Meetings para solicitar el acceso a los datos.
+ Este tipo de concesión se considera un OAuth de “tres vías”, ya que se basa en redirigir a los usuarios a un servidor de autorización externo para autenticar al usuario. Se utiliza para crear conexiones a través de la consola de AWS Glue. El usuario que crea una conexión debe proporcionar información relacionada con OAuth, como el ID de cliente y el secreto de cliente para la aplicación cliente de Zoom Meetings. La consola de AWS Glue redirigirá al usuario a Zoom, donde deberá iniciar sesión y conceder a AWS Glue los permisos solicitados para acceder a la instancia de Zoom Meetings.
+ Los usuarios aún pueden optar por crear una aplicación conectada propia en Zoom Meetings y proporcionar un ID de cliente y un secreto de cliente propios al crear conexiones a través de la consola de AWS Glue. En este caso, aún se les redirigirá a Zoom Meetings para que inicien sesión y autoricen a AWS Glue a acceder a sus recursos.
+ Este tipo de concesión da como resultado un token de actualización y un token de acceso. El token de acceso es de corta duración y se puede actualizar automáticamente sin la interacción del usuario mediante el token de actualización.
+ Para obtener documentación pública de Zoom Meetings sobre la creación de una aplicación conectada para el flujo Authorization Code OAuth, consulte [Uso de OAuth 2.0](https://developers.zoom.us/docs/api/using-zoom-apis/#using-oauth-20).

Para configurar una conexión a Zoom Meetings:

1. En AWS Secrets Manager, cree un secreto con los siguientes detalles:

   1. En el caso de las aplicaciones conectadas administradas por el cliente, el secreto debe contener el secreto del consumidor de la aplicación conectada con `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET` como clave.

   1. Nota: Debe crear un secreto para las conexiones en AWS Glue.

1. En AWS Glue Glue Studio, cree una conexión en **Conexiones de datos** según los pasos que se indican a continuación:

   1. Al seleccionar un **Tipo de conexión**, elija Zoom Meetings.

   1. Indique el entorno de Zoom Meetings al que se desea conectar.

   1. Seleccione el rol de AWS IAM que AWS Glue pueda asumir y que tenga permisos para las siguientes acciones:

------
#### [ JSON ]

****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
              "secretsmanager:DescribeSecret",
              "secretsmanager:GetSecretValue",
              "secretsmanager:PutSecretValue",
              "ec2:CreateNetworkInterface",
              "ec2:DescribeNetworkInterfaces",
              "ec2:DeleteNetworkInterface"
            ],
            "Resource": "*"
          }
        ]
      }
      ```

------

   1. Seleccione el `secretName` que desee usar para esta conexión en AWS Glue para colocar los tokens.

   1. Seleccione las opciones de red si quiere usar su red.

1. Conceda el rol de IAM asociado a su permiso de trabajo de AWS Glue para leer `secretName`.

# Cómo leer de las entidades de Zoom Meetings
<a name="zoom-meetings-reading-from-entities"></a>

**Requisito previo**

Un objeto de Zoom Meetings del que desea leer. Necesitará el nombre del objeto, por ejemplo `Group` o `Zoom Rooms`.

**Entidades compatibles como origen:**


| Entidad | Se puede filtrar | Admite límite | Admite Ordenar por | Admite Seleccionar \$1 | Admite partición | 
| --- | --- | --- | --- | --- | --- | 
| Zoom Rooms | No | Sí | No | Sí | No | 
| Grupo | No | No | No | Sí | No | 
| Miembro del grupo | Sí | Sí | No | Sí | No | 
| Administrador de grupo | No | Sí | No | Sí | No | 
| Informe (diario) | Sí | No | No | Sí | No | 
| Roles | No | No | No | Sí | No | 
| Usuarios | Sí | Sí | No | Sí | No | 

**Ejemplo:**

```
zoom_read = glueContext.create_dynamic_frame.from_options(
    connection_type="zoom",
    connection_options={
        "connectionName": "connectionName",
        "ENTITY_NAME": "organization",
        "API_VERSION": "v2"
    }
)
```

**Detalles de entidades y campos de Zoom Meetings**:

Zoom Meetings carga dinámicamente los campos disponibles bajo la entidad seleccionada. Según el tipo de datos de los campos, se admiten los operadores de filtro siguientes.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/glue/latest/dg/zoom-meetings-reading-from-entities.html)

## Consultas de partición
<a name="zoom-meetings-reading-partitioning-queries"></a>

Zoom Meetings no admite la partición basada en filtros ni la partición basada en registros.

# Opciones de conexión a Zoom Meetings
<a name="zoom-meetings-connection-options"></a>

A continuación se indican las opciones de conexión para Zoom Meetings:
+ `ENTITY_NAME`(cadena): (obligatorio) se usa para lectura. El nombre de la entidad de Zoom Meetings. Por ejemplo, `group`.
+ `API_VERSION`(cadena): (obligatorio) se usa para lectura. Versión de la API de Rest de Zoom Meetings que desea utilizar. El valor será `v2`, ya que Zoom Meetings actualmente solo admite la versión v2.
+ `SELECTED_FIELDS`(lista<Cadena>): predeterminado: empty(SELECT \$1). Se usa para leer. Una lista separada por comas de las columnas que desea seleccionar para la entidad seleccionada.
+ `FILTER_PREDICATE`(cadena): predeterminado: vacío. Se usa para leer. Debe estar en el formato de Spark SQL.
+ `QUERY`(cadena): predeterminado: vacío. Se usa para leer. Consulta completa de Spark SQL.

# Limitaciones de Zoom Meetings
<a name="zoom-meetings-limitations"></a>

Las siguientes son limitaciones o notas correspondientes a Zoom Meetings:
+ Zoom Meetings no admite orderby.
+ Zoom Meetings no admite la partición basada en filtros porque no hay ningún campo que pueda satisfacer los criterios requeridos.
+ Zoom Meetings no es compatible con la partición basada en registros porque no admite el límite de paginación ni la paginación basada en desplazamiento.