Skip to main content

Projects

ARGO Messaging Service supports project entities as a basis of organizing and isolating groups of users & resources

[GET] Manage Projects - List all projects

This request lists all available projects in the service

Request

GET "/v1/projects"

Example request

curl -X GET -H "Content-Type: application/json"
"https://{URL}/v1/projects?key=S3CR3T"

Responses

If successful, the response contains a list of all available projects

Success Response 200 OK

{
"projects": [
{
"name": "PROJECT_1",
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z",
"created_by": "userA",
"description": "simple project"
},
{
"name": "PROJECT_2",
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z",
"created_by": "userA",
"description": "simple project"
},
{
"name": "BRAND_NEW",
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z",
"created_by": "userA",
"description": "brand new project"
}
]
}

Errors

Please refer to section Errors to see all possible Errors

[GET] Manage Projects - List a specific project

This request lists information about a specific project

Request

GET "/v1/projects/{project_name}"

Where

  • Project_name: Name of the project to get information on

Example request

curl -X GET -H "Content-Type: application/json"
"https://{URL}/v1/projects/BRAND_NEW?key=S3CR3T"

Responses

If successful, the response contains information about the specific project

Success Response 200 OK

{
"name": "BRAND_NEW",
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z",
"created_by": "userA",
"description": "brand new project"
}

Errors

Please refer to section Errors to see all possible Errors

[POST] Manage Projects - Create new project

This request creates a new project with the given project_name with a POST request

Request

POST "/v1/projects/{project_name}"

Where

  • Project_name: Name of the project to create

Post body:

{
"description" : "a simple description"
}

Example request

curl -X POST -H "Content-Type: application/json"
-d $POSTDATA "https://{URL}/v1/projects/PROJECT_NEW?key=S3CR3T"

Responses

If successful, the response contains the newly created project

Success Response 200 OK

{
"name": "PROJET_NEW",
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z",
"created_by": "userA",
"description": "brand new project"
}

Errors

Please refer to section Errors to see all possible Errors

[PUT] Manage Projects - Update a project

This request updates information (such as name,description) on an existing project (PUT)

Request

PUT "/v1/projects/{project_name}"

Where

  • Project_name: Name of the project to create

PUT body:

{
"name":"new project name",
"description" : "a simple description"
}

Example request

curl -X PUT -H "Content-Type: application/json"
-d $POSTDATA "https://{URL}/v1/projects/PROJECT_NEW?key=S3CR3T"

Responses

If successful, the response contains the newly updated

Success Response 200 OK

{
"name": "PROJET_NEW_UPDATED",
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-13T23:00:00Z",
"created_by": "userA",
"description": "description project updated"
}

Errors

Please refer to section Errors to see all possible Errors

[DELETE] Manage Projects - Delete Project

This request deletes a specific project

Request

DELETE "/v1/projects/{project_name}"

Where

  • Project_name: Name of the project to delete

Example request

curl -X DELETE -H "Content-Type: application/json"  
"https://{URL}/v1/projects/BRAND_NEW?key=S3CR3T"

Responses

Success Response Code: 200 OK, Empty response if successful.

Errors

Please refer to section Errors to see all possible Errors

[GET] List all users that are members of a specific project

Example request

curl -X GET -H "Content-Type: application/json"
"https://{URL}/v1/projects/ARGO2/members?key=S3CR3T"

Responses

If successful, the response contains a list of all available users in the specific project

Success Response 200 OK

{
"users": [
{
"uuid": "99bfd746-4ebe-11e8-9c2d-fa7ae01bbebw",
"projects": [
{
"project": "ARGO2",
"roles": [
"consumer",
"publisher"
],
"topics": [],
"subscriptions": []
}
],
"name": "Test",
"token": "S3CR3T",
"email": "Test@test.com",
"service_roles": [],
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z"
}
],
"nextPageToken": "",
"totalSize": 1
}

Unprivileged mode (non service_admin user)

When a user is project_admin instead of service_admin and lists a project's users the results returned remove user information such as token, service_roles and created_by For example:

{
"users": [
{
"uuid": "99bfd746-4ebe-11e8-9c2d-fa7ae01bbebw",
"projects": [
{
"project": "ARGO2",
"roles": [
"consumer",
"publisher"
],
"topics": [],
"subscriptions": []
}
],
"name": "Test",
"token": "",
"email": "Test@test.com",
"service_roles": [],
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z"
}
],
"nextPageToken": "",
"totalSize": 1
}

[GET] Show a specific member user of the specific project

Example request

curl -X GET -H "Content-Type: application/json"
"https://{URL}/v1/projects/ARGO2/members/Test?key=S3CR3T"

Responses

If successful, the response contains information of the specific user Test

Success Response 200 OK

{
"users": [
{
"uuid": "99bfd746-4ebe-11e8-9c2d-fa7ae01bbebw",
"projects": [
{
"project": "ARGO2",
"roles": [
"consumer",
"publisher"
],
"topics": [],
"subscriptions": []
}
],
"name": "Test",
"token": "S3CR3T",
"email": "Test@test.com",
"service_roles": [],
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z"
}
],
"nextPageToken": "",
"totalSize": 1
}

Errors

Please refer to section Errors to see all possible Errors

[POST] Create a new member user under the specific project

Example request

curl -X POST -H "Content-Type: application/json"
-d $POSTDATA "https://{URL}/v1/projects/ARGO2/members/NewUser?key=S3CR3T"

Post body:

{
"projects": [
{
"project": "ARGO2",
"roles": ["consumer"]
}
],
"email": "email@test.com"
}

Responses

If successful, the response contains information about the newly created user

