forked from Azure/azure-sdk-for-java
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
CodeGen from PR 14082 in Azure/azure-rest-api-specs
Merge 3a5790ca49f6eeb449ec6ae422b197a105f9c20a into 53af7fc754f605aabc80a33cceb53b6b0c5da71b
- Loading branch information
SDKAuto
committed
Apr 22, 2021
1 parent
c16dc82
commit cc69516
Showing
31 changed files
with
2,930 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
5 changes: 5 additions & 0 deletions
5
sdk/monitor/azure-resourcemanager-monitor-generated/CHANGELOG.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
# Release History | ||
|
||
## 1.0.0-beta.1 (2021-04-22) | ||
|
||
- Azure Resource Manager Monitor client library for Java. This package contains Microsoft Azure SDK for Monitor Management SDK. Monitor Management Client. Package tag package-2019-07. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt). |
99 changes: 99 additions & 0 deletions
99
sdk/monitor/azure-resourcemanager-monitor-generated/README.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# Azure Resource Manager Monitor client library for Java | ||
|
||
Azure Resource Manager Monitor client library for Java. | ||
|
||
This package contains Microsoft Azure SDK for Monitor Management SDK. Monitor Management Client. Package tag package-2019-07. For documentation on how to use this package, please see [Azure Management Libraries for Java](https://aka.ms/azsdk/java/mgmt). | ||
|
||
## We'd love to hear your feedback | ||
|
||
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. | ||
|
||
If you haven't already, please take a few minutes to [complete this short survey][survey] we have put together. | ||
|
||
Thank you in advance for your collaboration. We really appreciate your time! | ||
|
||
## Documentation | ||
|
||
Various documentation is available to help you get started | ||
|
||
- [API reference documentation][docs] | ||
|
||
## Getting started | ||
|
||
### Prerequisites | ||
|
||
- [Java Development Kit (JDK)][jdk] with version 8 or above | ||
- [Azure Subscription][azure_subscription] | ||
|
||
### Adding the package to your product | ||
|
||
[//]: # ({x-version-update-start;com.azure.resourcemanager:azure-resourcemanager-monitor-generated;current}) | ||
```xml | ||
<dependency> | ||
<groupId>com.azure.resourcemanager</groupId> | ||
<artifactId>azure-resourcemanager-monitor-generated</artifactId> | ||
<version>1.0.0-beta.1</version> | ||
</dependency> | ||
``` | ||
[//]: # ({x-version-update-end}) | ||
|
||
### Include the recommended packages | ||
|
||
Azure Management Libraries require a `TokenCredential` implementation for authentication and an `HttpClient` implementation for HTTP client. | ||
|
||
[Azure Identity][azure_identity] package and [Azure Core Netty HTTP][azure_core_http_netty] package provide the default implementation. | ||
|
||
### Authentication | ||
|
||
By default, Azure Active Directory token authentication depends on correct configure of following environment variables. | ||
|
||
- `AZURE_CLIENT_ID` for Azure client ID. | ||
- `AZURE_TENANT_ID` for Azure tenant ID. | ||
- `AZURE_CLIENT_SECRET` or `AZURE_CLIENT_CERTIFICATE_PATH` for client secret or client certificate. | ||
|
||
In addition, Azure subscription ID can be configured via environment variable `AZURE_SUBSCRIPTION_ID`. | ||
|
||
With above configuration, `azure` client can be authenticated by following code: | ||
|
||
```java | ||
AzureProfile profile = new AzureProfile(AzureEnvironment.AZURE); | ||
TokenCredential credential = new DefaultAzureCredentialBuilder() | ||
.authorityHost(profile.getEnvironment().getActiveDirectoryEndpoint()) | ||
.build(); | ||
MonitorManager manager = MonitorManager | ||
.authenticate(credential, profile); | ||
``` | ||
|
||
The sample code assumes global Azure. Please change `AzureEnvironment.AZURE` variable if otherwise. | ||
|
||
See [Authentication][authenticate] for more options. | ||
|
||
## Key concepts | ||
|
||
See [API design][design] for general introduction on design and key concepts on Azure Management Libraries. | ||
|
||
## Examples | ||
|
||
## Troubleshooting | ||
|
||
## Next steps | ||
|
||
## Contributing | ||
|
||
For details on contributing to this repository, see the [contributing guide](https://github.com/Azure/azure-sdk-for-java/blob/master/CONTRIBUTING.md). | ||
|
||
1. Fork it | ||
1. Create your feature branch (`git checkout -b my-new-feature`) | ||
1. Commit your changes (`git commit -am 'Add some feature'`) | ||
1. Push to the branch (`git push origin my-new-feature`) | ||
1. Create new Pull Request | ||
|
||
<!-- LINKS --> | ||
[survey]: https://microsoft.qualtrics.com/jfe/form/SV_ehN0lIk2FKEBkwd?Q_CHL=DOCS | ||
[docs]: https://azure.github.io/azure-sdk-for-java/ | ||
[jdk]: https://docs.microsoft.com/java/azure/jdk/ | ||
[azure_subscription]: https://azure.microsoft.com/free/ | ||
[azure_identity]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/identity/azure-identity | ||
[azure_core_http_netty]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/core/azure-core-http-netty | ||
[authenticate]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/AUTH.md | ||
[design]: https://github.com/Azure/azure-sdk-for-java/blob/master/sdk/resourcemanager/docs/DESIGN.md |
67 changes: 67 additions & 0 deletions
67
sdk/monitor/azure-resourcemanager-monitor-generated/pom.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
<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"> | ||
<modelVersion>4.0.0</modelVersion> | ||
<parent> | ||
<groupId>com.azure</groupId> | ||
<artifactId>azure-client-sdk-parent</artifactId> | ||
<version>1.7.0</version> <!-- {x-version-update;com.azure:azure-client-sdk-parent;current} --> | ||
<relativePath>../../parents/azure-client-sdk-parent</relativePath> | ||
</parent> | ||
|
||
<groupId>com.azure.resourcemanager</groupId> | ||
<artifactId>azure-resourcemanager-monitor-generated</artifactId> | ||
<version>1.0.0-beta.1</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-monitor-generated;current} --> | ||
<packaging>jar</packaging> | ||
|
||
<name>Microsoft Azure SDK for Monitor Management</name> | ||
<description>This package contains Microsoft Azure SDK for Monitor Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. Monitor Management Client. Package tag package-2019-07.</description> | ||
<url>https://github.com/Azure/azure-sdk-for-java</url> | ||
|
||
<licenses> | ||
<license> | ||
<name>The MIT License (MIT)</name> | ||
<url>http://opensource.org/licenses/MIT</url> | ||
<distribution>repo</distribution> | ||
</license> | ||
</licenses> | ||
|
||
<scm> | ||
<url>https://github.com/Azure/azure-sdk-for-java</url> | ||
<connection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</connection> | ||
<developerConnection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</developerConnection> | ||
<tag>HEAD</tag> | ||
</scm> | ||
<developers> | ||
<developer> | ||
<id>microsoft</id> | ||
<name>Microsoft</name> | ||
</developer> | ||
</developers> | ||
<properties> | ||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> | ||
<legal><![CDATA[[INFO] Any downloads listed may be third party software. Microsoft grants you no rights for third party software.]]></legal> | ||
</properties> | ||
<dependencies> | ||
<dependency> | ||
<groupId>com.azure</groupId> | ||
<artifactId>azure-core</artifactId> | ||
<version>1.15.0</version> <!-- {x-version-update;com.azure:azure-core;dependency} --> | ||
</dependency> | ||
<dependency> | ||
<groupId>com.azure</groupId> | ||
<artifactId>azure-core-management</artifactId> | ||
<version>1.2.1</version> <!-- {x-version-update;com.azure:azure-core-management;dependency} --> | ||
</dependency> | ||
</dependencies> | ||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.jacoco</groupId> | ||
<artifactId>jacoco-maven-plugin</artifactId> | ||
<version>0.8.5</version> <!-- {x-version-update;org.jacoco:jacoco-maven-plugin;external_dependency} --> | ||
<configuration> | ||
<skip>true</skip> | ||
</configuration> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
</project> |
214 changes: 214 additions & 0 deletions
214
...r-generated/src/main/java/com/azure/resourcemanager/monitor/generated/MonitorManager.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,214 @@ | ||
// Copyright (c) Microsoft Corporation. All rights reserved. | ||
// Licensed under the MIT License. | ||
// Code generated by Microsoft (R) AutoRest Code Generator. | ||
|
||
package com.azure.resourcemanager.monitor.generated; | ||
|
||
import com.azure.core.credential.TokenCredential; | ||
import com.azure.core.http.HttpClient; | ||
import com.azure.core.http.HttpPipeline; | ||
import com.azure.core.http.HttpPipelineBuilder; | ||
import com.azure.core.http.policy.AddDatePolicy; | ||
import com.azure.core.http.policy.BearerTokenAuthenticationPolicy; | ||
import com.azure.core.http.policy.HttpLogOptions; | ||
import com.azure.core.http.policy.HttpLoggingPolicy; | ||
import com.azure.core.http.policy.HttpPipelinePolicy; | ||
import com.azure.core.http.policy.HttpPolicyProviders; | ||
import com.azure.core.http.policy.RequestIdPolicy; | ||
import com.azure.core.http.policy.RetryPolicy; | ||
import com.azure.core.http.policy.UserAgentPolicy; | ||
import com.azure.core.management.profile.AzureProfile; | ||
import com.azure.core.util.Configuration; | ||
import com.azure.core.util.logging.ClientLogger; | ||
import com.azure.resourcemanager.monitor.generated.fluent.MonitorClient; | ||
import com.azure.resourcemanager.monitor.generated.implementation.MetricsImpl; | ||
import com.azure.resourcemanager.monitor.generated.implementation.MonitorClientBuilder; | ||
import com.azure.resourcemanager.monitor.generated.models.Metrics; | ||
import java.time.Duration; | ||
import java.time.temporal.ChronoUnit; | ||
import java.util.ArrayList; | ||
import java.util.List; | ||
import java.util.Objects; | ||
|
||
/** Entry point to MonitorManager. Monitor Management Client. */ | ||
public final class MonitorManager { | ||
private Metrics metrics; | ||
|
||
private final MonitorClient clientObject; | ||
|
||
private MonitorManager(HttpPipeline httpPipeline, AzureProfile profile, Duration defaultPollInterval) { | ||
Objects.requireNonNull(httpPipeline, "'httpPipeline' cannot be null."); | ||
Objects.requireNonNull(profile, "'profile' cannot be null."); | ||
this.clientObject = | ||
new MonitorClientBuilder() | ||
.pipeline(httpPipeline) | ||
.endpoint(profile.getEnvironment().getResourceManagerEndpoint()) | ||
.defaultPollInterval(defaultPollInterval) | ||
.buildClient(); | ||
} | ||
|
||
/** | ||
* Creates an instance of Monitor service API entry point. | ||
* | ||
* @param credential the credential to use. | ||
* @param profile the Azure profile for client. | ||
* @return the Monitor service API instance. | ||
*/ | ||
public static MonitorManager authenticate(TokenCredential credential, AzureProfile profile) { | ||
Objects.requireNonNull(credential, "'credential' cannot be null."); | ||
Objects.requireNonNull(profile, "'profile' cannot be null."); | ||
return configure().authenticate(credential, profile); | ||
} | ||
|
||
/** | ||
* Gets a Configurable instance that can be used to create MonitorManager with optional configuration. | ||
* | ||
* @return the Configurable instance allowing configurations. | ||
*/ | ||
public static Configurable configure() { | ||
return new MonitorManager.Configurable(); | ||
} | ||
|
||
/** The Configurable allowing configurations to be set. */ | ||
public static final class Configurable { | ||
private final ClientLogger logger = new ClientLogger(Configurable.class); | ||
|
||
private HttpClient httpClient; | ||
private HttpLogOptions httpLogOptions; | ||
private final List<HttpPipelinePolicy> policies = new ArrayList<>(); | ||
private RetryPolicy retryPolicy; | ||
private Duration defaultPollInterval; | ||
|
||
private Configurable() { | ||
} | ||
|
||
/** | ||
* Sets the http client. | ||
* | ||
* @param httpClient the HTTP client. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withHttpClient(HttpClient httpClient) { | ||
this.httpClient = Objects.requireNonNull(httpClient, "'httpClient' cannot be null."); | ||
return this; | ||
} | ||
|
||
/** | ||
* Sets the logging options to the HTTP pipeline. | ||
* | ||
* @param httpLogOptions the HTTP log options. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withLogOptions(HttpLogOptions httpLogOptions) { | ||
this.httpLogOptions = Objects.requireNonNull(httpLogOptions, "'httpLogOptions' cannot be null."); | ||
return this; | ||
} | ||
|
||
/** | ||
* Adds the pipeline policy to the HTTP pipeline. | ||
* | ||
* @param policy the HTTP pipeline policy. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withPolicy(HttpPipelinePolicy policy) { | ||
this.policies.add(Objects.requireNonNull(policy, "'policy' cannot be null.")); | ||
return this; | ||
} | ||
|
||
/** | ||
* Sets the retry policy to the HTTP pipeline. | ||
* | ||
* @param retryPolicy the HTTP pipeline retry policy. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withRetryPolicy(RetryPolicy retryPolicy) { | ||
this.retryPolicy = Objects.requireNonNull(retryPolicy, "'retryPolicy' cannot be null."); | ||
return this; | ||
} | ||
|
||
/** | ||
* Sets the default poll interval, used when service does not provide "Retry-After" header. | ||
* | ||
* @param defaultPollInterval the default poll interval. | ||
* @return the configurable object itself. | ||
*/ | ||
public Configurable withDefaultPollInterval(Duration defaultPollInterval) { | ||
this.defaultPollInterval = Objects.requireNonNull(defaultPollInterval, "'retryPolicy' cannot be null."); | ||
if (this.defaultPollInterval.isNegative()) { | ||
throw logger.logExceptionAsError(new IllegalArgumentException("'httpPipeline' cannot be negative")); | ||
} | ||
return this; | ||
} | ||
|
||
/** | ||
* Creates an instance of Monitor service API entry point. | ||
* | ||
* @param credential the credential to use. | ||
* @param profile the Azure profile for client. | ||
* @return the Monitor service API instance. | ||
*/ | ||
public MonitorManager authenticate(TokenCredential credential, AzureProfile profile) { | ||
Objects.requireNonNull(credential, "'credential' cannot be null."); | ||
Objects.requireNonNull(profile, "'profile' cannot be null."); | ||
|
||
StringBuilder userAgentBuilder = new StringBuilder(); | ||
userAgentBuilder | ||
.append("azsdk-java") | ||
.append("-") | ||
.append("com.azure.resourcemanager.monitor.generated") | ||
.append("/") | ||
.append("1.0.0-beta.1"); | ||
if (!Configuration.getGlobalConfiguration().get("AZURE_TELEMETRY_DISABLED", false)) { | ||
userAgentBuilder | ||
.append(" (") | ||
.append(Configuration.getGlobalConfiguration().get("java.version")) | ||
.append("; ") | ||
.append(Configuration.getGlobalConfiguration().get("os.name")) | ||
.append("; ") | ||
.append(Configuration.getGlobalConfiguration().get("os.version")) | ||
.append("; auto-generated)"); | ||
} else { | ||
userAgentBuilder.append(" (auto-generated)"); | ||
} | ||
|
||
if (retryPolicy == null) { | ||
retryPolicy = new RetryPolicy("Retry-After", ChronoUnit.SECONDS); | ||
} | ||
List<HttpPipelinePolicy> policies = new ArrayList<>(); | ||
policies.add(new UserAgentPolicy(userAgentBuilder.toString())); | ||
policies.add(new RequestIdPolicy()); | ||
HttpPolicyProviders.addBeforeRetryPolicies(policies); | ||
policies.add(retryPolicy); | ||
policies.add(new AddDatePolicy()); | ||
policies | ||
.add( | ||
new BearerTokenAuthenticationPolicy( | ||
credential, profile.getEnvironment().getManagementEndpoint() + "/.default")); | ||
policies.addAll(this.policies); | ||
HttpPolicyProviders.addAfterRetryPolicies(policies); | ||
policies.add(new HttpLoggingPolicy(httpLogOptions)); | ||
HttpPipeline httpPipeline = | ||
new HttpPipelineBuilder() | ||
.httpClient(httpClient) | ||
.policies(policies.toArray(new HttpPipelinePolicy[0])) | ||
.build(); | ||
return new MonitorManager(httpPipeline, profile, defaultPollInterval); | ||
} | ||
} | ||
|
||
/** @return Resource collection API of Metrics. */ | ||
public Metrics metrics() { | ||
if (this.metrics == null) { | ||
this.metrics = new MetricsImpl(clientObject.getMetrics(), this); | ||
} | ||
return metrics; | ||
} | ||
|
||
/** | ||
* @return Wrapped service client MonitorClient providing direct access to the underlying auto-generated API | ||
* implementation, based on Azure REST API. | ||
*/ | ||
public MonitorClient serviceClient() { | ||
return this.clientObject; | ||
} | ||
} |
Oops, something went wrong.