@@ -2,8 +2,10 @@ package gcore
2
2
3
3
import (
4
4
"context"
5
+ "fmt"
5
6
"net/http"
6
7
8
+ storageSDK "github.com/G-Core/gcorelabs-storage-sdk-go"
7
9
gcdn "github.com/G-Core/gcorelabscdn-go"
8
10
gcdnProvider "github.com/G-Core/gcorelabscdn-go/gcore/provider"
9
11
gcorecloud "github.com/G-Core/gcorelabscloud-go"
@@ -43,6 +45,12 @@ func Provider() *schema.Provider {
43
45
Description : "CDN API" ,
44
46
DefaultFunc : schema .EnvDefaultFunc ("GCORE_CDN_API" , "" ),
45
47
},
48
+ "gcore_storage_api" : & schema.Schema {
49
+ Type : schema .TypeString ,
50
+ Optional : true ,
51
+ Description : "Storage API" ,
52
+ DefaultFunc : schema .EnvDefaultFunc ("GCORE_STORAGE_API" , "" ),
53
+ },
46
54
"gcore_client_id" : & schema.Schema {
47
55
Type : schema .TypeString ,
48
56
Optional : true ,
@@ -67,6 +75,8 @@ func Provider() *schema.Provider {
67
75
"gcore_baremetal" : resourceBmInstance (),
68
76
"gcore_snapshot" : resourceSnapshot (),
69
77
"gcore_servergroup" : resourceServerGroup (),
78
+ "gcore_storage" : resourceStorage (),
79
+ "gcore_storage_key" : resourceStorageKey (),
70
80
"gcore_cdn_resource" : resourceCDNResource (),
71
81
"gcore_cdn_origingroup" : resourceCDNOriginGroup (),
72
82
"gcore_cdn_rule" : resourceCDNRule (),
@@ -98,6 +108,7 @@ func providerConfigure(ctx context.Context, d *schema.ResourceData) (interface{}
98
108
password := d .Get ("password" ).(string )
99
109
api := d .Get ("gcore_api" ).(string )
100
110
cdnAPI := d .Get ("gcore_cdn_api" ).(string )
111
+ storageAPI := d .Get ("gcore_storage_api" ).(string )
101
112
platform := d .Get ("gcore_platform" ).(string )
102
113
clientID := d .Get ("gcore_client_id" ).(string )
103
114
@@ -121,9 +132,15 @@ func providerConfigure(ctx context.Context, d *schema.ResourceData) (interface{}
121
132
}))
122
133
cdnService := gcdn .NewService (cdnProvider )
123
134
135
+ stHost , stPath , err := ExtractHosAndPath (storageAPI )
136
+ if err != nil {
137
+ return nil , diag .FromErr (fmt .Errorf ("storage api url: %w" , err ))
138
+ }
139
+
124
140
config := Config {
125
- Provider : provider ,
126
- CDNClient : cdnService ,
141
+ Provider : provider ,
142
+ CDNClient : cdnService ,
143
+ StorageClient : storageSDK .NewSDK (stHost , stPath , storageSDK .WithBearerAuth (provider .AccessToken )),
127
144
}
128
145
129
146
return & config , diags
0 commit comments