Skip to content

Commit f41b2d9

Browse files
authored
feat(ftp): onboard a new library (#14068)
b/543712622 PiperOrigin-RevId: 960764304
1 parent ab226ee commit f41b2d9

140 files changed

Lines changed: 53012 additions & 0 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

gapic-libraries-bom/pom.xml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,13 @@
727727
<type>pom</type>
728728
<scope>import</scope>
729729
</dependency>
730+
<dependency>
731+
<groupId>com.google.cloud</groupId>
732+
<artifactId>google-cloud-ftp-bom</artifactId>
733+
<version>0.1.0-SNAPSHOT</version><!-- {x-version-update:google-cloud-ftp:current} -->
734+
<type>pom</type>
735+
<scope>import</scope>
736+
</dependency>
730737
<dependency>
731738
<groupId>com.google.cloud</groupId>
732739
<artifactId>google-cloud-functions-bom</artifactId>

java-ftp/.repo-metadata.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"api_shortname": "ftp",
3+
"name_pretty": "Cloud FTP",
4+
"product_documentation": "https://docs.cloud.google.com/cloud-ftp",
5+
"api_description": "A managed, cloud-native solution to move data in and out of Google Cloud by\nusing SSH File Transfer Protocol (SFTP).",
6+
"client_documentation": "https://cloud.google.com/java/docs/reference/google-cloud-ftp/latest/overview",
7+
"release_level": "preview",
8+
"transport": "rest",
9+
"language": "java",
10+
"repo": "googleapis/google-cloud-java",
11+
"repo_short": "java-ftp",
12+
"distribution_name": "com.google.cloud:google-cloud-ftp",
13+
"api_id": "ftp.googleapis.com",
14+
"library_type": "GAPIC_AUTO"
15+
}

