github.com/opentelekomcloud/gophertelekomcloud@v0.9.3/openstack/apigw/v2/app_auth/CreateAuth.go (about) 1 package app_auth 2 3 import ( 4 golangsdk "github.com/opentelekomcloud/gophertelekomcloud" 5 "github.com/opentelekomcloud/gophertelekomcloud/internal/build" 6 "github.com/opentelekomcloud/gophertelekomcloud/internal/extract" 7 ) 8 9 type CreateAuthOpts struct { 10 GatewayID string `json:"-"` 11 EnvID string `json:"env_id" required:"true"` 12 AppIDs []string `json:"app_ids" required:"true"` 13 ApiIDs []string `json:"api_ids" required:"true"` 14 } 15 16 func Create(client *golangsdk.ServiceClient, opts CreateAuthOpts) ([]AppAuthResp, error) { 17 b, err := build.RequestBody(opts, "") 18 if err != nil { 19 return nil, err 20 } 21 22 raw, err := client.Post(client.ServiceURL("apigw", "instances", opts.GatewayID, "app-auths"), b, nil, &golangsdk.RequestOpts{ 23 OkCodes: []int{201}, 24 }) 25 if err != nil { 26 return nil, err 27 } 28 29 var res []AppAuthResp 30 31 err = extract.IntoSlicePtr(raw.Body, &res, "auths") 32 return res, err 33 } 34 35 type AppAuthResp struct { 36 ID string `json:"id"` 37 ApiID string `json:"api_id"` 38 AuthResult AuthResult `json:"auth_result"` 39 AuthTime string `json:"auth_time"` 40 AppID string `json:"app_id"` 41 AuthRole string `json:"auth_role"` 42 AuthTunnel string `json:"auth_tunnel"` 43 AuthWhitelist []string `json:"auth_whitelist"` 44 AuthBlacklist []string `json:"auth_blacklist"` 45 VisitParams string `json:"visit_params"` 46 } 47 48 type AuthResult struct { 49 Status string `json:"status"` 50 ErrorMsg string `json:"error_msg"` 51 ErrorCode string `json:"error_code"` 52 ApiName string `json:"api_name"` 53 AppName string `json:"app_name"` 54 }