Success Response 200 OK

{

"uuid": "99bfd746-4ebe-11e8-9c2d-fa7ae01bbebw",
"projects": [
{
"project": "ARGO2",
"roles": [
"consumer"
],
"topics": [],
"subscriptions": []
}
],
"name": "NewUSer",
"token": "S3CR3T",
"email": "email@test.com",
"service_roles": [],
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z"
}

Errors

Please refer to section Errors to see all possible Errors

[PUT] Updates the roles for a member user under the specific project

Example request

curl -X PUT -H "Content-Type: application/json"
-d $POSTDATA "https://{URL}/v1/projects/ARGO2/members/NewUser?key=S3CR3T"

Post body:

{
"projects": [
{
"project": "ARGO2",
"roles": ["consumer"]
}
]
}

Responses

If successful, the response contains information about the updated user

Success Response 200 OK

{

"uuid": "99bfd746-4ebe-11e8-9c2d-fa7ae01bbebw",
"projects": [
{
"project": "ARGO2",
"roles": [
"consumer"
],
"topics": [],
"subscriptions": []
}
],
"name": "NewUSer",
"token": "S3CR3T",
"email": "email@test.com",
"service_roles": [],
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z"
}

Errors

Please refer to section Errors to see all possible Errors

[POST] Add/Invite a user to a project

Example request

curl -X POST -H "Content-Type: application/json"
-d $POSTDATA "https://{URL}/v1/projects/ARGO2/members/NewUser:add?key=S3CR3T"

Post body:

{
"roles": ["consumer"],
"topics": ["topic1"],
"subscriptions": ["sub1"]
}

Responses

If successful, the response contains information about the added user

Success Response 200 OK

{

"uuid": "99bfd746-4ebe-11e8-9c2d-fa7ae01bbebw",
"projects": [
{
"project": "ARGO2",
"roles": [
"consumer"
],
"topics": [
"topic1"
],
"subscriptions": [
"sub1"
]
}
],
"name": "NewUSer",
"token": "S3CR3T",
"email": "email@test.com",
"service_roles": [],
"created_on": "2009-11-10T23:00:00Z",
"modified_on": "2009-11-10T23:00:00Z"
}

Errors

Please refer to section Errors to see all possible Errors

[POST] Remove a user from the project

Example request

curl -X POST -H "Content-Type: application/json"
"https://{URL}/v1/projects/ARGO2/members/NewUser:remove?key=S3CR3T"

Responses

Empty response on success 200 OK

{}

Errors

Please refer to section Errors to see all possible Errors

[GET] Project Metrics

The following request returns related metrics for the specific project: e.g.. the number of topics

Request

GET "/v1/projects/{project_name}:metrics"

Where

  • Project_name: name of the project
  • topic_name: name of the topic

Example request

curl  -H "Content-Type: application/json"
"https://{URL}/v1/projects/BRAND_NEW:metrics?key=S3CR3T"

Responses

If successful it returns projects related metrics (number of topics, number of subscriptions).

Success Response 200 OK

{
"metrics": [
{
"metric": "project.number_of_topics",
"metric_type": "counter",
"value_type": "int64",
"resource_type": "project",
"resource_name": "ARGO",
"timeseries": [
{
"timestamp": "2017-06-30T13:53:13Z",
"value": 3
}
],
"description": "Counter that displays the number of topics belonging to the specific project"
},
{
"metric": "project.number_of_subscriptions",
"metric_type": "counter",
"value_type": "int64",
"resource_type": "project",
"resource_name": "ARGO",
"timeseries": [
{
"timestamp": "2017-06-30T13:53:13Z",
"value": 4
}
],
"description": "Counter that displays the number of subscriptions belonging to the specific project"
},
{
"metric": "project.user.number_of_subscriptions",
"metric_type": "counter",
"value_type": "int64",
"resource_type": "project.user",
"resource_name": "ARGO.UserA",
"timeseries": [
{
"timestamp": "2017-06-30T13:53:13Z",
"value": 3
}
],
"description": "Counter that displays the number of subscriptions that a user has access to the specific project"
},
{
"metric": "project.user.number_of_subscriptions",
"metric_type": "counter",
"value_type": "int64",
"resource_type": "project.user",
"resource_name": "ARGO.UserB",
"timeseries": [
{
"timestamp": "2017-06-30T13:53:13Z",
"value": 3
}
],
"description": "Counter that displays the number of subscriptions that a user has access to the specific project"
},
{
"metric": "project.user.number_of_subscriptions",
"metric_type": "counter",
"value_type": "int64",
"resource_type": "project.user",
"resource_name": "ARGO.UserX",
"timeseries": [
{
"timestamp": "2017-06-30T13:53:13Z",
"value": 1
}
],
"description": "Counter that displays the number of subscriptions that a user has access to the specific project"
},
{
"metric": "project.user.number_of_subscriptions",
"metric_type": "counter",
"value_type": "int64",
"resource_type": "project.user",
"resource_name": "ARGO.UserZ",
"timeseries": [
{
"timestamp": "2017-06-30T13:53:13Z",
"value": 2
}
],
"description": "Counter that displays the number of subscriptions that a user has access to the specific project"
},
{
"metric": "project.number_of_daily_messages",
"metric_type": "counter",
"value_type": "int64",
"resource_type": "project",
"resource_name": "ARGO",
"timeseries": [
{
"timestamp": "2018-10-02",
"value": 30
},
{
"timestamp": "2018-10-01",
"value": 110
}
],
"description": "A collection of counters that represents the total number of messages published each day to all of the project's topics"
}
]
}

Errors

Please refer to section Errors to see all possible Errors