java-ftp/README.md

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
# Google Cloud FTP Client for Java
2+
3+
Java idiomatic client for [Cloud FTP][product-docs].
4+
5+
[![Maven][maven-version-image]][maven-version-link]
6+
![Stability][stability-image]
7+
8+
- [Product Documentation][product-docs]
9+
- [Client Library Documentation][javadocs]
10+
11+
> Note: This client is a work-in-progress, and may occasionally
12+
> make backwards-incompatible changes.
13+
14+
15+
## Quickstart
16+
17+
If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file:
18+
19+
```xml
20+
<dependencyManagement>
21+
<dependencies>
22+
<dependency>
23+
<groupId>com.google.cloud</groupId>
24+
<artifactId>libraries-bom</artifactId>
25+
<version>26.86.0</version>
26+
<type>pom</type>
27+
<scope>import</scope>
28+
</dependency>
29+
</dependencies>
30+
</dependencyManagement>
31+
32+
<dependencies>
33+
<dependency>
34+
<groupId>com.google.cloud</groupId>
35+
<artifactId>google-cloud-ftp</artifactId>
36+
</dependency>
37+
</dependencies>
38+
```
39+
40+
If you are using Maven without the BOM, add this to your dependencies:
41+
42+
43+
```xml
44+
<dependency>
45+
<groupId>com.google.cloud</groupId>
46+
<artifactId>google-cloud-ftp</artifactId>
47+
<version>0.0.0</version>
48+
</dependency>
49+
```
50+
51+
If you are using Gradle 5.x or later, add this to your dependencies:
52+
53+
```Groovy
54+
implementation platform('com.google.cloud:libraries-bom:26.86.0')
55+
56+
implementation 'com.google.cloud:google-cloud-ftp'
57+
```
58+
59+
If you are using Gradle without BOM, add this to your dependencies:
60+
61+
```Groovy
62+
implementation 'com.google.cloud:google-cloud-ftp:0.0.0'
63+
```
64+
65+
If you are using SBT, add this to your dependencies:
66+
67+
```Scala
68+
libraryDependencies += "com.google.cloud" % "google-cloud-ftp" % "0.0.0"
69+
```
70+
71+
## Authentication
72+
73+
See the [Authentication][authentication] section in the base directory's README.
74+
75+
## Authorization
76+
77+
The client application making API calls must be granted [authorization scopes][auth-scopes] required for the desired Cloud FTP APIs, and the authenticated principal must have the [IAM role(s)][predefined-iam-roles] required to access GCP resources using the Cloud FTP API calls.
78+
79+
## Getting Started
80+
81+
### Prerequisites
82+
83+
You will need a [Google Cloud Platform Console][developer-console] project with the Cloud FTP [API enabled][enable-api].
84+
You will need to [enable billing][enable-billing] to use Google Cloud FTP.
85+
[Follow these instructions][create-project] to get your project set up. You will also need to set up the local development environment by
86+
[installing the Google Cloud Command Line Interface][cloud-cli] and running the following commands in command line:
87+
`gcloud auth login` and `gcloud config set project [YOUR PROJECT ID]`.
88+
89+
### Installation and setup
90+
91+
You'll need to obtain the `google-cloud-ftp` library. See the [Quickstart](#quickstart) section
92+
to add `google-cloud-ftp` as a dependency in your code.
93+
94+
## About Cloud FTP
95+
96+
97+
[Cloud FTP][product-docs] A managed, cloud-native solution to move data in and out of Google Cloud by
98+
using SSH File Transfer Protocol (SFTP).
99+
100+
See the [Cloud FTP client library docs][javadocs] to learn how to
101+
use this Cloud FTP Client Library.
102+
103+
104+
105+
106+
107+
108+
## Troubleshooting
109+
110+
To get help, follow the instructions in the [shared Troubleshooting document][troubleshooting].
111+
112+
## Transport
113+
114+
Cloud FTP uses HTTP/JSON for the transport layer.
115+
116+
## Supported Java Versions
117+
118+
Java 8 or above is required for using this client.
119+
120+
Google's Java client libraries,
121+
[Google Cloud Client Libraries][cloudlibs]
122+
and
123+
[Google Cloud API Libraries][apilibs],
124+
follow the
125+
[Oracle Java SE support roadmap][oracle]
126+
(see the Oracle Java SE Product Releases section).
127+
128+
### For new development
129+
130+
In general, new feature development occurs with support for the lowest Java
131+
LTS version covered by Oracle's Premier Support (which typically lasts 5 years
132+
from initial General Availability). If the minimum required JVM for a given
133+
library is changed, it is accompanied by a [semver][semver] major release.
134+
135+
Java 11 and (in September 2021) Java 17 are the best choices for new
136+
development.
137+
138+
### Keeping production systems current
139+
140+
Google tests its client libraries with all current LTS versions covered by
141+
Oracle's Extended Support (which typically lasts 8 years from initial
142+
General Availability).
143+
144+
#### Legacy support
145+
146+
Google's client libraries support legacy versions of Java runtimes with long
147+
term stable libraries that don't receive feature updates on a best efforts basis
148+
as it may not be possible to backport all patches.
149+
150+
Google provides updates on a best efforts basis to apps that continue to use
151+
Java 7, though apps might need to upgrade to current versions of the library
152+
that supports their JVM.
153+
154+
#### Where to find specific information
155+
156+
The latest versions and the supported Java versions are identified on
157+
the individual GitHub repository `github.com/GoogleAPIs/java-SERVICENAME`
158+
and on [google-cloud-java][g-c-j].
159+
160+
## Versioning
161+
This library follows [Semantic Versioning](http://semver.org/).
162+
163+
164+
It is currently in major version zero (``0.y.z``), which means that anything may change at any time
165+
and the public API should not be considered stable.
166+
167+
168+
## Contributing
169+
170+
171+
Contributions to this library are always welcome and highly encouraged.
172+
173+
See [CONTRIBUTING][contributing] for more information how to get started.
174+
175+
Please note that this project is released with a Contributor Code of Conduct. By participating in
176+
this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more
177+
information.
178+
179+
180+
## License
181+
182+
Apache 2.0 - See [LICENSE][license] for more information.
183+
184+
Java is a registered trademark of Oracle and/or its affiliates.
185+
186+
[product-docs]: https://docs.cloud.google.com/cloud-ftp
187+
[javadocs]: https://cloud.google.com/java/docs/reference/google-cloud-ftp/latest/overview
188+
[stability-image]: https://img.shields.io/badge/stability-preview-yellow
189+
[maven-version-image]: https://img.shields.io/maven-central/v/com.google.cloud/google-cloud-ftp.svg
190+
[maven-version-link]: https://central.sonatype.com/artifact/com.google.cloud/google-cloud-ftp/0.0.0
191+
[authentication]: https://github.com/googleapis/google-cloud-java#authentication
192+
[auth-scopes]: https://developers.google.com/identity/protocols/oauth2/scopes
193+
[predefined-iam-roles]: https://cloud.google.com/iam/docs/understanding-roles#predefined_roles
194+
[iam-policy]: https://cloud.google.com/iam/docs/overview#cloud-iam-policy
195+
[developer-console]: https://console.developers.google.com/
196+
[create-project]: https://cloud.google.com/resource-manager/docs/creating-managing-projects
197+
[cloud-cli]: https://cloud.google.com/cli
198+
[troubleshooting]: https://github.com/googleapis/google-cloud-java/blob/main/TROUBLESHOOTING.md
199+
[contributing]: https://github.com/googleapis/google-cloud-java/blob/main/CONTRIBUTING.md
200+
[code-of-conduct]: https://github.com/googleapis/google-cloud-java/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct
201+
[license]: https://github.com/googleapis/google-cloud-java/blob/main/LICENSE
202+
[enable-billing]: https://cloud.google.com/apis/docs/getting-started#enabling_billing
203+
[enable-api]: https://console.cloud.google.com/flows/enableapi?apiid=ftp.googleapis.com
204+
[libraries-bom]: https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/The-Google-Cloud-Platform-Libraries-BOM
205+
[shell_img]: https://gstatic.com/cloudssh/images/open-btn.png
206+
207+
[semver]: https://semver.org/
208+
[cloudlibs]: https://cloud.google.com/apis/docs/client-libraries-explained
209+
[apilibs]: https://cloud.google.com/apis/docs/client-libraries-explained#google_api_client_libraries
210+
[oracle]: https://www.oracle.com/java/technologies/java-se-support-roadmap.html
211+
[g-c-j]: http://github.com/googleapis/google-cloud-java
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.google.cloud</groupId>
5+
<artifactId>google-cloud-ftp-bom</artifactId>
6+
<version>0.1.0-SNAPSHOT</version><!-- {x-version-update:google-cloud-ftp:current} -->
7+
<packaging>pom</packaging>
8+
<parent>
9+
<groupId>com.google.cloud</groupId>
10+
<artifactId>google-cloud-pom-parent</artifactId>
11+
<version>1.90.0-SNAPSHOT</version><!-- {x-version-update:google-cloud-pom-parent:current} -->
12+
<relativePath>../../google-cloud-pom-parent/pom.xml</relativePath>
13+
</parent>
14+
15+
<name>Google Cloud FTP BOM</name>
16+
<description>
17+
BOM for Cloud FTP
18+
</description>
19+
20+
<properties>
21+
<maven.antrun.skip>true</maven.antrun.skip>
22+
</properties>
23+
24+
<dependencyManagement>
25+
<dependencies>
26+
<!-- {x-generated-dependencies-start} -->
27+
<dependency>
28+
<groupId>com.google.cloud</groupId>
29+
<artifactId>google-cloud-ftp</artifactId>
30+
<version>0.1.0-SNAPSHOT</version><!-- {x-version-update:google-cloud-ftp:current} -->
31+
</dependency>
32+
<dependency>
33+
<groupId>com.google.api.grpc</groupId>
34+
<artifactId>proto-google-cloud-ftp-v1</artifactId>
35+
<version>0.1.0-SNAPSHOT</version><!-- {x-version-update:proto-google-cloud-ftp-v1:current} -->
36+
</dependency>
37+
<!-- {x-generated-dependencies-end} -->
38+
</dependencies>
39+
</dependencyManagement>
40+
</project>

java-ftp/google-cloud-ftp/pom.xml

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
<?xml version='1.0' encoding='UTF-8'?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
3+
<modelVersion>4.0.0</modelVersion>
4+
<groupId>com.google.cloud</groupId>
5+
<artifactId>google-cloud-ftp</artifactId>
6+
<version>0.1.0-SNAPSHOT</version><!-- {x-version-update:google-cloud-ftp:current} -->
7+
<packaging>jar</packaging>
8+
<name>Google Cloud FTP</name>
9+
<description>Cloud FTP A managed, cloud-native solution to move data in and out of Google Cloud by
10+
using SSH File Transfer Protocol (SFTP).</description>
11+
<parent>
12+
<groupId>com.google.cloud</groupId>
13+
<artifactId>google-cloud-ftp-parent</artifactId>
14+
<version>0.1.0-SNAPSHOT</version><!-- {x-version-update:google-cloud-ftp:current} -->
15+
</parent>
16+
<properties>
17+
<site.installationModule>google-cloud-ftp</site.installationModule>
18+
</properties>
19+
<dependencies>
20+
<dependency>
21+
<groupId>io.grpc</groupId>
22+
<artifactId>grpc-api</artifactId>
23+
</dependency>
24+
<dependency>
25+
<groupId>io.grpc</groupId>
26+
<artifactId>grpc-stub</artifactId>
27+
</dependency>
28+
<dependency>
29+
<groupId>io.grpc</groupId>
30+
<artifactId>grpc-protobuf</artifactId>
31+
</dependency>
32+
<dependency>
33+
<groupId>com.google.api</groupId>
34+
<artifactId>api-common</artifactId>
35+
</dependency>
36+
<dependency>
37+
<groupId>com.google.protobuf</groupId>
38+
<artifactId>protobuf-java</artifactId>
39+
</dependency>
40+
<dependency>
41+
<groupId>com.google.api.grpc</groupId>
42+
<artifactId>proto-google-common-protos</artifactId>
43+
</dependency>
44+
<!-- {x-generated-proto-dependencies-start} -->
45+
<dependency>
46+
<groupId>com.google.api.grpc</groupId>
47+
<artifactId>proto-google-cloud-ftp-v1</artifactId>
48+
</dependency>
49+
<!-- {x-generated-proto-dependencies-end} -->
50+
<dependency>
51+
<groupId>com.google.guava</groupId>
52+
<artifactId>guava</artifactId>
53+
</dependency>
54+
<dependency>
55+
<groupId>com.google.api</groupId>
56+
<artifactId>gax</artifactId>
57+
</dependency>
58+
<dependency>
59+
<groupId>com.google.api</groupId>
60+
<artifactId>gax-grpc</artifactId>
61+
</dependency>
62+
<dependency>
63+
<groupId>com.google.api</groupId>
64+
<artifactId>gax-httpjson</artifactId>
65+
</dependency>
66+
<dependency>
67+
<groupId>com.google.api.grpc</groupId>
68+
<artifactId>proto-google-iam-v1</artifactId>
69+
</dependency>
70+
<dependency>
71+
<groupId>org.threeten</groupId>
72+
<artifactId>threetenbp</artifactId>
73+
</dependency>
74+
75+
<!-- Test dependencies -->
76+
<dependency>
77+
<groupId>com.google.api.grpc</groupId>
78+
<artifactId>grpc-google-common-protos</artifactId>
79+
<scope>test</scope>
80+
</dependency>
81+
<dependency>
82+
<groupId>com.google.api.grpc</groupId>
83+
<artifactId>grpc-google-iam-v1</artifactId>
84+
<scope>test</scope>
85+
</dependency>
86+
<dependency>
87+
<groupId>junit</groupId>
88+
<artifactId>junit</artifactId>
89+
<scope>test</scope>
90+
</dependency>
91+
<!-- {x-generated-grpc-dependencies-start} -->
92+
<!-- {x-generated-grpc-dependencies-end} -->
93+
<!-- Need testing utility classes for generated gRPC clients tests -->
94+
<dependency>
95+
<groupId>com.google.api</groupId>
96+
<artifactId>gax</artifactId>
97+
<classifier>testlib</classifier>
98+
<scope>test</scope>
99+
</dependency>
100+
<dependency>
101+
<groupId>com.google.api</groupId>
102+
<artifactId>gax-grpc</artifactId>
103+
<classifier>testlib</classifier>
104+
<scope>test</scope>
105+
</dependency>
106+
<dependency>
107+
<groupId>com.google.api</groupId>
108+
<artifactId>gax-httpjson</artifactId>
109+
<classifier>testlib</classifier>
110+
<scope>test</scope>
111+
</dependency>
112+
</dependencies>
113+
</project>

0 commit comments

Comments
 (0)