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.
530 lines
11 KiB
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",
|
|
},
|
|
}
|
|
}
|