├── .circleci
└── config.yml
├── .gitignore
├── .idea
├── compiler.xml
├── copyright
│ └── profiles_settings.xml
├── encodings.xml
├── misc.xml
├── modules.xml
└── vcs.xml
├── README.md
├── build.sh
├── init.sh
├── install.sh
├── kubernetes
├── client
│ ├── client.go
│ └── utils.go
├── cluster
│ └── cluster.go
├── model
│ ├── model.go
│ └── utils.go
├── provider_kubernetes.go
├── resource_kubernetes_cluster.go
└── resource_kubernetes_resource.go
├── main.go
├── schema
└── schema.go
├── terraform-provider-kubernetes.iml
└── vendor
└── vendor.json
/.circleci/config.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | jobs:
3 | build:
4 | docker:
5 | - image: circleci/golang:1.9
6 | working_directory: /go/src/github.com/maxmanuylov/terraform-provider-kubernetes
7 | steps:
8 | - checkout
9 | - run: /bin/sh ./build.sh
10 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /.idea/workspace.xml
2 | /bin/
3 |
4 | /vendor/*
5 | !/vendor/vendor.json
6 |
--------------------------------------------------------------------------------
/.idea/compiler.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/.idea/copyright/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 | 1.8
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Terraform Kubernetes Provider
2 |
3 | This is a plugin for HashiCorp [Terraform](https://terraform.io), which helps deploying Kubernetes resources like pods, services, replication controllers, etc.
4 |
5 | ## Usage
6 |
7 | - Download the plugin from [Releases](https://github.com/maxmanuylov/terraform-provider-kubernetes/releases) page.
8 | - [Install](https://terraform.io/docs/plugins/basics.html) it, or put into a directory with configuration files.
9 | - Create a sample configuration file `example.tf`:
10 | ```
11 | provider "k8s" {
12 | # Either "k8s" provider or "k8s_cluster" resource should be configured
13 |
14 | # Kubernetes API server, both HTTP and HTTPS are supported
15 | api_server = "https://192.168.0.1:6443"
16 |
17 | # TLS options are optional, see "tls" Terraform provider (built-in) for certificates/keys generating
18 | ca_cert = ""
19 | client_cert = ""
20 | client_key = ""
21 | }
22 |
23 | resource "k8s_cluster" "main" {
24 | # Either "k8s" provider or "k8s_cluster" resource should be configured
25 |
26 | # Kubernetes API server, both HTTP and HTTPS are supported
27 | api_server = "https://192.168.0.1:6443"
28 |
29 | # TLS options are optional, see "tls" Terraform provider (built-in) for certificates/keys generating
30 | ca_cert = ""
31 | client_cert = ""
32 | client_key = ""
33 | }
34 |
35 | resource "k8s_resource" "mypod" {
36 | # Optional; if specified, must link on the corresponding "k8s_cluster" resource; otherwise provider configuration is used
37 | cluster = "${k8s_cluster.main.cluster}"
38 |
39 | # Required; resource contents must be in JSON or YAML format
40 | contents = "${file("mypod.yaml")}"
41 |
42 | # Optional; specifies "contents" format; possible values are "yaml" (default) and "json"
43 | encoding = "yaml"
44 | }
45 | ```
46 | - Run:
47 | ```
48 | $ terraform apply
49 | ```
50 |
--------------------------------------------------------------------------------
/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | VERSION="v1.3.4"
4 |
5 | govendor sync
6 |
7 | rm -rf bin
8 |
9 | export GO15VENDOREXPERIMENT=1
10 | export GOARCH=amd64
11 |
12 | GOOS=darwin go build -o bin/macos/terraform-provider-k8s
13 | GOOS=linux go build -o bin/linux/terraform-provider-k8s
14 | GOOS=windows go build -o bin/windows/terraform-provider-k8s.exe
15 |
16 | tar czf bin/terraform-provider-k8s-$VERSION-macos.tar.gz --directory=bin/macos terraform-provider-k8s
17 | tar czf bin/terraform-provider-k8s-$VERSION-linux.tar.gz --directory=bin/linux terraform-provider-k8s
18 | zip bin/terraform-provider-k8s-$VERSION-windows.zip -j bin/windows/terraform-provider-k8s.exe
19 |
20 | go run schema/schema.go k8s bin
21 |
--------------------------------------------------------------------------------
/init.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | TERRAFORM_VERSION="v0.10.0"
4 |
5 | rm -rf vendor
6 |
7 | govendor init
8 |
9 | govendor fetch gopkg.in/yaml.v2
10 | govendor fetch github.com/maxmanuylov/go-rest/client
11 | govendor fetch github.com/maxmanuylov/utils/http/transport/tls
12 | govendor fetch github.com/hashicorp/go-plugin@f72692aebca2008343a9deb06ddb4b17f7051c15
13 | govendor fetch github.com/hashicorp/terraform@=$TERRAFORM_VERSION
14 | govendor fetch github.com/maxmanuylov/utils/intellij-hcl/terraform/provider-schema-generator@=v2.2
15 |
--------------------------------------------------------------------------------
/install.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | TERRAFORM_DIR=""
4 | LOCAL_OS=""
5 |
6 | cp -f bin/k8s.json "$HOME/.terraform.d/schemas/k8s.json"
7 | cp -f "bin/$LOCAL_OS/terraform-provider-k8s" "$TERRAFORM_DIR/terraform-provider-k8s"
8 |
--------------------------------------------------------------------------------
/kubernetes/client/client.go:
--------------------------------------------------------------------------------
1 | package kubernetes_client
2 |
3 | import (
4 | "fmt"
5 | "github.com/maxmanuylov/go-rest/client"
6 | "github.com/maxmanuylov/go-rest/error"
7 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/cluster"
8 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/model"
9 | "net/http"
10 | "strings"
11 | "time"
12 | )
13 |
14 | var (
15 | ErrNotFound = rest_error.NewByCode(http.StatusNotFound)
16 | ErrConflict = rest_error.NewByCode(http.StatusConflict)
17 | )
18 |
19 | type KubeClient struct {
20 | restClient *rest_client.Client
21 | }
22 |
23 | func New(cluster *kubernetes_cluster.Cluster) (*KubeClient, error) {
24 | transport, err := newTransport(cluster)
25 | if err != nil {
26 | return nil, err
27 | }
28 |
29 | return &KubeClient{
30 | restClient: rest_client.New(strings.TrimSuffix(cluster.ApiServer, "/"), &http.Client{
31 | Transport: transport,
32 | Timeout: 10 * time.Second,
33 | }),
34 | }, nil
35 | }
36 |
37 | func (client *KubeClient) WaitForAPIServer() error {
38 | action := "connect to Kubernetes API server"
39 |
40 | eh := retryLong(action, nil, func() error {
41 | _, err := client.restClient.Do("GET", kubernetes_model.DefaultApiPath, rest_client.Json, nil)
42 | return err
43 | })
44 |
45 | if eh.error != nil {
46 | dumpErrorsToFile(action, nil, eh)
47 | }
48 |
49 | return eh.error
50 | }
51 |
52 | func (client *KubeClient) Create(resource *kubernetes_model.KubeResource) error {
53 | collection := client.restClient.Collection(resource.CollectionPath())
54 | action := fmt.Sprintf("create %s", resource.Path())
55 |
56 | eh := retryLong(action, resource.Contents, func() error {
57 | err := createResource(collection, resource.Encoding, resource.Contents)
58 | if err == http.ErrNoLocation {
59 | return nil
60 | }
61 | return err
62 | })
63 |
64 | if eh.error == ErrConflict { // resource already exists
65 | return client.Update(resource)
66 | }
67 |
68 | if eh.error != nil {
69 | dumpErrorsToFile(action, resource.Contents, eh)
70 | return eh.error
71 | }
72 |
73 | return nil
74 | }
75 |
76 | func (client *KubeClient) Update(resource *kubernetes_model.KubeResource) error {
77 | collection := client.restClient.Collection(resource.CollectionPath())
78 | action := fmt.Sprintf("update %s", resource.Path())
79 |
80 | eh := retryLong(action, resource.Contents, func() error {
81 | return updateResource(collection, resource.Name, resource.Encoding, resource.Contents)
82 | })
83 |
84 | if eh.error != nil {
85 | dumpErrorsToFile(action, resource.Contents, eh)
86 | }
87 |
88 | return eh.error
89 | }
90 |
91 | func (client *KubeClient) Exists(resourcePath *kubernetes_model.KubeResourcePath) (bool, error) {
92 | collection := client.restClient.Collection(resourcePath.CollectionPath())
93 | action := fmt.Sprintf("check existence of %s", resourcePath.Path())
94 |
95 | exists := false
96 | eh := retryShort(action, nil, func() error {
97 | var err error
98 | exists, err = collection.Exists(resourcePath.Name)
99 | return err
100 | })
101 |
102 | return exists, eh.error
103 | }
104 |
105 | func (client *KubeClient) Delete(resourcePath *kubernetes_model.KubeResourcePath) error {
106 | if resourcePath.CannotBeDeleted() {
107 | return nil
108 | }
109 |
110 | collection := client.restClient.Collection(resourcePath.CollectionPath())
111 | action := fmt.Sprintf("delete %s", resourcePath.Path())
112 |
113 | eh := retryShort(action, nil, func() error {
114 | return collection.Delete(resourcePath.Name)
115 | })
116 |
117 | if eh.error == ErrNotFound {
118 | return nil
119 | }
120 |
121 | if eh.error != nil {
122 | dumpErrorsToFile(action, nil, eh)
123 | }
124 |
125 | return eh.error
126 | }
127 |
--------------------------------------------------------------------------------
/kubernetes/client/utils.go:
--------------------------------------------------------------------------------
1 | package kubernetes_client
2 |
3 | import (
4 | "fmt"
5 | "github.com/maxmanuylov/go-rest/client"
6 | "github.com/maxmanuylov/go-rest/error"
7 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/cluster"
8 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/model"
9 | "github.com/maxmanuylov/utils/http/transport/tls"
10 | "io"
11 | "net/http"
12 | "os"
13 | "time"
14 | )
15 |
16 | func newTransport(cluster *kubernetes_cluster.Cluster) (http.RoundTripper, error) {
17 | if cluster.CaCert != "" && cluster.ClientCert != "" && cluster.ClientKey != "" {
18 | return tls_transport.New([]byte(cluster.CaCert), []byte(cluster.ClientCert), []byte(cluster.ClientKey))
19 | }
20 | return http.DefaultTransport, nil
21 | }
22 |
23 | type errorHistory struct {
24 | error error
25 | history []error
26 | }
27 |
28 | func errInvalidEncoding(encoding string) error {
29 | return fmt.Errorf("Invalid encoding: %s", encoding)
30 | }
31 |
32 | func createResource(collection rest_client.Collection, encoding string, contents []byte) error {
33 | if encoding == kubernetes_model.EncodingJson {
34 | _, err := collection.CreateJson(contents)
35 | return err
36 | } else if encoding == kubernetes_model.EncodingYaml {
37 | _, err := collection.CreateYaml(contents)
38 | return err
39 | }
40 | return errInvalidEncoding(encoding)
41 | }
42 |
43 | func updateResource(collection rest_client.Collection, name, encoding string, contents []byte) error {
44 | if encoding == kubernetes_model.EncodingJson {
45 | return collection.ReplaceJson(name, contents)
46 | } else if encoding == kubernetes_model.EncodingYaml {
47 | return collection.ReplaceYaml(name, contents)
48 | }
49 | return errInvalidEncoding(encoding)
50 | }
51 |
52 | func retryLong(action string, contents []byte, do func() error) *errorHistory {
53 | return retry(200, action, contents, do) // 10 minutes
54 | }
55 |
56 | func retryShort(action string, contents []byte, do func() error) *errorHistory {
57 | return retry(3, action, contents, do) // 3 times
58 | }
59 |
60 | func retry(n int, action string, contents []byte, do func() error) *errorHistory {
61 | eh := &errorHistory{
62 | history: make([]error, 0),
63 | }
64 |
65 | var done bool
66 |
67 | for i := 0; i < n; i++ {
68 | if i != 0 {
69 | time.Sleep(3 * time.Second)
70 | }
71 |
72 | done, eh.error = try(do)
73 | if eh.error != nil {
74 | eh.history = append(eh.history, eh.error)
75 | }
76 |
77 | if done {
78 | return eh
79 | }
80 |
81 | if eh.error != nil {
82 | dumpErrors(os.Stderr, action, contents, eh.error)
83 | }
84 | }
85 |
86 | return eh
87 | }
88 |
89 | func try(do func() error) (bool, error) {
90 | err := do()
91 | if err == nil {
92 | return true, nil
93 | }
94 |
95 | restErr, ok := err.(*rest_error.Error)
96 | if !ok {
97 | return false, err
98 | }
99 |
100 | if restErr.IsClientError() {
101 | if restErr.Code == http.StatusNotFound {
102 | return true, ErrNotFound
103 | }
104 | if restErr.Code == http.StatusConflict {
105 | return true, ErrConflict
106 | }
107 | if restErr.Code == http.StatusForbidden { // Illegal Kubernetes state, need to retry
108 | return false, restErr
109 | }
110 | return true, restErr
111 | }
112 |
113 | return false, restErr
114 | }
115 |
116 | func dumpErrorsToFile(action string, contents []byte, eh *errorHistory) {
117 | file, err := os.Create("kubernetes-error.log")
118 | if err != nil {
119 | return
120 | }
121 |
122 | defer file.Close()
123 | defer file.Sync()
124 |
125 | fmt.Fprintf(file, "%s\n\n", time.Now().String())
126 |
127 | dumpErrors(file, action, contents, eh.history...)
128 | }
129 |
130 | func dumpErrors(writer io.Writer, action string, contents []byte, errors... error) {
131 | fmt.Fprintf(writer, "Failed to %s\n\n", action)
132 |
133 | for _, err := range errors {
134 | fmt.Fprintln(writer, "=================================================================")
135 | fmt.Fprintf(writer, "\n%v\n\n", err)
136 | }
137 |
138 | if contents != nil {
139 | fmt.Fprintln(writer, "==============")
140 | fmt.Fprintln(writer, "== Contents ==")
141 | fmt.Fprintln(writer, "==============")
142 | fmt.Fprintf(writer, "\n%s\n\n", contents)
143 | }
144 | }
145 |
--------------------------------------------------------------------------------
/kubernetes/cluster/cluster.go:
--------------------------------------------------------------------------------
1 | package kubernetes_cluster
2 |
3 | import (
4 | "github.com/hashicorp/terraform/helper/schema"
5 | "encoding/json"
6 | )
7 |
8 | type Cluster struct {
9 | ApiServer string
10 | CaCert string
11 | ClientCert string
12 | ClientKey string
13 | }
14 |
15 | func New(clusterData *schema.ResourceData) *Cluster {
16 | return &Cluster{
17 | ApiServer: clusterData.Get("api_server").(string),
18 | CaCert: clusterData.Get("ca_cert").(string),
19 | ClientCert: clusterData.Get("client_cert").(string),
20 | ClientKey: clusterData.Get("client_key").(string),
21 | }
22 | }
23 |
24 | func Load(resourceData *schema.ResourceData, meta interface{}) (*Cluster, error) {
25 | if encodedCluster := resourceData.Get("cluster").(string); encodedCluster != "" {
26 | return Decode(encodedCluster)
27 | }
28 | return meta.(*Cluster), nil
29 | }
30 |
31 | func (c *Cluster) Encode() (string, error) {
32 | encodedCluster, err := json.Marshal(c)
33 | return string(encodedCluster), err
34 | }
35 |
36 | func Decode(encodedCluster string) (*Cluster, error) {
37 | cluster := &Cluster{}
38 | return cluster, json.Unmarshal([]byte(encodedCluster), cluster)
39 | }
40 |
--------------------------------------------------------------------------------
/kubernetes/model/model.go:
--------------------------------------------------------------------------------
1 | package kubernetes_model
2 |
3 | import (
4 | "fmt"
5 | )
6 |
7 | const (
8 | DefaultApiPath = "api/v1"
9 | DefaultNamespace = "default"
10 | EncodingJson = "json"
11 | EncodingYaml = "yaml"
12 | namespacesCollection = "namespaces"
13 | )
14 |
15 | type KubeResourcePath struct {
16 | ApiPath string
17 | Namespace string
18 | Collection string
19 | Name string
20 | }
21 |
22 | type KubeResource struct {
23 | *KubeResourcePath
24 |
25 | Contents []byte
26 | Encoding string
27 | }
28 |
29 | func (resourcePath *KubeResourcePath) IsGlobal() bool {
30 | return resourcePath.Namespace == ""
31 | }
32 |
33 | func (resourcePath *KubeResourcePath) IsNamespace() bool {
34 | return resourcePath.Collection == namespacesCollection
35 | }
36 |
37 | func (resourcePath *KubeResourcePath) CannotBeDeleted() bool {
38 | return resourcePath.IsNamespace() && (resourcePath.Name == DefaultNamespace || resourcePath.Name == "kube-system" || resourcePath.Name == "kube-public")
39 | }
40 |
41 | func (resourcePath *KubeResourcePath) CollectionPath() string {
42 | if resourcePath.IsGlobal() {
43 | return fmt.Sprintf("%s/%s", resourcePath.ApiPath, resourcePath.Collection)
44 | }
45 | return fmt.Sprintf("%s/%s/%s/%s", resourcePath.ApiPath, namespacesCollection, resourcePath.Namespace, resourcePath.Collection)
46 | }
47 |
48 | func (resourcePath *KubeResourcePath) Path() string {
49 | return fmt.Sprintf("%s/%s", resourcePath.CollectionPath(), resourcePath.Name)
50 | }
51 |
--------------------------------------------------------------------------------
/kubernetes/model/utils.go:
--------------------------------------------------------------------------------
1 | package kubernetes_model
2 |
3 | import (
4 | "encoding/json"
5 | "errors"
6 | "fmt"
7 | "github.com/hashicorp/terraform/helper/schema"
8 | "gopkg.in/yaml.v2"
9 | "strings"
10 | )
11 |
12 | type k8sEntity struct {
13 | ApiVersion string `json:"apiVersion" yaml:"apiVersion"`
14 | Kind string
15 | Metadata struct {
16 | Name string
17 | Namespace string
18 | }
19 | }
20 |
21 | func (e *k8sEntity) GetApiPath() string {
22 | if e.ApiVersion == "" || e.ApiVersion == "v1" {
23 | return DefaultApiPath
24 | }
25 | return fmt.Sprintf("apis/%s", strings.Trim(e.ApiVersion, "/"))
26 | }
27 |
28 | func (e *k8sEntity) IsNamespace() bool {
29 | return strings.ToLower(e.Kind) == "namespace"
30 | }
31 |
32 | func (e *k8sEntity) GetNamespace(global bool) string {
33 | if global || e.IsNamespace() {
34 | return ""
35 | }
36 |
37 | if e.Metadata.Namespace == "" {
38 | return DefaultNamespace
39 | }
40 |
41 | return e.Metadata.Namespace
42 | }
43 |
44 | func (e *k8sEntity) GetCollection() string {
45 | lowerKind := strings.ToLower(e.Kind)
46 | if strings.HasSuffix(lowerKind, "s") {
47 | return fmt.Sprintf("%ses", lowerKind)
48 | }
49 | return fmt.Sprintf("%ss", lowerKind)
50 | }
51 |
52 | func ParseResource(resourceData *schema.ResourceData) (*KubeResource, error) {
53 | contents := []byte(resourceData.Get("contents").(string))
54 | encoding := resourceData.Get("encoding").(string)
55 | global := resourceData.Get("global").(bool)
56 |
57 | entity := &k8sEntity{}
58 | if encoding == EncodingJson {
59 | if err := json.Unmarshal(contents, entity); err != nil {
60 | return nil, err
61 | }
62 | } else {
63 | if err := yaml.Unmarshal(contents, entity); err != nil {
64 | return nil, err
65 | }
66 | }
67 |
68 | if entity.Kind == "" {
69 | return nil, errors.New("Kind is not specified")
70 | }
71 |
72 | if entity.Metadata.Name == "" {
73 | return nil, errors.New("Name is not specified")
74 | }
75 |
76 | return &KubeResource{
77 | KubeResourcePath: &KubeResourcePath{
78 | ApiPath: entity.GetApiPath(),
79 | Namespace: entity.GetNamespace(global),
80 | Collection: entity.GetCollection(),
81 | Name: entity.Metadata.Name,
82 | },
83 | Contents: contents,
84 | Encoding: encoding,
85 | }, nil
86 | }
87 |
88 | func ParsePath(path string) *KubeResourcePath {
89 | resourceName, collectionPath := splitOne(path)
90 | collectionName, restPath := splitOne(collectionPath)
91 |
92 | if collectionName == namespacesCollection {
93 | return &KubeResourcePath{
94 | ApiPath: restPath,
95 | Namespace: "",
96 | Collection: namespacesCollection,
97 | Name: resourceName,
98 | }
99 | }
100 |
101 | namespaceName, namespacesCollectionPath := splitOne(restPath)
102 | namespacesCollectionName, apiPath := splitOne(namespacesCollectionPath)
103 |
104 | if namespacesCollectionName == namespacesCollection {
105 | return &KubeResourcePath{
106 | ApiPath: apiPath,
107 | Namespace: namespaceName,
108 | Collection: collectionName,
109 | Name: resourceName,
110 | }
111 | }
112 |
113 | return &KubeResourcePath{
114 | ApiPath: restPath,
115 | Namespace: "",
116 | Collection: collectionName,
117 | Name: resourceName,
118 | }
119 | }
120 |
121 | func splitOne(path string) (string, string) {
122 | if slashPos := strings.LastIndex(path, "/"); slashPos == -1 {
123 | return path, ""
124 | } else {
125 | return path[slashPos + 1:], path[:slashPos]
126 | }
127 | }
128 |
--------------------------------------------------------------------------------
/kubernetes/provider_kubernetes.go:
--------------------------------------------------------------------------------
1 | package kubernetes
2 |
3 | import (
4 | "fmt"
5 | "github.com/hashicorp/terraform/helper/schema"
6 | "github.com/hashicorp/terraform/terraform"
7 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/cluster"
8 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/model"
9 | "strings"
10 | )
11 |
12 | func Provider() terraform.ResourceProvider {
13 | return &schema.Provider{
14 | Schema: clusterSchema(false),
15 | ConfigureFunc: configureKubernetesProvider,
16 |
17 | ResourcesMap: map[string]*schema.Resource{
18 | "k8s_cluster": {
19 | Schema: clusterSchema(true),
20 | Create: createKubernetesCluster,
21 | Read: readKubernetesCluster,
22 | Update: updateKubernetesCluster,
23 | Delete: deleteKubernetesCluster,
24 | },
25 |
26 | "k8s_resource": {
27 | Schema: map[string]*schema.Schema{
28 | "cluster": {
29 | Type: schema.TypeString,
30 | Sensitive: true,
31 | Optional: true,
32 | },
33 | "contents": {
34 | Type: schema.TypeString,
35 | Required: true,
36 | Sensitive: true,
37 | },
38 | "encoding": {
39 | Type: schema.TypeString,
40 | Optional: true,
41 | Default: kubernetes_model.EncodingYaml,
42 | ValidateFunc: validateResourceEncoding,
43 | },
44 | "global": {
45 | Type: schema.TypeBool,
46 | Optional: true,
47 | Default: false,
48 | },
49 | "path": {
50 | Type: schema.TypeString,
51 | Computed: true,
52 | },
53 | },
54 | Create: createKubernetesResource,
55 | Read: readKubernetesResource,
56 | Update: updateKubernetesResource,
57 | Delete: deleteKubernetesResource,
58 | Exists: kubernetesResourceExists,
59 | },
60 | },
61 | }
62 | }
63 |
64 | func clusterSchema(clusterResource bool) map[string]*schema.Schema {
65 | clusterSchema := map[string]*schema.Schema{
66 | "api_server": {
67 | Type: schema.TypeString,
68 | Required: clusterResource,
69 | Optional: !clusterResource,
70 | },
71 | "ca_cert": {
72 | Type: schema.TypeString,
73 | Optional: true,
74 | Sensitive: true,
75 | },
76 | "client_cert": {
77 | Type: schema.TypeString,
78 | Optional: true,
79 | Sensitive: true,
80 | },
81 | "client_key": {
82 | Type: schema.TypeString,
83 | Optional: true,
84 | Sensitive: true,
85 | },
86 | }
87 |
88 | if clusterResource {
89 | clusterSchema["cluster"] = &schema.Schema{
90 | Type: schema.TypeString,
91 | Sensitive: true,
92 | Computed: true,
93 | }
94 | }
95 |
96 | return clusterSchema
97 | }
98 |
99 | func validateResourceEncoding(v interface{}, _ string) ([]string, []error) {
100 | if value := strings.ToLower(v.(string)); value != kubernetes_model.EncodingJson && value != kubernetes_model.EncodingYaml {
101 | return nil, []error{
102 | fmt.Errorf("Invalid encoding: %v; possible values are \"%s\" and \"%s\"", v, kubernetes_model.EncodingJson, kubernetes_model.EncodingYaml),
103 | }
104 | }
105 | return nil, nil
106 | }
107 |
108 | func configureKubernetesProvider(clusterData *schema.ResourceData) (interface{}, error) {
109 | return kubernetes_cluster.New(clusterData), nil
110 | }
111 |
--------------------------------------------------------------------------------
/kubernetes/resource_kubernetes_cluster.go:
--------------------------------------------------------------------------------
1 | package kubernetes
2 |
3 | import (
4 | "github.com/hashicorp/go-uuid"
5 | "github.com/hashicorp/terraform/helper/schema"
6 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/client"
7 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/cluster"
8 | )
9 |
10 | func createKubernetesCluster(clusterData *schema.ResourceData, _ interface{}) error {
11 | id, err := uuid.GenerateUUID()
12 | if err != nil {
13 | return err
14 | }
15 |
16 | cluster := kubernetes_cluster.New(clusterData)
17 |
18 | client, err := kubernetes_client.New(cluster)
19 | if err != nil {
20 | return err
21 | }
22 |
23 | if err = client.WaitForAPIServer(); err != nil {
24 | return err
25 | }
26 |
27 | if err := updateCluster(clusterData, cluster); err != nil {
28 | return err
29 | }
30 |
31 | clusterData.SetId(id)
32 |
33 | return nil
34 | }
35 |
36 | func readKubernetesCluster(_ *schema.ResourceData, _ interface{}) error {
37 | return nil
38 | }
39 |
40 | func updateKubernetesCluster(clusterData *schema.ResourceData, _ interface{}) error {
41 | return updateCluster(clusterData, kubernetes_cluster.New(clusterData))
42 | }
43 |
44 | func deleteKubernetesCluster(clusterData *schema.ResourceData, _ interface{}) error {
45 | clusterData.SetId("")
46 | clusterData.Set("cluster", "")
47 |
48 | return nil
49 | }
50 |
51 | func updateCluster(clusterData *schema.ResourceData, cluster *kubernetes_cluster.Cluster) error {
52 | encodedCluster, err := cluster.Encode()
53 | if err != nil {
54 | return err
55 | }
56 |
57 | clusterData.Set("cluster", encodedCluster)
58 |
59 | return nil
60 | }
61 |
--------------------------------------------------------------------------------
/kubernetes/resource_kubernetes_resource.go:
--------------------------------------------------------------------------------
1 | package kubernetes
2 |
3 | import (
4 | "github.com/hashicorp/go-uuid"
5 | "github.com/hashicorp/terraform/helper/schema"
6 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/client"
7 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/cluster"
8 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes/model"
9 | )
10 |
11 | func createKubernetesResource(resourceData *schema.ResourceData, meta interface{}) error {
12 | kubeClient, err := loadClient(resourceData, meta)
13 | if err != nil {
14 | return err
15 | }
16 |
17 | id, err := uuid.GenerateUUID()
18 | if err != nil {
19 | return err
20 | }
21 |
22 | kubeResource, err := kubernetes_model.ParseResource(resourceData)
23 | if err != nil {
24 | return err
25 | }
26 |
27 | if err := kubeClient.Create(kubeResource); err != nil {
28 | return err
29 | }
30 |
31 | resourceData.Set("path", kubeResource.Path())
32 | resourceData.SetId(id)
33 |
34 | return nil
35 | }
36 |
37 | func readKubernetesResource(resourceData *schema.ResourceData, meta interface{}) error {
38 | exists, err := kubernetesResourceExists(resourceData, meta)
39 | if err != nil {
40 | return err
41 | }
42 |
43 | if !exists {
44 | resourceData.SetId("")
45 | }
46 |
47 | return nil
48 | }
49 |
50 | func updateKubernetesResource(resourceData *schema.ResourceData, meta interface{}) error {
51 | kubeClient, err := loadClient(resourceData, meta)
52 | if err != nil {
53 | return err
54 | }
55 |
56 | kubeResource, err := kubernetes_model.ParseResource(resourceData)
57 | if err != nil {
58 | return err
59 | }
60 |
61 | if path := resourceData.Get("path").(string); path == "" {
62 | if err := kubeClient.Create(kubeResource); err != nil {
63 | return err
64 | }
65 |
66 | resourceData.Set("path", kubeResource.Path())
67 | } else if newPath := kubeResource.Path(); newPath != path {
68 | if err := kubeClient.Delete(kubernetes_model.ParsePath(path)); err != nil {
69 | return err
70 | }
71 |
72 | if err := kubeClient.Create(kubeResource); err != nil {
73 | return err
74 | }
75 |
76 | resourceData.Set("path", newPath)
77 | } else {
78 | return kubeClient.Update(kubeResource)
79 | }
80 |
81 | return nil
82 | }
83 |
84 | func deleteKubernetesResource(resourceData *schema.ResourceData, meta interface{}) error {
85 | kubeClient, err := loadClient(resourceData, meta)
86 | if err != nil {
87 | return err
88 | }
89 |
90 | if path := resourceData.Get("path").(string); path != "" {
91 | if err := kubeClient.Delete(kubernetes_model.ParsePath(path)); err != nil {
92 | return err
93 | }
94 | }
95 |
96 | resourceData.SetId("")
97 |
98 | return nil
99 | }
100 |
101 | func kubernetesResourceExists(resourceData *schema.ResourceData, meta interface{}) (bool, error) {
102 | kubeClient, err := loadClient(resourceData, meta)
103 | if err != nil {
104 | return false, err
105 | }
106 |
107 | if path := resourceData.Get("path").(string); path != "" {
108 | return kubeClient.Exists(kubernetes_model.ParsePath(path))
109 | }
110 |
111 | return false, nil
112 | }
113 |
114 | func loadClient(resourceData *schema.ResourceData, meta interface{}) (*kubernetes_client.KubeClient, error) {
115 | cluster, err := kubernetes_cluster.Load(resourceData, meta)
116 | if err != nil {
117 | return nil, err
118 | }
119 |
120 | return kubernetes_client.New(cluster)
121 | }
122 |
--------------------------------------------------------------------------------
/main.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "github.com/hashicorp/terraform/plugin"
5 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes"
6 | //"log"
7 | //"net/http"
8 | //_ "net/http/pprof"
9 | )
10 |
11 | func main() {
12 | //go func() {
13 | // log.Println(http.ListenAndServe("localhost:9999", nil))
14 | //}()
15 |
16 | plugin.Serve(&plugin.ServeOpts{
17 | ProviderFunc: kubernetes.Provider,
18 | })
19 | }
--------------------------------------------------------------------------------
/schema/schema.go:
--------------------------------------------------------------------------------
1 | package main
2 |
3 | import (
4 | "github.com/hashicorp/terraform/helper/schema"
5 | "github.com/maxmanuylov/terraform-provider-kubernetes/kubernetes"
6 | "github.com/maxmanuylov/utils/intellij-hcl/terraform/provider-schema-generator"
7 | )
8 |
9 | func main() {
10 | provider_schema_generator.Generate(kubernetes.Provider().(*schema.Provider))
11 | }
12 |
--------------------------------------------------------------------------------
/terraform-provider-kubernetes.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/vendor/vendor.json:
--------------------------------------------------------------------------------
1 | {
2 | "comment": "",
3 | "ignore": "test",
4 | "package": [
5 | {
6 | "path": "appengine",
7 | "revision": ""
8 | },
9 | {
10 | "path": "appengine_internal",
11 | "revision": ""
12 | },
13 | {
14 | "path": "appengine_internal/base",
15 | "revision": ""
16 | },
17 | {
18 | "checksumSHA1": "AH7jcN7pvaPDU6UjHdpT081DDGk=",
19 | "path": "cloud.google.com/go/compute/metadata",
20 | "revision": "9be7f826df5cb36bc19f57a919cffb1c1b6d9696",
21 | "revisionTime": "2017-08-04T20:09:44Z"
22 | },
23 | {
24 | "checksumSHA1": "nnKBzCGFHnLydxMbi1vCzEOHyBY=",
25 | "path": "github.com/Azure/azure-sdk-for-go/arm/storage",
26 | "revision": "0b09de4174ca0cadcd3abb4aa31267c6f5ccebbb",
27 | "revisionTime": "2017-08-02T21:42:24Z"
28 | },
29 | {
30 | "checksumSHA1": "d0xhF6pIGji1eV5aEEdlq3vliWo=",
31 | "path": "github.com/Azure/azure-sdk-for-go/storage",
32 | "revision": "0b09de4174ca0cadcd3abb4aa31267c6f5ccebbb",
33 | "revisionTime": "2017-08-02T21:42:24Z"
34 | },
35 | {
36 | "checksumSHA1": "d/hUAUf5zYB0JmqmET5EfWYI2aU=",
37 | "path": "github.com/Azure/go-autorest/autorest",
38 | "revision": "6f4bed77c3e634d04c82be26863d9dddad62fa9e",
39 | "revisionTime": "2017-08-04T19:50:48Z"
40 | },
41 | {
42 | "checksumSHA1": "KOETWLsF6QW+lrPVPsMNHDZP+xA=",
43 | "path": "github.com/Azure/go-autorest/autorest/adal",
44 | "revision": "6f4bed77c3e634d04c82be26863d9dddad62fa9e",
45 | "revisionTime": "2017-08-04T19:50:48Z"
46 | },
47 | {
48 | "checksumSHA1": "2KdBFgT4qY+fMOkBTa5vA9V0AiM=",
49 | "path": "github.com/Azure/go-autorest/autorest/azure",
50 | "revision": "6f4bed77c3e634d04c82be26863d9dddad62fa9e",
51 | "revisionTime": "2017-08-04T19:50:48Z"
52 | },
53 | {
54 | "checksumSHA1": "LSF/pNrjhIxl6jiS6bKooBFCOxI=",
55 | "path": "github.com/Azure/go-autorest/autorest/date",
56 | "revision": "6f4bed77c3e634d04c82be26863d9dddad62fa9e",
57 | "revisionTime": "2017-08-04T19:50:48Z"
58 | },
59 | {
60 | "checksumSHA1": "oBixceM+55gdk47iff8DSEIh3po=",
61 | "path": "github.com/Azure/go-autorest/autorest/validation",
62 | "revision": "6f4bed77c3e634d04c82be26863d9dddad62fa9e",
63 | "revisionTime": "2017-08-04T19:50:48Z"
64 | },
65 | {
66 | "checksumSHA1": "PYNaEEt9v8iAvGVUD4do0YIeR1A=",
67 | "path": "github.com/Azure/go-ntlmssp",
68 | "revision": "c92175d540060095c69ced311f76aea56c83ecdb",
69 | "revisionTime": "2017-08-03T03:49:30Z"
70 | },
71 | {
72 | "checksumSHA1": "7HXb3cry6luicWeJM9Uxwzfo9Rs=",
73 | "path": "github.com/Unknwon/com",
74 | "revision": "0db4a625e949e956314d7d1adea9bf82384cc10c",
75 | "revisionTime": "2017-02-13T07:20:14Z"
76 | },
77 | {
78 | "checksumSHA1": "7eAIWei337IlBYIfzA3HyOEV9WE=",
79 | "path": "github.com/apparentlymart/go-cidr/cidr",
80 | "revision": "2bd8b58cf4275aeb086ade613de226773e29e853",
81 | "revisionTime": "2017-06-16T19:18:03Z"
82 | },
83 | {
84 | "checksumSHA1": "l0iFqayYAaEip6Olaq3/LCOa/Sg=",
85 | "path": "github.com/armon/circbuf",
86 | "revision": "bbbad097214e2918d8543d5201d12bfd7bca254d",
87 | "revisionTime": "2015-08-27T00:49:46Z"
88 | },
89 | {
90 | "checksumSHA1": "GCTVJ1J/SGZstNZauuLAnTFOhGA=",
91 | "path": "github.com/armon/go-radix",
92 | "revision": "1fca145dffbcaa8fe914309b1ec0cfc67500fe61",
93 | "revisionTime": "2017-07-27T15:54:43Z"
94 | },
95 | {
96 | "checksumSHA1": "HFGrR1N5ZOmbKlyqtz9Um/n9WJ0=",
97 | "path": "github.com/aws/aws-sdk-go/aws",
98 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
99 | "revisionTime": "2017-08-07T17:13:30Z"
100 | },
101 | {
102 | "checksumSHA1": "Y9W+4GimK4Fuxq+vyIskVYFRnX4=",
103 | "path": "github.com/aws/aws-sdk-go/aws/awserr",
104 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
105 | "revisionTime": "2017-08-07T17:13:30Z"
106 | },
107 | {
108 | "checksumSHA1": "yyYr41HZ1Aq0hWc3J5ijXwYEcac=",
109 | "path": "github.com/aws/aws-sdk-go/aws/awsutil",
110 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
111 | "revisionTime": "2017-08-07T17:13:30Z"
112 | },
113 | {
114 | "checksumSHA1": "n98FANpNeRT5kf6pizdpI7nm6Sw=",
115 | "path": "github.com/aws/aws-sdk-go/aws/client",
116 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
117 | "revisionTime": "2017-08-07T17:13:30Z"
118 | },
119 | {
120 | "checksumSHA1": "ieAJ+Cvp/PKv1LpUEnUXpc3OI6E=",
121 | "path": "github.com/aws/aws-sdk-go/aws/client/metadata",
122 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
123 | "revisionTime": "2017-08-07T17:13:30Z"
124 | },
125 | {
126 | "checksumSHA1": "7/8j/q0TWtOgXyvEcv4B2Dhl00o=",
127 | "path": "github.com/aws/aws-sdk-go/aws/corehandlers",
128 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
129 | "revisionTime": "2017-08-07T17:13:30Z"
130 | },
131 | {
132 | "checksumSHA1": "Y+cPwQL0dZMyqp3wI+KJWmA9KQ8=",
133 | "path": "github.com/aws/aws-sdk-go/aws/credentials",
134 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
135 | "revisionTime": "2017-08-07T17:13:30Z"
136 | },
137 | {
138 | "checksumSHA1": "u3GOAJLmdvbuNUeUEcZSEAOeL/0=",
139 | "path": "github.com/aws/aws-sdk-go/aws/credentials/ec2rolecreds",
140 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
141 | "revisionTime": "2017-08-07T17:13:30Z"
142 | },
143 | {
144 | "checksumSHA1": "NUJUTWlc1sV8b7WjfiYc4JZbXl0=",
145 | "path": "github.com/aws/aws-sdk-go/aws/credentials/endpointcreds",
146 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
147 | "revisionTime": "2017-08-07T17:13:30Z"
148 | },
149 | {
150 | "checksumSHA1": "JEYqmF83O5n5bHkupAzA6STm0no=",
151 | "path": "github.com/aws/aws-sdk-go/aws/credentials/stscreds",
152 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
153 | "revisionTime": "2017-08-07T17:13:30Z"
154 | },
155 | {
156 | "checksumSHA1": "ZdtYh3ZHSgP/WEIaqwJHTEhpkbs=",
157 | "path": "github.com/aws/aws-sdk-go/aws/defaults",
158 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
159 | "revisionTime": "2017-08-07T17:13:30Z"
160 | },
161 | {
162 | "checksumSHA1": "/EXbk/z2TWjWc1Hvb4QYs3Wmhb8=",
163 | "path": "github.com/aws/aws-sdk-go/aws/ec2metadata",
164 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
165 | "revisionTime": "2017-08-07T17:13:30Z"
166 | },
167 | {
168 | "checksumSHA1": "W45tSKW4ZVgBk9H4lx5RbGi9OVg=",
169 | "path": "github.com/aws/aws-sdk-go/aws/endpoints",
170 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
171 | "revisionTime": "2017-08-07T17:13:30Z"
172 | },
173 | {
174 | "checksumSHA1": "zhO4REZnumWpIaIlT+Wn9aqZCn0=",
175 | "path": "github.com/aws/aws-sdk-go/aws/request",
176 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
177 | "revisionTime": "2017-08-07T17:13:30Z"
178 | },
179 | {
180 | "checksumSHA1": "SK5Mn4Ga9+equOQTYA1DTSb3LWY=",
181 | "path": "github.com/aws/aws-sdk-go/aws/session",
182 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
183 | "revisionTime": "2017-08-07T17:13:30Z"
184 | },
185 | {
186 | "checksumSHA1": "1+ZxEwzc1Vz8X2l+kXkS2iATtas=",
187 | "path": "github.com/aws/aws-sdk-go/aws/signer/v4",
188 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
189 | "revisionTime": "2017-08-07T17:13:30Z"
190 | },
191 | {
192 | "checksumSHA1": "04ypv4x12l4q0TksA1zEVsmgpvw=",
193 | "path": "github.com/aws/aws-sdk-go/internal/shareddefaults",
194 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
195 | "revisionTime": "2017-08-07T17:13:30Z"
196 | },
197 | {
198 | "checksumSHA1": "wk7EyvDaHwb5qqoOP/4d3cV0708=",
199 | "path": "github.com/aws/aws-sdk-go/private/protocol",
200 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
201 | "revisionTime": "2017-08-07T17:13:30Z"
202 | },
203 | {
204 | "checksumSHA1": "1QmQ3FqV37w0Zi44qv8pA1GeR0A=",
205 | "path": "github.com/aws/aws-sdk-go/private/protocol/ec2query",
206 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
207 | "revisionTime": "2017-08-07T17:13:30Z"
208 | },
209 | {
210 | "checksumSHA1": "O6hcK24yI6w7FA+g4Pbr+eQ7pys=",
211 | "path": "github.com/aws/aws-sdk-go/private/protocol/json/jsonutil",
212 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
213 | "revisionTime": "2017-08-07T17:13:30Z"
214 | },
215 | {
216 | "checksumSHA1": "R00RL5jJXRYq1iiK1+PGvMfvXyM=",
217 | "path": "github.com/aws/aws-sdk-go/private/protocol/jsonrpc",
218 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
219 | "revisionTime": "2017-08-07T17:13:30Z"
220 | },
221 | {
222 | "checksumSHA1": "ZqY5RWavBLWTo6j9xqdyBEaNFRk=",
223 | "path": "github.com/aws/aws-sdk-go/private/protocol/query",
224 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
225 | "revisionTime": "2017-08-07T17:13:30Z"
226 | },
227 | {
228 | "checksumSHA1": "Drt1JfLMa0DQEZLWrnMlTWaIcC8=",
229 | "path": "github.com/aws/aws-sdk-go/private/protocol/query/queryutil",
230 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
231 | "revisionTime": "2017-08-07T17:13:30Z"
232 | },
233 | {
234 | "checksumSHA1": "VCTh+dEaqqhog5ncy/WTt9+/gFM=",
235 | "path": "github.com/aws/aws-sdk-go/private/protocol/rest",
236 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
237 | "revisionTime": "2017-08-07T17:13:30Z"
238 | },
239 | {
240 | "checksumSHA1": "Rpu8KBtHZgvhkwHxUfaky+qW+G4=",
241 | "path": "github.com/aws/aws-sdk-go/private/protocol/restjson",
242 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
243 | "revisionTime": "2017-08-07T17:13:30Z"
244 | },
245 | {
246 | "checksumSHA1": "ODo+ko8D6unAxZuN1jGzMcN4QCc=",
247 | "path": "github.com/aws/aws-sdk-go/private/protocol/restxml",
248 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
249 | "revisionTime": "2017-08-07T17:13:30Z"
250 | },
251 | {
252 | "checksumSHA1": "0qYPUga28aQVkxZgBR3Z86AbGUQ=",
253 | "path": "github.com/aws/aws-sdk-go/private/protocol/xml/xmlutil",
254 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
255 | "revisionTime": "2017-08-07T17:13:30Z"
256 | },
257 | {
258 | "checksumSHA1": "F6mth+G7dXN1GI+nktaGo8Lx8aE=",
259 | "path": "github.com/aws/aws-sdk-go/private/signer/v2",
260 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
261 | "revisionTime": "2017-08-07T17:13:30Z"
262 | },
263 | {
264 | "checksumSHA1": "BXuQo73qo4WLmc+TdE5pAwalLUQ=",
265 | "path": "github.com/aws/aws-sdk-go/service/acm",
266 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
267 | "revisionTime": "2017-08-07T17:13:30Z"
268 | },
269 | {
270 | "checksumSHA1": "yKXkhhDv9rWmn8GofXPBoN6k730=",
271 | "path": "github.com/aws/aws-sdk-go/service/apigateway",
272 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
273 | "revisionTime": "2017-08-07T17:13:30Z"
274 | },
275 | {
276 | "checksumSHA1": "gT6mD+yVXS+z0z1skK90jLGeMgA=",
277 | "path": "github.com/aws/aws-sdk-go/service/applicationautoscaling",
278 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
279 | "revisionTime": "2017-08-07T17:13:30Z"
280 | },
281 | {
282 | "checksumSHA1": "F4H+hrCxf3AthBTeQedUEk5GrfU=",
283 | "path": "github.com/aws/aws-sdk-go/service/autoscaling",
284 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
285 | "revisionTime": "2017-08-07T17:13:30Z"
286 | },
287 | {
288 | "checksumSHA1": "VNJcrPTHE+pWTOrgLwDgI/cFvL4=",
289 | "path": "github.com/aws/aws-sdk-go/service/cloudformation",
290 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
291 | "revisionTime": "2017-08-07T17:13:30Z"
292 | },
293 | {
294 | "checksumSHA1": "8S9gwy79xKxoL5aipkmM8Dz/hII=",
295 | "path": "github.com/aws/aws-sdk-go/service/cloudfront",
296 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
297 | "revisionTime": "2017-08-07T17:13:30Z"
298 | },
299 | {
300 | "checksumSHA1": "59kV70/8PuutX4eFkGfCCtdunIA=",
301 | "path": "github.com/aws/aws-sdk-go/service/cloudtrail",
302 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
303 | "revisionTime": "2017-08-07T17:13:30Z"
304 | },
305 | {
306 | "checksumSHA1": "FuNvyvz3Cc5ijAwhU6J7EQRQHkY=",
307 | "path": "github.com/aws/aws-sdk-go/service/cloudwatch",
308 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
309 | "revisionTime": "2017-08-07T17:13:30Z"
310 | },
311 | {
312 | "checksumSHA1": "puxztE1Umuw+w1CTBmo3hsRItGE=",
313 | "path": "github.com/aws/aws-sdk-go/service/cloudwatchevents",
314 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
315 | "revisionTime": "2017-08-07T17:13:30Z"
316 | },
317 | {
318 | "checksumSHA1": "0w5/i4GBC7HxyvMXax/8oiTjLQE=",
319 | "path": "github.com/aws/aws-sdk-go/service/cloudwatchlogs",
320 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
321 | "revisionTime": "2017-08-07T17:13:30Z"
322 | },
323 | {
324 | "checksumSHA1": "SPUa3IkKMPktYyQYEAQgdmFSqPk=",
325 | "path": "github.com/aws/aws-sdk-go/service/codebuild",
326 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
327 | "revisionTime": "2017-08-07T17:13:30Z"
328 | },
329 | {
330 | "checksumSHA1": "XkyZPfxHxB3ohK+/qdF54nvMS0o=",
331 | "path": "github.com/aws/aws-sdk-go/service/codecommit",
332 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
333 | "revisionTime": "2017-08-07T17:13:30Z"
334 | },
335 | {
336 | "checksumSHA1": "X4DJ9O+G0+DpRfzpzx8nRmrbHDE=",
337 | "path": "github.com/aws/aws-sdk-go/service/codedeploy",
338 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
339 | "revisionTime": "2017-08-07T17:13:30Z"
340 | },
341 | {
342 | "checksumSHA1": "pL/7qVyn6qVry1uJ0Nw4/8tkGLM=",
343 | "path": "github.com/aws/aws-sdk-go/service/codepipeline",
344 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
345 | "revisionTime": "2017-08-07T17:13:30Z"
346 | },
347 | {
348 | "checksumSHA1": "7bm1eOY2oKYSesmEOd1qXvTRH2s=",
349 | "path": "github.com/aws/aws-sdk-go/service/cognitoidentity",
350 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
351 | "revisionTime": "2017-08-07T17:13:30Z"
352 | },
353 | {
354 | "checksumSHA1": "V3QpE1495nFtpAOw24WY6AsVT1w=",
355 | "path": "github.com/aws/aws-sdk-go/service/configservice",
356 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
357 | "revisionTime": "2017-08-07T17:13:30Z"
358 | },
359 | {
360 | "checksumSHA1": "8UoYKgC9u/gjExZe4a6ZZf4dDl8=",
361 | "path": "github.com/aws/aws-sdk-go/service/databasemigrationservice",
362 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
363 | "revisionTime": "2017-08-07T17:13:30Z"
364 | },
365 | {
366 | "checksumSHA1": "HfaX42uqVu9hosilU6JwEQhgI/o=",
367 | "path": "github.com/aws/aws-sdk-go/service/devicefarm",
368 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
369 | "revisionTime": "2017-08-07T17:13:30Z"
370 | },
371 | {
372 | "checksumSHA1": "1O8BtYGfkXglIqgl/uxunrq3Djs=",
373 | "path": "github.com/aws/aws-sdk-go/service/directoryservice",
374 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
375 | "revisionTime": "2017-08-07T17:13:30Z"
376 | },
377 | {
378 | "checksumSHA1": "E41+3ODVEuNmyLMyhLT3yu6/AJ4=",
379 | "path": "github.com/aws/aws-sdk-go/service/dynamodb",
380 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
381 | "revisionTime": "2017-08-07T17:13:30Z"
382 | },
383 | {
384 | "checksumSHA1": "VzUS7j1f2K3hh8yCTrKyVgASKi4=",
385 | "path": "github.com/aws/aws-sdk-go/service/ec2",
386 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
387 | "revisionTime": "2017-08-07T17:13:30Z"
388 | },
389 | {
390 | "checksumSHA1": "YNq7YhasHn9ceelWX2aG0Cg0Ga0=",
391 | "path": "github.com/aws/aws-sdk-go/service/ecr",
392 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
393 | "revisionTime": "2017-08-07T17:13:30Z"
394 | },
395 | {
396 | "checksumSHA1": "1qXTlCrrFAev6QTBrWdSO1FGrQM=",
397 | "path": "github.com/aws/aws-sdk-go/service/ecs",
398 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
399 | "revisionTime": "2017-08-07T17:13:30Z"
400 | },
401 | {
402 | "checksumSHA1": "ddrbliij6SgxIrCQoHqmRTVtT4M=",
403 | "path": "github.com/aws/aws-sdk-go/service/efs",
404 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
405 | "revisionTime": "2017-08-07T17:13:30Z"
406 | },
407 | {
408 | "checksumSHA1": "FJajM0d7XtorMUTMCdMW5QdQSnU=",
409 | "path": "github.com/aws/aws-sdk-go/service/elasticache",
410 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
411 | "revisionTime": "2017-08-07T17:13:30Z"
412 | },
413 | {
414 | "checksumSHA1": "9yFc0Nt7c1067EBS9X1T1snqapY=",
415 | "path": "github.com/aws/aws-sdk-go/service/elasticbeanstalk",
416 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
417 | "revisionTime": "2017-08-07T17:13:30Z"
418 | },
419 | {
420 | "checksumSHA1": "wca8VaMOBpTBJUjVlfceB+RI/aw=",
421 | "path": "github.com/aws/aws-sdk-go/service/elasticsearchservice",
422 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
423 | "revisionTime": "2017-08-07T17:13:30Z"
424 | },
425 | {
426 | "checksumSHA1": "bzUOQIGF9rhYJTFAxyfOkZrekmQ=",
427 | "path": "github.com/aws/aws-sdk-go/service/elastictranscoder",
428 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
429 | "revisionTime": "2017-08-07T17:13:30Z"
430 | },
431 | {
432 | "checksumSHA1": "+3C0i6/x6g/I0E3G59rbQlnw2Pk=",
433 | "path": "github.com/aws/aws-sdk-go/service/elb",
434 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
435 | "revisionTime": "2017-08-07T17:13:30Z"
436 | },
437 | {
438 | "checksumSHA1": "md17/nOuhKsp+QE4jjBGEdGo2TU=",
439 | "path": "github.com/aws/aws-sdk-go/service/elbv2",
440 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
441 | "revisionTime": "2017-08-07T17:13:30Z"
442 | },
443 | {
444 | "checksumSHA1": "a6WmIL0y1RIQcaf6w+CvNgEmGXc=",
445 | "path": "github.com/aws/aws-sdk-go/service/emr",
446 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
447 | "revisionTime": "2017-08-07T17:13:30Z"
448 | },
449 | {
450 | "checksumSHA1": "wDZwsQurOYqUHNYoFF8+lF+01h8=",
451 | "path": "github.com/aws/aws-sdk-go/service/firehose",
452 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
453 | "revisionTime": "2017-08-07T17:13:30Z"
454 | },
455 | {
456 | "checksumSHA1": "jSg4VT/uP/pL4s/cy8Kw6btU/+E=",
457 | "path": "github.com/aws/aws-sdk-go/service/glacier",
458 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
459 | "revisionTime": "2017-08-07T17:13:30Z"
460 | },
461 | {
462 | "checksumSHA1": "jAbnrJFlGJifWkcr8RpG2G2NFWY=",
463 | "path": "github.com/aws/aws-sdk-go/service/iam",
464 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
465 | "revisionTime": "2017-08-07T17:13:30Z"
466 | },
467 | {
468 | "checksumSHA1": "v0OUl6sTwF7EOmXyzk9ppc5ljLw=",
469 | "path": "github.com/aws/aws-sdk-go/service/inspector",
470 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
471 | "revisionTime": "2017-08-07T17:13:30Z"
472 | },
473 | {
474 | "checksumSHA1": "D92k3ymegRbjpgnuAy9rWjgV7vs=",
475 | "path": "github.com/aws/aws-sdk-go/service/iot",
476 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
477 | "revisionTime": "2017-08-07T17:13:30Z"
478 | },
479 | {
480 | "checksumSHA1": "ZSCDopQE5mscZ+NIwmmnUGILNfU=",
481 | "path": "github.com/aws/aws-sdk-go/service/kinesis",
482 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
483 | "revisionTime": "2017-08-07T17:13:30Z"
484 | },
485 | {
486 | "checksumSHA1": "wwFYsrpInh4Tow/vTI7bD+r5gBU=",
487 | "path": "github.com/aws/aws-sdk-go/service/kms",
488 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
489 | "revisionTime": "2017-08-07T17:13:30Z"
490 | },
491 | {
492 | "checksumSHA1": "I9kIOQqqkoWjqYSrYixJpSDWqM8=",
493 | "path": "github.com/aws/aws-sdk-go/service/lambda",
494 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
495 | "revisionTime": "2017-08-07T17:13:30Z"
496 | },
497 | {
498 | "checksumSHA1": "eHMwitdHY0uOEA5kkmJ1nGHe0z0=",
499 | "path": "github.com/aws/aws-sdk-go/service/lightsail",
500 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
501 | "revisionTime": "2017-08-07T17:13:30Z"
502 | },
503 | {
504 | "checksumSHA1": "vvGFczUoKSfDrMPnczQnkFyuT6s=",
505 | "path": "github.com/aws/aws-sdk-go/service/opsworks",
506 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
507 | "revisionTime": "2017-08-07T17:13:30Z"
508 | },
509 | {
510 | "checksumSHA1": "EbrH6+AFa5Ju3ADym2Q1zGrTqdo=",
511 | "path": "github.com/aws/aws-sdk-go/service/rds",
512 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
513 | "revisionTime": "2017-08-07T17:13:30Z"
514 | },
515 | {
516 | "checksumSHA1": "tW2tuORhDYkfZIdQbDgHkeMvIeI=",
517 | "path": "github.com/aws/aws-sdk-go/service/redshift",
518 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
519 | "revisionTime": "2017-08-07T17:13:30Z"
520 | },
521 | {
522 | "checksumSHA1": "F9V2XrVGSjzP07ZVDsO8HL5IvAo=",
523 | "path": "github.com/aws/aws-sdk-go/service/route53",
524 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
525 | "revisionTime": "2017-08-07T17:13:30Z"
526 | },
527 | {
528 | "checksumSHA1": "RnXxyRSnEtv00oTjNpiVxocI1qA=",
529 | "path": "github.com/aws/aws-sdk-go/service/s3",
530 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
531 | "revisionTime": "2017-08-07T17:13:30Z"
532 | },
533 | {
534 | "checksumSHA1": "2ndfS3xwCPkannxwrJRzZtBzjQk=",
535 | "path": "github.com/aws/aws-sdk-go/service/ses",
536 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
537 | "revisionTime": "2017-08-07T17:13:30Z"
538 | },
539 | {
540 | "checksumSHA1": "u8xk+JtK/HwIKB2ume3or9Sstp8=",
541 | "path": "github.com/aws/aws-sdk-go/service/sfn",
542 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
543 | "revisionTime": "2017-08-07T17:13:30Z"
544 | },
545 | {
546 | "checksumSHA1": "hOcVb1zJiDUmafXSJQhkEascWwA=",
547 | "path": "github.com/aws/aws-sdk-go/service/simpledb",
548 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
549 | "revisionTime": "2017-08-07T17:13:30Z"
550 | },
551 | {
552 | "checksumSHA1": "1jN0ZDW5c9QEGSQIQ+KrbTACvm8=",
553 | "path": "github.com/aws/aws-sdk-go/service/sns",
554 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
555 | "revisionTime": "2017-08-07T17:13:30Z"
556 | },
557 | {
558 | "checksumSHA1": "SXH7QxrUFaor3KaNX0xPCV3eOhU=",
559 | "path": "github.com/aws/aws-sdk-go/service/sqs",
560 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
561 | "revisionTime": "2017-08-07T17:13:30Z"
562 | },
563 | {
564 | "checksumSHA1": "zESyJ6Jmt2Okq2eVuSV31xpJppc=",
565 | "path": "github.com/aws/aws-sdk-go/service/ssm",
566 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
567 | "revisionTime": "2017-08-07T17:13:30Z"
568 | },
569 | {
570 | "checksumSHA1": "MerduaV3PxtZAWvOGpgoBIglo38=",
571 | "path": "github.com/aws/aws-sdk-go/service/sts",
572 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
573 | "revisionTime": "2017-08-07T17:13:30Z"
574 | },
575 | {
576 | "checksumSHA1": "vFinPalK+r0kaIbPMaHhFbTi2QQ=",
577 | "path": "github.com/aws/aws-sdk-go/service/waf",
578 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
579 | "revisionTime": "2017-08-07T17:13:30Z"
580 | },
581 | {
582 | "checksumSHA1": "qe7HsjfCked/MaRvH2c0uJndWdM=",
583 | "path": "github.com/aws/aws-sdk-go/service/wafregional",
584 | "revision": "3ca2244f3d0dd9a0af59a43172243b0091c6cf48",
585 | "revisionTime": "2017-08-07T17:13:30Z"
586 | },
587 | {
588 | "checksumSHA1": "nqw2Qn5xUklssHTubS5HDvEL9L4=",
589 | "path": "github.com/bgentry/go-netrc/netrc",
590 | "revision": "9fd32a8b3d3d3f9d43c341bfe098430e07609480",
591 | "revisionTime": "2014-04-22T17:41:19Z"
592 | },
593 | {
594 | "checksumSHA1": "oTmBS67uxM6OXB/+OJUAG9LK4jw=",
595 | "path": "github.com/bgentry/speakeasy",
596 | "revision": "4aabc24848ce5fd31929f7d1e4ea74d3709c14cd",
597 | "revisionTime": "2017-04-17T20:07:03Z"
598 | },
599 | {
600 | "checksumSHA1": "OT4XN9z5k69e2RsMSpwW74B+yk4=",
601 | "path": "github.com/blang/semver",
602 | "revision": "2ee87856327ba09384cabd113bc6b5d174e9ec0f",
603 | "revisionTime": "2017-07-27T06:48:18Z"
604 | },
605 | {
606 | "checksumSHA1": "aTYPm16eYDQhbVLgreCGwvV2klw=",
607 | "path": "github.com/chzyer/readline",
608 | "revision": "41eea22f717c616615e1e59aa06cf831f9901f35",
609 | "revisionTime": "2017-03-13T23:49:21Z"
610 | },
611 | {
612 | "checksumSHA1": "1+T3s64i3hz9NXbXz4Mszg2Yl6I=",
613 | "path": "github.com/coreos/etcd/client",
614 | "revision": "a9b9ef5640a2d0df0e3b9a23360ecd85eac22604",
615 | "revisionTime": "2017-08-07T16:21:50Z"
616 | },
617 | {
618 | "checksumSHA1": "mKIXx1kDwmVmdIpZ3pJtRBuUKso=",
619 | "path": "github.com/coreos/etcd/pkg/pathutil",
620 | "revision": "a9b9ef5640a2d0df0e3b9a23360ecd85eac22604",
621 | "revisionTime": "2017-08-07T16:21:50Z"
622 | },
623 | {
624 | "checksumSHA1": "in4X4M2FFl6+eAXgxdxxSOZi1Vw=",
625 | "path": "github.com/coreos/etcd/pkg/srv",
626 | "revision": "a9b9ef5640a2d0df0e3b9a23360ecd85eac22604",
627 | "revisionTime": "2017-08-07T16:21:50Z"
628 | },
629 | {
630 | "checksumSHA1": "gx1gJIMU6T0UNQ0bPZ/drQ8cpCI=",
631 | "path": "github.com/coreos/etcd/pkg/types",
632 | "revision": "a9b9ef5640a2d0df0e3b9a23360ecd85eac22604",
633 | "revisionTime": "2017-08-07T16:21:50Z"
634 | },
635 | {
636 | "checksumSHA1": "sp2FkEyaIGiQFOEZCTDkBZgyHOs=",
637 | "path": "github.com/coreos/etcd/version",
638 | "revision": "a9b9ef5640a2d0df0e3b9a23360ecd85eac22604",
639 | "revisionTime": "2017-08-07T16:21:50Z"
640 | },
641 | {
642 | "checksumSHA1": "97BsbXOiZ8+Kr+LIuZkQFtSj7H4=",
643 | "path": "github.com/coreos/go-semver/semver",
644 | "revision": "1817cd4bea52af76542157eeabd74b057d1a199e",
645 | "revisionTime": "2017-06-13T09:22:38Z"
646 | },
647 | {
648 | "checksumSHA1": "mrz/kicZiUaHxkyfvC/DyQcr8Do=",
649 | "path": "github.com/davecgh/go-spew/spew",
650 | "revision": "adab96458c51a58dc1783b3335dcce5461522e75",
651 | "revisionTime": "2017-07-11T18:34:51Z"
652 | },
653 | {
654 | "checksumSHA1": "GXOurDGgsLmJs0wounpdWZZRSGw=",
655 | "path": "github.com/dgrijalva/jwt-go",
656 | "revision": "a539ee1a749a2b895533f979515ac7e6e0f5b650",
657 | "revisionTime": "2017-06-08T00:51:49Z"
658 | },
659 | {
660 | "checksumSHA1": "GCskdwYAPW2S34918Z5CgNMJ2Wc=",
661 | "path": "github.com/dylanmei/iso8601",
662 | "revision": "2075bf119b58e5576c6ed9f867b8f3d17f2e54d4",
663 | "revisionTime": "2015-01-25T03:41:22Z"
664 | },
665 | {
666 | "checksumSHA1": "by8KnjbSvP58haObPorGWR2CJfk=",
667 | "path": "github.com/dylanmei/winrmtest",
668 | "revision": "025617847eb2cf9bd1d851bc3b22ed28e6245ce5",
669 | "revisionTime": "2015-12-26T19:50:28Z"
670 | },
671 | {
672 | "checksumSHA1": "Ecn0UexWoWRG6Di0wdWvIfms/jc=",
673 | "path": "github.com/go-ini/ini",
674 | "revision": "3d73f4b845efdf9989fffd4b4e562727744a34ba",
675 | "revisionTime": "2017-06-27T23:12:24Z"
676 | },
677 | {
678 | "checksumSHA1": "yqF125xVSkmfLpIVGrLlfE05IUk=",
679 | "path": "github.com/golang/protobuf/proto",
680 | "revision": "1909bc2f63dc92bb931deace8b8312c4db72d12f",
681 | "revisionTime": "2017-08-08T02:16:21Z"
682 | },
683 | {
684 | "checksumSHA1": "p/8vSviYF91gFflhrt5vkyksroo=",
685 | "path": "github.com/golang/snappy",
686 | "revision": "553a641470496b2327abcac10b36396bd98e45c9",
687 | "revisionTime": "2017-02-15T23:32:05Z"
688 | },
689 | {
690 | "checksumSHA1": "Kr1WtXpkMU6JFSctTZq3hHwzKnk=",
691 | "path": "github.com/gophercloud/gophercloud",
692 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
693 | "revisionTime": "2017-08-07T03:32:09Z"
694 | },
695 | {
696 | "checksumSHA1": "b7g9TcU1OmW7e2UySYeOAmcfHpY=",
697 | "path": "github.com/gophercloud/gophercloud/internal",
698 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
699 | "revisionTime": "2017-08-07T03:32:09Z"
700 | },
701 | {
702 | "checksumSHA1": "24DO5BEQdFKNl1rfWgI2b4+ry5U=",
703 | "path": "github.com/gophercloud/gophercloud/openstack",
704 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
705 | "revisionTime": "2017-08-07T03:32:09Z"
706 | },
707 | {
708 | "checksumSHA1": "zj+auDFQsKegnWw0swnh3VVKj3s=",
709 | "path": "github.com/gophercloud/gophercloud/openstack/blockstorage/extensions/volumeactions",
710 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
711 | "revisionTime": "2017-08-07T03:32:09Z"
712 | },
713 | {
714 | "checksumSHA1": "lfD3gq0G0BLLrwS3/7IE2SabPXI=",
715 | "path": "github.com/gophercloud/gophercloud/openstack/blockstorage/v1/volumes",
716 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
717 | "revisionTime": "2017-08-07T03:32:09Z"
718 | },
719 | {
720 | "checksumSHA1": "B4IXSmq364HcBruvvV0QjDFxZgc=",
721 | "path": "github.com/gophercloud/gophercloud/openstack/blockstorage/v2/volumes",
722 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
723 | "revisionTime": "2017-08-07T03:32:09Z"
724 | },
725 | {
726 | "checksumSHA1": "y49Ur726Juznj85+23ZgqMvehgg=",
727 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/availabilityzones",
728 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
729 | "revisionTime": "2017-08-07T03:32:09Z"
730 | },
731 | {
732 | "checksumSHA1": "w2wHF5eEBE89ZYlkS9GAJsSIq9U=",
733 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/bootfromvolume",
734 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
735 | "revisionTime": "2017-08-07T03:32:09Z"
736 | },
737 | {
738 | "checksumSHA1": "e7AW3YDVYJPKUjpqsB4AL9RRlTw=",
739 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/floatingips",
740 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
741 | "revisionTime": "2017-08-07T03:32:09Z"
742 | },
743 | {
744 | "checksumSHA1": "bx6QnHtpgB6nKmN4QRVKa5PszqY=",
745 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/keypairs",
746 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
747 | "revisionTime": "2017-08-07T03:32:09Z"
748 | },
749 | {
750 | "checksumSHA1": "2OCKRUFv9XNtRoMWxP6R6nTLlIA=",
751 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/schedulerhints",
752 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
753 | "revisionTime": "2017-08-07T03:32:09Z"
754 | },
755 | {
756 | "checksumSHA1": "jNrUTQf+9dYfaD7YqvKwC+kGvyY=",
757 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/secgroups",
758 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
759 | "revisionTime": "2017-08-07T03:32:09Z"
760 | },
761 | {
762 | "checksumSHA1": "ci4gzd7Uy9JC4NcQ2ms19pjtW6s=",
763 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/servergroups",
764 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
765 | "revisionTime": "2017-08-07T03:32:09Z"
766 | },
767 | {
768 | "checksumSHA1": "qBpGbX7LQMPATdO8XyQmU7IXDiI=",
769 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/startstop",
770 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
771 | "revisionTime": "2017-08-07T03:32:09Z"
772 | },
773 | {
774 | "checksumSHA1": "5JuziAp9BSRA/z+8pTjVLTWeTw4=",
775 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/tenantnetworks",
776 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
777 | "revisionTime": "2017-08-07T03:32:09Z"
778 | },
779 | {
780 | "checksumSHA1": "2VNgU0F9PDax5VKClvMLmbzuksw=",
781 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/extensions/volumeattach",
782 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
783 | "revisionTime": "2017-08-07T03:32:09Z"
784 | },
785 | {
786 | "checksumSHA1": "vTyXSR+Znw7/o/70UBOWG0F09r8=",
787 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/flavors",
788 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
789 | "revisionTime": "2017-08-07T03:32:09Z"
790 | },
791 | {
792 | "checksumSHA1": "Rnzx2YgOD41k8KoPA08tR992PxQ=",
793 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/images",
794 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
795 | "revisionTime": "2017-08-07T03:32:09Z"
796 | },
797 | {
798 | "checksumSHA1": "CJWHn6ljZbuCIB/A5GLrOfbiEVE=",
799 | "path": "github.com/gophercloud/gophercloud/openstack/compute/v2/servers",
800 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
801 | "revisionTime": "2017-08-07T03:32:09Z"
802 | },
803 | {
804 | "checksumSHA1": "CmUBDSj7l85N82a7el3sY1QZsJg=",
805 | "path": "github.com/gophercloud/gophercloud/openstack/dns/v2/recordsets",
806 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
807 | "revisionTime": "2017-08-07T03:32:09Z"
808 | },
809 | {
810 | "checksumSHA1": "otGdEUIFcxFSZ2ieGzn9SXDil8Q=",
811 | "path": "github.com/gophercloud/gophercloud/openstack/dns/v2/zones",
812 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
813 | "revisionTime": "2017-08-07T03:32:09Z"
814 | },
815 | {
816 | "checksumSHA1": "S8bHmOP+NjtlYioJC89zIBVvhYc=",
817 | "path": "github.com/gophercloud/gophercloud/openstack/identity/v2/tenants",
818 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
819 | "revisionTime": "2017-08-07T03:32:09Z"
820 | },
821 | {
822 | "checksumSHA1": "AvUU5En9YpG25iLlcAPDgcQODjI=",
823 | "path": "github.com/gophercloud/gophercloud/openstack/identity/v2/tokens",
824 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
825 | "revisionTime": "2017-08-07T03:32:09Z"
826 | },
827 | {
828 | "checksumSHA1": "rqE0NwmQ9qhXADXxg3DcuZ4A3wk=",
829 | "path": "github.com/gophercloud/gophercloud/openstack/identity/v3/tokens",
830 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
831 | "revisionTime": "2017-08-07T03:32:09Z"
832 | },
833 | {
834 | "checksumSHA1": "5+wNKnxGvSGV8lHS+7km0ZiNEts=",
835 | "path": "github.com/gophercloud/gophercloud/openstack/imageservice/v2/imagedata",
836 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
837 | "revisionTime": "2017-08-07T03:32:09Z"
838 | },
839 | {
840 | "checksumSHA1": "p2ivHupXGBmyHkusnob2NsbsCQk=",
841 | "path": "github.com/gophercloud/gophercloud/openstack/imageservice/v2/images",
842 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
843 | "revisionTime": "2017-08-07T03:32:09Z"
844 | },
845 | {
846 | "checksumSHA1": "YqqqrMdOCKY2xwFkwxskkx8XtTQ=",
847 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/firewalls",
848 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
849 | "revisionTime": "2017-08-07T03:32:09Z"
850 | },
851 | {
852 | "checksumSHA1": "14ZhP0wE/WCL/6oujcML755AaH4=",
853 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/policies",
854 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
855 | "revisionTime": "2017-08-07T03:32:09Z"
856 | },
857 | {
858 | "checksumSHA1": "nHGhVRP69paJsebTRp4Q1cfQtag=",
859 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/routerinsertion",
860 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
861 | "revisionTime": "2017-08-07T03:32:09Z"
862 | },
863 | {
864 | "checksumSHA1": "sYET5A7WTyJ7dpuxR/VXYoReldw=",
865 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/fwaas/rules",
866 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
867 | "revisionTime": "2017-08-07T03:32:09Z"
868 | },
869 | {
870 | "checksumSHA1": "uCWcJXDBstBRPAcnY2Ri+xU+9mY=",
871 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/floatingips",
872 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
873 | "revisionTime": "2017-08-07T03:32:09Z"
874 | },
875 | {
876 | "checksumSHA1": "Mjt7GwFygyqPxygY8xZZnUasHmk=",
877 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/layer3/routers",
878 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
879 | "revisionTime": "2017-08-07T03:32:09Z"
880 | },
881 | {
882 | "checksumSHA1": "mCTz2rnyVfhjJ+AD/WihCNcYWiY=",
883 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/members",
884 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
885 | "revisionTime": "2017-08-07T03:32:09Z"
886 | },
887 | {
888 | "checksumSHA1": "B2mtHvADREtFLam72wyijyQh/Ds=",
889 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/monitors",
890 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
891 | "revisionTime": "2017-08-07T03:32:09Z"
892 | },
893 | {
894 | "checksumSHA1": "pTr22CKKJ26yvhgd0SRxFF4jkEs=",
895 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/pools",
896 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
897 | "revisionTime": "2017-08-07T03:32:09Z"
898 | },
899 | {
900 | "checksumSHA1": "E7/Z7g5O9o+ge+8YklheTpKgWNw=",
901 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas/vips",
902 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
903 | "revisionTime": "2017-08-07T03:32:09Z"
904 | },
905 | {
906 | "checksumSHA1": "mhpwj5tPv7Uw5aUfC55fhLPBcKo=",
907 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/listeners",
908 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
909 | "revisionTime": "2017-08-07T03:32:09Z"
910 | },
911 | {
912 | "checksumSHA1": "5efJz6UH7JCFeav5ZCCzicXCFTU=",
913 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/loadbalancers",
914 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
915 | "revisionTime": "2017-08-07T03:32:09Z"
916 | },
917 | {
918 | "checksumSHA1": "TVFgBTz7B6bb1R4TWdgAkbE1/fk=",
919 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/monitors",
920 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
921 | "revisionTime": "2017-08-07T03:32:09Z"
922 | },
923 | {
924 | "checksumSHA1": "xirjw9vJIN6rmkT3T56bfPfOLUM=",
925 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/lbaas_v2/pools",
926 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
927 | "revisionTime": "2017-08-07T03:32:09Z"
928 | },
929 | {
930 | "checksumSHA1": "hrR1rAmShCHCANo6d2hi9duwSMA=",
931 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/provider",
932 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
933 | "revisionTime": "2017-08-07T03:32:09Z"
934 | },
935 | {
936 | "checksumSHA1": "qabBGU1tfT99h1YXyxO9nGxMghE=",
937 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/groups",
938 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
939 | "revisionTime": "2017-08-07T03:32:09Z"
940 | },
941 | {
942 | "checksumSHA1": "E/5q7DTCoOD15K1KGFXSwFCGDE4=",
943 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/extensions/security/rules",
944 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
945 | "revisionTime": "2017-08-07T03:32:09Z"
946 | },
947 | {
948 | "checksumSHA1": "CIVK1pz+Vwq1Te4XYV0sib5Mm+I=",
949 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/networks",
950 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
951 | "revisionTime": "2017-08-07T03:32:09Z"
952 | },
953 | {
954 | "checksumSHA1": "Lx257Qaf6y2weNwHTx6lm3OY7a8=",
955 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/ports",
956 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
957 | "revisionTime": "2017-08-07T03:32:09Z"
958 | },
959 | {
960 | "checksumSHA1": "mNRf4F3OjUIivhWTPZD/FjJNuCk=",
961 | "path": "github.com/gophercloud/gophercloud/openstack/networking/v2/subnets",
962 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
963 | "revisionTime": "2017-08-07T03:32:09Z"
964 | },
965 | {
966 | "checksumSHA1": "LtdQKIKKRKe6FOGdBvrBz/bg1Gc=",
967 | "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/accounts",
968 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
969 | "revisionTime": "2017-08-07T03:32:09Z"
970 | },
971 | {
972 | "checksumSHA1": "1lwXcRrM5A7iCfekbn3bpfNLe3g=",
973 | "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/containers",
974 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
975 | "revisionTime": "2017-08-07T03:32:09Z"
976 | },
977 | {
978 | "checksumSHA1": "dotTh+ZsNiyv8e9Z4e0chPEZDKE=",
979 | "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/objects",
980 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
981 | "revisionTime": "2017-08-07T03:32:09Z"
982 | },
983 | {
984 | "checksumSHA1": "roxPPVwS2CjJhf0CApHNQxAX7EA=",
985 | "path": "github.com/gophercloud/gophercloud/openstack/objectstorage/v1/swauth",
986 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
987 | "revisionTime": "2017-08-07T03:32:09Z"
988 | },
989 | {
990 | "checksumSHA1": "TDOZnaS0TO0NirpxV1QwPerAQTY=",
991 | "path": "github.com/gophercloud/gophercloud/openstack/utils",
992 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
993 | "revisionTime": "2017-08-07T03:32:09Z"
994 | },
995 | {
996 | "checksumSHA1": "YspETi3tOMvawKIT91HyuqaA5lM=",
997 | "path": "github.com/gophercloud/gophercloud/pagination",
998 | "revision": "c0406a133c4a74a838baf0ddff3c2fab21155fba",
999 | "revisionTime": "2017-08-07T03:32:09Z"
1000 | },
1001 | {
1002 | "checksumSHA1": "FUiF2WLrih0JdHsUTMMDz3DRokw=",
1003 | "path": "github.com/hashicorp/atlas-go/archive",
1004 | "revision": "1ea2527d6a49b4c9f18753aa21627aae6a7c26a1",
1005 | "revisionTime": "2017-06-19T22:02:35Z"
1006 | },
1007 | {
1008 | "checksumSHA1": "80gaa7+4fFr8IY/jdTYq65xVnUA=",
1009 | "path": "github.com/hashicorp/atlas-go/v1",
1010 | "revision": "1ea2527d6a49b4c9f18753aa21627aae6a7c26a1",
1011 | "revisionTime": "2017-06-19T22:02:35Z"
1012 | },
1013 | {
1014 | "checksumSHA1": "Uthu/iJv5FUKyraXPk2IXSVb0Ts=",
1015 | "path": "github.com/hashicorp/consul/api",
1016 | "revision": "eb8b2f5778f5c23f9e069679e0815201269df3af",
1017 | "revisionTime": "2017-08-07T23:37:56Z"
1018 | },
1019 | {
1020 | "checksumSHA1": "cdOCt0Yb+hdErz8NAQqayxPmRsY=",
1021 | "path": "github.com/hashicorp/errwrap",
1022 | "revision": "7554cd9344cec97297fa6649b055a8c98c2a1e55",
1023 | "revisionTime": "2014-10-28T05:47:10Z"
1024 | },
1025 | {
1026 | "checksumSHA1": "vnuMNXv3FJSg/I8ig04OTEHjk1c=",
1027 | "path": "github.com/hashicorp/go-checkpoint",
1028 | "revision": "a8d0786e7fa88adb6b3bcaa341a99af7f9740671",
1029 | "revisionTime": "2017-06-24T02:34:07Z"
1030 | },
1031 | {
1032 | "checksumSHA1": "b8F628srIitj5p7Y130xc9k0QWs=",
1033 | "path": "github.com/hashicorp/go-cleanhttp",
1034 | "revision": "3573b8b52aa7b37b9358d966a898feb387f62437",
1035 | "revisionTime": "2017-02-11T01:34:15Z"
1036 | },
1037 | {
1038 | "checksumSHA1": "Glhu9BTy826XCLfMw7rexQ5mKeY=",
1039 | "path": "github.com/hashicorp/go-getter",
1040 | "revision": "6aae8e4e2dee8131187c6a54b52664796e5a02b0",
1041 | "revisionTime": "2017-07-13T01:23:01Z"
1042 | },
1043 | {
1044 | "checksumSHA1": "9J+kDr29yDrwsdu2ULzewmqGjpA=",
1045 | "path": "github.com/hashicorp/go-getter/helper/url",
1046 | "revision": "6aae8e4e2dee8131187c6a54b52664796e5a02b0",
1047 | "revisionTime": "2017-07-13T01:23:01Z"
1048 | },
1049 | {
1050 | "checksumSHA1": "g7uHECbzuaWwdxvwoyxBwgeERPk=",
1051 | "path": "github.com/hashicorp/go-multierror",
1052 | "revision": "83588e72410abfbe4df460eeb6f30841ae47d4c4",
1053 | "revisionTime": "2017-06-22T06:09:55Z"
1054 | },
1055 | {
1056 | "checksumSHA1": "b0nQutPMJHeUmz4SjpreotAo6Yk=",
1057 | "path": "github.com/hashicorp/go-plugin",
1058 | "revision": "f72692aebca2008343a9deb06ddb4b17f7051c15",
1059 | "revisionTime": "2017-02-17T16:27:05Z"
1060 | },
1061 | {
1062 | "checksumSHA1": "ErJHGU6AVPZM9yoY/xV11TwSjQs=",
1063 | "path": "github.com/hashicorp/go-retryablehttp",
1064 | "revision": "2d5f5dbd904dbad432492c3ca2c12c72c9e3045a",
1065 | "revisionTime": "2017-04-21T23:29:22Z"
1066 | },
1067 | {
1068 | "checksumSHA1": "A1PcINvF3UiwHRKn8UcgARgvGRs=",
1069 | "path": "github.com/hashicorp/go-rootcerts",
1070 | "revision": "6bb64b370b90e7ef1fa532be9e591a81c3493e00",
1071 | "revisionTime": "2016-05-03T14:34:40Z"
1072 | },
1073 | {
1074 | "checksumSHA1": "mAkPa/RLuIwN53GbwIEMATexams=",
1075 | "path": "github.com/hashicorp/go-uuid",
1076 | "revision": "64130c7a86d732268a38cb04cfbaf0cc987fda98",
1077 | "revisionTime": "2016-07-17T02:21:40Z"
1078 | },
1079 | {
1080 | "checksumSHA1": "tUGxc7rfX0cmhOOUDhMuAZ9rWsA=",
1081 | "path": "github.com/hashicorp/go-version",
1082 | "revision": "03c5bf6be031b6dd45afec16b1cf94fc8938bc77",
1083 | "revisionTime": "2017-02-02T08:07:59Z"
1084 | },
1085 | {
1086 | "checksumSHA1": "7JBkp3EZoc0MSbiyWfzVhO4RYoY=",
1087 | "path": "github.com/hashicorp/hcl",
1088 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1089 | "revisionTime": "2017-05-05T08:58:37Z"
1090 | },
1091 | {
1092 | "checksumSHA1": "XQmjDva9JCGGkIecOgwtBEMCJhU=",
1093 | "path": "github.com/hashicorp/hcl/hcl/ast",
1094 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1095 | "revisionTime": "2017-05-05T08:58:37Z"
1096 | },
1097 | {
1098 | "checksumSHA1": "DaQmLi48oUAwctWcX6A6DNN61UY=",
1099 | "path": "github.com/hashicorp/hcl/hcl/fmtcmd",
1100 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1101 | "revisionTime": "2017-05-05T08:58:37Z"
1102 | },
1103 | {
1104 | "checksumSHA1": "teokXoyRXEJ0vZHOWBD11l5YFNI=",
1105 | "path": "github.com/hashicorp/hcl/hcl/parser",
1106 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1107 | "revisionTime": "2017-05-05T08:58:37Z"
1108 | },
1109 | {
1110 | "checksumSHA1": "WR1BjzDKgv6uE+3ShcDTYz0Gl6A=",
1111 | "path": "github.com/hashicorp/hcl/hcl/printer",
1112 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1113 | "revisionTime": "2017-05-05T08:58:37Z"
1114 | },
1115 | {
1116 | "checksumSHA1": "z6wdP4mRw4GVjShkNHDaOWkbxS0=",
1117 | "path": "github.com/hashicorp/hcl/hcl/scanner",
1118 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1119 | "revisionTime": "2017-05-05T08:58:37Z"
1120 | },
1121 | {
1122 | "checksumSHA1": "oS3SCN9Wd6D8/LG0Yx1fu84a7gI=",
1123 | "path": "github.com/hashicorp/hcl/hcl/strconv",
1124 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1125 | "revisionTime": "2017-05-05T08:58:37Z"
1126 | },
1127 | {
1128 | "checksumSHA1": "c6yprzj06ASwCo18TtbbNNBHljA=",
1129 | "path": "github.com/hashicorp/hcl/hcl/token",
1130 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1131 | "revisionTime": "2017-05-05T08:58:37Z"
1132 | },
1133 | {
1134 | "checksumSHA1": "PwlfXt7mFS8UYzWxOK5DOq0yxS0=",
1135 | "path": "github.com/hashicorp/hcl/json/parser",
1136 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1137 | "revisionTime": "2017-05-05T08:58:37Z"
1138 | },
1139 | {
1140 | "checksumSHA1": "YdvFsNOMSWMLnY6fcliWQa0O5Fw=",
1141 | "path": "github.com/hashicorp/hcl/json/scanner",
1142 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1143 | "revisionTime": "2017-05-05T08:58:37Z"
1144 | },
1145 | {
1146 | "checksumSHA1": "fNlXQCQEnb+B3k5UDL/r15xtSJY=",
1147 | "path": "github.com/hashicorp/hcl/json/token",
1148 | "revision": "392dba7d905ed5d04a5794ba89f558b27e2ba1ca",
1149 | "revisionTime": "2017-05-05T08:58:37Z"
1150 | },
1151 | {
1152 | "checksumSHA1": "M09yxoBoCEtG7EcHR8aEWLzMMJc=",
1153 | "path": "github.com/hashicorp/hil",
1154 | "revision": "fa9f258a92500514cc8e9c67020487709df92432",
1155 | "revisionTime": "2017-02-13T18:49:38Z"
1156 | },
1157 | {
1158 | "checksumSHA1": "0S0KeBcfqVFYBPeZkuJ4fhQ5mCA=",
1159 | "path": "github.com/hashicorp/hil/ast",
1160 | "revision": "fa9f258a92500514cc8e9c67020487709df92432",
1161 | "revisionTime": "2017-02-13T18:49:38Z"
1162 | },
1163 | {
1164 | "checksumSHA1": "P5PZ3k7SmqWmxgJ8Q0gLzeNpGhE=",
1165 | "path": "github.com/hashicorp/hil/parser",
1166 | "revision": "fa9f258a92500514cc8e9c67020487709df92432",
1167 | "revisionTime": "2017-02-13T18:49:38Z"
1168 | },
1169 | {
1170 | "checksumSHA1": "ekmuVa77ebGDPXI+4FaskrID8lQ=",
1171 | "path": "github.com/hashicorp/hil/scanner",
1172 | "revision": "fa9f258a92500514cc8e9c67020487709df92432",
1173 | "revisionTime": "2017-02-13T18:49:38Z"
1174 | },
1175 | {
1176 | "checksumSHA1": "vt+P9D2yWDO3gdvdgCzwqunlhxU=",
1177 | "path": "github.com/hashicorp/logutils",
1178 | "revision": "0dc08b1671f34c4250ce212759ebd880f743d883",
1179 | "revisionTime": "2015-06-09T07:04:31Z"
1180 | },
1181 | {
1182 | "checksumSHA1": "/oss17GO4hXGM7QnUdI3VzcAHzA=",
1183 | "path": "github.com/hashicorp/serf/coordinate",
1184 | "revision": "e0e11d82226a61dd9b31c1df562dc9101ee86142",
1185 | "revisionTime": "2017-08-02T19:05:30Z"
1186 | },
1187 | {
1188 | "checksumSHA1": "f6PIzvwe/rpiEDCqqd0hkxpY6E8=",
1189 | "path": "github.com/hashicorp/terraform",
1190 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1191 | "revisionTime": "2017-08-02T18:39:14Z",
1192 | "version": "=v0.10.0",
1193 | "versionExact": "v0.10.0"
1194 | },
1195 | {
1196 | "checksumSHA1": "ExrDQgeh/AFUiAmwczS0O+4iv2k=",
1197 | "path": "github.com/hashicorp/terraform/backend",
1198 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1199 | "revisionTime": "2017-08-02T18:39:14Z",
1200 | "version": "=v0.10.0",
1201 | "versionExact": "v0.10.0"
1202 | },
1203 | {
1204 | "checksumSHA1": "ZWqZhZxaT2AMNy4dzCcvMKc46GY=",
1205 | "path": "github.com/hashicorp/terraform/backend/atlas",
1206 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1207 | "revisionTime": "2017-08-02T18:39:14Z",
1208 | "version": "=v0.10.0",
1209 | "versionExact": "v0.10.0"
1210 | },
1211 | {
1212 | "checksumSHA1": "tpENC7Upm0NCz26xgED30Wi8RwA=",
1213 | "path": "github.com/hashicorp/terraform/backend/init",
1214 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1215 | "revisionTime": "2017-08-02T18:39:14Z",
1216 | "version": "=v0.10.0",
1217 | "versionExact": "v0.10.0"
1218 | },
1219 | {
1220 | "checksumSHA1": "ISwgLoSPkcEYAcwFoYu5FNsMDD0=",
1221 | "path": "github.com/hashicorp/terraform/backend/legacy",
1222 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1223 | "revisionTime": "2017-08-02T18:39:14Z",
1224 | "version": "=v0.10.0",
1225 | "versionExact": "v0.10.0"
1226 | },
1227 | {
1228 | "checksumSHA1": "LxrFHRlPRk+YFnCg0XZG9j9/gEc=",
1229 | "path": "github.com/hashicorp/terraform/backend/local",
1230 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1231 | "revisionTime": "2017-08-02T18:39:14Z",
1232 | "version": "=v0.10.0",
1233 | "versionExact": "v0.10.0"
1234 | },
1235 | {
1236 | "checksumSHA1": "dm2mPVgLkl0LEg8hnDL7agzsLtw=",
1237 | "path": "github.com/hashicorp/terraform/backend/remote-state",
1238 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1239 | "revisionTime": "2017-08-02T18:39:14Z",
1240 | "version": "=v0.10.0",
1241 | "versionExact": "v0.10.0"
1242 | },
1243 | {
1244 | "checksumSHA1": "ckRjYzdabaVIFIHfCo9/McYi3PI=",
1245 | "path": "github.com/hashicorp/terraform/backend/remote-state/consul",
1246 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1247 | "revisionTime": "2017-08-02T18:39:14Z",
1248 | "version": "=v0.10.0",
1249 | "versionExact": "v0.10.0"
1250 | },
1251 | {
1252 | "checksumSHA1": "2DlWhwNky9LZSRAy0LmSdPHhF2s=",
1253 | "path": "github.com/hashicorp/terraform/backend/remote-state/inmem",
1254 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1255 | "revisionTime": "2017-08-02T18:39:14Z",
1256 | "version": "=v0.10.0",
1257 | "versionExact": "v0.10.0"
1258 | },
1259 | {
1260 | "checksumSHA1": "WgzSa5s1Gflzw5MR6KFQrIoHy64=",
1261 | "path": "github.com/hashicorp/terraform/backend/remote-state/s3",
1262 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1263 | "revisionTime": "2017-08-02T18:39:14Z",
1264 | "version": "=v0.10.0",
1265 | "versionExact": "v0.10.0"
1266 | },
1267 | {
1268 | "checksumSHA1": "l0SZPCxWxxlYHOedkUCZUCWw4R0=",
1269 | "path": "github.com/hashicorp/terraform/backend/remote-state/swift",
1270 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1271 | "revisionTime": "2017-08-02T18:39:14Z",
1272 | "version": "=v0.10.0",
1273 | "versionExact": "v0.10.0"
1274 | },
1275 | {
1276 | "checksumSHA1": "/x8LyJMq8kPYSRNu4xyB8zcf9DQ=",
1277 | "path": "github.com/hashicorp/terraform/builtin/provisioners/chef",
1278 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1279 | "revisionTime": "2017-08-02T18:39:14Z",
1280 | "version": "=v0.10.0",
1281 | "versionExact": "v0.10.0"
1282 | },
1283 | {
1284 | "checksumSHA1": "EtcHzH4aXhylC1Uu8yBQis6IzfU=",
1285 | "path": "github.com/hashicorp/terraform/builtin/provisioners/file",
1286 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1287 | "revisionTime": "2017-08-02T18:39:14Z",
1288 | "version": "=v0.10.0",
1289 | "versionExact": "v0.10.0"
1290 | },
1291 | {
1292 | "checksumSHA1": "cqsxeQ91qnrGUicLBKoDZCuozMM=",
1293 | "path": "github.com/hashicorp/terraform/builtin/provisioners/local-exec",
1294 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1295 | "revisionTime": "2017-08-02T18:39:14Z",
1296 | "version": "=v0.10.0",
1297 | "versionExact": "v0.10.0"
1298 | },
1299 | {
1300 | "checksumSHA1": "OChAYHSZ6OJKTCQVMgpaIz5MEMA=",
1301 | "path": "github.com/hashicorp/terraform/builtin/provisioners/remote-exec",
1302 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1303 | "revisionTime": "2017-08-02T18:39:14Z",
1304 | "version": "=v0.10.0",
1305 | "versionExact": "v0.10.0"
1306 | },
1307 | {
1308 | "checksumSHA1": "RuHDe6nFcPIhiFEsrJ+Qzzlu74U=",
1309 | "path": "github.com/hashicorp/terraform/command",
1310 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1311 | "revisionTime": "2017-08-02T18:39:14Z",
1312 | "version": "=v0.10.0",
1313 | "versionExact": "v0.10.0"
1314 | },
1315 | {
1316 | "checksumSHA1": "HWbnuaEFdfRFeKxZdlYUWZm+DU0=",
1317 | "path": "github.com/hashicorp/terraform/command/clistate",
1318 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1319 | "revisionTime": "2017-08-02T18:39:14Z",
1320 | "version": "=v0.10.0",
1321 | "versionExact": "v0.10.0"
1322 | },
1323 | {
1324 | "checksumSHA1": "Nf4HkguPGljvTOOXidsSLYEAMOM=",
1325 | "path": "github.com/hashicorp/terraform/command/format",
1326 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1327 | "revisionTime": "2017-08-02T18:39:14Z",
1328 | "version": "=v0.10.0",
1329 | "versionExact": "v0.10.0"
1330 | },
1331 | {
1332 | "checksumSHA1": "Pg0fge6Fl6a34pYl2fH1eb6kgNE=",
1333 | "path": "github.com/hashicorp/terraform/communicator",
1334 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1335 | "revisionTime": "2017-08-02T18:39:14Z",
1336 | "version": "=v0.10.0",
1337 | "versionExact": "v0.10.0"
1338 | },
1339 | {
1340 | "checksumSHA1": "zCAC53a+zRYTwnfw7vUFJmvqxQc=",
1341 | "path": "github.com/hashicorp/terraform/communicator/remote",
1342 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1343 | "revisionTime": "2017-08-02T18:39:14Z",
1344 | "version": "=v0.10.0",
1345 | "versionExact": "v0.10.0"
1346 | },
1347 | {
1348 | "checksumSHA1": "gOdZ52GCuL8KLiqYGEVNVZyMO5U=",
1349 | "path": "github.com/hashicorp/terraform/communicator/shared",
1350 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1351 | "revisionTime": "2017-08-02T18:39:14Z",
1352 | "version": "=v0.10.0",
1353 | "versionExact": "v0.10.0"
1354 | },
1355 | {
1356 | "checksumSHA1": "go3oS7xtI1wIdMv0XyhEt33dA0Y=",
1357 | "path": "github.com/hashicorp/terraform/communicator/ssh",
1358 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1359 | "revisionTime": "2017-08-02T18:39:14Z",
1360 | "version": "=v0.10.0",
1361 | "versionExact": "v0.10.0"
1362 | },
1363 | {
1364 | "checksumSHA1": "OpE2PWCmoN2WCmWGGVnoeCaeOTQ=",
1365 | "path": "github.com/hashicorp/terraform/communicator/winrm",
1366 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1367 | "revisionTime": "2017-08-02T18:39:14Z",
1368 | "version": "=v0.10.0",
1369 | "versionExact": "v0.10.0"
1370 | },
1371 | {
1372 | "checksumSHA1": "KPrCMDPNcLmO7K6xPcJSl86LwPk=",
1373 | "path": "github.com/hashicorp/terraform/config",
1374 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1375 | "revisionTime": "2017-08-02T18:39:14Z",
1376 | "version": "=v0.10.0",
1377 | "versionExact": "v0.10.0"
1378 | },
1379 | {
1380 | "checksumSHA1": "uPCJ6seQo9kvoNSfwNWKX9KzVMk=",
1381 | "path": "github.com/hashicorp/terraform/config/module",
1382 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1383 | "revisionTime": "2017-08-02T18:39:14Z",
1384 | "version": "=v0.10.0",
1385 | "versionExact": "v0.10.0"
1386 | },
1387 | {
1388 | "checksumSHA1": "w+l+UGTmwYNJ+L0p2vTd6+yqjok=",
1389 | "path": "github.com/hashicorp/terraform/dag",
1390 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1391 | "revisionTime": "2017-08-02T18:39:14Z",
1392 | "version": "=v0.10.0",
1393 | "versionExact": "v0.10.0"
1394 | },
1395 | {
1396 | "checksumSHA1": "P8gNPDuOzmiK4Lz9xG7OBy4Rlm8=",
1397 | "path": "github.com/hashicorp/terraform/flatmap",
1398 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1399 | "revisionTime": "2017-08-02T18:39:14Z",
1400 | "version": "=v0.10.0",
1401 | "versionExact": "v0.10.0"
1402 | },
1403 | {
1404 | "checksumSHA1": "uT6Q9RdSRAkDjyUgQlJ2XKJRab4=",
1405 | "path": "github.com/hashicorp/terraform/helper/config",
1406 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1407 | "revisionTime": "2017-08-02T18:39:14Z",
1408 | "version": "=v0.10.0",
1409 | "versionExact": "v0.10.0"
1410 | },
1411 | {
1412 | "checksumSHA1": "FH5eOEHfHgdxPC/JnfmCeSBk66U=",
1413 | "path": "github.com/hashicorp/terraform/helper/encryption",
1414 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1415 | "revisionTime": "2017-08-02T18:39:14Z",
1416 | "version": "=v0.10.0",
1417 | "versionExact": "v0.10.0"
1418 | },
1419 | {
1420 | "checksumSHA1": "Vbo55GDzPgG/L/+W2pcvDhxrPZc=",
1421 | "path": "github.com/hashicorp/terraform/helper/experiment",
1422 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1423 | "revisionTime": "2017-08-02T18:39:14Z",
1424 | "version": "=v0.10.0",
1425 | "versionExact": "v0.10.0"
1426 | },
1427 | {
1428 | "checksumSHA1": "BmIPKTr0zDutSJdyq7pYXrK1I3E=",
1429 | "path": "github.com/hashicorp/terraform/helper/hashcode",
1430 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1431 | "revisionTime": "2017-08-02T18:39:14Z",
1432 | "version": "=v0.10.0",
1433 | "versionExact": "v0.10.0"
1434 | },
1435 | {
1436 | "checksumSHA1": "B267stWNQd0/pBTXHfI/tJsxzfc=",
1437 | "path": "github.com/hashicorp/terraform/helper/hilmapstructure",
1438 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1439 | "revisionTime": "2017-08-02T18:39:14Z",
1440 | "version": "=v0.10.0",
1441 | "versionExact": "v0.10.0"
1442 | },
1443 | {
1444 | "checksumSHA1": "2wJa9F3BGlbe2DNqH5lb5POayRI=",
1445 | "path": "github.com/hashicorp/terraform/helper/logging",
1446 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1447 | "revisionTime": "2017-08-02T18:39:14Z",
1448 | "version": "=v0.10.0",
1449 | "versionExact": "v0.10.0"
1450 | },
1451 | {
1452 | "checksumSHA1": "twkFd4x71kBnDfrdqO5nhs8dMOY=",
1453 | "path": "github.com/hashicorp/terraform/helper/mutexkv",
1454 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1455 | "revisionTime": "2017-08-02T18:39:14Z",
1456 | "version": "=v0.10.0",
1457 | "versionExact": "v0.10.0"
1458 | },
1459 | {
1460 | "checksumSHA1": "ImyqbHM/xe3eAT2moIjLI8ksuks=",
1461 | "path": "github.com/hashicorp/terraform/helper/pathorcontents",
1462 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1463 | "revisionTime": "2017-08-02T18:39:14Z",
1464 | "version": "=v0.10.0",
1465 | "versionExact": "v0.10.0"
1466 | },
1467 | {
1468 | "checksumSHA1": "dhU2woQaSEI2OnbYLdkHxf7/nu8=",
1469 | "path": "github.com/hashicorp/terraform/helper/resource",
1470 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1471 | "revisionTime": "2017-08-02T18:39:14Z",
1472 | "version": "=v0.10.0",
1473 | "versionExact": "v0.10.0"
1474 | },
1475 | {
1476 | "checksumSHA1": "0smlb90amL15c/6nWtW4DV6Lqh8=",
1477 | "path": "github.com/hashicorp/terraform/helper/schema",
1478 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1479 | "revisionTime": "2017-08-02T18:39:14Z",
1480 | "version": "=v0.10.0",
1481 | "versionExact": "v0.10.0"
1482 | },
1483 | {
1484 | "checksumSHA1": "1yCGh/Wl4H4ODBBRmIRFcV025b0=",
1485 | "path": "github.com/hashicorp/terraform/helper/shadow",
1486 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1487 | "revisionTime": "2017-08-02T18:39:14Z",
1488 | "version": "=v0.10.0",
1489 | "versionExact": "v0.10.0"
1490 | },
1491 | {
1492 | "checksumSHA1": "eQ6F8nDi/R+F/SX51xCEY8iPZOE=",
1493 | "path": "github.com/hashicorp/terraform/helper/slowmessage",
1494 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1495 | "revisionTime": "2017-08-02T18:39:14Z",
1496 | "version": "=v0.10.0",
1497 | "versionExact": "v0.10.0"
1498 | },
1499 | {
1500 | "checksumSHA1": "Fzbv+N7hFXOtrR6E7ZcHT3jEE9s=",
1501 | "path": "github.com/hashicorp/terraform/helper/structure",
1502 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1503 | "revisionTime": "2017-08-02T18:39:14Z",
1504 | "version": "=v0.10.0",
1505 | "versionExact": "v0.10.0"
1506 | },
1507 | {
1508 | "checksumSHA1": "qsI85GvNukAIUv+kcy8CdgP7um8=",
1509 | "path": "github.com/hashicorp/terraform/helper/validation",
1510 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1511 | "revisionTime": "2017-08-02T18:39:14Z",
1512 | "version": "=v0.10.0",
1513 | "versionExact": "v0.10.0"
1514 | },
1515 | {
1516 | "checksumSHA1": "a1YCqJht+4G5O0UNTnOTD8vfXb0=",
1517 | "path": "github.com/hashicorp/terraform/helper/variables",
1518 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1519 | "revisionTime": "2017-08-02T18:39:14Z",
1520 | "version": "=v0.10.0",
1521 | "versionExact": "v0.10.0"
1522 | },
1523 | {
1524 | "checksumSHA1": "ExvF2RbMeCfxuq2eASmOChEcRgQ=",
1525 | "path": "github.com/hashicorp/terraform/helper/wrappedreadline",
1526 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1527 | "revisionTime": "2017-08-02T18:39:14Z",
1528 | "version": "=v0.10.0",
1529 | "versionExact": "v0.10.0"
1530 | },
1531 | {
1532 | "checksumSHA1": "q96i9foHLGSZ+9dFOV7jUseq7zs=",
1533 | "path": "github.com/hashicorp/terraform/helper/wrappedstreams",
1534 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1535 | "revisionTime": "2017-08-02T18:39:14Z",
1536 | "version": "=v0.10.0",
1537 | "versionExact": "v0.10.0"
1538 | },
1539 | {
1540 | "checksumSHA1": "yFWmdS6yEJZpRJzUqd/mULqCYGk=",
1541 | "path": "github.com/hashicorp/terraform/moduledeps",
1542 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1543 | "revisionTime": "2017-08-02T18:39:14Z",
1544 | "version": "=v0.10.0",
1545 | "versionExact": "v0.10.0"
1546 | },
1547 | {
1548 | "checksumSHA1": "4ODNVUds3lyBf7gV02X1EeYR4GA=",
1549 | "path": "github.com/hashicorp/terraform/plugin",
1550 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1551 | "revisionTime": "2017-08-02T18:39:14Z",
1552 | "version": "=v0.10.0",
1553 | "versionExact": "v0.10.0"
1554 | },
1555 | {
1556 | "checksumSHA1": "mujz3BDg1X82ynvJncCFUT6/7XI=",
1557 | "path": "github.com/hashicorp/terraform/plugin/discovery",
1558 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1559 | "revisionTime": "2017-08-02T18:39:14Z",
1560 | "version": "=v0.10.0",
1561 | "versionExact": "v0.10.0"
1562 | },
1563 | {
1564 | "checksumSHA1": "vW75JRFcEDJNxNCB2mrlFeYOyX4=",
1565 | "path": "github.com/hashicorp/terraform/repl",
1566 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1567 | "revisionTime": "2017-08-02T18:39:14Z",
1568 | "version": "=v0.10.0",
1569 | "versionExact": "v0.10.0"
1570 | },
1571 | {
1572 | "checksumSHA1": "6GDMHApWhgYT4AVkhSBknxK0YyU=",
1573 | "path": "github.com/hashicorp/terraform/state",
1574 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1575 | "revisionTime": "2017-08-02T18:39:14Z",
1576 | "version": "=v0.10.0",
1577 | "versionExact": "v0.10.0"
1578 | },
1579 | {
1580 | "checksumSHA1": "uHQBceHkR/Im5m7TLBfrRK78k8s=",
1581 | "path": "github.com/hashicorp/terraform/state/remote",
1582 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1583 | "revisionTime": "2017-08-02T18:39:14Z",
1584 | "version": "=v0.10.0",
1585 | "versionExact": "v0.10.0"
1586 | },
1587 | {
1588 | "checksumSHA1": "ksfNQjZs/6llziARojABd6iuvdw=",
1589 | "path": "github.com/hashicorp/terraform/terraform",
1590 | "revision": "2041053ee9444fa8175a298093b55a89586a1823",
1591 | "revisionTime": "2017-08-02T18:39:14Z",
1592 | "version": "=v0.10.0",
1593 | "versionExact": "v0.10.0"
1594 | },
1595 | {
1596 | "checksumSHA1": "au+CDkddC4sVFV15UaPiI7FvSw0=",
1597 | "path": "github.com/hashicorp/vault/helper/compressutil",
1598 | "revision": "01d1c20e4c71a3664c29070a0fee3c80f0fed6d7",
1599 | "revisionTime": "2017-08-08T04:18:59Z"
1600 | },
1601 | {
1602 | "checksumSHA1": "yUiSTPf0QUuL2r/81sjuytqBoeQ=",
1603 | "path": "github.com/hashicorp/vault/helper/jsonutil",
1604 | "revision": "01d1c20e4c71a3664c29070a0fee3c80f0fed6d7",
1605 | "revisionTime": "2017-08-08T04:18:59Z"
1606 | },
1607 | {
1608 | "checksumSHA1": "YmXAnTwbzhLLBZM+1tQrJiG3qpc=",
1609 | "path": "github.com/hashicorp/vault/helper/pgpkeys",
1610 | "revision": "01d1c20e4c71a3664c29070a0fee3c80f0fed6d7",
1611 | "revisionTime": "2017-08-08T04:18:59Z"
1612 | },
1613 | {
1614 | "checksumSHA1": "ZhK6IO2XN81Y+3RAjTcVm1Ic7oU=",
1615 | "path": "github.com/hashicorp/yamux",
1616 | "revision": "d1caa6c97c9fc1cc9e83bbe34d0603f9ff0ce8bd",
1617 | "revisionTime": "2016-07-20T23:31:40Z"
1618 | },
1619 | {
1620 | "checksumSHA1": "rixrz9zVpq9gss5jHqc/nGNpSw0=",
1621 | "path": "github.com/jen20/awspolicyequivalence",
1622 | "revision": "ed4c14ea400d756059e9312e409477a9ebf448f4",
1623 | "revisionTime": "2017-01-03T19:23:32Z"
1624 | },
1625 | {
1626 | "checksumSHA1": "hD8LA+lIAv6MB82Db29L71c2Jjc=",
1627 | "path": "github.com/jen20/riviera/azure",
1628 | "revision": "6d39def2c43fa5854b413c44da7a2fef012e464d",
1629 | "revisionTime": "2017-07-28T08:41:01Z"
1630 | },
1631 | {
1632 | "checksumSHA1": "0ZrwvB6KoGPj2PoDNSEJwxQ6Mog=",
1633 | "path": "github.com/jmespath/go-jmespath",
1634 | "revision": "bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d",
1635 | "revisionTime": "2016-08-03T19:07:31Z"
1636 | },
1637 | {
1638 | "checksumSHA1": "NOwNdnb70M6s9LvhaPFabBVwlBs=",
1639 | "path": "github.com/joyent/gocommon",
1640 | "revision": "b78708995d1c2ebdb64a3061b0bca5d8ccdf0fc2",
1641 | "revisionTime": "2016-12-02T19:23:17Z"
1642 | },
1643 | {
1644 | "checksumSHA1": "O0WFPpYSMzeDL11yO84IYBSXrmk=",
1645 | "path": "github.com/joyent/gocommon/client",
1646 | "revision": "b78708995d1c2ebdb64a3061b0bca5d8ccdf0fc2",
1647 | "revisionTime": "2016-12-02T19:23:17Z"
1648 | },
1649 | {
1650 | "checksumSHA1": "fsnHUI4h0h1BUeiWNhkRJhzZD/s=",
1651 | "path": "github.com/joyent/gocommon/errors",
1652 | "revision": "b78708995d1c2ebdb64a3061b0bca5d8ccdf0fc2",
1653 | "revisionTime": "2016-12-02T19:23:17Z"
1654 | },
1655 | {
1656 | "checksumSHA1": "cz4amcSofbyq0dH1sdOHNUvznWw=",
1657 | "path": "github.com/joyent/gocommon/http",
1658 | "revision": "b78708995d1c2ebdb64a3061b0bca5d8ccdf0fc2",
1659 | "revisionTime": "2016-12-02T19:23:17Z"
1660 | },
1661 | {
1662 | "checksumSHA1": "yMJdr6tmhoSgkjLjfyeDZL6vuXo=",
1663 | "path": "github.com/joyent/gocommon/jpc",
1664 | "revision": "b78708995d1c2ebdb64a3061b0bca5d8ccdf0fc2",
1665 | "revisionTime": "2016-12-02T19:23:17Z"
1666 | },
1667 | {
1668 | "checksumSHA1": "ysHPYOB/xV0dMIAES8ZOQu9KwQQ=",
1669 | "path": "github.com/joyent/gomanta/manta",
1670 | "revision": "41c8bc3faef9789454337062b5fac84699f75834",
1671 | "revisionTime": "2016-12-02T19:23:08Z"
1672 | },
1673 | {
1674 | "checksumSHA1": "N0NRIcJF7aj1wd56DA1N9GpYq/4=",
1675 | "path": "github.com/joyent/gosign/auth",
1676 | "revision": "9abcee278795b82b36858cdfc857c8a0e7de797c",
1677 | "revisionTime": "2016-11-14T19:17:44Z"
1678 | },
1679 | {
1680 | "checksumSHA1": "gEjGS03N1eysvpQ+FCHTxPcbxXc=",
1681 | "path": "github.com/kardianos/osext",
1682 | "revision": "ae77be60afb1dcacde03767a8c37337fad28ac14",
1683 | "revisionTime": "2017-05-10T13:15:34Z"
1684 | },
1685 | {
1686 | "checksumSHA1": "VJk3rOWfxEV9Ilig5lgzH1qg8Ss=",
1687 | "path": "github.com/keybase/go-crypto/brainpool",
1688 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1689 | "revisionTime": "2017-06-28T15:29:38Z"
1690 | },
1691 | {
1692 | "checksumSHA1": "rnRjEJs5luF+DIXp2J6LFcQk8Gg=",
1693 | "path": "github.com/keybase/go-crypto/cast5",
1694 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1695 | "revisionTime": "2017-06-28T15:29:38Z"
1696 | },
1697 | {
1698 | "checksumSHA1": "F5++ZQS5Vt7hd6lxPCKTffvph1A=",
1699 | "path": "github.com/keybase/go-crypto/curve25519",
1700 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1701 | "revisionTime": "2017-06-28T15:29:38Z"
1702 | },
1703 | {
1704 | "checksumSHA1": "IvrDXwIixB5yPPbo6tq1/1cSn78=",
1705 | "path": "github.com/keybase/go-crypto/ed25519",
1706 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1707 | "revisionTime": "2017-06-28T15:29:38Z"
1708 | },
1709 | {
1710 | "checksumSHA1": "4+fslB6pCbplNq4viy6CrOkkY6Y=",
1711 | "path": "github.com/keybase/go-crypto/ed25519/internal/edwards25519",
1712 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1713 | "revisionTime": "2017-06-28T15:29:38Z"
1714 | },
1715 | {
1716 | "checksumSHA1": "fgFlkfkaotUjBVhJik2979oCeJw=",
1717 | "path": "github.com/keybase/go-crypto/openpgp",
1718 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1719 | "revisionTime": "2017-06-28T15:29:38Z"
1720 | },
1721 | {
1722 | "checksumSHA1": "+spfcEChljh3yeIg4K/xHOQ2pVM=",
1723 | "path": "github.com/keybase/go-crypto/openpgp/armor",
1724 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1725 | "revisionTime": "2017-06-28T15:29:38Z"
1726 | },
1727 | {
1728 | "checksumSHA1": "nWhmwjBJqPSvkCWqaap2Z9EiS1k=",
1729 | "path": "github.com/keybase/go-crypto/openpgp/ecdh",
1730 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1731 | "revisionTime": "2017-06-28T15:29:38Z"
1732 | },
1733 | {
1734 | "checksumSHA1": "uxXG9IC/XF8jwwvZUbW65+x8/+M=",
1735 | "path": "github.com/keybase/go-crypto/openpgp/elgamal",
1736 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1737 | "revisionTime": "2017-06-28T15:29:38Z"
1738 | },
1739 | {
1740 | "checksumSHA1": "EyUf82Yknzc75m8RcA21CNQINw0=",
1741 | "path": "github.com/keybase/go-crypto/openpgp/errors",
1742 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1743 | "revisionTime": "2017-06-28T15:29:38Z"
1744 | },
1745 | {
1746 | "checksumSHA1": "tw0BkvixAuw9Ai80hHzFy6W5mnk=",
1747 | "path": "github.com/keybase/go-crypto/openpgp/packet",
1748 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1749 | "revisionTime": "2017-06-28T15:29:38Z"
1750 | },
1751 | {
1752 | "checksumSHA1": "BGDxg1Xtsz0DSPzdQGJLLQqfYc8=",
1753 | "path": "github.com/keybase/go-crypto/openpgp/s2k",
1754 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1755 | "revisionTime": "2017-06-28T15:29:38Z"
1756 | },
1757 | {
1758 | "checksumSHA1": "rE3pp7b3gfcmBregzpIvN5IdFhY=",
1759 | "path": "github.com/keybase/go-crypto/rsa",
1760 | "revision": "433e2f3d43ef1bd31387582a899389b2fbe2005e",
1761 | "revisionTime": "2017-06-28T15:29:38Z"
1762 | },
1763 | {
1764 | "checksumSHA1": "90/rTD6BDXVZZSY3Qeqnrg9Wb10=",
1765 | "path": "github.com/lusis/go-artifactory/src/artifactory.v401",
1766 | "revision": "5784f4fd4b5d87c367611658aa28c38f231dab40",
1767 | "revisionTime": "2017-06-25T00:40:56Z"
1768 | },
1769 | {
1770 | "checksumSHA1": "t7hEeujQesCSzjZIPcE80XgQ9M0=",
1771 | "path": "github.com/masterzen/azure-sdk-for-go/core/http",
1772 | "revision": "ee4f0065d00cd12b542f18f5bc45799e88163b12",
1773 | "revisionTime": "2016-10-14T13:56:28Z"
1774 | },
1775 | {
1776 | "checksumSHA1": "xJVMikTtYbfI2KqKeUXaO4292JU=",
1777 | "path": "github.com/masterzen/azure-sdk-for-go/core/tls",
1778 | "revision": "ee4f0065d00cd12b542f18f5bc45799e88163b12",
1779 | "revisionTime": "2016-10-14T13:56:28Z"
1780 | },
1781 | {
1782 | "checksumSHA1": "yg57Q4J8Ob0LoYvqDxsWZ6AHffE=",
1783 | "path": "github.com/masterzen/simplexml/dom",
1784 | "revision": "4572e39b1ab9fe03ee513ce6fc7e289e98482190",
1785 | "revisionTime": "2016-06-08T18:30:07Z"
1786 | },
1787 | {
1788 | "checksumSHA1": "LY1os7cX/gWXWTWYCHCtEaf5jSw=",
1789 | "path": "github.com/masterzen/winrm",
1790 | "revision": "1ca0ba637a877ee12b69abc73c6161fccb77b70a",
1791 | "revisionTime": "2017-06-01T21:16:37Z"
1792 | },
1793 | {
1794 | "checksumSHA1": "KTsgWipT3ennAAtaKxEZairxero=",
1795 | "path": "github.com/masterzen/winrm/soap",
1796 | "revision": "1ca0ba637a877ee12b69abc73c6161fccb77b70a",
1797 | "revisionTime": "2017-06-01T21:16:37Z"
1798 | },
1799 | {
1800 | "path": "github.com/masterzen/winrm/winrm",
1801 | "revision": ""
1802 | },
1803 | {
1804 | "checksumSHA1": "bx+egnFe0OB0BZBcgZcaqsvcmS4=",
1805 | "path": "github.com/masterzen/xmlpath",
1806 | "revision": "13f4951698adc0fa9c1dda3e275d489a24201161",
1807 | "revisionTime": "2014-02-18T18:59:01Z"
1808 | },
1809 | {
1810 | "checksumSHA1": "VdvWgxaqcC3pKk/6Q7dRfH7THjM=",
1811 | "path": "github.com/mattn/go-colorable",
1812 | "revision": "6c0fd4aa6ec5818d5e3ea9e03ae436972a6c5a9a",
1813 | "revisionTime": "2017-08-02T01:54:08Z"
1814 | },
1815 | {
1816 | "checksumSHA1": "U6lX43KDDlNOn+Z0Yyww+ZzHfFo=",
1817 | "path": "github.com/mattn/go-isatty",
1818 | "revision": "fc9e8d8ef48496124e79ae0df75490096eccf6fe",
1819 | "revisionTime": "2017-03-22T23:44:13Z"
1820 | },
1821 | {
1822 | "checksumSHA1": "pUXq8lowSC+hh+JB2MQDOoL7u4I=",
1823 | "path": "github.com/mattn/go-shellwords",
1824 | "revision": "9858af9cca4c73576f0b8c6609a396eb0878023c",
1825 | "revisionTime": "2017-08-03T00:17:40Z"
1826 | },
1827 | {
1828 | "checksumSHA1": "sDE6oXLKXrDSNTscUxCrDsMvuQM=",
1829 | "path": "github.com/maxmanuylov/go-rest/client",
1830 | "revision": "dfacc896a538b675415c13eae071b3216d57fb69",
1831 | "revisionTime": "2017-07-31T13:08:33Z"
1832 | },
1833 | {
1834 | "checksumSHA1": "5qJRWxgDN18ARmtokGnDwth7Xdc=",
1835 | "path": "github.com/maxmanuylov/go-rest/error",
1836 | "revision": "dfacc896a538b675415c13eae071b3216d57fb69",
1837 | "revisionTime": "2017-07-31T13:08:33Z"
1838 | },
1839 | {
1840 | "checksumSHA1": "4GjPKGX52VcHQrvaANF3OuLzex8=",
1841 | "path": "github.com/maxmanuylov/utils/http/transport",
1842 | "revision": "81338fd1e9a12cd5c6c69caa0dd503c370578e05",
1843 | "revisionTime": "2017-08-07T16:45:39Z"
1844 | },
1845 | {
1846 | "checksumSHA1": "LPWoHtRUtvwWh7vAUvGFFout7Jc=",
1847 | "path": "github.com/maxmanuylov/utils/http/transport/tls",
1848 | "revision": "81338fd1e9a12cd5c6c69caa0dd503c370578e05",
1849 | "revisionTime": "2017-08-07T16:45:39Z"
1850 | },
1851 | {
1852 | "checksumSHA1": "c3d/obuVYbUya1V4rcPzEnaagFw=",
1853 | "path": "github.com/maxmanuylov/utils/intellij-hcl/terraform/provider-schema-generator",
1854 | "revision": "ffe3052bf1fc806357e6ed5041e829bcd9f3e5c0",
1855 | "revisionTime": "2017-08-24T10:21:07Z",
1856 | "version": "=v2.2",
1857 | "versionExact": "v2.2"
1858 | },
1859 | {
1860 | "checksumSHA1": "jXakiCRizt6jtyeGh+DeuA76Bh0=",
1861 | "path": "github.com/mitchellh/cli",
1862 | "revision": "8a539dbef410aa4191e0bcc7a6246c104b313009",
1863 | "revisionTime": "2017-08-03T04:29:10Z"
1864 | },
1865 | {
1866 | "checksumSHA1": "ttEN1Aupb7xpPMkQLqb3tzLFdXs=",
1867 | "path": "github.com/mitchellh/colorstring",
1868 | "revision": "8631ce90f28644f54aeedcb3e389a85174e067d1",
1869 | "revisionTime": "2015-09-17T21:48:07Z"
1870 | },
1871 | {
1872 | "checksumSHA1": "+p4JY4wmFQAppCdlrJ8Kxybmht8=",
1873 | "path": "github.com/mitchellh/copystructure",
1874 | "revision": "d23ffcb85de31694d6ccaa23ccb4a03e55c1303f",
1875 | "revisionTime": "2017-05-25T01:39:02Z"
1876 | },
1877 | {
1878 | "checksumSHA1": "V/quM7+em2ByJbWBLOsEwnY3j/Q=",
1879 | "path": "github.com/mitchellh/go-homedir",
1880 | "revision": "b8bc1bf767474819792c23f32d8286a45736f1c6",
1881 | "revisionTime": "2016-12-03T19:45:07Z"
1882 | },
1883 | {
1884 | "checksumSHA1": "y7Az37mGuIJ4q0I8yDFKJjYj+E0=",
1885 | "path": "github.com/mitchellh/go-linereader",
1886 | "revision": "07bab5fdd9580500aea6ada0e09df4aa28e68abd",
1887 | "revisionTime": "2014-10-13T18:55:33Z"
1888 | },
1889 | {
1890 | "checksumSHA1": "6TBW88DSxRHf4WvOC9K5ilBZx/8=",
1891 | "path": "github.com/mitchellh/go-testing-interface",
1892 | "revision": "9a441910b16872f7b8283682619b3761a9aa2222",
1893 | "revisionTime": "2017-07-30T05:09:07Z"
1894 | },
1895 | {
1896 | "checksumSHA1": "tWUjKyFOGJtYExocPWVYiXBYsfE=",
1897 | "path": "github.com/mitchellh/hashstructure",
1898 | "revision": "2bca23e0e452137f789efbc8610126fd8b94f73b",
1899 | "revisionTime": "2017-06-09T04:59:27Z"
1900 | },
1901 | {
1902 | "checksumSHA1": "EHjhpHipgm+XGccrRAms9AW3Ewk=",
1903 | "path": "github.com/mitchellh/mapstructure",
1904 | "revision": "d0303fe809921458f417bcf828397a65db30a7e4",
1905 | "revisionTime": "2017-05-23T03:00:23Z"
1906 | },
1907 | {
1908 | "checksumSHA1": "m2L8ohfZiFRsMW3iynaH/TWgnSY=",
1909 | "path": "github.com/mitchellh/panicwrap",
1910 | "revision": "fce601fe55579125e1b3cb0b992287e7290f7b83",
1911 | "revisionTime": "2017-01-06T18:23:40Z"
1912 | },
1913 | {
1914 | "checksumSHA1": "h+ODp7a8Vj8XMUsORLbhtQMWOO4=",
1915 | "path": "github.com/mitchellh/prefixedio",
1916 | "revision": "6e6954073784f7ee67b28f2d22749d6479151ed7",
1917 | "revisionTime": "2015-12-14T00:22:11Z"
1918 | },
1919 | {
1920 | "checksumSHA1": "AMU63CNOg4XmIhVR/S/Xttt1/f0=",
1921 | "path": "github.com/mitchellh/reflectwalk",
1922 | "revision": "63d60e9d0dbc60cf9164e6510889b0db6683d98c",
1923 | "revisionTime": "2017-07-26T20:21:17Z"
1924 | },
1925 | {
1926 | "checksumSHA1": "gcLub3oB+u4QrOJZcYmk/y2AP4k=",
1927 | "path": "github.com/nu7hatch/gouuid",
1928 | "revision": "179d4d0c4d8d407a32af483c2354df1d2c91e6c3",
1929 | "revisionTime": "2013-12-21T20:05:32Z"
1930 | },
1931 | {
1932 | "checksumSHA1": "iApv8tX8vuAvzyY6VkOvW+IzJF8=",
1933 | "path": "github.com/packer-community/winrmcp/winrmcp",
1934 | "revision": "078cc0a785c9da54158c0775f06f505fc1e867f8",
1935 | "revisionTime": "2017-06-07T14:21:56Z"
1936 | },
1937 | {
1938 | "checksumSHA1": "6OEUkwOM0qgI6YxR+BDEn6YMvpU=",
1939 | "path": "github.com/posener/complete",
1940 | "revision": "f4461a52b6329c11190f11fe3384ec8aa964e21c",
1941 | "revisionTime": "2017-07-30T19:30:24Z"
1942 | },
1943 | {
1944 | "checksumSHA1": "NB7uVS0/BJDmNu68vPAlbrq4TME=",
1945 | "path": "github.com/posener/complete/cmd",
1946 | "revision": "f4461a52b6329c11190f11fe3384ec8aa964e21c",
1947 | "revisionTime": "2017-07-30T19:30:24Z"
1948 | },
1949 | {
1950 | "checksumSHA1": "kuS9vs+TMQzTGzXteL6EZ5HuKrU=",
1951 | "path": "github.com/posener/complete/cmd/install",
1952 | "revision": "f4461a52b6329c11190f11fe3384ec8aa964e21c",
1953 | "revisionTime": "2017-07-30T19:30:24Z"
1954 | },
1955 | {
1956 | "checksumSHA1": "DMo94FwJAm9ZCYCiYdJU2+bh4no=",
1957 | "path": "github.com/posener/complete/match",
1958 | "revision": "f4461a52b6329c11190f11fe3384ec8aa964e21c",
1959 | "revisionTime": "2017-07-30T19:30:24Z"
1960 | },
1961 | {
1962 | "checksumSHA1": "M57Rrfc8Z966p+IBtQ91QOcUtcg=",
1963 | "path": "github.com/ryanuber/columnize",
1964 | "revision": "abc90934186a77966e2beeac62ed966aac0561d5",
1965 | "revisionTime": "2017-07-03T20:58:27Z"
1966 | },
1967 | {
1968 | "checksumSHA1": "zmC8/3V4ls53DJlNTKDZwPSC/dA=",
1969 | "path": "github.com/satori/go.uuid",
1970 | "revision": "5bf94b69c6b68ee1b541973bb8e1144db23a194b",
1971 | "revisionTime": "2017-03-21T23:07:31Z"
1972 | },
1973 | {
1974 | "checksumSHA1": "iqUXcP3VA+G1/gVLRpQpBUt/BuA=",
1975 | "path": "github.com/satori/uuid",
1976 | "revision": "5bf94b69c6b68ee1b541973bb8e1144db23a194b",
1977 | "revisionTime": "2017-03-21T23:07:31Z"
1978 | },
1979 | {
1980 | "checksumSHA1": "UxgAKjDS6mher0PL9dw61QnPQ7w=",
1981 | "path": "github.com/terraform-providers/terraform-provider-aws/aws",
1982 | "revision": "37cf4e6f4086285603c0a447de7d3b62bc3e9348",
1983 | "revisionTime": "2017-08-07T19:20:06Z"
1984 | },
1985 | {
1986 | "checksumSHA1": "R+2QkZ1uCKhGJN7Nak++jdKx59I=",
1987 | "path": "github.com/terraform-providers/terraform-provider-openstack/openstack",
1988 | "revision": "b1d20f39d0e43d2828437e4d4ea7995ab71e2506",
1989 | "revisionTime": "2017-08-07T16:25:03Z"
1990 | },
1991 | {
1992 | "checksumSHA1": "9Zw986fuQM/hCoVd8vmHoSM+8sU=",
1993 | "path": "github.com/ugorji/go/codec",
1994 | "revision": "5efa3251c7f7d05e5d9704a69a984ec9f1386a40",
1995 | "revisionTime": "2017-06-20T10:48:52Z"
1996 | },
1997 | {
1998 | "checksumSHA1": "z2kAtVle4NFV2OExI85fZoTcsI4=",
1999 | "path": "github.com/ulikunitz/xz",
2000 | "revision": "0c6b41e72360850ca4f98dc341fd999726ea007f",
2001 | "revisionTime": "2017-06-05T21:53:11Z"
2002 | },
2003 | {
2004 | "checksumSHA1": "vjnTkzNrMs5Xj6so/fq0mQ6dT1c=",
2005 | "path": "github.com/ulikunitz/xz/internal/hash",
2006 | "revision": "0c6b41e72360850ca4f98dc341fd999726ea007f",
2007 | "revisionTime": "2017-06-05T21:53:11Z"
2008 | },
2009 | {
2010 | "checksumSHA1": "m0pm57ASBK/CTdmC0ppRHO17mBs=",
2011 | "path": "github.com/ulikunitz/xz/internal/xlog",
2012 | "revision": "0c6b41e72360850ca4f98dc341fd999726ea007f",
2013 | "revisionTime": "2017-06-05T21:53:11Z"
2014 | },
2015 | {
2016 | "checksumSHA1": "2vZw6zc8xuNlyVz2QKvdlNSZQ1U=",
2017 | "path": "github.com/ulikunitz/xz/lzma",
2018 | "revision": "0c6b41e72360850ca4f98dc341fd999726ea007f",
2019 | "revisionTime": "2017-06-05T21:53:11Z"
2020 | },
2021 | {
2022 | "checksumSHA1": "iHiMTBffQvWYlOLu3130JXuQpgQ=",
2023 | "path": "github.com/xanzy/ssh-agent",
2024 | "revision": "ba9c9e33906f58169366275e3450db66139a31a9",
2025 | "revisionTime": "2015-12-15T15:34:51Z"
2026 | },
2027 | {
2028 | "checksumSHA1": "xtw+Llokq30p1Gn+Q8JBZ7NtE+I=",
2029 | "path": "github.com/xlab/treeprint",
2030 | "revision": "1d6e342255576c977e946a2384fc487a22d3fceb",
2031 | "revisionTime": "2016-10-29T10:40:18Z"
2032 | },
2033 | {
2034 | "checksumSHA1": "UWjVYmoHlIfHzVIskELHiJQtMOI=",
2035 | "path": "golang.org/x/crypto/bcrypt",
2036 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2037 | "revisionTime": "2017-07-23T04:49:35Z"
2038 | },
2039 | {
2040 | "checksumSHA1": "oVPHWesOmZ02vLq2fglGvf+AMgk=",
2041 | "path": "golang.org/x/crypto/blowfish",
2042 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2043 | "revisionTime": "2017-07-23T04:49:35Z"
2044 | },
2045 | {
2046 | "checksumSHA1": "TT1rac6kpQp2vz24m5yDGUNQ/QQ=",
2047 | "path": "golang.org/x/crypto/cast5",
2048 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2049 | "revisionTime": "2017-07-23T04:49:35Z"
2050 | },
2051 | {
2052 | "checksumSHA1": "MlEHIE/60sB86Lmf0MPTIXHzKzE=",
2053 | "path": "golang.org/x/crypto/curve25519",
2054 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2055 | "revisionTime": "2017-07-23T04:49:35Z"
2056 | },
2057 | {
2058 | "checksumSHA1": "X6Q8nYb+KXh+64AKHwWOOcyijHQ=",
2059 | "path": "golang.org/x/crypto/ed25519",
2060 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2061 | "revisionTime": "2017-07-23T04:49:35Z"
2062 | },
2063 | {
2064 | "checksumSHA1": "LXFcVx8I587SnWmKycSDEq9yvK8=",
2065 | "path": "golang.org/x/crypto/ed25519/internal/edwards25519",
2066 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2067 | "revisionTime": "2017-07-23T04:49:35Z"
2068 | },
2069 | {
2070 | "checksumSHA1": "MCeXr2RNeiG1XG6V+er1OR0qyeo=",
2071 | "path": "golang.org/x/crypto/md4",
2072 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2073 | "revisionTime": "2017-07-23T04:49:35Z"
2074 | },
2075 | {
2076 | "checksumSHA1": "IIhFTrLlmlc6lEFSitqi4aw2lw0=",
2077 | "path": "golang.org/x/crypto/openpgp",
2078 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2079 | "revisionTime": "2017-07-23T04:49:35Z"
2080 | },
2081 | {
2082 | "checksumSHA1": "olOKkhrdkYQHZ0lf1orrFQPQrv4=",
2083 | "path": "golang.org/x/crypto/openpgp/armor",
2084 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2085 | "revisionTime": "2017-07-23T04:49:35Z"
2086 | },
2087 | {
2088 | "checksumSHA1": "eo/KtdjieJQXH7Qy+faXFcF70ME=",
2089 | "path": "golang.org/x/crypto/openpgp/elgamal",
2090 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2091 | "revisionTime": "2017-07-23T04:49:35Z"
2092 | },
2093 | {
2094 | "checksumSHA1": "rlxVSaGgqdAgwblsErxTxIfuGfg=",
2095 | "path": "golang.org/x/crypto/openpgp/errors",
2096 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2097 | "revisionTime": "2017-07-23T04:49:35Z"
2098 | },
2099 | {
2100 | "checksumSHA1": "Pq88+Dgh04UdXWZN6P+bLgYnbRc=",
2101 | "path": "golang.org/x/crypto/openpgp/packet",
2102 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2103 | "revisionTime": "2017-07-23T04:49:35Z"
2104 | },
2105 | {
2106 | "checksumSHA1": "s2qT4UwvzBSkzXuiuMkowif1Olw=",
2107 | "path": "golang.org/x/crypto/openpgp/s2k",
2108 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2109 | "revisionTime": "2017-07-23T04:49:35Z"
2110 | },
2111 | {
2112 | "checksumSHA1": "nnD48uEKLyuT9T+DZHrSbMkMRCE=",
2113 | "path": "golang.org/x/crypto/ssh",
2114 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2115 | "revisionTime": "2017-07-23T04:49:35Z"
2116 | },
2117 | {
2118 | "checksumSHA1": "ujKeyWHFOYmXm5IgAxfyFCGefsY=",
2119 | "path": "golang.org/x/crypto/ssh/agent",
2120 | "revision": "b176d7def5d71bdd214203491f89843ed217f420",
2121 | "revisionTime": "2017-07-23T04:49:35Z"
2122 | },
2123 | {
2124 | "checksumSHA1": "dr5+PfIRzXeN+l1VG+s0lea9qz8=",
2125 | "path": "golang.org/x/net/context",
2126 | "revision": "090ebbdfc2aff44cc6674372b72e02e731f7f0ef",
2127 | "revisionTime": "2017-08-08T06:06:21Z"
2128 | },
2129 | {
2130 | "checksumSHA1": "WHc3uByvGaMcnSoI21fhzYgbOgg=",
2131 | "path": "golang.org/x/net/context/ctxhttp",
2132 | "revision": "090ebbdfc2aff44cc6674372b72e02e731f7f0ef",
2133 | "revisionTime": "2017-08-08T06:06:21Z"
2134 | },
2135 | {
2136 | "checksumSHA1": "vqc3a+oTUGX8PmD0TS+qQ7gmN8I=",
2137 | "path": "golang.org/x/net/html",
2138 | "revision": "090ebbdfc2aff44cc6674372b72e02e731f7f0ef",
2139 | "revisionTime": "2017-08-08T06:06:21Z"
2140 | },
2141 | {
2142 | "checksumSHA1": "00eQaGynDYrv3tL+C7l9xH0IDZg=",
2143 | "path": "golang.org/x/net/html/atom",
2144 | "revision": "090ebbdfc2aff44cc6674372b72e02e731f7f0ef",
2145 | "revisionTime": "2017-08-08T06:06:21Z"
2146 | },
2147 | {
2148 | "checksumSHA1": "/F4kBHR/0qnLRJgjKqlUo3Iksds=",
2149 | "path": "golang.org/x/oauth2",
2150 | "revision": "9a379c6b3e95a790ffc43293c2a78dee0d7b6e20",
2151 | "revisionTime": "2017-07-25T16:55:14Z"
2152 | },
2153 | {
2154 | "checksumSHA1": "JTBn9MQUhwHtjwv7rC9Zg4KRN7g=",
2155 | "path": "golang.org/x/oauth2/google",
2156 | "revision": "9a379c6b3e95a790ffc43293c2a78dee0d7b6e20",
2157 | "revisionTime": "2017-07-25T16:55:14Z"
2158 | },
2159 | {
2160 | "checksumSHA1": "eztsaK5Uim4juQOtqUf6VF+foD4=",
2161 | "path": "golang.org/x/oauth2/internal",
2162 | "revision": "9a379c6b3e95a790ffc43293c2a78dee0d7b6e20",
2163 | "revisionTime": "2017-07-25T16:55:14Z"
2164 | },
2165 | {
2166 | "checksumSHA1": "huVltYnXdRFDJLgp/ZP9IALzG7g=",
2167 | "path": "golang.org/x/oauth2/jws",
2168 | "revision": "9a379c6b3e95a790ffc43293c2a78dee0d7b6e20",
2169 | "revisionTime": "2017-07-25T16:55:14Z"
2170 | },
2171 | {
2172 | "checksumSHA1": "/eV4E08BY+f1ZikiR7OOMJAj3m0=",
2173 | "path": "golang.org/x/oauth2/jwt",
2174 | "revision": "9a379c6b3e95a790ffc43293c2a78dee0d7b6e20",
2175 | "revisionTime": "2017-07-25T16:55:14Z"
2176 | },
2177 | {
2178 | "checksumSHA1": "fwb6FNBUs0SOyUpUx5R31Xf22GY=",
2179 | "path": "golang.org/x/sys/unix",
2180 | "revision": "d8f5ea21b9295e315e612b4bcf4bedea93454d4d",
2181 | "revisionTime": "2017-08-03T09:04:06Z"
2182 | },
2183 | {
2184 | "checksumSHA1": "WEjuBZQrbJERSncK+GGSVXIPAhk=",
2185 | "path": "google.golang.org/api/gensupport",
2186 | "revision": "5c4ffd5985e22d25e9cadc37183b88c3a31497c2",
2187 | "revisionTime": "2017-08-07T18:53:53Z"
2188 | },
2189 | {
2190 | "checksumSHA1": "BWKmb7kGYbfbvXO6E7tCpTh9zKE=",
2191 | "path": "google.golang.org/api/googleapi",
2192 | "revision": "5c4ffd5985e22d25e9cadc37183b88c3a31497c2",
2193 | "revisionTime": "2017-08-07T18:53:53Z"
2194 | },
2195 | {
2196 | "checksumSHA1": "1K0JxrUfDqAB3MyRiU1LKjfHyf4=",
2197 | "path": "google.golang.org/api/googleapi/internal/uritemplates",
2198 | "revision": "5c4ffd5985e22d25e9cadc37183b88c3a31497c2",
2199 | "revisionTime": "2017-08-07T18:53:53Z"
2200 | },
2201 | {
2202 | "checksumSHA1": "UEr27GqUNMaaOJI0pS8Ws9hlSL8=",
2203 | "path": "google.golang.org/api/storage/v1",
2204 | "revision": "5c4ffd5985e22d25e9cadc37183b88c3a31497c2",
2205 | "revisionTime": "2017-08-07T18:53:53Z"
2206 | },
2207 | {
2208 | "checksumSHA1": "WPEbk80NB3Esdh4Yk0PXr2K7xVU=",
2209 | "path": "google.golang.org/appengine",
2210 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2211 | "revisionTime": "2017-08-01T18:31:37Z"
2212 | },
2213 | {
2214 | "checksumSHA1": "4o2JkeR2LyUfZ7BQIzHUejyqKno=",
2215 | "path": "google.golang.org/appengine/internal",
2216 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2217 | "revisionTime": "2017-08-01T18:31:37Z"
2218 | },
2219 | {
2220 | "checksumSHA1": "x6Thdfyasqd68dWZWqzWWeIfAfI=",
2221 | "path": "google.golang.org/appengine/internal/app_identity",
2222 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2223 | "revisionTime": "2017-08-01T18:31:37Z"
2224 | },
2225 | {
2226 | "checksumSHA1": "TsNO8P0xUlLNyh3Ic/tzSp/fDWM=",
2227 | "path": "google.golang.org/appengine/internal/base",
2228 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2229 | "revisionTime": "2017-08-01T18:31:37Z"
2230 | },
2231 | {
2232 | "checksumSHA1": "5QsV5oLGSfKZqTCVXP6NRz5T4Tw=",
2233 | "path": "google.golang.org/appengine/internal/datastore",
2234 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2235 | "revisionTime": "2017-08-01T18:31:37Z"
2236 | },
2237 | {
2238 | "checksumSHA1": "Gep2T9zmVYV8qZfK2gu3zrmG6QE=",
2239 | "path": "google.golang.org/appengine/internal/log",
2240 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2241 | "revisionTime": "2017-08-01T18:31:37Z"
2242 | },
2243 | {
2244 | "checksumSHA1": "eLZVX1EHLclFtQnjDIszsdyWRHo=",
2245 | "path": "google.golang.org/appengine/internal/modules",
2246 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2247 | "revisionTime": "2017-08-01T18:31:37Z"
2248 | },
2249 | {
2250 | "checksumSHA1": "a1XY7rz3BieOVqVI2Et6rKiwQCk=",
2251 | "path": "google.golang.org/appengine/internal/remote_api",
2252 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2253 | "revisionTime": "2017-08-01T18:31:37Z"
2254 | },
2255 | {
2256 | "checksumSHA1": "QtAbHtHmDzcf6vOV9eqlCpKgjiw=",
2257 | "path": "google.golang.org/appengine/internal/urlfetch",
2258 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2259 | "revisionTime": "2017-08-01T18:31:37Z"
2260 | },
2261 | {
2262 | "checksumSHA1": "akOV9pYnCbcPA8wJUutSQVibdyg=",
2263 | "path": "google.golang.org/appengine/urlfetch",
2264 | "revision": "c5a90ac045b779001847fec87403f5cba090deae",
2265 | "revisionTime": "2017-08-01T18:31:37Z"
2266 | },
2267 | {
2268 | "checksumSHA1": "o20lmjzBQyKD5LfLZ3OhUoMkLds=",
2269 | "path": "gopkg.in/yaml.v2",
2270 | "revision": "25c4ec802a7d637f88d584ab26798e94ad14c13b",
2271 | "revisionTime": "2017-07-21T12:20:51Z"
2272 | }
2273 | ],
2274 | "rootPath": "github.com/maxmanuylov/terraform-provider-kubernetes"
2275 | }
2276 |
--------------------------------------------------------------------------------