Get Target Groups
This command gets Target Groups for an app.
https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups
var request = require("request");
var options = {
method: 'GET',
url: 'https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups',
headers: {
accept: 'application/json',
authorization: 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
curl --request GET \
--url https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups \
--header 'accept: application/json' \
--header 'authorization: Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json'
request["authorization"] = 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
response = http.request(request)
puts response.read_body
import requests
url = "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups"
headers = {
'accept': "application/json",
'authorization': "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups")
.get()
.addHeader("accept", "application/json")
.addHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
.build();
Response response = client.newCall(request).execute();
var client = new RestClient("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6");
IRestResponse response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accept", "application/json")
req.Header.Add("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
Target groups response
Example:
[
{
"type": "target-group",
"name": "tg",
"description": "tg desc",
"operator": "or",
"conditions": [
{
"operator": "is-true",
"property": "Foo"
}
]
}
]
Response schema type: array of objects
-
String - type type of the yaml object, have to be target-group
-
String - name The name of the target group
-
String - description The description of the target group
-
String - operator [optional] The logical relationship between conditions 'or'|'and' ('or' if omitted)
-
[Object] conditions
-
String conditions[].property - The Custom property to be conditioned (first operand)
-
String|Number|[String] conditions[].operand - [optional] The value to compare with the property and operator (second operand)
-
String conditions[].operator - The Operator of the condition (one of: 'in-array'|'is-undefined'|'is-true'| 'is-false'|'eq'|'ne'|'gte'|'gt'|'lt'|'lte'|'regex'| 'semver-ne'|'semver-eq'|'semver-gt'|'semver-gte'|'semver-lt'|'semver-lte')
-
Create Target Group
Add a new Target group or override an existing one.
https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups
var request = require("request");
var options = {
method: 'PUT',
url: 'https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups',
headers: {
'content-type': 'application/json',
authorization: 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
},
body: {
conditions: [{operator: 'is-true', property: 'Foo', operand: 'run'}],
apiVersion: '1.0',
type: 'target-group',
name: 'tg',
description: 'tg desc',
operator: 'or',
value: '0'
},
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
curl --request PUT \
--url https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups \
--header 'authorization: Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6' \
--header 'content-type: application/json' \
--data '{"conditions":[{"operator":"is-true","property":"Foo","operand":"run"}],"apiVersion":"1.0","type":"target-group","name":"tg","description":"tg desc","operator":"or","value":"0"}'
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Put.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
request.body = "{\"conditions\":[{\"operator\":\"is-true\",\"property\":\"Foo\",\"operand\":\"run\"}],\"apiVersion\":\"1.0\",\"type\":\"target-group\",\"name\":\"tg\",\"description\":\"tg desc\",\"operator\":\"or\",\"value\":\"0\"}"
response = http.request(request)
puts response.read_body
import requests
url = "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups"
payload = "{\"conditions\":[{\"operator\":\"is-true\",\"property\":\"Foo\",\"operand\":\"run\"}],\"apiVersion\":\"1.0\",\"type\":\"target-group\",\"name\":\"tg\",\"description\":\"tg desc\",\"operator\":\"or\",\"value\":\"0\"}"
headers = {
'content-type': "application/json",
'authorization': "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6"
}
response = requests.request("PUT", url, data=payload, headers=headers)
print(response.text)
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"conditions\":[{\"operator\":\"is-true\",\"property\":\"Foo\",\"operand\":\"run\"}],\"apiVersion\":\"1.0\",\"type\":\"target-group\",\"name\":\"tg\",\"description\":\"tg desc\",\"operator\":\"or\",\"value\":\"0\"}");
Request request = new Request.Builder()
.url("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups")
.put(body)
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
.build();
Response response = client.newCall(request).execute();
var client = new RestClient("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups");
var request = new RestRequest(Method.PUT);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6");
request.AddParameter("application/json", "{\"conditions\":[{\"operator\":\"is-true\",\"property\":\"Foo\",\"operand\":\"run\"}],\"apiVersion\":\"1.0\",\"type\":\"target-group\",\"name\":\"tg\",\"description\":\"tg desc\",\"operator\":\"or\",\"value\":\"0\"}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups"
payload := strings.NewReader("{\"conditions\":[{\"operator\":\"is-true\",\"property\":\"Foo\",\"operand\":\"run\"}],\"apiVersion\":\"1.0\",\"type\":\"target-group\",\"name\":\"tg\",\"description\":\"tg desc\",\"operator\":\"or\",\"value\":\"0\"}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("content-type", "application/json")
req.Header.Add("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
BODY PARAMS
-
apiVersion string - Yaml api version
-
type string - type of the yaml object, have to be target-group
-
name string - The name of the target group
-
description string - The description of the target group
-
operator string - [optional] The logical relationship between conditions 'or'|'and' ('or' if omitted)
-
conditions [object] - Array of conditions
-
conditions[].property string - The Custom property to be conditioned (first operand)
-
conditions[].operand string|number|[string] - [optional] The value to compare with the property and operator (second operand)
-
conditions[].operator string - The Operator of the condition (one of: 'in-array'|'is-undefined'|'is-true'| 'is-false'|'eq'|'ne'|'gte'|'gt'|'lt'|'lte'|'regex'| 'semver-ne'|'semver-eq'|'semver-gt'|'semver-gte'|'semver-lt'|'semver-lte')
-
Get Target Group
Get Target Group object by its name
https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/name
var request = require("request");
var options = {
method: 'GET',
url: 'https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup',
headers: {
accept: 'application/json',
authorization: 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
curl --request GET \
--url https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup \
--header 'accept: application/json' \
--header 'authorization: Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Get.new(url)
request["accept"] = 'application/json'
request["authorization"] = 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
response = http.request(request)
puts response.read_body
import requests
url = "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup"
headers = {
'accept': "application/json",
'authorization': "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup")
.get()
.addHeader("accept", "application/json")
.addHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
.build();
Response response = client.newCall(request).execute();
var client = new RestClient("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup");
var request = new RestRequest(Method.GET);
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6");
IRestResponse response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("accept", "application/json")
req.Header.Add("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
Target groups response
Example:
{
"type": "target-group",
"name": "tg",
"description": "tg desc",
"operator": "or",
"conditions": [
{
"operator": "is-true",
"property": "Foo"
}
]
}
Response schema type: object
-
String type - type of the yaml object, have to be target-group
-
String name - The name of the target group
-
String description - The description of the target group
-
String - operator [optional] The logical relationship between conditions 'or'|'and' ('or' if omitted)
-
[Object] conditions
-
String conditions[].property - The Custom property to be conditioned (first operand)
-
String|Number|[String] conditions[].operand - [optional] The value to compare with the property and operator (second operand)
-
String conditions[].operator - The Operator of the condition (one of: 'in-array'|'is-undefined'|'is-true'| 'is-false'|'eq'|'ne'|'gte'|'gt'|'lt'|'lte'|'regex'| 'semver-ne'|'semver-eq'|'semver-gt'|'semver-gte'|'semver-lt'|'semver-lte')
-
Patch Target Group
Patch Target Group object by name, patching is done according to JSON-Patch (RFC6902)
https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/name
var request = require("request");
var options = {
method: 'PATCH',
url: 'https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup',
headers: {
'content-type': 'application/json',
authorization: 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
},
body: [{op: 'add', path: '/acmePath', value: 'baz', from: 'fooBar'}],
json: true
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
curl --request PATCH \
--url https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup \
--header 'authorization: Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6' \
--header 'content-type: application/json' \
--data '[{"op":"add","path":"/acmePath","value":"baz","from":"fooBar"}]'
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Patch.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
request.body = "[{\"op\":\"add\",\"path\":\"/acmePath\",\"value\":\"baz\",\"from\":\"fooBar\"}]"
response = http.request(request)
puts response.read_body
import requests
url = "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup"
payload = "[{\"op\":\"add\",\"path\":\"/acmePath\",\"value\":\"baz\",\"from\":\"fooBar\"}]"
headers = {
'content-type': "application/json",
'authorization': "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6"
}
response = requests.request("PATCH", url, data=payload, headers=headers)
print(response.text)
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "[{\"op\":\"add\",\"path\":\"/acmePath\",\"value\":\"baz\",\"from\":\"fooBar\"}]");
Request request = new Request.Builder()
.url("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup")
.patch(body)
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
.build();
Response response = client.newCall(request).execute();
var client = new RestClient("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6");
request.AddParameter("application/json", "[{\"op\":\"add\",\"path\":\"/acmePath\",\"value\":\"baz\",\"from\":\"fooBar\"}]", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup"
payload := strings.NewReader("[{\"op\":\"add\",\"path\":\"/acmePath\",\"value\":\"baz\",\"from\":\"fooBar\"}]")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("content-type", "application/json")
req.Header.Add("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
BODY PARAMS
-
op string - The operation to be performed (one of
add
,remove
,replace
,move
,copy
,test
) -
path string - Path to the value that is to be changed. Ex:
path: /description
is like sayingtarget group.description
-
value string - The value to be used within the operations.
-
from string - A string containing a JSON Pointer value.
Delete Target Group
Delete Target Group by its name.
https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/name
var request = require("request");
var options = {
method: 'DELETE',
url: 'https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup',
headers: {authorization: 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
curl --request DELETE \
--url https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup \
--header 'authorization: Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'
response = http.request(request)
puts response.read_body
import requests
url = "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup"
headers = {'authorization': 'Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6'}
response = requests.request("DELETE", url, headers=headers)
print(response.text)
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup")
.delete(null)
.addHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
.build();
Response response = client.newCall(request).execute();
var client = new RestClient("https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup");
var request = new RestRequest(Method.DELETE);
request.AddHeader("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6");
IRestResponse response = client.Execute(request);
package main
import (
"fmt"
"net/http"
"io/ioutil"
)
func main() {
url := "https://x-api.rollout.io/public-api/applications/1a23bcd4e5fg6h7890i123j4/target-groups/fooGroup"
req, _ := http.NewRequest("DELETE", url, nil)
req.Header.Add("authorization", "Bearer b0c17g9f-79f4-69da-cc45-67db602c10d6")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
PATH PARAMS
-
applicationId* string - The application id
-
name* string - name of the target group
As a security measure, a rate limit has been implemented to one request per second, and is based on the requester IP address. Any requests at rates that exceed the rate limit will receive a |