Skip to content
This repository has been archived by the owner on Sep 16, 2023. It is now read-only.

Commit

Permalink
samples: add code snippets for Service Directory. (#28)
Browse files Browse the repository at this point in the history
* Add code snippets for Service Directory.

Initially reviewed in pull request: github.com/GoogleCloudPlatform/java-docs-samples/pull/2538

These are expected to be added to go on our docs site page: cloud.google.com/service-directory/docs/configuring-service-directory

* inline some stuff in EndpointsCreate snippet.

* chore: update libraries-bom to 4.4.0 (#26)

This PR was generated using Autosynth. 🌈

Synth log will be available here:
https://source.cloud.google.com/results/invocations/46cdbcfa-1e99-4e4f-be05-90f447630a24/targets

* chore(deps): update dependency com.google.cloud.samples:shared-configuration to v1.0.15 (#29)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud.samples:shared-configuration](https://github.com/GoogleCloudPlatform/java-repo-tools) | patch | `1.0.14` -> `1.0.15` |

---

### Release Notes

<details>
<summary>GoogleCloudPlatform/java-repo-tools</summary>

### [`v1.0.15`](https://github.com/GoogleCloudPlatform/java-repo-tools/releases/v1.0.15)

[Compare Source](https://github.com/GoogleCloudPlatform/java-repo-tools/compare/v1.0.14...v1.0.15)

-   Move some stuff around (in prep for a change to release process) pom.xml's
-   Add an exclude filter for SpotBugs. (disable the Java 11 surprise)
-   Don't fail on SpotBugs issues for now
-   add PMD reporting
-   Don't fail on PMD issues for now.

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-servicedirectory).

* deps: update dependency org.threeten:threetenbp to v1.4.3 (#14)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [org.threeten:threetenbp](https://www.threeten.org/threetenbp) ([source](https://github.com/ThreeTen/threetenbp)) | patch | `1.4.1` -> `1.4.3` |

---

### Release Notes

<details>
<summary>ThreeTen/threetenbp</summary>

### [`v1.4.3`](https://github.com/ThreeTen/threetenbp/releases/v1.4.3)

[Compare Source](https://github.com/ThreeTen/threetenbp/compare/v1.4.2...v1.4.3)

See the [change notes](https://www.threeten.org/threetenbp/changes-report.html) for more information.

### [`v1.4.2`](https://github.com/ThreeTen/threetenbp/releases/v1.4.2)

[Compare Source](https://github.com/ThreeTen/threetenbp/compare/v1.4.1...v1.4.2)

See the [change notes](https://www.threeten.org/threetenbp/changes-report.html) for more information.

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-servicedirectory).

* chore(deps): update dependency com.google.cloud:libraries-bom to v4.4.1 (#30)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:libraries-bom](https://github.com/GoogleCloudPlatform/cloud-opensource-java) | patch | `4.4.0` -> `4.4.1` |

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-servicedirectory).

* deps: update core dependencies (#1)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [io.grpc:grpc-bom](https://github.com/grpc/grpc-java) | minor | `1.27.2` -> `1.28.1` |
| [com.google.api:gax-grpc](https://github.com/googleapis/gax-java) | minor | `1.54.0` -> `1.56.0` |
| [com.google.api:gax-bom](https://github.com/googleapis/gax-java) | minor | `1.54.0` -> `1.56.0` |

---

### Release Notes

<details>
<summary>grpc/grpc-java</summary>

### [`v1.28.1`](https://github.com/grpc/grpc-java/releases/v1.28.1)

[Compare Source](https://github.com/grpc/grpc-java/compare/v1.28.0...v1.28.1)

#### Bug Fixes

-   xds: implement more clear specifications for locality filtering (allow localities with 0 endpoint, ignore localities with 0 weight, check for locality priority continuity). ([#&#8203;6875](https://github.com/grpc/grpc-java/issues/6875))

### [`v1.28.0`](https://github.com/grpc/grpc-java/releases/v1.28.0)

[Compare Source](https://github.com/grpc/grpc-java/compare/v1.27.2...v1.28.0)

#### gRPC Java 1.28.0 Release Notes

#### API Changes

-   core: service config parsing now validates the final config object via `LoadBalancerProvider#parseLoadBalancingPolicyConfig`. LoadBalancer developers should use parsed config(`loadBalancingPolicyConfig`) in `ResolvedAddresses` instead of deprecated attribute `io.grpc.LoadBalancer.ATTR_LOAD_BALANCING_CONFIG`.
-   core: remove stickiness from round robin ([#&#8203;6698](https://github.com/grpc/grpc-java/issues/6698))

#### Behavioral Changes

-   core, grpclb: change policy selection strategy for Grpclb policy (take one: eliminate special logic for deciding grpclb policy in core) ([#&#8203;6637](https://github.com/grpc/grpc-java/issues/6637))
    -   gRPCLB policy selection is being stabilized according to [this gRFC](https://github.com/grpc/proposal/blob/master/A26-grpclb-selection.md). gRPCLB policy will not be automatically selected even if there are SRV addresses resolved. You need to explicitly specify the selection by service config (in TXT records, or via `ManagedChannelBuilder#defaultServiceConfig` or `ManagedChannelBuilder#defaultLoadBalancingPolicy`).

#### New Features

-   This release adds an experimental client side implementation of [xDSv2](https://www.envoyproxy.io/docs/envoy/latest/api-v2/api) APIs. This allows a gRPC client written in Java to receive configuration from an xDSv2 API compatible server and use that configuration to load balance RPCs. In this release, only the virtual host matching and cluster route action is supported. More features will be added in future.

#### Bug Fixes

-   netty: fix a deadlock on start gRPC server ([#&#8203;6601](https://github.com/grpc/grpc-java/issues/6601))
-   netty: negotiated application level protocol is now checked against the correct ALPN list in the SslContext settings
-   okhttp&#x3A; fix incorrect connection-level flow control handling at beginning of connection. 
-   alts: Fix using the wrong way of checking if Conscrypt is available ([#&#8203;6672](https://github.com/grpc/grpc-java/issues/6672))
-   grpclb: grpclb can handle empty address from LoadBalancer instead of throwing exception
-   alts: do not exclude opencensus-api from google-oauth2's transitive dependencies ([#&#8203;6607](https://github.com/grpc/grpc-java/issues/6607))
    -   grpc-alts was broken since 1.27.0 release for missing opencensus-api used in google-oauth2. This was due to opencensus-api dependency was eliminated from grpc-core. Now it should be included.

#### Documentation

-   stub,examples: Clarify CallStreamObserver's Javadoc ([#&#8203;6561](https://github.com/grpc/grpc-java/issues/6561))

#### Dependencies

-   Bump Netty to 4.1.45.Final and tcnative to 2.0.28.Final
-   Bump okhttp to 2.7.4
-   Bump google-auth-library-credentials and google-auth-library-oauth2-http to 0.20.0

#### Acknowledgements

[@&#8203;chrisschek](https://github.com/chrisschek) 
[@&#8203;cushon](https://github.com/cushon) Liam Miller-Cushon
[@&#8203;elharo](https://github.com/elharo) Elliotte Rusty Harold
[@&#8203;gfelbing](https://github.com/gfelbing) Georg Welzel
[@&#8203;hatahet](https://github.com/hatahet) Ziad Hatahet
[@&#8203;leventov](https://github.com/leventov) Roman Leventov
[@&#8203;sourabhsparkala](https://github.com/sourabhsparkala) Sourabh Sarvotham Parkala
[@&#8203;ZhenLian](https://github.com/ZhenLian) Zhen Lian

</details>

<details>
<summary>googleapis/gax-java</summary>

### [`v1.56.0`](https://github.com/googleapis/gax-java/releases/v1.56.0)

[Compare Source](https://github.com/googleapis/gax-java/compare/v1.55.0...v1.56.0)

04-06-2020 10:29 PDT

##### New Features

-   Add ability to partially update retry settings ([#&#8203;993](https://github.com/googleapis/gax-java/pull/993))

##### Dependencies

-   Update grpc to 1.28.1 ([#&#8203;1013](https://github.com/googleapis/gax-java/pull/1013))
-   Update com.google.api:api-common to 1.9.0 ([#&#8203;992](https://github.com/googleapis/gax-java/pull/992))
-   Add javax.annotations dependency in bazel build to gax-grpc ([#&#8203;1000](https://github.com/googleapis/gax-java/pull/1000))

##### Internal / Testing Changes

-   test: make it easier to debug failures in SettingsTest ([#&#8203;994](https://github.com/googleapis/gax-java/pull/994))
-   build: update dependency gradle.plugin.com.dorongold.plugins:task-tree to v1.5 ([#&#8203;995](https://github.com/googleapis/gax-java/pull/995))
-   test: update dependency com.google.api.grpc:grpc-google-cloud-pubsub-v1 to v1.86.0 ([#&#8203;1008](https://github.com/googleapis/gax-java/pull/1008))

### [`v1.55.0`](https://github.com/googleapis/gax-java/releases/v1.55.0)

[Compare Source](https://github.com/googleapis/gax-java/compare/v1.54.0...v1.55.0)

03-27-2020 08:33 PDT

##### New Features

-   Allow client authors to create their own callable chains ([#&#8203;891](https://github.com/googleapis/gax-java/pull/891))

##### Dependencies

-   Update org.threeten:threetenbp to v1.4.1 ([#&#8203;890](https://github.com/googleapis/gax-java/pull/890))

##### Internal / Testing Changes

-   chore(deps): update dependency com.google.api.grpc:grpc-google-cloud-bigtable-v2 to v1 ([#&#8203;953](https://github.com/googleapis/gax-java/pull/953))
-   chore(deps): update dependency com.google.api.grpc:grpc-google-cloud-pubsub-v1 to v1 ([#&#8203;970](https://github.com/googleapis/gax-java/pull/970))
-   remove unused property ([#&#8203;887](https://github.com/googleapis/gax-java/pull/887))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:ghost: **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/config-help/issues) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-servicedirectory).

* chore: release 0.1.1 (#23)

:robot: I have created a release \*beep\* \*boop\* 
---
### [0.1.1](https://www.github.com/googleapis/java-servicedirectory/compare/v0.1.0...v0.1.1) (2020-04-06)


### Dependencies

* update core dependencies ([#1](https://www.github.com/googleapis/java-servicedirectory/issues/1)) ([a6b5a40](https://www.github.com/googleapis/java-servicedirectory/commit/a6b5a40a93d1ad2fe7865b6d284bab6c7adb6692))
* update dependency com.google.api:api-common to v1.9.0 ([#22](https://www.github.com/googleapis/java-servicedirectory/issues/22)) ([a7a8938](https://www.github.com/googleapis/java-servicedirectory/commit/a7a89380580ace369d535d6321cea716f3783105))
* update dependency org.threeten:threetenbp to v1.4.3 ([#14](https://www.github.com/googleapis/java-servicedirectory/issues/14)) ([017312e](https://www.github.com/googleapis/java-servicedirectory/commit/017312ec13e45e3fed02d90ed64a56e8a99a64e4))
---


This PR was generated with [Release Please](https://github.com/googleapis/release-please).

* chore(deps): update dependency com.google.cloud:google-cloud-servicedirectory to v0.1.1 (#32)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:google-cloud-servicedirectory](https://github.com/googleapis/java-servicedirectory) | patch | `0.1.0` -> `0.1.1` |

---

### Release Notes

<details>
<summary>googleapis/java-servicedirectory</summary>

### [`v0.1.1`](https://github.com/googleapis/java-servicedirectory/blob/master/CHANGELOG.md#&#8203;011-httpswwwgithubcomgoogleapisjava-servicedirectorycomparev010v011-2020-04-06)

[Compare Source](https://github.com/googleapis/java-servicedirectory/compare/v0.1.0...v0.1.1)

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-servicedirectory).

* chore: release 0.1.2-SNAPSHOT (#33)

:robot: I have created a release \*beep\* \*boop\* 
---
### Updating meta-information for bleeding-edge SNAPSHOT release.
---


This PR was generated with [Release Please](https://github.com/googleapis/release-please).

* build(deps): update dependency com.google.cloud:google-cloud-shared-config to v0.5.0 (#35)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [com.google.cloud:google-cloud-shared-config](https://github.com/googleapis/java-shared-config) | minor | `0.4.0` -> `0.5.0` |

---

### Release Notes

<details>
<summary>googleapis/java-shared-config</summary>

### [`v0.5.0`](https://github.com/googleapis/java-shared-config/blob/master/CHANGELOG.md#&#8203;050-httpswwwgithubcomgoogleapisjava-shared-configcomparev040v050-2020-04-07)

[Compare Source](https://github.com/googleapis/java-shared-config/compare/v0.4.0...v0.5.0)

##### Features

-   add ban duplicate classes rule ([#&#8203;126](https://www.github.com/googleapis/java-shared-config/issues/126)) ([e38a7cc](https://www.github.com/googleapis/java-shared-config/commit/e38a7cc949396f8f5696e62cd060e0c076047b8d))
-   add devsite javadoc profile ([#&#8203;121](https://www.github.com/googleapis/java-shared-config/issues/121)) ([7f452fb](https://www.github.com/googleapis/java-shared-config/commit/7f452fb6c5704f6ce0f731085479a28fb99ebcb9))
-   add maven flatten plugin ([#&#8203;127](https://www.github.com/googleapis/java-shared-config/issues/127)) ([fb00799](https://www.github.com/googleapis/java-shared-config/commit/fb00799c416d324d68da5b660a26f7ef595c26d9))

##### Bug Fixes

-   declare com.coveo:fmt-maven-plugin version/configuration ([#&#8203;90](https://www.github.com/googleapis/java-shared-config/issues/90)) ([5cf71a6](https://www.github.com/googleapis/java-shared-config/commit/5cf71a6ed699907082756e70c2fdee6ad3632f38))

##### Dependencies

-   update dependency com.google.cloud.samples:shared-configuration to v1.0.13 ([#&#8203;118](https://www.github.com/googleapis/java-shared-config/issues/118)) ([58ae69e](https://www.github.com/googleapis/java-shared-config/commit/58ae69eb5ba037963cdaed0c2b0e30663bc873eb))
-   update dependency com.puppycrawl.tools:checkstyle to v8.29 ([f62292d](https://www.github.com/googleapis/java-shared-config/commit/f62292dab75699a75f8a7d499fe2ccfb7ee93783))
-   update dependency org.apache.maven.plugins:maven-antrun-plugin to v1.8 ([#&#8203;124](https://www.github.com/googleapis/java-shared-config/issues/124)) ([a681536](https://www.github.com/googleapis/java-shared-config/commit/a68153643400c3f3b5c5959cda4dc3b552336427))
-   update dependency org.apache.maven.plugins:maven-dependency-plugin to v3.1.2 ([#&#8203;107](https://www.github.com/googleapis/java-shared-config/issues/107)) ([c9b096b](https://www.github.com/googleapis/java-shared-config/commit/c9b096b81b1f4f8dc2d1302f259f0321722e1ca5))
-   update dependency org.apache.maven.plugins:maven-site-plugin to v3.9.0 ([#&#8203;103](https://www.github.com/googleapis/java-shared-config/issues/103)) ([abe7140](https://www.github.com/googleapis/java-shared-config/commit/abe714060e858c70a83888fb34438c45d97b1168))
-   update dependency org.codehaus.mojo:build-helper-maven-plugin to v3.1.0 ([#&#8203;101](https://www.github.com/googleapis/java-shared-config/issues/101)) ([ac69572](https://www.github.com/googleapis/java-shared-config/commit/ac69572be76e4462fdf65fa6e7f0935c3d51d827))

</details>

---

### Renovate configuration

:date: **Schedule**: At any time (no schedule defined).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/java-servicedirectory).

* Fix type in README.

* Add clarifying comments. Add some configuration in ServicesCreate

Co-authored-by: Yoshi Automation Bot <yoshi-automation@google.com>
Co-authored-by: WhiteSource Renovate <bot@renovateapp.com>
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
  • Loading branch information
4 people authored Apr 15, 2020
1 parent 7882611 commit 55626b4
Show file tree
Hide file tree
Showing 12 changed files with 835 additions and 0 deletions.
46 changes: 46 additions & 0 deletions samples/snippets/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Service Directory

[Service Directory](https://cloud.google.com/service-directory/) is a platform
for discovering, publishing, and connecting services. It offers customers a
single place to register and discover their services in a consistent and
reliable way, regardless of their environment. These sample Java applications
demonstrate how to access the Service Directory API using the Google Java API
Client Libraries.

## Prerequisites

### Enable the API

You must enable the Service Directory API for your project in order to use these
samples. You can do so
[here](https://console.cloud.google.com/flows/enableapi?apiid=servicedirectory.googleapis.com&_ga=2.140387959.57242806.1585772225-360187285.1585772225).

### Set Environment Variables

You must set your project ID in order to run the tests

`$ export GOOGLE_CLOUD_PROJECT=<your-project-id-here>`

### Grant Permissions

You must ensure that the
[user account or service account](https://cloud.google.com/iam/docs/service-accounts#differences_between_a_service_account_and_a_user_account)
you used to authorize your gcloud session has the proper permissions to edit
Service Directory resources for your project. In the Cloud Console under IAM,
add the `Service Directory Admin` role to the project whose service account
you're using to test.

More information can be found in the
[Authentication docs](https://cloud.google.com/docs/authentication/production).

## Quickstart

Install [Maven](https://maven.apache.org/).

Build your project with:

mvn clean package -DskipTests

You can run all tests with:

mvn clean verify
13 changes: 13 additions & 0 deletions samples/snippets/pom.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,16 @@
<?xml version='1.0' encoding='UTF-8'?>
<!--
Copyright 2020 Google Inc.
Licensed 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.
-->
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.cloud</groupId>
Expand Down Expand Up @@ -57,4 +69,5 @@
<scope>test</scope>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/*
* Copyright 2020 Google LLC
*
* Licensed 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.
*/

package com.example.servicedirectory;

// [START servicedirectory_create_endpoint]

import com.google.cloud.servicedirectory.v1beta1.Endpoint;
import com.google.cloud.servicedirectory.v1beta1.RegistrationServiceClient;
import com.google.cloud.servicedirectory.v1beta1.ServiceName;
import java.io.IOException;

public class EndpointsCreate {

public static void createEndpoint() throws IOException {
// TODO(developer): Replace these variables before running the sample.
// These variables should refer to an existing Service Directory service.
String projectId = "your-project-id";
String locationId = "your-region";
String namespaceId = "your-namespace";
String serviceId = "your-service";
// This is user-created; must be unique within the service above.
String endpointId = "your-endpoint";
createEndpoint(projectId, locationId, namespaceId, serviceId, endpointId);
}

// Create a new endpoint.
public static void createEndpoint(
String projectId, String locationId, String namespaceId, String serviceId, String endpointId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (RegistrationServiceClient client = RegistrationServiceClient.create()) {

// The service to create the endpoint in.
ServiceName parent = ServiceName.of(projectId, locationId, namespaceId, serviceId);

// The endpoint to create, with fields filled in.
// Optionally set an IP address and port for the endpoint.
Endpoint endpoint = Endpoint.newBuilder().setAddress("10.0.0.1").setPort(443).build();

// Send the request to create the endpoint.
Endpoint createdEndpoint = client.createEndpoint(parent, endpoint, endpointId);

// Process the response.
System.out.println("Created Endpoint: " + createdEndpoint.getName());
System.out.println("IP Address: " + createdEndpoint.getAddress());
System.out.println("Port: " + createdEndpoint.getPort());
}
}
}
// [END servicedirectory_create_endpoint]
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright 2020 Google LLC
*
* Licensed 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.
*/

package com.example.servicedirectory;

// [START servicedirectory_delete_endpoint]

import com.google.cloud.servicedirectory.v1beta1.EndpointName;
import com.google.cloud.servicedirectory.v1beta1.RegistrationServiceClient;
import java.io.IOException;

public class EndpointsDelete {

public static void deleteEndpoint() throws IOException {
// TODO(developer): Replace these variables before running the sample.
// These variables should refer to an existing Service Directory endpoint.
String projectId = "your-project-id";
String locationId = "your-region";
String namespaceId = "your-namespace";
String serviceId = "your-service";
String endpointId = "your-endpoint";
deleteEndpoint(projectId, locationId, namespaceId, serviceId, endpointId);
}

// Delete an endpoint.
public static void deleteEndpoint(
String projectId, String locationId, String namespaceId, String serviceId, String endpointId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (RegistrationServiceClient client = RegistrationServiceClient.create()) {

// The endpoint to delete.
EndpointName endpointName =
EndpointName.of(projectId, locationId, namespaceId, serviceId, endpointId);

// Send the request to delete the endpoint.
client.deleteEndpoint(endpointName);

// Log the action.
System.out.println("Deleted Endpoint: " + endpointName.toString());
}
}
}
// [END servicedirectory_delete_endpoint]
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
/*
* Copyright 2020 Google LLC
*
* Licensed 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.
*/

package com.example.servicedirectory;

// [START servicedirectory_create_namespace]

import com.google.cloud.servicedirectory.v1beta1.LocationName;
import com.google.cloud.servicedirectory.v1beta1.Namespace;
import com.google.cloud.servicedirectory.v1beta1.RegistrationServiceClient;
import java.io.IOException;

public class NamespacesCreate {

public static void createNamespace() throws IOException {
// TODO(developer): Replace these variables before running the sample.
String projectId = "your-project-id";
String locationId = "your-region";
// This is user-created; must be unique within the project/region above.
String namespaceId = "your-namespace";
createNamespace(projectId, locationId, namespaceId);
}

// Create a new namespace.
public static void createNamespace(String projectId, String locationId, String namespaceId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (RegistrationServiceClient client = RegistrationServiceClient.create()) {

// The project and location to create the namespace in.
LocationName parent = LocationName.of(projectId, locationId);

// The namespace object to create. Here, we use the default instance.
Namespace namespace = Namespace.newBuilder().build();

// Send the request to create the namespace.
Namespace createdNamespace = client.createNamespace(parent, namespace, namespaceId);

// Process the response.
System.out.println("Created Namespace: " + createdNamespace.getName());
}
}
}
// [END servicedirectory_create_namespace]
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
/*
* Copyright 2020 Google LLC
*
* Licensed 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.
*/

package com.example.servicedirectory;

// [START servicedirectory_delete_namespace]

import com.google.cloud.servicedirectory.v1beta1.NamespaceName;
import com.google.cloud.servicedirectory.v1beta1.RegistrationServiceClient;
import java.io.IOException;

public class NamespacesDelete {

public static void deleteNamespace() throws IOException {
// TODO(developer): Replace these variables before running the sample.
// These variables should refer to an existing Service Directory namespace.
String projectId = "your-project-id";
String locationId = "your-region";
String namespaceId = "your-namespace";
deleteNamespace(projectId, locationId, namespaceId);
}

// Delete a namespace.
public static void deleteNamespace(String projectId, String locationId, String namespaceId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (RegistrationServiceClient client = RegistrationServiceClient.create()) {

// The namespace to delete.
NamespaceName namespaceName = NamespaceName.of(projectId, locationId, namespaceId);

// Send the request to delete the namespace.
client.deleteNamespace(namespaceName);

// Log the action.
System.out.println("Deleted Namespace: " + namespaceName.toString());
}
}
}
// [END servicedirectory_delete_namespace]
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Copyright 2020 Google LLC
*
* Licensed 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.
*/

package com.example.servicedirectory;

// [START servicedirectory_create_service]

import com.google.cloud.servicedirectory.v1beta1.NamespaceName;
import com.google.cloud.servicedirectory.v1beta1.RegistrationServiceClient;
import com.google.cloud.servicedirectory.v1beta1.Service;
import java.io.IOException;

public class ServicesCreate {

public static void createService() throws IOException {
// TODO(developer): Replace these variables before running the sample.
// These variables should refer to an existing Service Directory namespace.
String projectId = "your-project-id";
String locationId = "your-region";
String namespaceId = "your-namespace";
// This is user-created; must be unique within the namespace above.
String serviceId = "your-service";
createService(projectId, locationId, namespaceId, serviceId);
}

// Create a new service.
public static void createService(
String projectId, String locationId, String namespaceId, String serviceId)
throws IOException {
// Initialize client that will be used to send requests. This client only needs to be created
// once, and can be reused for multiple requests. After completing all of your requests, call
// the "close" method on the client to safely clean up any remaining background resources.
try (RegistrationServiceClient client = RegistrationServiceClient.create()) {

// The namespace to create the service in.
NamespaceName parent = NamespaceName.of(projectId, locationId, namespaceId);

// The service object to create.
// Optionally add some metadata for the service.
Service service = Service.newBuilder().putMetadata("protocol", "tcp").build();

// Send the request to create the namespace.
Service createdService = client.createService(parent, service, serviceId);

// Process the response.
System.out.println("Created Service: " + createdService.getName());
System.out.println("Metadata: " + createdService.getMetadata());
}
}
}
// [END servicedirectory_create_service]
Loading

0 comments on commit 55626b4

Please sign in to comment.