Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 5 additions & 46 deletions .github/workflows/maven-itest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,44 +18,6 @@ on:
- main

jobs:
stage_itest:
runs-on: ubuntu-latest
environment: aio_stage
strategy:
fail-fast: true

steps:

# Check out Git repository
- name: Checkout code
uses: actions/checkout@v3

# Set up environment with Java and Maven
- name: Setup JDK
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: 11
cache: maven

# Build & Test
- name: Stage Integration Test with Maven
run: mvn -Daio_publish_url=$aio_publish_url -Daio_api_url=$aio_api_url -Daio_ims_url=$aio_ims_url -Daio_meta_scopes=$aio_meta_scopes -Daio_ims_org_id=$aio_ims_org_id -Daio_consumer_org_id=$aio_consumer_org_id -Daio_project_id=$aio_project_id -Daio_workspace_id=$aio_workspace_id -Daio_credential_id=$aio_credential_id -Daio_technical_account_id=$aio_technical_account_id -Daio_api_key=$aio_api_key -Daio_client_secret=$aio_client_secret -Daio_encoded_pkcs8=$aio_encoded_pkcs8 verify -Pitest
env:
aio_ims_url: ${{ secrets.aio_ims_url }}
aio_meta_scopes: ${{ secrets.aio_meta_scopes }}
aio_ims_org_id: ${{ secrets.aio_ims_org_id }}
aio_consumer_org_id: ${{ secrets.aio_consumer_org_id }}
aio_project_id: ${{ secrets.aio_project_id }}
aio_workspace_id: ${{ secrets.aio_workspace_id }}
aio_credential_id: ${{ secrets.aio_credential_id }}
aio_technical_account_id: ${{ secrets.aio_technical_account_id }}
aio_api_key: ${{ secrets.aio_api_key }}
aio_client_secret: ${{ secrets.aio_client_secret }}
aio_encoded_pkcs8: ${{ secrets.aio_encoded_pkcs8 }}
aio_api_url: ${{ secrets.aio_api_url }}
aio_publish_url: ${{ secrets.aio_publish_url }}

stage_oauth_itest:
runs-on: ubuntu-latest
environment: aio_stage_oauth
Expand Down Expand Up @@ -91,9 +53,9 @@ jobs:
aio_api_url: ${{ secrets.aio_api_url }}
aio_publish_url: ${{ secrets.aio_publish_url }}

prod_itest:
prod_oauth_itest:
runs-on: ubuntu-latest
environment: aio_prod
environment: prod_oauth_itest
strategy:
fail-fast: true

Expand All @@ -113,18 +75,15 @@ jobs:

# Build & Test
- name: Prod Integration Test with Maven
run: mvn -Daio_publish_url=$aio_publish_url -Daio_api_url=$aio_api_url -Daio_ims_url=$aio_ims_url -Daio_meta_scopes=$aio_meta_scopes -Daio_ims_org_id=$aio_ims_org_id -Daio_consumer_org_id=$aio_consumer_org_id -Daio_project_id=$aio_project_id -Daio_workspace_id=$aio_workspace_id -Daio_credential_id=$aio_credential_id -Daio_technical_account_id=$aio_technical_account_id -Daio_api_key=$aio_api_key -Daio_client_secret=$aio_client_secret -Daio_encoded_pkcs8=$aio_encoded_pkcs8 verify -Pitest
run: mvn -Daio_publish_url=$aio_publish_url -Daio_api_url=$aio_api_url -Daio_ims_url=$aio_ims_url -Daio_oauth_scopes=$aio_oauth_scopes -Daio_ims_org_id=$aio_ims_org_id -Daio_consumer_org_id=$aio_consumer_org_id -Daio_project_id=$aio_project_id -Daio_workspace_id=$aio_workspace_id -Daio_api_key=$aio_api_key -Daio_client_secret=$aio_client_secret verify -Pitest
env:
aio_ims_url: ${{ secrets.aio_ims_url }}
aio_meta_scopes: ${{ secrets.aio_meta_scopes }}
aio_client_secret: ${{ secrets.aio_client_secret }}
aio_oauth_scopes: ${{ secrets.aio_oauth_scopes }}
aio_ims_org_id: ${{ secrets.aio_ims_org_id }}
aio_consumer_org_id: ${{ secrets.aio_consumer_org_id }}
aio_project_id: ${{ secrets.aio_project_id }}
aio_workspace_id: ${{ secrets.aio_workspace_id }}
aio_credential_id: ${{ secrets.aio_credential_id }}
aio_technical_account_id: ${{ secrets.aio_technical_account_id }}
aio_api_key: ${{ secrets.aio_api_key }}
aio_client_secret: ${{ secrets.aio_client_secret }}
aio_encoded_pkcs8: ${{ secrets.aio_encoded_pkcs8 }}
aio_api_url: ${{ secrets.aio_api_url }}
aio_publish_url: ${{ secrets.aio_publish_url }}
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,19 @@
package com.adobe.aio.event.management;

import com.adobe.aio.event.management.feign.FeignRegistrationService;
import com.adobe.aio.event.management.model.CreateSubscriberFilterModel;
import com.adobe.aio.event.management.model.Registration;
import com.adobe.aio.event.management.model.RegistrationCreateModel;
import com.adobe.aio.event.management.model.RegistrationPaginatedModel;
import com.adobe.aio.event.management.model.RegistrationUpdateModel;
import com.adobe.aio.event.management.model.SubscriberFilterModel;
import com.adobe.aio.event.management.model.SubscriberFilterValidationInputModel;
import com.adobe.aio.event.management.model.SubscriberFilterValidationOutputModel;
import com.adobe.aio.workspace.Workspace;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;

public interface RegistrationService {

Expand All @@ -40,6 +46,59 @@ default Optional<RegistrationPaginatedModel> getAllRegistrationsForOrg() {

Optional<RegistrationPaginatedModel> getAllRegistrationsForOrg(long page, long size);

/**
* Validates a subscriber filter for a registration
*
* @param registrationId The registration ID
* @param validationInput The validation input containing the filter and optional custom sample events
* @return SubscriberFilterValidationOutputModel
*/
Optional<SubscriberFilterValidationOutputModel> validateSubscriberFilter(String registrationId, SubscriberFilterValidationInputModel validationInput);

/**
* Creates a new subscriber filter for a registration
*
* @param registrationId The registration ID
* @param createSubscriberFilterModel The subscriber filter to create
* @return SubscriberFilterModel
*/
Optional<SubscriberFilterModel> createSubscriberFilter(String registrationId, CreateSubscriberFilterModel createSubscriberFilterModel);

/**
* Gets all subscriber filters for a registration
*
* @param registrationId The registration ID
* @return Set of SubscriberFilterModel
*/
Optional<Set<SubscriberFilterModel>> getAllSubscriberFilters(String registrationId);

/**
* Gets a specific subscriber filter by ID
*
* @param registrationId The registration ID
* @param subscriberFilterId The subscriber filter ID
* @return SubscriberFilterModel
*/
Optional<SubscriberFilterModel> getSubscriberFilterById(String registrationId, UUID subscriberFilterId);

/**
* Updates a subscriber filter
*
* @param registrationId The registration ID
* @param subscriberFilterId The subscriber filter ID
* @param updateSubscriberFilterModel The updated subscriber filter
* @return SubscriberFilterModel
*/
Optional<SubscriberFilterModel> updateSubscriberFilter(String registrationId, UUID subscriberFilterId, CreateSubscriberFilterModel updateSubscriberFilterModel);

/**
* Deletes a subscriber filter
*
* @param registrationId The registration ID
* @param subscriberFilterId The subscriber filter ID
*/
void deleteSubscriberFilter(String registrationId, UUID subscriberFilterId);

static Builder builder() {
return new Builder();
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,21 @@
*/
package com.adobe.aio.event.management.api;

import com.adobe.aio.event.management.model.CreateSubscriberFilterModel;
import com.adobe.aio.event.management.model.Registration;
import com.adobe.aio.event.management.model.RegistrationCollection;
import com.adobe.aio.event.management.model.RegistrationCreateModel;
import com.adobe.aio.event.management.model.RegistrationPaginatedModel;
import com.adobe.aio.event.management.model.RegistrationUpdateModel;
import com.adobe.aio.event.management.model.SubscriberFilterModel;
import com.adobe.aio.event.management.model.SubscriberFilterValidationInputModel;
import com.adobe.aio.event.management.model.SubscriberFilterValidationOutputModel;
import feign.Headers;
import feign.Param;
import feign.RequestLine;
import java.util.Optional;
import java.util.Set;
import java.util.UUID;

@Headers({"Accept: application/hal+json"})
public interface RegistrationApi {
Expand Down Expand Up @@ -124,5 +130,122 @@ void delete(
@Param("registrationId") String registrationId
);

/**
* Validates a subscriber filter for a registration
*
* @param consumerOrgId Your consumer organization Id
* @param projectId The Id associated with your project
* @param workspaceId The Id associated with your workspace
* @param registrationId The Registration Id
* @param body The validation input containing the filter and optional custom sample events
* @return SubscriberFilterValidationOutputModel
*/
@RequestLine("POST /events/{consumerOrgId}/{projectId}/{workspaceId}/registrations/{registrationId}/filter/validate")
@Headers({"Content-Type: application/json", "Accept: application/json"})
Optional<SubscriberFilterValidationOutputModel> validateFilters(
@Param("consumerOrgId") String consumerOrgId,
@Param("projectId") String projectId,
@Param("workspaceId") String workspaceId,
@Param("registrationId") String registrationId,
SubscriberFilterValidationInputModel body
);

/**
* Creates a new subscriber filter for a registration
*
* @param consumerOrgId Your consumer organization Id
* @param projectId The Id associated with your project
* @param workspaceId The Id associated with your workspace
* @param registrationId The Registration Id
* @param body The subscriber filter to create
* @return SubscriberFilterModel
*/
@RequestLine("POST /events/{consumerOrgId}/{projectId}/{workspaceId}/registrations/{registrationId}/filters")
@Headers({"Content-Type: application/json", "Accept: application/json"})
Optional<SubscriberFilterModel> createSubscriberFilter(
@Param("consumerOrgId") String consumerOrgId,
@Param("projectId") String projectId,
@Param("workspaceId") String workspaceId,
@Param("registrationId") String registrationId,
CreateSubscriberFilterModel body
);

/**
* Gets all subscriber filters for a registration
*
* @param consumerOrgId Your consumer organization Id
* @param projectId The Id associated with your project
* @param workspaceId The Id associated with your workspace
* @param registrationId The Registration Id
* @return Set of SubscriberFilterModel
*/
@RequestLine("GET /events/{consumerOrgId}/{projectId}/{workspaceId}/registrations/{registrationId}/filters")
@Headers({"Accept: application/json"})
Optional<Set<SubscriberFilterModel>> getAllSubscriberFilters(
@Param("consumerOrgId") String consumerOrgId,
@Param("projectId") String projectId,
@Param("workspaceId") String workspaceId,
@Param("registrationId") String registrationId
);

/**
* Gets a specific subscriber filter by ID
*
* @param consumerOrgId Your consumer organization Id
* @param projectId The Id associated with your project
* @param workspaceId The Id associated with your workspace
* @param registrationId The Registration Id
* @param subscriberFilterId The Subscriber Filter Id
* @return SubscriberFilterModel
*/
@RequestLine("GET /events/{consumerOrgId}/{projectId}/{workspaceId}/registrations/{registrationId}/filters/{subscriberFilterId}")
@Headers({"Accept: application/json"})
Optional<SubscriberFilterModel> getSubscriberFilterById(
@Param("consumerOrgId") String consumerOrgId,
@Param("projectId") String projectId,
@Param("workspaceId") String workspaceId,
@Param("registrationId") String registrationId,
@Param("subscriberFilterId") UUID subscriberFilterId
);

/**
* Updates a subscriber filter
*
* @param consumerOrgId Your consumer organization Id
* @param projectId The Id associated with your project
* @param workspaceId The Id associated with your workspace
* @param registrationId The Registration Id
* @param subscriberFilterId The Subscriber Filter Id
* @param body The updated subscriber filter
* @return SubscriberFilterModel
*/
@RequestLine("PUT /events/{consumerOrgId}/{projectId}/{workspaceId}/registrations/{registrationId}/filters/{subscriberFilterId}")
@Headers({"Content-Type: application/json", "Accept: application/json"})
Optional<SubscriberFilterModel> updateSubscriberFilter(
@Param("consumerOrgId") String consumerOrgId,
@Param("projectId") String projectId,
@Param("workspaceId") String workspaceId,
@Param("registrationId") String registrationId,
@Param("subscriberFilterId") UUID subscriberFilterId,
CreateSubscriberFilterModel body
);

/**
* Deletes a subscriber filter
*
* @param consumerOrgId Your consumer organization Id
* @param projectId The Id associated with your project
* @param workspaceId The Id associated with your workspace
* @param registrationId The Registration Id
* @param subscriberFilterId The Subscriber Filter Id
*/
@RequestLine("DELETE /events/{consumerOrgId}/{projectId}/{workspaceId}/registrations/{registrationId}/filters/{subscriberFilterId}")
void deleteSubscriberFilter(
@Param("consumerOrgId") String consumerOrgId,
@Param("projectId") String projectId,
@Param("workspaceId") String workspaceId,
@Param("registrationId") String registrationId,
@Param("subscriberFilterId") UUID subscriberFilterId
);

}
Loading
Loading