

# Conexão com o Zoom Meetings
<a name="connecting-to-data-zoom-meetings"></a>

O Zoom Meetings é uma plataforma de videoconferência baseada em nuvem que pode ser usada para reuniões de videoconferência, audioconferência, webinars, gravações de reuniões e bate-papo ao vivo.

**Topics**
+ [Suporte do AWS Glue para o Zoom Meetings](zoom-meetings-support.md)
+ [Políticas que contêm as operações de API para criar e usar conexões](zoom-meetings-configuring-iam-permissions.md)
+ [Configuração do Zoom Meetings](zoom-meetings-configuring.md)
+ [Configuração da aplicação cliente do Zoom Meetings](zoom-meetings-configuring-client-app.md)
+ [Configuração das conexões do Zoom Meetings](zoom-meetings-configuring-connections.md)
+ [Leitura de entidades do Zoom Meetings](zoom-meetings-reading-from-entities.md)
+ [Opções de conexão do Zoom Meetings](zoom-meetings-connection-options.md)
+ [Limitações do Zoom Meetings](zoom-meetings-limitations.md)

# Suporte do AWS Glue para o Zoom Meetings
<a name="zoom-meetings-support"></a>

O AWS Glue oferece suporte ao Zoom Meetings da seguinte forma:

**Compatível como fonte?**  
Sim. É possível usar trabalhos de ETL do AWS Glue para consultar seus dados do Zoom Meetings.

**Compatível como destino?**  
Nº

**Versões da API do Zoom Meetings com suporte**  
Versões da API do Zoom Meetings com suporte:
+ v2

# Políticas que contêm as operações de API para criar e usar conexões
<a name="zoom-meetings-configuring-iam-permissions"></a>

O exemplo de política a seguir descreve as permissões necessárias do AWS IAM para criar e usar conexões. Se você estiver criando um novo perfil, crie uma política que contenha o seguinte:

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

****  

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

------

