You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
terraform-provider-decort/internal/service/cloudbroker/user/schema.go

530 lines
11 KiB

package user
import (
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
log "github.com/sirupsen/logrus"
)
func dataSourceUserSchemaMake() map[string]*schema.Schema {
return map[string]*schema.Schema{
"user_id": {
Type: schema.TypeString,
Required: true,
Description: "user_id",
},
"ckey": {
Type: schema.TypeString,
Computed: true,
Description: "ckey",
},
"meta": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "meta",
},
"active": {
Type: schema.TypeBool,
Computed: true,
Description: "active",
},
"api_access": {
Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "api_access",
},
"authkey": {
Type: schema.TypeString,
Computed: true,
Description: "authkey",
},
"authkeys": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "authkeys",
},
"data": {
Type: schema.TypeString,
Computed: true,
Description: "data",
},
"description": {
Type: schema.TypeString,
Computed: true,
Description: "description",
},
"domain": {
Type: schema.TypeString,
Computed: true,
Description: "domain",
},
"emails": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "emails",
},
"gid": {
Type: schema.TypeInt,
Computed: true,
Description: "gid",
},
"groups": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "groups",
},
"guid": {
Type: schema.TypeString,
Computed: true,
Description: "guid",
},
"last_check": {
Type: schema.TypeInt,
Computed: true,
Description: "last_check",
},
"mobile": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "mobile",
},
"password": {
Type: schema.TypeString,
Computed: true,
Description: "password",
},
"protected": {
Type: schema.TypeBool,
Computed: true,
Description: "protected",
},
"roles": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "roles",
},
"service_account": {
Type: schema.TypeBool,
Computed: true,
Description: "service_account",
},
"xmpp": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "xmpp",
},
}
}
func dataSourceUserGetAuditSchemaMake() map[string]*schema.Schema {
return map[string]*schema.Schema{
"username": {
Type: schema.TypeString,
Optional: true,
Description: "name of user (get audits for current user if set to empty)",
},
"call": {
Type: schema.TypeString,
Optional: true,
Description: "find by api call",
},
"status_code": {
Type: schema.TypeInt,
Optional: true,
Description: "find by status code",
},
"timestamp_at": {
Type: schema.TypeInt,
Optional: true,
Description: "find all audits after point in time (unixtime)",
},
"timestamp_to": {
Type: schema.TypeInt,
Optional: true,
Description: "find all audits before point in time (unixtime)",
},
"page": {
Type: schema.TypeInt,
Optional: true,
Description: "Page number",
},
"size": {
Type: schema.TypeInt,
Optional: true,
Description: "Page size",
},
"items": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"call": {
Type: schema.TypeString,
Computed: true,
},
"response_time": {
Type: schema.TypeFloat,
Computed: true,
},
"status_code": {
Type: schema.TypeInt,
Computed: true,
},
"time": {
Type: schema.TypeFloat,
Computed: true,
},
"guid": {
Type: schema.TypeString,
Computed: true,
},
},
},
},
"entry_count": {
Type: schema.TypeInt,
Computed: true,
Description: "entry_count",
},
}
}
func dataSourceUserListSchemaMake() map[string]*schema.Schema {
return map[string]*schema.Schema{
"by_id": {
Type: schema.TypeString,
Optional: true,
Description: "find by id",
},
"active": {
Type: schema.TypeBool,
Optional: true,
Description: "find by active. True or False",
},
"service_account": {
Type: schema.TypeBool,
Optional: true,
Description: "find by service account. True or False",
},
"sort_by": {
Type: schema.TypeString,
Optional: true,
Description: "sort by one of supported fields, format +|-(field)",
},
"page": {
Type: schema.TypeInt,
Optional: true,
Description: "Page number",
},
"size": {
Type: schema.TypeInt,
Optional: true,
Description: "Page size",
},
"items": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
"ckey": {
Type: schema.TypeString,
Computed: true,
Description: "ckey",
},
"meta": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "meta",
},
"active": {
Type: schema.TypeBool,
Computed: true,
Description: "active",
},
"apiaccess": {
Type: schema.TypeMap,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "apiaccess",
},
"authkey": {
Type: schema.TypeString,
Computed: true,
Description: "authkey",
},
"authkeys": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "authkeys",
},
"data": {
Type: schema.TypeString,
Computed: true,
Description: "data",
},
"description": {
Type: schema.TypeString,
Computed: true,
Description: "description",
},
"domain": {
Type: schema.TypeString,
Computed: true,
Description: "domain",
},
"emails": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "emails",
},
"gid": {
Type: schema.TypeInt,
Computed: true,
Description: "gid",
},
"groups": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "groups",
},
"guid": {
Type: schema.TypeString,
Computed: true,
Description: "guid",
},
"user_id": {
Type: schema.TypeString,
Computed: true,
Description: "user id",
},
"last_check": {
Type: schema.TypeInt,
Computed: true,
Description: "last_check",
},
"mobile": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "mobile",
},
"password": {
Type: schema.TypeString,
Computed: true,
Description: "password",
},
"protected": {
Type: schema.TypeBool,
Computed: true,
Description: "protected",
},
"roles": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "roles",
},
"service_account": {
Type: schema.TypeBool,
Computed: true,
Description: "service_account",
},
"xmpp": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "xmpp",
},
},
},
},
"entry_count": {
Type: schema.TypeInt,
Computed: true,
Description: "entry_count",
},
}
}
func resourceUserSchemaMake() map[string]*schema.Schema {
log.Debugf("resourceUserSchemaMake: invoked")
return map[string]*schema.Schema{
"username": {
Type: schema.TypeString,
Required: true,
Description: "ID of user",
},
"emailaddress": {
Type: schema.TypeList,
Required: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "email addresses of the user",
},
"password": {
Type: schema.TypeString,
Optional: true,
Description: "password of user",
},
"groups": {
Type: schema.TypeList,
Optional: true,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "list of groups this user belongs to",
},
"ckey": {
Type: schema.TypeString,
Computed: true,
Description: "ckey",
},
"meta": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "meta",
},
"active": {
Type: schema.TypeBool,
Computed: true,
Description: "active",
},
"apiaccess": {
Type: schema.TypeSet,
Optional: true,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeInt,
},
Description: "list of apiaccess groups this user belongs to",
},
"authkey": {
Type: schema.TypeString,
Computed: true,
Description: "authkey",
},
"auth_keys": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "authkeys",
},
"data": {
Type: schema.TypeString,
Computed: true,
Description: "data",
},
"description": {
Type: schema.TypeString,
Computed: true,
Description: "description",
},
"domain": {
Type: schema.TypeString,
Computed: true,
Description: "domain",
},
"gid": {
Type: schema.TypeInt,
Computed: true,
Description: "gid",
},
"guid": {
Type: schema.TypeString,
Computed: true,
Description: "guid",
},
"last_check": {
Type: schema.TypeInt,
Computed: true,
Description: "last_check",
},
"mobile": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "mobile",
},
"protected": {
Type: schema.TypeBool,
Computed: true,
Description: "protected",
},
"roles": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "roles",
},
"service_account": {
Type: schema.TypeBool,
Computed: true,
Description: "service_account",
},
"xmpp": {
Type: schema.TypeList,
Computed: true,
Elem: &schema.Schema{
Type: schema.TypeString,
},
Description: "xmpp",
},
}
}