Skip to content

Commit b19467c

Browse files
author
SDKAuto
committed
CodeGen from PR 12312 in Azure/azure-rest-api-specs
Merge f60440cbb5151864b42b901b83940b7930ee52dd into fdfffcf49a4b777461d80b2a1f81ee0c4210f5fc
1 parent be2a5ba commit b19467c

File tree

52 files changed

+6466
-0
lines changed

Some content is hidden

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

52 files changed

+6466
-0
lines changed

eng/versioning/version_client.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ com.azure.resourcemanager:azure-resourcemanager-kusto;1.0.0-beta.1;1.0.0-beta.2
191191
com.azure.resourcemanager:azure-resourcemanager-loganalytics;1.0.0-beta.1;1.0.0-beta.2
192192
com.azure.resourcemanager:azure-resourcemanager-eventgrid;1.0.0-beta.1;1.0.0-beta.2
193193
com.azure.resourcemanager:azure-resourcemanager-healthbot;1.0.0-beta.1;1.0.0-beta.1
194+
com.azure.resourcemanager:azure-resourcemanager-confluent;1.0.0-beta.1;1.0.0-beta.1
194195

195196

196197
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current

pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -553,6 +553,7 @@
553553
<module>sdk/boms</module>
554554
<module>sdk/cognitiveservices</module>
555555
<module>sdk/communication</module>
556+
<module>sdk/confluent</module>
556557
<module>sdk/core</module>
557558
<module>sdk/cosmos</module>
558559
<module>sdk/costmanagement</module>
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Release History
2+
3+
## 1.0.0-beta.1 (2021-01-13)
4+
5+
- Azure Resource Manager Confluent client library for Java. This package contains Microsoft Azure SDK for Confluent Management SDK. Package tag package-2020-03-01-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# Azure Resource Manager Confluent client library for Java
2+
3+
Azure Resource Manager Confluent client library for Java.
4+
5+
This package contains Microsoft Azure SDK for Confluent Management SDK. Package tag package-2020-03-01-preview. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
6+
7+
## Getting started
8+
9+
### Prerequisites
10+
11+
- [Java Development Kit (JDK)][jdk] with version 8 or above
12+
- [Azure Subscription][azure_subscription]
13+
14+
### Adding the package to your product
15+
16+
[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-confluent;current})
17+
```xml
18+
<dependency>
19+
<groupId>com.azure.resourcemanager</groupId>
20+
<artifactId>azure-resourcemanager-confluent</artifactId>
21+
<version>1.0.0-beta.1</version>
22+
</dependency>
23+
```
24+
[//]: # ({x-version-update-end})
25+
26+
### Include the recommended packages
27+
28+
Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
29+
30+
[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
31+
32+
### Authentication
33+
34+
By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
35+
36+
- `AZURE_CLIENT_ID` for Azure client ID.
37+
- `AZURE_TENANT_ID` for Azure tenant ID.
38+
- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
39+
40+
In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
41+
42+
With above configuration, `azure` client can be authenticated by following code:
43+
44+
```java
45+
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
46+
TokenCredential credential = new DefaultAzureCredentialBuilder()
47+
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
48+
.build();
49+
ConfluentManager manager = ConfluentManager
50+
.authenticate(credential, profile);
51+
```
52+
53+
The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
54+
55+
See [Authentication][authenticate] for more options.
56+
57+
## Key concepts
58+
59+
See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
60+
61+
## Examples
62+
63+
## Troubleshooting
64+
65+
## Next steps
66+
67+
## Contributing
68+
69+
For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/CONTRIBUTING.md).
70+
71+
1. Fork it
72+
1. Create your feature branch (`git checkout -b my-new-feature`)
73+
1. Commit your changes (`git commit -am 'Add some feature'`)
74+
1. Push to the branch (`git push origin my-new-feature`)
75+
1. Create new Pull Request
76+
77+
<!-- LINKS -->
78+
[jdk]: https://docs.microsoft.com/java/azure/jdk/
79+
[azure_subscription]: https://azure.microsoft.com/free/
80+
[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity
81+
[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
82+
[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
83+
[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
2+
<modelVersion>4.0.0</modelVersion>
3+
<parent>
4+
<groupId>com.azure</groupId>
5+
<artifactId>azure-client-sdk-parent</artifactId>
6+
<version>1.7.0</version> <!-- {x-version-update;com.azure:azure-client-sdk-parent;current} -->
7+
<relativePath>../../parents/azure-client-sdk-parent</relativePath>
8+
</parent>
9+
10+
<groupId>com.azure.resourcemanager</groupId>
11+
<artifactId>azure-resourcemanager-confluent</artifactId>
12+
<version>1.0.0-beta.1</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-confluent;current} -->
13+
<packaging>jar</packaging>
14+
15+
<name>Microsoft Azure SDK for Confluent Management</name>
16+
<description>This package contains Microsoft Azure SDK for Confluent Management SDK. Package tag package-2020-03-01-preview. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt</description>
17+
<url>https://github.com/Azure/azure-sdk-for-java</url>
18+
19+
<licenses>
20+
<license>
21+
<name>The MIT License (MIT)</name>
22+
<url>http://opensource.org/licenses/MIT</url>
23+
<distribution>repo</distribution>
24+
</license>
25+
</licenses>
26+
27+
<scm>
28+
<url>https://github.com/Azure/azure-sdk-for-java</url>
29+
<connection>scm:git:[email protected]:Azure/azure-sdk-for-java.git</connection>
30+
<developerConnection>scm:git:[email protected]:Azure/azure-sdk-for-java.git</developerConnection>
31+
<tag>HEAD</tag>
32+
</scm>
33+
<developers>
34+
<developer>
35+
<id>microsoft</id>
36+
<name>Microsoft</name>
37+
</developer>
38+
</developers>
39+
<properties>
40+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
41+
<legal><![CDATA[[INFO] Any downloads listed may be third party software. Microsoft grants you no rights for third party software.]]></legal>
42+
</properties>
43+
<dependencies>
44+
<dependency>
45+
<groupId>com.azure</groupId>
46+
<artifactId>azure-core-management</artifactId>
47+
<version>1.1.0</version> <!-- {x-version-update;com.azure:azure-core-management;dependency} -->
48+
</dependency>
49+
</dependencies>
50+
<build>
51+
<plugins>
52+
<plugin>
53+
<groupId>org.jacoco</groupId>
54+
<artifactId>jacoco-maven-plugin</artifactId>
55+
<version>0.8.5</version> <!-- {x-version-update;org.jacoco:jacoco-maven-plugin;external_dependency} -->
56+
<configuration>
57+
<skip>true</skip>
58+
</configuration>
59+
</plugin>
60+
</plugins>
61+
</build>
62+
</project>
Lines changed: 225 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,225 @@
1+
// Copyright (c) Microsoft Corporation. All rights reserved.
2+
// Licensed under the MIT License.
3+
// Code generated by Microsoft (R) AutoRest Code Generator.
4+
5+
package com.azure.resourcemanager.confluent;
6+
7+
import com.azure.core.credential.TokenCredential;
8+
import com.azure.core.http.HttpClient;
9+
import com.azure.core.http.HttpPipeline;
10+
import com.azure.core.http.HttpPipelineBuilder;
11+
import com.azure.core.http.policy.AddDatePolicy;
12+
import com.azure.core.http.policy.BearerTokenAuthenticationPolicy;
13+
import com.azure.core.http.policy.HttpLogOptions;
14+
import com.azure.core.http.policy.HttpLoggingPolicy;
15+
import com.azure.core.http.policy.HttpPipelinePolicy;
16+
import com.azure.core.http.policy.HttpPolicyProviders;
17+
import com.azure.core.http.policy.RequestIdPolicy;
18+
import com.azure.core.http.policy.RetryPolicy;
19+
import com.azure.core.http.policy.UserAgentPolicy;
20+
import com.azure.core.management.profile.AzureProfile;
21+
import com.azure.core.util.Configuration;
22+
import com.azure.core.util.logging.ClientLogger;
23+
import com.azure.resourcemanager.confluent.fluent.ConfluentManagementClient;
24+
import com.azure.resourcemanager.confluent.implementation.ConfluentManagementClientBuilder;
25+
import com.azure.resourcemanager.confluent.implementation.MarketplaceAgreementsImpl;
26+
import com.azure.resourcemanager.confluent.implementation.OrganizationOperationsImpl;
27+
import com.azure.resourcemanager.confluent.implementation.OrganizationsImpl;
28+
import com.azure.resourcemanager.confluent.models.MarketplaceAgreements;
29+
import com.azure.resourcemanager.confluent.models.OrganizationOperations;
30+
import com.azure.resourcemanager.confluent.models.Organizations;
31+
import java.time.Duration;
32+
import java.time.temporal.ChronoUnit;
33+
import java.util.ArrayList;
34+
import java.util.List;
35+
import java.util.Objects;
36+
37+
/** Entry point to ConfluentManager. */
38+
public final class ConfluentManager {
39+
private MarketplaceAgreements marketplaceAgreements;
40+
41+
private OrganizationOperations organizationOperations;
42+
43+
private Organizations organizations;
44+
45+
private final ConfluentManagementClient clientObject;
46+
47+
private ConfluentManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
48+
Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
49+
Objects.requireNonNull(profile, "'profile' cannot be null.");
50+
this.clientObject =
51+
new ConfluentManagementClientBuilder()
52+
.pipeline(httpPipeline)
53+
.endpoint(profile.getEnvironment().getResourceManagerEndpoint())
54+
.subscriptionId(profile.getSubscriptionId())
55+
.defaultPollInterval(defaultPollInterval)
56+
.buildClient();
57+
}
58+
59+
/**
60+
* Creates an instance of Confluent service API entry point.
61+
*
62+
* @param credential the credential to use.
63+
* @param profile the Azure profile for client.
64+
* @return the Confluent service API instance.
65+
*/
66+
public static ConfluentManager authenticate(TokenCredential credential, AzureProfile profile) {
67+
Objects.requireNonNull(credential, "'credential' cannot be null.");
68+
Objects.requireNonNull(profile, "'profile' cannot be null.");
69+
return configure().authenticate(credential, profile);
70+
}
71+
72+
/**
73+
* Gets a Configurable instance that can be used to create ConfluentManager with optional configuration.
74+
*
75+
* @return the Configurable instance allowing configurations.
76+
*/
77+
public static Configurable configure() {
78+
return new ConfluentManager.Configurable();
79+
}
80+
81+
/** The Configurable allowing configurations to be set. */
82+
public static final class Configurable {
83+
private final ClientLogger logger = new ClientLogger(Configurable.class);
84+
85+
private HttpClient httpClient;
86+
private HttpLogOptions httpLogOptions;
87+
private final List<HttpPipelinePolicy> policies = new ArrayList<>();
88+
private RetryPolicy retryPolicy;
89+
private Duration defaultPollInterval;
90+
91+
private Configurable() {
92+
}
93+
94+
/**
95+
* Sets the http client.
96+
*
97+
* @param httpClient the HTTP client.
98+
* @return the configurable object itself.
99+
*/
100+
public Configurable withHttpClient(HttpClient httpClient) {
101+
this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
102+
return this;
103+
}
104+
105+
/**
106+
* Sets the logging options to the HTTP pipeline.
107+
*
108+
* @param httpLogOptions the HTTP log options.
109+
* @return the configurable object itself.
110+
*/
111+
public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
112+
this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
113+
return this;
114+
}
115+
116+
/**
117+
* Adds the pipeline policy to the HTTP pipeline.
118+
*
119+
* @param policy the HTTP pipeline policy.
120+
* @return the configurable object itself.
121+
*/
122+
public Configurable withPolicy(HttpPipelinePolicy policy) {
123+
this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
124+
return this;
125+
}
126+
127+
/**
128+
* Sets the retry policy to the HTTP pipeline.
129+
*
130+
* @param retryPolicy the HTTP pipeline retry policy.
131+
* @return the configurable object itself.
132+
*/
133+
public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
134+
this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
135+
return this;
136+
}
137+
138+
/**
139+
* Sets the default poll interval, used when service does not provide "Retry-After" header.
140+
*
141+
* @param defaultPollInterval the default poll interval.
142+
* @return the configurable object itself.
143+
*/
144+
public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
145+
this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
146+
if (this.defaultPollInterval.isNegative()) {
147+
throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
148+
}
149+
return this;
150+
}
151+
152+
/**
153+
* Creates an instance of Confluent service API entry point.
154+
*
155+
* @param credential the credential to use.
156+
* @param profile the Azure profile for client.
157+
* @return the Confluent service API instance.
158+
*/
159+
public ConfluentManager authenticate(TokenCredential credential, AzureProfile profile) {
160+
Objects.requireNonNull(credential, "'credential' cannot be null.");
161+
Objects.requireNonNull(profile, "'profile' cannot be null.");
162+
163+
if (retryPolicy == null) {
164+
retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
165+
}
166+
List<HttpPipelinePolicy> policies = new ArrayList<>();
167+
policies
168+
.add(
169+
new UserAgentPolicy(
170+
null,
171+
"com.azure.resourcemanager.confluent",
172+
"1.0.0-beta.1",
173+
Configuration.getGlobalConfiguration()));
174+
policies.add(new RequestIdPolicy());
175+
HttpPolicyProviders.addBeforeRetryPolicies(policies);
176+
policies.add(retryPolicy);
177+
policies.add(new AddDatePolicy());
178+
policies
179+
.add(
180+
new BearerTokenAuthenticationPolicy(
181+
credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
182+
HttpPolicyProviders.addAfterRetryPolicies(policies);
183+
policies.add(new HttpLoggingPolicy(httpLogOptions));
184+
HttpPipeline httpPipeline =
185+
new HttpPipelineBuilder()
186+
.httpClient(httpClient)
187+
.policies(policies.toArray(new HttpPipelinePolicy[0]))
188+
.build();
189+
return new ConfluentManager(httpPipeline, profile, defaultPollInterval);
190+
}
191+
}
192+
193+
/** @return Resource collection API of MarketplaceAgreements. */
194+
public MarketplaceAgreements marketplaceAgreements() {
195+
if (this.marketplaceAgreements == null) {
196+
this.marketplaceAgreements = new MarketplaceAgreementsImpl(clientObject.getMarketplaceAgreements(), this);
197+
}
198+
return marketplaceAgreements;
199+
}
200+
201+
/** @return Resource collection API of OrganizationOperations. */
202+
public OrganizationOperations organizationOperations() {
203+
if (this.organizationOperations == null) {
204+
this.organizationOperations =
205+
new OrganizationOperationsImpl(clientObject.getOrganizationOperations(), this);
206+
}
207+
return organizationOperations;
208+
}
209+
210+
/** @return Resource collection API of Organizations. */
211+
public Organizations organizations() {
212+
if (this.organizations == null) {
213+
this.organizations = new OrganizationsImpl(clientObject.getOrganizations(), this);
214+
}
215+
return organizations;
216+
}
217+
218+
/**
219+
* @return Wrapped service client ConfluentManagementClient providing direct access to the underlying auto-generated
220+
* API implementation, based on Azure REST API.
221+
*/
222+
public ConfluentManagementClient serviceClient() {
223+
return this.clientObject;
224+
}
225+
}

0 commit comments

Comments
 (0)