@ExecuteOn(TaskExecutors.IO)
    @Get(value = "{id}")
    @Operation(tags = {"Blueprints"}, summary = "Get a blueprint")
    public BlueprintItemWithFlow blueprint(
        @Parameter(description = "The blueprint id") String id,
        HttpRequest<?> httpRequest
    ) throws URISyntaxException {
        return fastForwardToKestraApi(httpRequest, "/v1/blueprints/" + id, Argument.of(BlueprintItemWithFlow.class));
    }
@Test
    void blueprint(WireMockRuntimeInfo wmRuntimeInfo) {
        stubFor(get(urlMatching("/v1/blueprints/id_1.*"))
            .willReturn(aResponse()
                .withHeader("Content-Type", "application/json")
                .withBodyFile("blueprint.json"))
        );

        BlueprintController.BlueprintItemWithFlow blueprint = client.toBlocking().retrieve(
            HttpRequest.GET("/api/v1/blueprints/community/id_1"),
            BlueprintController.BlueprintItemWithFlow.class
        );

        assertThat(blueprint.getId(), is("1"));
        assertThat(blueprint.getTitle(), is("GCS Trigger"));
        assertThat(blueprint.getDescription(), is("GCS trigger flow"));
        assertThat(blueprint.getFlow(), not(emptyOrNullString()));
        assertThat(blueprint.getPublishedAt(), is(Instant.parse("2023-06-01T08:37:34.661Z")));
        assertThat(blueprint.getTags().size(), is(2));
        assertThat(blueprint.getTags(), contains("3", "2"));

        WireMock wireMock = wmRuntimeInfo.getWireMock();
        wireMock.verifyThat(getRequestedFor(urlEqualTo("/v1/blueprints/id_1")));
    }