Se você não quiser usar o método acima, como alternativa use as seguintes políticas do IAM gerenciadas:
+ [AWSGlueServiceRole](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/service-role/AWSGlueServiceRole) – Concede acesso a recursos que vários processos do AWS Glue exigem para fazer a execução em seu nome. Esses recursos incluem o AWS Glue, Amazon S3, IAM, CloudWatch Logs e Amazon EC2. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os processos do AWS Glue terão as permissões necessárias. Esta política geralmente é anexada a funções especificadas durante a definição de crawlers, trabalhos e endpoints de desenvolvimento.
+ [AWSGlueConsoleFullAccess](https://console.aws.amazon.com/iam/home#policies/arn:aws:iam::aws:policy/AWSGlueConsoleFullAccess): concede acesso total aos recursos do AWS Glue quando uma identidade à qual a política está anexada usa o Console de Gerenciamento da AWS. Se você seguir a convenção de nomenclatura para os recursos especificados nesta política, os usuários poderão acessar todos os recursos do console. Esta política geralmente é anexada aos usuários do console do AWS Glue.

# Configuração do Zoom Meetings
<a name="zoom-meetings-configuring"></a>

Antes de poder usar o AWS Glue para transferir dados do Zoom Meetings, os seguintes requisitos deverão ser atendidos:

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

Estes são os requisitos mínimos:
+ Você tem uma conta do Zoom Meetings.
+ Sua conta do Zoom precisa estar habilitada para acesso à API.
+ Você criou uma aplicação OAuth2 na sua conta do Zoom Meetings. Essa integração fornece as credenciais que o AWS Glue usa para acessar seus dados com segurança quando faz chamadas autenticadas para sua conta. Para obter mais informações, consulte [Configuração da aplicação cliente do Zoom Meetings](zoom-meetings-configuring-client-app.md).

Se você atender a esses requisitos, poderá conectar o AWS Glue à sua conta do Zoom Meetings. Para conexões típicas, você não precisa fazer mais nada no Zoom Meetings.

# Configuração da aplicação cliente do Zoom Meetings
<a name="zoom-meetings-configuring-client-app"></a>

1. Faça login no Zoom App Marketplace.

1. Escolha **Desenvolver**>**Criar aplicação**.

1. Escolha **Aplicação geral** para uma aplicação baseada em OAuth 2.0.

1. Na página **Informações básicas**, adicione ou atualize informações sobre a aplicação, como o nome da aplicação, como a aplicação é gerenciada, as credenciais da aplicação e as informações do OAuth.

1. Na seção **Selecionar como a aplicação é gerenciada**, confirme como você deseja que sua aplicação seja gerenciada:

   1. **Gerenciada por administrador**: administradores da conta adicionam e gerenciam a aplicação

   1. **Gerenciada pelo usuário**: usuários individuais adicionam e gerenciam a aplicação. A aplicação tem acesso somente aos dados autorizados do usuário.

1. **Credenciais da aplicação**: o fluxo de criação gera automaticamente as credenciais da aplicação (ID do cliente e segredo do cliente) para sua aplicação.

1. Na seção Informações do OAuth, configure o OAuth para a sua aplicação.

   1. **URL de redirecionamento do OAuth** (obrigatório): insira seu URL de redirecionamento ou endpoint para configurar o OAuth entre sua aplicação e o Zoom.

   1. **Usar URL de modo estrito** (opcional)

   1. **Verificação de subdomínio** (opcional)

   1. **Listas de permissão do OAuth** (obrigatório): adicione quaisquer URLs exclusivos que o Zoom deva permitir como redirecionamentos válidos para seus fluxos do OAuth.

1. Na página **Escopos**, selecione os métodos da API do Zoom que sua aplicação tem permissão para chamar. Os escopos definem quais informações e recursos estão disponíveis para seu usuário. Selecione os seguintes escopos granulares:
   + 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

   Depois que os escopos forem adicionados, escolha **Continuar** e a aplicação estará pronta para uso.

Para obter mais informações sobre a configuração do OAuth 2.0, consulte [Integrações (aplicações OAuth](https://developers.zoom.us/docs/integrations/)).

# Configuração das conexões do Zoom Meetings
<a name="zoom-meetings-configuring-connections"></a>

O Zoom Meetings oferece suporte ao tipo de concessão AUTHORIZATION\$1CODE para OAuth2. O tipo de concessão determina como o AWS Glue se comunica com o Zoom Meetings para solicitar acesso aos seus dados.
+ Esse tipo de concessão é considerado um OAuth de “três pernas”, pois conta com o redirecionamento dos usuários para um servidor de autorização de terceiros para autenticar o usuário. É usado ao criar conexões por meio do console do AWS Glue. O usuário que está criando uma conexão precisa fornecer informações relacionadas ao OAuth, como ID do cliente e segredo do cliente, para sua aplicação cliente do Zoom Meetings. O console do AWS Glue redirecionará o usuário para o Zoom, onde ele deverá fazer login e dar autorização para que as permissões solicitadas pelo AWS Glue acessem a instância do Zoom Meetings.
+ Os usuários ainda podem optar por criar sua própria aplicação conectada no Zoom Meetings e fornecer seus próprios ID e segredo do cliente ao criar conexões por meio do console do AWS Glue. Nesse cenário, eles ainda serão redirecionados para o Zoom Meetings para fazer login e autorizar o acesso do AWS Glue aos recursos.
+ Esse tipo de concessão resulta em um token de atualização e um token de acesso. O token de acesso tem vida curta e pode ser atualizado automaticamente sem a interação do usuário usando o token de atualização.
+ Para obter a documentação pública do Zoom Meetings sobre como criar uma aplicação conectada para o fluxo de código de autorização do OAuth, consulte [Uso do OAuth 2.0](https://developers.zoom.us/docs/api/using-zoom-apis/#using-oauth-20).

Para configurar uma conexão do Zoom Meetings:

1. No AWS Secrets Manager, crie um segredo com os seguintes detalhes:

   1. Para a aplicação conectada gerenciada pelo cliente, o segredo deve conter a aplicação conectada Segredo do consumidor com a chave `USER_MANAGED_CLIENT_APPLICATION_CLIENT_SECRET`.

   1. Observação: é necessário criar um segredo para a sua conexão no AWS Glue.

1. No AWS Glue Glue Studio, crie uma conexão em **Conexões de dados** seguindo estas etapas:

   1. Ao selecionar um **Tipo de conexão**, escolha Zoom Meetings.

   1. Forneça o ambiente do Zoom Meetings ao qual deseja se conectar.

   1. Selecione o perfil do AWS IAM que o AWS Glue pode assumir e tem permissões para as seguintes ações:

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

****  

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

------

   1. Selecione o `secretName` que você deseja usar para essa conexão no AWS Glue para colocar os tokens.

   1. Selecione as opções de rede se quiser usar sua rede.

1. Conceda permissão ao perfil do IAM associado ao seu trabalho do AWS Glue para ler `secretName`.

# Leitura de entidades do Zoom Meetings
<a name="zoom-meetings-reading-from-entities"></a>

**Pré-requisito**

Um objeto do Zoom Meetings do qual você deseja ler. Você precisará do nome do objeto, como `Group` ou `Zoom Rooms`.

**Entidades compatíveis quanto à origem**:


| Entidade | Pode ser filtrada | Oferece suporte a limite | Oferece suporte a Ordenar por | Oferece suporte a Selecionar \$1 | Oferece suporte a particionamento | 
| --- | --- | --- | --- | --- | --- | 
| Zoom Rooms | Não | Sim | Não | Sim | Não | 
| Grupo | Não | Não | Não | Sim | Não | 
| Membro do grupo | Sim | Sim | Não | Sim | Não | 
| Administrador do grupo | Não | Sim | Não | Sim | Não | 
| Relatório (diário) | Sim | Não | Não | Sim | Não | 
| Perfis | Não | Não | Não | Sim | Não | 
| Usuários | Sim | Sim | Não | Sim | Não | 

**Exemplo:**

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

**Detalhes de entidade e campo do Zoom Meetings**:

O Zoom Meetings carrega dinamicamente os campos disponíveis na entidade selecionada. Dependendo do tipo de dados de campo, ele é compatível com os operadores de filtro a seguir.

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

## Particionamento de consultas
<a name="zoom-meetings-reading-partitioning-queries"></a>

O Zoom Meetings oferece suporte ao particionamento baseado em filtros ou ao particionamento baseado em registros.

# Opções de conexão do Zoom Meetings
<a name="zoom-meetings-connection-options"></a>

Estas são as opções de conexão do Zoom Meetings:
+ `ENTITY_NAME`(string): (obrigatório) usado para leitura. O nome da entidade do Zoom Meetings. Por exemplo, .`group`
+ `API_VERSION`(string): (obrigatório) usado para leitura. Versão da API Rest do Zoom Meetings que você deseja usar. O valor será `v2`, pois o Zoom Meetings atualmente oferece suporte somente à versão v2.
+ `SELECTED_FIELDS`(Lista<String>): padrão: vazio(SELECIONE \$1). Usado para leitura. Uma lista de colunas separadas por vírgula que você deseja selecionar para a entidade selecionada.
+ `FILTER_PREDICATE`(string): padrão: vazio. Usado para leitura. Deve estar no formato Spark SQL.
+ `QUERY`(String): padrão: vazia. Usado para leitura. Consulta completa do Spark SQL.

# Limitações do Zoom Meetings
<a name="zoom-meetings-limitations"></a>

A seguir estão as limitações ou notas do Zoom Meetings:
+ O Zoom Meetings não oferece suporte para orderby.
+ O Zoom Meetings não oferece suporte ao particionamento baseado em filtros, pois não há nenhum campo que possa satisfazer aos critérios exigidos.
+ O Zoom Meetings não oferece suporte ao particionamento baseado em registros, pois não há suporte para o limite de paginação e a paginação baseada em offset.