1package v2 2 3// automatically generated file, do not edit! 4 5import ( 6 "fmt" 7 "reflect" 8) 9 10// typeMap is used to dynamically look up data types from strings. 11var typeMap = map[string]interface{}{ 12 "AdhocRequest": &AdhocRequest{}, 13 "adhoc_request": &AdhocRequest{}, 14 "Any": &Any{}, 15 "any": &Any{}, 16 "Asset": &Asset{}, 17 "asset": &Asset{}, 18 "AuthProviderClaims": &AuthProviderClaims{}, 19 "auth_provider_claims": &AuthProviderClaims{}, 20 "Check": &Check{}, 21 "check": &Check{}, 22 "CheckConfig": &CheckConfig{}, 23 "check_config": &CheckConfig{}, 24 "CheckHistory": &CheckHistory{}, 25 "check_history": &CheckHistory{}, 26 "CheckRequest": &CheckRequest{}, 27 "check_request": &CheckRequest{}, 28 "Claims": &Claims{}, 29 "claims": &Claims{}, 30 "ClusterHealth": &ClusterHealth{}, 31 "cluster_health": &ClusterHealth{}, 32 "ClusterRole": &ClusterRole{}, 33 "cluster_role": &ClusterRole{}, 34 "ClusterRoleBinding": &ClusterRoleBinding{}, 35 "cluster_role_binding": &ClusterRoleBinding{}, 36 "Deregistration": &Deregistration{}, 37 "deregistration": &Deregistration{}, 38 "Entity": &Entity{}, 39 "entity": &Entity{}, 40 "Event": &Event{}, 41 "event": &Event{}, 42 "EventFilter": &EventFilter{}, 43 "event_filter": &EventFilter{}, 44 "Extension": &Extension{}, 45 "extension": &Extension{}, 46 "Handler": &Handler{}, 47 "handler": &Handler{}, 48 "HandlerSocket": &HandlerSocket{}, 49 "handler_socket": &HandlerSocket{}, 50 "HealthResponse": &HealthResponse{}, 51 "health_response": &HealthResponse{}, 52 "Hook": &Hook{}, 53 "hook": &Hook{}, 54 "HookConfig": &HookConfig{}, 55 "hook_config": &HookConfig{}, 56 "HookList": &HookList{}, 57 "hook_list": &HookList{}, 58 "KeepaliveRecord": &KeepaliveRecord{}, 59 "keepalive_record": &KeepaliveRecord{}, 60 "MetricPoint": &MetricPoint{}, 61 "metric_point": &MetricPoint{}, 62 "MetricTag": &MetricTag{}, 63 "metric_tag": &MetricTag{}, 64 "Metrics": &Metrics{}, 65 "metrics": &Metrics{}, 66 "Mutator": &Mutator{}, 67 "mutator": &Mutator{}, 68 "Namespace": &Namespace{}, 69 "namespace": &Namespace{}, 70 "Network": &Network{}, 71 "network": &Network{}, 72 "NetworkInterface": &NetworkInterface{}, 73 "network_interface": &NetworkInterface{}, 74 "ObjectMeta": &ObjectMeta{}, 75 "object_meta": &ObjectMeta{}, 76 "ProxyRequests": &ProxyRequests{}, 77 "proxy_requests": &ProxyRequests{}, 78 "Role": &Role{}, 79 "role": &Role{}, 80 "RoleBinding": &RoleBinding{}, 81 "role_binding": &RoleBinding{}, 82 "RoleRef": &RoleRef{}, 83 "role_ref": &RoleRef{}, 84 "Rule": &Rule{}, 85 "rule": &Rule{}, 86 "Silenced": &Silenced{}, 87 "silenced": &Silenced{}, 88 "Subject": &Subject{}, 89 "subject": &Subject{}, 90 "System": &System{}, 91 "system": &System{}, 92 "TLSOptions": &TLSOptions{}, 93 "tls_options": &TLSOptions{}, 94 "TessenConfig": &TessenConfig{}, 95 "tessen_config": &TessenConfig{}, 96 "TimeWindowDays": &TimeWindowDays{}, 97 "time_window_days": &TimeWindowDays{}, 98 "TimeWindowTimeRange": &TimeWindowTimeRange{}, 99 "time_window_time_range": &TimeWindowTimeRange{}, 100 "TimeWindowWhen": &TimeWindowWhen{}, 101 "time_window_when": &TimeWindowWhen{}, 102 "Tokens": &Tokens{}, 103 "tokens": &Tokens{}, 104 "TypeMeta": &TypeMeta{}, 105 "type_meta": &TypeMeta{}, 106 "User": &User{}, 107 "user": &User{}, 108 "Version": &Version{}, 109 "version": &Version{}, 110} 111 112// ResolveResource returns a zero-valued resource, given a name. 113// If the named type does not exist, or if the type is not a Resource, 114// then an error will be returned. 115func ResolveResource(name string) (Resource, error) { 116 t, ok := typeMap[name] 117 if !ok { 118 return nil, fmt.Errorf("type could not be found: %q", name) 119 } 120 if _, ok := t.(Resource); !ok { 121 return nil, fmt.Errorf("%q is not a Resource", name) 122 } 123 return newResource(t), nil 124} 125 126// Make a new Resource to avoid aliasing problems with ResolveResource. 127// don't use this function. no, seriously. 128func newResource(r interface{}) Resource { 129 return reflect.New(reflect.ValueOf(r).Elem().Type()).Interface().(Resource) 130} 131