azure-sdk-for-go

module
v2.0.0-beta+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 7, 2016 License: Apache-2.0

README

Microsoft Azure SDK for Go

This project provides various Go packages to perform operations on Microsoft Azure REST APIs.

GoDoc Build Status

See list of implemented API clients here.

NOTE: This repository is under heavy ongoing development and is likely to break over time. We currently do not have any releases yet. If you are planning to use the repository, please consider vendoring the packages in your project and update them when a stable tag is out.

Installation

go get -d github.com/Azure/azure-sdk-for-go/management

Usage

Read Godoc of the repository at: http://godoc.org/github.com/Azure/azure-sdk-for-go/

The client currently supports authentication to the Service Management API with certificates or Azure .publishSettings file. You can download the .publishSettings file for your subscriptions here.

Example: Creating a Linux Virtual Machine
package main

import (
	"encoding/base64"
	"fmt"

	"github.com/Azure/azure-sdk-for-go/management"
	"github.com/Azure/azure-sdk-for-go/management/hostedservice"
	"github.com/Azure/azure-sdk-for-go/management/virtualmachine"
	"github.com/Azure/azure-sdk-for-go/management/vmutils"
)

func main() {
	dnsName := "test-vm-from-go"
	storageAccount := "mystorageaccount"
	location := "West US"
	vmSize := "Small"
	vmImage := "b39f27a8b8c64d52b05eac6a62ebad85__Ubuntu-14_04-LTS-amd64-server-20140724-en-us-30GB"
	userName := "testuser"
	userPassword := "Test123"

	client, err := management.ClientFromPublishSettingsFile("path/to/downloaded.publishsettings", "")
	if err != nil {
		panic(err)
	}

	// create hosted service
	if err := hostedservice.NewClient(client).CreateHostedService(hostedservice.CreateHostedServiceParameters{
		ServiceName: dnsName,
		Location:    location,
		Label:       base64.StdEncoding.EncodeToString([]byte(dnsName))}); err != nil {
		panic(err)
	}

	// create virtual machine
	role := vmutils.NewVMConfiguration(dnsName, vmSize)
	vmutils.ConfigureDeploymentFromPlatformImage(
		&role,
		vmImage,
		fmt.Sprintf("http://%s.blob.core.windows.net/sdktest/%s.vhd", storageAccount, dnsName),
		"")
	vmutils.ConfigureForLinux(&role, dnsName, userName, userPassword)
	vmutils.ConfigureWithPublicSSH(&role)

	operationID, err := virtualmachine.NewClient(client).
		CreateDeployment(role, dnsName, virtualmachine.CreateDeploymentOptions{})
	if err != nil {
		panic(err)
	}
	if err := client.WaitForOperation(operationID, nil); err != nil {
		panic(err)
	}
}

License

This project is published under Apache 2.0 License.

Directories

Path Synopsis
arm
authorization
Package authorization implements the Azure ARM Authorization service API version 2015-07-01.
Package authorization implements the Azure ARM Authorization service API version 2015-07-01.
cdn
Package cdn implements the Azure ARM Cdn service API version 2015-06-01.
Package cdn implements the Azure ARM Cdn service API version 2015-06-01.
compute
Package compute implements the Azure ARM Compute service API version 2015-06-15.
Package compute implements the Azure ARM Compute service API version 2015-06-15.
dns
Package dns implements the Azure ARM Dns service API version 2015-05-04-preview.
Package dns implements the Azure ARM Dns service API version 2015-05-04-preview.
intune
Package intune implements the Azure ARM Intune service API version 2015-01-14-preview.
Package intune implements the Azure ARM Intune service API version 2015-01-14-preview.
logic
Package logic implements the Azure ARM Logic service API version 2015-02-01-preview.
Package logic implements the Azure ARM Logic service API version 2015-02-01-preview.
network
Package network implements the Azure ARM Network service API version 2015-06-15.
Package network implements the Azure ARM Network service API version 2015-06-15.
notificationhubs
Package notificationhubs implements the Azure ARM Notificationhubs service API version 2014-09-01.
Package notificationhubs implements the Azure ARM Notificationhubs service API version 2014-09-01.
redis
Package redis implements the Azure ARM Redis service API version 2015-08-01.
Package redis implements the Azure ARM Redis service API version 2015-08-01.
resources/authorization
Package authorization implements the Azure ARM Authorization service API version 2015-01-01.
Package authorization implements the Azure ARM Authorization service API version 2015-01-01.
resources/features
Package features implements the Azure ARM Features service API version 2015-12-01.
Package features implements the Azure ARM Features service API version 2015-12-01.
resources/resources
Package resources implements the Azure ARM Resources service API version 2015-11-01.
Package resources implements the Azure ARM Resources service API version 2015-11-01.
resources/subscriptions
Package subscriptions implements the Azure ARM Subscriptions service API version 2015-11-01.
Package subscriptions implements the Azure ARM Subscriptions service API version 2015-11-01.
scheduler
Package scheduler implements the Azure ARM Scheduler service API version 2016-01-01.
Package scheduler implements the Azure ARM Scheduler service API version 2016-01-01.
search
Package search implements the Azure ARM Search service API version 2015-02-28.
Package search implements the Azure ARM Search service API version 2015-02-28.
storage
Package storage implements the Azure ARM Storage service API version 2015-06-15.
Package storage implements the Azure ARM Storage service API version 2015-06-15.
web
Package web implements the Azure ARM Web service API version 2015-08-01.
Package web implements the Azure ARM Web service API version 2015-08-01.
core
http
Package http provides HTTP client and server implementations.
Package http provides HTTP client and server implementations.
tls
Package tls partially implements TLS 1.2, as specified in RFC 5246.
Package tls partially implements TLS 1.2, as specified in RFC 5246.
Package management provides the main API client to construct other clients and make requests to the Microsoft Azure Service Management REST API.
Package management provides the main API client to construct other clients and make requests to the Microsoft Azure Service Management REST API.
hostedservice
Package hostedservice provides a client for Hosted Services.
Package hostedservice provides a client for Hosted Services.
location
Package location provides a client for Locations.
Package location provides a client for Locations.
networksecuritygroup
Package networksecuritygroup provides a client for Network Security Groups.
Package networksecuritygroup provides a client for Network Security Groups.
osimage
Package osimage provides a client for Operating System Images.
Package osimage provides a client for Operating System Images.
sql
storageservice
Package storageservice provides a client for Storage Services.
Package storageservice provides a client for Storage Services.
testutils
Package testutils contains some test utilities for the Azure SDK
Package testutils contains some test utilities for the Azure SDK
virtualmachine
Package virtualmachine provides a client for Virtual Machines.
Package virtualmachine provides a client for Virtual Machines.
virtualmachinedisk
Package virtualmachinedisk provides a client for Virtual Machine Disks.
Package virtualmachinedisk provides a client for Virtual Machine Disks.
virtualmachineimage
Package virtualmachineimage provides a client for Virtual Machine Images.
Package virtualmachineimage provides a client for Virtual Machine Images.
virtualnetwork
Package virtualnetwork provides a client for Virtual Networks.
Package virtualnetwork provides a client for Virtual Networks.
vmutils
Package vmutils provides convenience methods for creating Virtual Machine Role configurations.
Package vmutils provides convenience methods for creating Virtual Machine Role configurations.
Package storage provides clients for Microsoft Azure Storage Services.
Package storage provides clients for Microsoft Azure Storage Services.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL