Revoke consent for subscription
WARNING
This API is in alpha and is subject to change. We do not recommend using this in production.
Prerequisites
Required scope
subscription.consent:write
Code
TIP
You can test our APIs without authorization by targetting sandbox.api.wgtwo.com
instead of api.wgtwo.com
and removing any authorization from the request/code sample.
Download proto definitions
curl -sL 'https://github.com/working-group-two/wgtwoapis/blob/master/image.bin?raw=true' -o wgtwo.bin
1
export ACCESS_TOKEN="my_client_access_token"
grpcurl -protoset wgtwo.bin \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-d '
{
"id": {
"value": "my_unique_subscription_id_here",
"tenant": {
"name": "my_tenant_name_here"
}
},
"productId": "my_product_id_here"
}' \
api.wgtwo.com:443 \
wgtwo.consents.v0.ConsentService/RevokeConsentForSubscription
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Example result success
{
"statusCode": "STATUS_CODE_OK"
}
1
2
3
2
3
Example result error
{
"statusCode": "STATUS_CODE_ACCESS_DENIED",
"errorMessage": "Error message from fake API that matches the status code"
}
1
2
3
4
2
3
4
Install dependencies
Maven
<dependency>
<groupId>com.wgtwo.api.v0.grpc</groupId>
<artifactId>consents</artifactId>
<version>0.1.10</version>
</dependency>
package com.example.consents
import com.wgtwo.api.v0.common.TypesProto
import com.wgtwo.api.v0.consent.ConsentServiceGrpc
import com.wgtwo.api.v0.consent.ConsentsProto.CreateConsentForSubscriptionRequest
import com.wgtwo.auth.BearerTokenCallCredentials
import io.grpc.ManagedChannelBuilder
/** Use the sandbox environment for testing without authentication */
private val environment = Environment.SANDBOX
private val endpoint = when (environment) {
Environment.SANDBOX -> "sandbox.api.wgtwo.com"
Environment.PRODUCTION -> "api.wgtwo.com"
}
private val channel = ManagedChannelBuilder.forAddress(endpoint, 443).build()
private val stub = ConsentServiceGrpc.newBlockingStub(channel).apply {
/**
* If you are not using the sandbox, you need to add credentials.
* The BearerTokenCallCredentials class can be found in our auth library.
*/
if (environment == Environment.PRODUCTION) {
this.withCallCredentials(BearerTokenCallCredentials { "MY_CLIENT_ACCESS_TOKEN" })
}
}
fun main(vararg args: String) {
val subscriptionId = "my_unique_subscription_id_here"
val tenant = "my_tenant_name_here"
val productId = "my_product_id"
val request = CreateConsentForSubscriptionRequest.newBuilder().apply {
this.id = TypesProto.SubscriptionIdentifier.newBuilder().apply {
this.value = subscriptionId
this.tenant = TypesProto.Tenant.newBuilder().apply {
this.name = tenant
}.build()
}.build()
this.productId = productId
}.build()
println("Request:\n$request")
val response = stub.createConsentForSubscription(request)
println("Response:\n$response")
channel.shutdownNow()
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Example result success
status_code: STATUS_CODE_OK
1
Example result error
status_code: STATUS_CODE_INTERNAL_ERROR
error_message: "Error message from fake API that matches the status code"
1
2
2