Azure Management Libraries for Java
Java Other
Latest commit 4f8b533 Apr 25, 2017 @martinsawicki martinsawicki committed on GitHub Merge pull request #1629 from martinsawicki/ag
Fix for issue 1594: enhancing PowerState extensible enum
Permalink
Failed to load latest commit information.
azure-batch Add back packages not for 1.0.0 release Apr 25, 2017
azure-keyvault-core Add back packages not for 1.0.0 release Apr 25, 2017
azure-keyvault-cryptography Add back packages not for 1.0.0 release Apr 25, 2017
azure-keyvault-extensions Add back packages not for 1.0.0 release Apr 25, 2017
azure-keyvault-webkey Add back packages not for 1.0.0 release Apr 25, 2017
azure-keyvault Add back packages not for 1.0.0 release Apr 25, 2017
azure-mgmt-appservice [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-batch [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-cdn [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-compute Merge remote-tracking branch 'upstream/master' into ag Apr 26, 2017
azure-mgmt-datalake-analytics Add back packages not for 1.0.0 release Apr 25, 2017
azure-mgmt-datalake-store Add back packages not for 1.0.0 release Apr 25, 2017
azure-mgmt-dns [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-graph-rbac [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-keyvault [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-monitor Add back packages not for 1.0.0 release Apr 25, 2017
azure-mgmt-network Merge pull request #1619 from martinsawicki/ag Apr 26, 2017
azure-mgmt-redis [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-resources Merge remote-tracking branch 'upstream/master' into ag Apr 26, 2017
azure-mgmt-search Add back packages not for 1.0.0 release Apr 25, 2017
azure-mgmt-servicebus [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-sql [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-storage [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-mgmt-trafficmanager [maven-release-plugin] prepare for next development iteration Apr 25, 2017
azure-samples Add back packages not for 1.0.0 release Apr 25, 2017
azure Merge pull request #1619 from martinsawicki/ag Apr 26, 2017
notes Updates to README - do not merge (#1587) Apr 25, 2017
tools Fixed license headers, also fixed checkstyle for the travis build whi… Feb 8, 2017
.gitignore Moving translation.properties from Microsoft/java-to-csharp-api-gener… Dec 7, 2016
.travis.yml Also checkstyle Feb 11, 2017
AUTH.md Fix broken Markdown headings Apr 17, 2017
CONTRIBUTING.md Remove codegen info in contributing guide Mar 29, 2016
ChangeLog.txt Update change log for 1.0.0-beta1 Mar 3, 2016
LICENSE.txt Fix license to MIT Mar 3, 2016
README.md Updates to README - do not merge (#1587) Apr 25, 2017
appveyor.yml update appveyor.yml: use && Aug 19, 2016
gulpfile.js Regenerated to take recent service bus swagger changes (#1532) Mar 20, 2017
my.azureauth.txt.enc Modified auth file (#1415) Jan 28, 2017
package.json Add gulp file for easy code regeneration Nov 12, 2015
pom.xml Add back packages not for 1.0.0 release Apr 25, 2017
translation.properties Done changes as per review comments from Asir Jan 5, 2017

README.md

Build Status

Azure Management Libraries for Java

This README is based on the released stable version (1.0.0). If you are looking for other releases, see More Information

The Azure Management Libraries for Java is a higher-level, object-oriented API for managing Azure resources.

Feature Availability and Road Map as of Version 1.0.0

Service | feature Available as GA Available as Preview Coming soon
Compute Virtual machines and VM extensions
Virtual machine scale sets
Managed disks
Azure container services
Azure container registry
Storage Storage accounts Encryption
SQL Database Databases
Firewalls
Elastic pools
Networking Virtual networks
Network interfaces
IP addresses
Routing table
Network security groups
DNS
Traffic managers
Load balancers
Application gateways
More services Resource Manager
Key Vault
Redis
CDN
Batch
App service - Web apps
Functions
Service bus
Monitor
Graph RBAC
DocumentDB
Scheduler
Fundamentals Authentication - core Async methods

Preview features are marked with the @Beta annotation at the class or interface or method level in libraries. These features are subject to change. They can be modified in any way, or even removed, in the future.

Azure Authentication

The Azure class is the simplest entry point for creating and interacting with Azure resources.

Azure azure = Azure.authenticate(credFile).withDefaultSubscription();

Create a Virtual Machine

You can create a virtual machine instance by using a define() … create() method chain.

System.out.println("Creating a Linux VM");

VirtualMachine linuxVM = azure.virtualMachines().define("myLinuxVM")
	.withRegion(Region.US_EAST)
	.withNewResourceGroup(rgName)
	.withNewPrimaryNetwork("10.0.0.0/28")
	.withPrimaryPrivateIpAddressDynamic()
	.withNewPrimaryPublicIpAddress("mylinuxvmdns")
	.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
	.withRootUsername("tirekicker")
	.withSsh(sshKey)
	.withSize(VirtualMachineSizeTypes.STANDARD_D3_V2)
	.create();
	
System.out.println("Created a Linux VM: " + linuxVM.id());

Update a Virtual Machine

You can update a virtual machine instance by using an update() … apply() method chain.

linuxVM.update()
	.withNewDataDisk(20,  lun,  CachingTypes.READ_WRITE)
	.apply();

Create a Virtual Machine Scale Set

You can create a virtual machine scale set instance by using another define() … create() method chain.

 VirtualMachineScaleSet virtualMachineScaleSet = azure.virtualMachineScaleSets()
     .define(vmssName)
     .withRegion(Region.US_EAST)
     .withExistingResourceGroup(rgName)
     .withSku(VirtualMachineScaleSetSkuTypes.STANDARD_D3_V2)
     .withExistingPrimaryNetworkSubnet(network, "Front-end")
     .withPrimaryInternetFacingLoadBalancer(loadBalancer1)
     .withPrimaryInternetFacingLoadBalancerBackends(backendPoolName1, backendPoolName2)
     .withPrimaryInternetFacingLoadBalancerInboundNatPools(natPool50XXto22, natPool60XXto23)
     .withoutPrimaryInternalLoadBalancer()
     .withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
     .withRootUsername(userName)
     .withSsh(sshKey)
     .withNewDataDisk(100)
     .withNewDataDisk(100, 1, CachingTypes.READ_WRITE)
     .withNewDataDisk(100, 2, CachingTypes.READ_WRITE, StorageAccountTypes.STANDARD_LRS)
     .withCapacity(3)
     .create();

Create a Network Security Group

You can create a network security group instance by using another define() … create() method chain.

NetworkSecurityGroup frontEndNSG = azure.networkSecurityGroups().define(frontEndNSGName)
    .withRegion(Region.US_EAST)
    .withNewResourceGroup(rgName)
    .defineRule("ALLOW-SSH")
        .allowInbound()
        .fromAnyAddress()
        .fromAnyPort()
        .toAnyAddress()
        .toPort(22)
        .withProtocol(SecurityRuleProtocol.TCP)
        .withPriority(100)
        .withDescription("Allow SSH")
        .attach()
    .defineRule("ALLOW-HTTP")
        .allowInbound()
        .fromAnyAddress()
        .fromAnyPort()
        .toAnyAddress()
        .toPort(80)
        .withProtocol(SecurityRuleProtocol.TCP)
        .withPriority(101)
        .withDescription("Allow HTTP")
        .attach()
    .create();

Create an Application Gateway

You can create a application gateway instance by using another define() … create() method chain.

ApplicationGateway applicationGateway = azure.applicationGateways().define("myFirstAppGateway")
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup(resourceGroup)
    // Request routing rule for HTTP from public 80 to public 8080
    .defineRequestRoutingRule("HTTP-80-to-8080")
        .fromPublicFrontend()
        .fromFrontendHttpPort(80)
        .toBackendHttpPort(8080)
        .toBackendIpAddress("11.1.1.1")
        .toBackendIpAddress("11.1.1.2")
        .toBackendIpAddress("11.1.1.3")
        .toBackendIpAddress("11.1.1.4")
        .attach()
    .withExistingPublicIpAddress(publicIpAddress)
    .create();

Create a Web App

You can create a Web App instance by using another define() … create() method chain.

WebApp webApp = azure.webApps()
    .define(appName)
    .withRegion(Region.US_WEST)
    .withNewResourceGroup(rgName)
    .withNewWindowsPlan(PricingTier.STANDARD_S1)
    .create();

Create a SQL Database

You can create a SQL server instance by using another define() … create() method chain.

SqlServer sqlServer = azure.sqlServers().define(sqlServerName)
    .withRegion(Region.US_EAST)
    .withNewResourceGroup(rgName)
    .withAdministratorLogin("adminlogin123")
    .withAdministratorPassword("myS3cureP@ssword")
    .withNewFirewallRule("10.0.0.1")
    .withNewFirewallRule("10.2.0.1", "10.2.0.10")
    .create();

Then, you can create a SQL database instance by using another define() … create() method chain.

SqlDatabase database = sqlServer.databases().define("myNewDatabase")
    .create();

Sample Code

You can find plenty of sample code that illustrates management scenarios (69+ end-to-end scenarios) for Azure Virtual Machines, Virtual Machine Scale Sets, Managed Disks, Storage, Networking, Resource Manager, SQL Database, App Service (Web Apps on Windows and Linux), Functions, Service Bus, Key Vault, Redis, CDN and Batch …

Service Management Scenario
Virtual Machines
Virtual Machines - parallel execution
Virtual Machine Scale Sets
Storage
Networking
Networking - DNS
Traffic Manager
Application Gateway
SQL Database
App Service - Web Apps on Windows
App Service - Web Apps on Linux
Functions
Service Bus
Resource Groups
Redis Cache
Key Vault
CDN
Batch

Download

1.0.0

If you are using released builds from 1.0.0, add the following to your POM file:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>azure</artifactId>
    <version>1.0.0</version>
</dependency>

Pre-requisites

Help

If you are migrating your code to 1.0.0, you can use these notes for preparing your code for 1.0 from 1.0 beta 5.

If you encounter any bugs with these libraries, please file issues via Issues or checkout StackOverflow for Azure Java SDK.

Contribute Code

If you would like to become an active contributor to this project please follow the instructions provided in Microsoft Azure Projects Contribution Guidelines.

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

More Information

Previous Releases and Corresponding Repo Branches

Version SHA1 Remarks
1.0.0-beta5 1.0.0-beta5 Tagged release for 1.0.0-beta5 version of Azure management libraries
1.0.0-beta4.1 1.0.0-beta4.1 Tagged release for 1.0.0-beta4.1 version of Azure management libraries
1.0.0-beta3 1.0.0-beta3 Tagged release for 1.0.0-beta3 version of Azure management libraries
1.0.0-beta2 1.0.0-beta2 Tagged release for 1.0.0-beta2 version of Azure management libraries
1.0.0-beta1 1.0.0-beta1 Maintenance branch for AutoRest generated raw clients
1.0.0-beta1+fixes 1.0.0-beta1+fixes Stable build for AutoRest generated raw clients
0.9.x-SNAPSHOTS 0.9 Maintenance branch for service management libraries
0.9.3 0.9.3 Latest release for service management libraries

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.