github.com/franc20/ayesa_sap@v7.0.0-beta.28.0.20200124003224-302d4d52fa6c+incompatible/api/cloudcontroller/ccv3/query.go (about) 1 package ccv3 2 3 import ( 4 "net/url" 5 "strings" 6 ) 7 8 // QueryKey is the type of query that is being selected on. 9 type QueryKey string 10 11 const ( 12 // AppGUIDFilter is a query parameter for listing objects by app GUID. 13 AppGUIDFilter QueryKey = "app_guids" 14 // GUIDFilter is a query parameter for listing objects by GUID. 15 GUIDFilter QueryKey = "guids" 16 // LabelSelectorFilter is a query parameter for listing objects by label 17 LabelSelectorFilter QueryKey = "label_selector" 18 // NameFilter is a query parameter for listing objects by name. 19 NameFilter QueryKey = "names" 20 // NoRouteFilter is a query parameter for skipping route creation and unmapping existing routes. 21 NoRouteFilter QueryKey = "no_route" 22 // OrganizationGUIDFilter is a query parameter for listing objects by Organization GUID. 23 OrganizationGUIDFilter QueryKey = "organization_guids" 24 // SequenceIDFilter is a query parameter for listing objects by sequence ID. 25 SequenceIDFilter QueryKey = "sequence_ids" 26 // SpaceGUIDFilter is a query parameter for listing objects by Space GUID. 27 SpaceGUIDFilter QueryKey = "space_guids" 28 // StatusValueFilter is a query parameter for listing deployments by status.value 29 StatusValueFilter QueryKey = "status_values" 30 // DomainGUIDFilter is a query param for listing events by target_guid 31 TargetGUIDFilter QueryKey = "target_guids" 32 // DomainGUIDFilter is a query param for listing objects by domain_guid 33 DomainGUIDFilter QueryKey = "domain_guids" 34 // HostsFilter is a query param for listing objects by hostname 35 HostsFilter QueryKey = "hosts" 36 // HostFilter is a query param for getting an object with the given host 37 HostFilter QueryKey = "host" 38 // Origins filter is a query parameter when getting a user by origin (Note: CAPI will return an error if usernames filter is not also provided) 39 OriginsFilter QueryKey = "origins" 40 // PathsFilter is a query param for listing objects by path 41 PathsFilter QueryKey = "paths" 42 // PathFilter is a query param for getting an object with the given host 43 PathFilter QueryKey = "path" 44 // RoleTypesFilter is a query param for getting a role by type 45 RoleTypesFilter QueryKey = "types" 46 // StackFilter is a query parameter for listing objects by stack name 47 StackFilter QueryKey = "stacks" 48 // Unmapped filter is a query parameter specifying unmapped routes 49 UnmappedFilter QueryKey = "unmapped" 50 // UserGUIDFilter filter is a query parameter when getting a user by GUID 51 UserGUIDFilter QueryKey = "user_guids" 52 // Usernames filter is a query parameter when getting a user by username 53 UsernamesFilter QueryKey = "usernames" 54 // States filter is a query parameter when getting a package's droplets by state 55 StatesFilter QueryKey = "states" 56 57 // OrderBy is a query parameter to specify how to order objects. 58 OrderBy QueryKey = "order_by" 59 // PerPage is a query parameter for specifying the number of results per page. 60 PerPage QueryKey = "per_page" 61 // Include is a query parameter for specifying other resources associated with the 62 // resource returned by the endpoint 63 Include QueryKey = "include" 64 65 // NameOrder is a query value for ordering by name. This value is used in 66 // conjunction with the OrderBy QueryKey. 67 NameOrder = "name" 68 69 // PositionOrder is a query value for ordering by position. This value is 70 // used in conjunction with the OrderBy QueryKey. 71 PositionOrder = "position" 72 73 // CreatedAtDescendingOrder is a query value for ordering by created_at timestamp, 74 // in descending order. 75 CreatedAtDescendingOrder = "-created_at" 76 ) 77 78 // Query is additional settings that can be passed to some requests that can 79 // filter, sort, etc. the results. 80 type Query struct { 81 Key QueryKey 82 Values []string 83 } 84 85 // FormatQueryParameters converts a Query object into a collection that 86 // cloudcontroller.Request can accept. 87 func FormatQueryParameters(queries []Query) url.Values { 88 params := url.Values{} 89 for _, query := range queries { 90 params.Add(string(query.Key), strings.Join(query.Values, ",")) 91 } 92 93 return params 94 }