Skip to content

Commit 74bcad8

Browse files
author
SDKAuto
committed
CodeGen from PR 13139 in Azure/azure-rest-api-specs
Merge 19b67cca1817ffd417090cf1514b129bb0e2399e into ae350892855f8c404713f4ecf37bbb8df4cabfd8
1 parent c3d44f7 commit 74bcad8

32 files changed

+4282
-0
lines changed

eng/versioning/version_client.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,7 @@ com.azure.resourcemanager:azure-resourcemanager-digitaltwins;1.0.0-beta.1;1.0.0-
206206
com.azure.resourcemanager:azure-resourcemanager-netapp;1.0.0-beta.1;1.0.0-beta.2
207207
com.azure.resourcemanager:azure-resourcemanager-storagecache;1.0.0-beta.1;1.0.0-beta.2
208208
com.azure.resourcemanager:azure-resourcemanager-redisenterprise;1.0.0-beta.1;1.0.0-beta.2
209+
com.azure.resourcemanager:azure-resourcemanager-monitor-generated;1.0.0-beta.1;1.0.0-beta.1
209210

210211
# Unreleased dependencies: Copy the entry from above, prepend "unreleased_" and remove the current
211212
# version. Unreleased dependencies are only valid for dependency versions.
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-02-24)
4+
5+
- Azure Resource Manager Monitor client library for Java. This package contains Microsoft Azure SDK for Monitor Management SDK. Monitor Management Client. Package tag package-2020-10. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
# Azure Resource Manager Monitor client library for Java
2+
3+
Azure Resource Manager Monitor client library for Java.
4+
5+
This package contains Microsoft Azure SDK for Monitor Management SDK. Monitor Management Client. Package tag package-2020-10. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt).
6+
7+
## We'd love to hear your feedback
8+
9+
We're always working on improving our products and the way we communicate with our users. So we'd love to learn what's working and how we can do better.
10+
11+
If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together.
12+
13+
Thank you in advance for your collaboration. We really appreciate your time!
14+
15+
## Documentation
16+
17+
Various documentation is available to help you get started
18+
19+
- [API reference documentation][docs]
20+
21+
## Getting started
22+
23+
### Prerequisites
24+
25+
- [Java Development Kit (JDK)][jdk] with version 8 or above
26+
- [Azure Subscription][azure_subscription]
27+
28+
### Adding the package to your product
29+
30+
[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-monitor-generated;current})
31+
```xml
32+
<dependency>
33+
<groupId>com.azure.resourcemanager</groupId>
34+
<artifactId>azure-resourcemanager-monitor-generated</artifactId>
35+
<version>1.0.0-beta.1</version>
36+
</dependency>
37+
```
38+
[//]: # ({x-version-update-end})
39+
40+
### Include the recommended packages
41+
42+
Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client.
43+
44+
[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation.
45+
46+
### Authentication
47+
48+
By default, Azure Active Directory token authentication depends on correct configure of following environment variables.
49+
50+
- `AZURE_CLIENT_ID` for Azure client ID.
51+
- `AZURE_TENANT_ID` for Azure tenant ID.
52+
- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate.
53+
54+
In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`.
55+
56+
With above configuration, `azure` client can be authenticated by following code:
57+
58+
```java
59+
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE);
60+
TokenCredential credential = new DefaultAzureCredentialBuilder()
61+
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint())
62+
.build();
63+
MonitorManager manager = MonitorManager
64+
.authenticate(credential, profile);
65+
```
66+
67+
The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise.
68+
69+
See [Authentication][authenticate] for more options.
70+
71+
## Key concepts
72+
73+
See [API design][design] for general introduction on design and key concepts on Azure Management Libraries.
74+
75+
## Examples
76+
77+
## Troubleshooting
78+
79+
## Next steps
80+
81+
## Contributing
82+
83+
For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/CONTRIBUTING.md).
84+
85+
1. Fork it
86+
1. Create your feature branch (`git checkout -b my-new-feature`)
87+
1. Commit your changes (`git commit -am 'Add some feature'`)
88+
1. Push to the branch (`git push origin my-new-feature`)
89+
1. Create new Pull Request
90+
91+
<!-- LINKS -->
92+
[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS
93+
[docs]: https://azure.github.io/azure-sdk-for-java/
94+
[jdk]: https://docs.microsoft.com/java/azure/jdk/
95+
[azure_subscription]: https://azure.microsoft.com/free/
96+
[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity
97+
[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty
98+
[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md
99+
[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
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-monitor-generated</artifactId>
12+
<version>1.0.0-beta.1</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-monitor-generated;current} -->
13+
<packaging>jar</packaging>
14+
15+
<name>Microsoft Azure SDK for Monitor Management</name>
16+
<description>This package contains Microsoft Azure SDK for Monitor Management SDK. Monitor Management Client. Package tag package-2020-10. 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:git@github.com:Azure/azure-sdk-for-java.git</connection>
30+
<developerConnection>scm:git:git@github.com: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</artifactId>
47+
<version>1.13.0</version> <!-- {x-version-update;com.azure:azure-core;dependency} -->
48+
</dependency>
49+
<dependency>
50+
<groupId>com.azure</groupId>
51+
<artifactId>azure-core-management</artifactId>
52+
<version>1.1.1</version> <!-- {x-version-update;com.azure:azure-core-management;dependency} -->
53+
</dependency>
54+
</dependencies>
55+
<build>
56+
<plugins>
57+
<plugin>
58+
<groupId>org.jacoco</groupId>
59+
<artifactId>jacoco-maven-plugin</artifactId>
60+
<version>0.8.5</version> <!-- {x-version-update;org.jacoco:jacoco-maven-plugin;external_dependency} -->
61+
<configuration>
62+
<skip>true</skip>
63+
</configuration>
64+
</plugin>
65+
</plugins>
66+
</build>
67+
</project>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,214 @@
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.monitor.generated;
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.monitor.generated.fluent.MonitorClient;
24+
import com.azure.resourcemanager.monitor.generated.implementation.ActivityLogAlertsImpl;
25+
import com.azure.resourcemanager.monitor.generated.implementation.MonitorClientBuilder;
26+
import com.azure.resourcemanager.monitor.generated.models.ActivityLogAlerts;
27+
import java.time.Duration;
28+
import java.time.temporal.ChronoUnit;
29+
import java.util.ArrayList;
30+
import java.util.List;
31+
import java.util.Objects;
32+
33+
/** Entry point to MonitorManager. Monitor Management Client. */
34+
public final class MonitorManager {
35+
private ActivityLogAlerts activityLogAlerts;
36+
37+
private final MonitorClient clientObject;
38+
39+
private MonitorManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) {
40+
Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null.");
41+
Objects.requireNonNull(profile, "'profile' cannot be null.");
42+
this.clientObject =
43+
new MonitorClientBuilder()
44+
.pipeline(httpPipeline)
45+
.endpoint(profile.getEnvironment().getResourceManagerEndpoint())
46+
.subscriptionId(profile.getSubscriptionId())
47+
.defaultPollInterval(defaultPollInterval)
48+
.buildClient();
49+
}
50+
51+
/**
52+
* Creates an instance of Monitor service API entry point.
53+
*
54+
* @param credential the credential to use.
55+
* @param profile the Azure profile for client.
56+
* @return the Monitor service API instance.
57+
*/
58+
public static MonitorManager authenticate(TokenCredential credential, AzureProfile profile) {
59+
Objects.requireNonNull(credential, "'credential' cannot be null.");
60+
Objects.requireNonNull(profile, "'profile' cannot be null.");
61+
return configure().authenticate(credential, profile);
62+
}
63+
64+
/**
65+
* Gets a Configurable instance that can be used to create MonitorManager with optional configuration.
66+
*
67+
* @return the Configurable instance allowing configurations.
68+
*/
69+
public static Configurable configure() {
70+
return new MonitorManager.Configurable();
71+
}
72+
73+
/** The Configurable allowing configurations to be set. */
74+
public static final class Configurable {
75+
private final ClientLogger logger = new ClientLogger(Configurable.class);
76+
77+
private HttpClient httpClient;
78+
private HttpLogOptions httpLogOptions;
79+
private final List<HttpPipelinePolicy> policies = new ArrayList<>();
80+
private RetryPolicy retryPolicy;
81+
private Duration defaultPollInterval;
82+
83+
private Configurable() {
84+
}
85+
86+
/**
87+
* Sets the http client.
88+
*
89+
* @param httpClient the HTTP client.
90+
* @return the configurable object itself.
91+
*/
92+
public Configurable withHttpClient(HttpClient httpClient) {
93+
this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null.");
94+
return this;
95+
}
96+
97+
/**
98+
* Sets the logging options to the HTTP pipeline.
99+
*
100+
* @param httpLogOptions the HTTP log options.
101+
* @return the configurable object itself.
102+
*/
103+
public Configurable withLogOptions(HttpLogOptions httpLogOptions) {
104+
this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null.");
105+
return this;
106+
}
107+
108+
/**
109+
* Adds the pipeline policy to the HTTP pipeline.
110+
*
111+
* @param policy the HTTP pipeline policy.
112+
* @return the configurable object itself.
113+
*/
114+
public Configurable withPolicy(HttpPipelinePolicy policy) {
115+
this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null."));
116+
return this;
117+
}
118+
119+
/**
120+
* Sets the retry policy to the HTTP pipeline.
121+
*
122+
* @param retryPolicy the HTTP pipeline retry policy.
123+
* @return the configurable object itself.
124+
*/
125+
public Configurable withRetryPolicy(RetryPolicy retryPolicy) {
126+
this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null.");
127+
return this;
128+
}
129+
130+
/**
131+
* Sets the default poll interval, used when service does not provide "Retry-After" header.
132+
*
133+
* @param defaultPollInterval the default poll interval.
134+
* @return the configurable object itself.
135+
*/
136+
public Configurable withDefaultPollInterval(Duration defaultPollInterval) {
137+
this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null.");
138+
if (this.defaultPollInterval.isNegative()) {
139+
throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative"));
140+
}
141+
return this;
142+
}
143+
144+
/**
145+
* Creates an instance of Monitor service API entry point.
146+
*
147+
* @param credential the credential to use.
148+
* @param profile the Azure profile for client.
149+
* @return the Monitor service API instance.
150+
*/
151+
public MonitorManager authenticate(TokenCredential credential, AzureProfile profile) {
152+
Objects.requireNonNull(credential, "'credential' cannot be null.");
153+
Objects.requireNonNull(profile, "'profile' cannot be null.");
154+
155+
StringBuilder userAgentBuilder = new StringBuilder();
156+
userAgentBuilder
157+
.append("azsdk-java")
158+
.append("-")
159+
.append("com.azure.resourcemanager.monitor.generated")
160+
.append("/")
161+
.append("1.0.0-beta.1");
162+
if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) {
163+
userAgentBuilder
164+
.append(" (")
165+
.append(Configuration.getGlobalConfiguration().get("java.version"))
166+
.append("; ")
167+
.append(Configuration.getGlobalConfiguration().get("os.name"))
168+
.append("; ")
169+
.append(Configuration.getGlobalConfiguration().get("os.version"))
170+
.append("; auto-generated)");
171+
} else {
172+
userAgentBuilder.append(" (auto-generated)");
173+
}
174+
175+
if (retryPolicy == null) {
176+
retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS);
177+
}
178+
List<HttpPipelinePolicy> policies = new ArrayList<>();
179+
policies.add(new UserAgentPolicy(userAgentBuilder.toString()));
180+
policies.add(new RequestIdPolicy());
181+
HttpPolicyProviders.addBeforeRetryPolicies(policies);
182+
policies.add(retryPolicy);
183+
policies.add(new AddDatePolicy());
184+
policies
185+
.add(
186+
new BearerTokenAuthenticationPolicy(
187+
credential, profile.getEnvironment().getManagementEndpoint() + "/.default"));
188+
HttpPolicyProviders.addAfterRetryPolicies(policies);
189+
policies.add(new HttpLoggingPolicy(httpLogOptions));
190+
HttpPipeline httpPipeline =
191+
new HttpPipelineBuilder()
192+
.httpClient(httpClient)
193+
.policies(policies.toArray(new HttpPipelinePolicy[0]))
194+
.build();
195+
return new MonitorManager(httpPipeline, profile, defaultPollInterval);
196+
}
197+
}
198+
199+
/** @return Resource collection API of ActivityLogAlerts. */
200+
public ActivityLogAlerts activityLogAlerts() {
201+
if (this.activityLogAlerts == null) {
202+
this.activityLogAlerts = new ActivityLogAlertsImpl(clientObject.getActivityLogAlerts(), this);
203+
}
204+
return activityLogAlerts;
205+
}
206+
207+
/**
208+
* @return Wrapped service client MonitorClient providing direct access to the underlying auto-generated API
209+
* implementation, based on Azure REST API.
210+
*/
211+
public MonitorClient serviceClient() {
212+
return this.clientObject;
213+
}
214+
}

0 commit comments

Comments
 (0)