<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<!--
      Licensed to the Apache Software Foundation (ASF) under one or more
      contributor license agreements.  See the NOTICE file distributed with
      this work for additional information regarding copyright ownership.
      The ASF licenses this file to You under the Apache License, Version 2.0
      (the "License"); you may not use this file except in compliance with
      the License.  You may obtain a copy of the License at
          http://www.apache.org/licenses/LICENSE-2.0
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
    -->

<head>
    <meta charset="utf-8"/>
    <title>ListGoogleDrive</title>
    <link rel="stylesheet" href="../../../../../css/component-usage.css" type="text/css"/>
</head>
<body>

<h1>Accessing Google Drive from NiFi</h1>

<p>
    This processor uses Google Cloud credentials for authentication to access Google Drive.
    The following steps are required to prepare the Google Cloud and Google Drive accounts for the processors:
</p>
<ol>
    <li><b>Enable Google Drive API in Google Cloud</b>
        <ul>
            <li>Follow instructions at <a href="https://developers.google.com/workspace/guides/enable-apis">
                https://developers.google.com/workspace/guides/enable-apis</a> and search for 'Google Drive API'.
            </li>
        </ul>
    </li>
    <li><b>Grant access to Google Drive folder</b>
        <ul>
            <li>In Google Cloud Console navigate to IAM & Admin -> Service Accounts.</li>
            <li>Take a note of the email of the service account you are going to use.</li>
            <li>Navigate to the folder to be listed in Google Drive.</li>
            <li>Right-click on the Folder -> Share.</li>
            <li>Enter the service account email.</li>
        </ul>
    </li>
    <li><b>Find Folder ID</b>
        <ul>
            <li>Navigate to the folder to be listed in Google Drive and enter it. The URL in your browser will include the ID at the end of
                the URL.
                For example, if the URL were <code>https://drive.google.com/drive/folders/1trTraPVCnX5_TNwO8d9P_bz278xWOmGm</code>, the
                Folder ID would be <code>1trTraPVCnX5_TNwO8d9P_bz278xWOmGm</code>
            </li>
        </ul>
    </li>
    <li><b>Set Folder ID in 'Folder ID' property</b>
    </li>
</ol>

</body>
</html>