Java 类io.swagger.annotations.Extension 实例源码

项目:mid-tier    文件:VirtualAccountServiceExposure.java   
@GET
@Produces({"application/hal+json", "application/hal+json;concept=virtualaccount;v=1"})
@ApiOperation(value = "lists accounts", response = VirtualAccountsRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "advisor", value = "advisors are allowed getting every virtualaccount"),
                @ExtensionProperty(name = "customer", value = "customer only allowed getting own locations")}
        )},
        produces = "application/hal+json, application/hal+json;concept=locations;v=1",
        notes = "List all locations in a default projection, which is VirtualAccount version 1" +
                "Supported projections and versions are: " +
                "VirtualAccounts in version 1 " +
                "The Accept header for the default version is application/hal+json;concept=virtualaccount;v=1.0.0.... " +
                "The format for the default version is {....}", nickname = "listVirtualAccounts")
@ApiResponses(value = {
        @ApiResponse(code = 415, message = "Content type not supported.")
    })
public Response list(@Context UriInfo uriInfo, @Context Request request, @HeaderParam("Accept") String accept) {
    return accountsProducer.getOrDefault(accept, this::handleUnsupportedContentType).getResponse(uriInfo, request);
}
项目:mid-tier    文件:CustomerServiceExposure.java   
@GET
@Produces({"application/hal+json", "application/hal+json;concept=customers;v=1"})
@ApiOperation(value = "lists customers", response = CustomersRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "advisor", value = "advisors are allowed getting every customer"),
                @ExtensionProperty(name = "customer", value = "customer only allowed getting own information")}
        )},
        produces = "application/hal+json, application/hal+json;concept=customers;v=1",
        notes = "List all customers in a default projection, which is Customers version 1" +
                "Supported projections and versions are: " +
                "Customers in version 1 " +
                "The Accept header for the default version is application/hal+json;concept=customers;v=1.0.0.... " +
                "The format for the default version is {....}", nickname = "listCustomers")
@ApiResponses(value = {
        @ApiResponse(code = 415, message = "Content type not supported.")
    })
public Response list(@Context UriInfo uriInfo, @Context Request request, @HeaderParam("Accept") String accept) {
    return customersProducers.getOrDefault(accept, this::handleUnsupportedContentType).getResponse(uriInfo, request);
}
项目:mid-tier    文件:AccountServiceExposure.java   
@GET
@Produces({"application/hal+json", "application/hal+json;concept=accountoverview;v=1"})
@ApiOperation(value = "lists accounts", response = AccountsRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "advisor", value = "advisors are allowed getting every account"),
                @ExtensionProperty(name = "customer", value = "customer only allowed getting own accounts")}
        )},
        produces = "application/hal+json, application/hal+json;concept=accountoverview;v=1",
        notes = "List all accounts in a default projection, which is AccountOverview version 1" +
                "Supported projections and versions are: " +
                "AccountOverview in version 1 " +
                "The Accept header for the default version is application/hal+json;concept=AccountOverview;v=1.0.0.... " +
                "The format for the default version is {....}", nickname = "listAccounts")
@ApiResponses(value = {
        @ApiResponse(code = 415, message = "Content type not supported.")
    })
public Response list(@Context UriInfo uriInfo, @Context Request request, @QueryParam("customer") @DefaultValue("0") String customer, @HeaderParam("Accept") String accept) {
    return accountsProducers.getOrDefault(accept, this::handleUnsupportedContentType).getResponse(uriInfo, request, customer);
}
项目:mid-tier    文件:LocationServiceExposure.java   
@GET
@Produces({"application/hal+json", "application/hal+json;concept=location;v=1"})
@ApiOperation(value = "lists locations", response = LocationsRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "advisor", value = "advisors are allowed getting every location"),
                @ExtensionProperty(name = "customer", value = "customer only allowed getting own locations")}
        )},
        produces = "application/hal+json, application/hal+json;concept=locations;v=1",
        notes = "List all locations in a default projection, which is Location version 1" +
                "Supported projections and versions are: " +
                "Locations in version 1 " +
                "The Accept header for the default version is application/hal+json;concept=location;v=1.0.0.... " +
                "The format for the default version is {....}", nickname = "listLocations")
@ApiResponses(value = {
        @ApiResponse(code = 415, message = "Content type not supported.")
    })
public Response list(@Context UriInfo uriInfo, @Context Request request, @HeaderParam("Accept") String accept) {
    return locationsProducers.getOrDefault(accept, this::handleUnsupportedContentType).getResponse(uriInfo, request);
}
项目:product-iots    文件:DeviceTypeService.java   
/**
 * Retrieve Sensor data for the given time period.
 *
 * @param deviceId unique identifier for given device type instance
 * @param from     starting time
 * @param to       ending time
 * @return response with List<SensorRecord> object which includes sensor data which is requested
 */
@Path("device/stats/{deviceId}")
@GET
@Consumes("application/json")
@Produces("application/json")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        httpMethod = "GET",
        value = "Sensor Stats",
        notes = "",
        response = Response.class,
        tags = "sampledevice",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = SCOPE, value = "perm:sampledevice:enroll")
                })
        }
)
Response getSensorStats(@PathParam("deviceId") String deviceId, @QueryParam("from") long from,
                        @QueryParam("to") long to, @QueryParam("sensorType") String sensorType);
项目:product-iots    文件:ConnectedCupService.java   
/**
 * Retrieve Sensor data for the device type
 */
@Path("stats/{deviceId}/sensors/{sensorName}")
@GET
@Consumes("application/json")
@Produces("application/json")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        httpMethod = "GET",
        value = "Retrieve Sensor data for the device type",
        notes = "",
        response = Response.class,
        tags = "connectedcup",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = SCOPE, value = "perm:connectedcup:enroll")
                })
        }
)
Response getDeviceStats(@PathParam("deviceId") String deviceId, @PathParam("sensorName") String sensor,
                        @QueryParam("from") long from, @QueryParam("to") long to);
项目:incubator-servicecomb-java-chassis    文件:TestApiOperation.java   
@ApiOperation(
    value = "summary",
    notes = "notes",
    tags = {"tag1", "tag2"},
    httpMethod = "GET",
    nickname = "test",
    produces = "application/json",
    consumes = "application/json",
    protocols = "http,https",
    code = 202,
    responseHeaders = {@ResponseHeader(name = "h1", response = int.class)},
    extensions = {@Extension(
        name = "x-tagA",
        properties = {@ExtensionProperty(name = "x-tagAExt", value = "value of tagAExt")})})
void testBase();
项目:minijax    文件:ResourceWithExtensions.java   
@GET
@Path("/test/")
@ApiOperation(value = "Test",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = "externalPath", value = "/hello-world/v1/")
                })})
public Response getGreeting() {
    return Response.ok("Test").build();
}
项目:mid-tier    文件:VirtualAccountServiceExposure.java   
@GET
@Path("{virtualAccountNumber}")
@Produces({"application/hal+json", "application/hal+json;concept=virtualaccount;v=1", "application/hal+json;concept=virtualaccount;v=2"})
@ApiOperation(value = "gets the information from a single position", response = VirtualAccountRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own information"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting all information")}
        )},
        produces = "application/hal+json, application/hal+json;concept=virtualaccount;v=1, application/hal+json;concept=virtualaccount;v=2",
        notes = "obtain a single customer back in a default projection, which is VirtualAccount version 2" +
                " Supported projections and versions are:" +
                " VirtualAccount in version1 and VirtualAccount in version 2" +
                " The format of the default version is .... - The Accept Header is not marked as required in the " +
                "swagger - but it is needed - we are working on a solution to that", nickname = "getVirtualAccount")
@ApiResponses(value = {
        @ApiResponse(code = 404, message = "virtualaccount not found.")
        })
public Response get(@Context UriInfo uriInfo, @Context Request request,
                    @PathParam("virtualAccountNumber") @Pattern(regexp = "^[0-9]*$") String virtualAccountNumber,
                    @HeaderParam("Accept") String accept) {
    LOGGER.info("Default version of virtualaccount collected");
    return accountProducers.getOrDefault(accept, this::handleUnsupportedContentType)
            .getResponse(uriInfo, request, virtualAccountNumber);
}
项目:mid-tier    文件:CustomerServiceExposure.java   
@GET
@Path("{customerNo}")
@Produces({"application/hal+json", "application/hal+json;concept=customer;v=1", "application/hal+json;concept=customer;v=2"})
@ApiOperation(value = "gets the information from a single customer", response = CustomerRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own information"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting all information")}
        )},
        produces = "application/hal+json, application/hal+json;concept=customer;v=1, application/hal+json;concept=customer;v=2",
        notes = "obtain a single customer back in a default projection, which is Customer version 2" +
                " Supported projections and versions are:" +
                " Customer in version1 and Customer in version 2" +
                " The format of the default version is .... - The Accept Header is not marked as required in the " +
                "swagger - but it is needed - we are working on a solution to that", nickname = "getCustomer")
@ApiResponses(value = {
        @ApiResponse(code = 404, message = "No customer found.")
        })
public Response get(@Context UriInfo uriInfo, @Context Request request,
                    @PathParam("customerNo") @Pattern(regexp = "^[0-9]{10}$") String customerNo,
                    @HeaderParam("Accept") String accept) {
    LOGGER.info("Default version of customer collected");
    return customerProducers.getOrDefault(accept, this::handleUnsupportedContentType).getResponse(uriInfo, request, customerNo);
}
项目:mid-tier    文件:ReconciledTransactionServiceExposure.java   
@GET
@Produces({ "application/hal+json", "application/hal+json;concept=reconciledtransactions;v=1"})
@ApiOperation(value = "obtain reconciled transactions (added API capabilities not though not implemented)",
        response = ReconciledTransactionsRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting from own account"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting from every account")}
        )},
        tags = {"select", "sort", "elements", "interval", "filter", "embed", "decorator", "reconciled"},
        notes = "obtain a list of all reconciled transactions from an account" +
        "the reconciled transactions are user controlled checks and notes for transactions " +
        "such as - Yes I have verified that this transaction was correct and thus it is reconciled",
        produces = "application/hal+json, application/hal+json;concept=reconciledtransactions;v=1",
        nickname = "listReconciledTransactions")
@ApiResponses(value = {
        @ApiResponse(code = 415, message = "Content type not supported.")
    })
public Response list(@Context UriInfo uriInfo, @Context Request request,
        @HeaderParam("Accept") String accept, @PathParam("regNo") String regNo, @PathParam("accountNo") String accountNo
                     ) {
    return reconciledTxsProducers.getOrDefault(accept, this::handleUnsupportedContentType)
            .getResponse(uriInfo, request, regNo, accountNo);
}
项目:mid-tier    文件:ReconciledTransactionServiceExposure.java   
@GET
@Path("{id}")
@Produces({ "application/hal+json", "application/hal+json;concept=reconciledtransaction;v=1" })
@LogDuration(limit = 50)
@ApiOperation(value = "obtain a single reconciled transaction from a given account", response = ReconciledTransactionRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own account")}
        )},
        produces = "application/hal+json, application/hal+json;concept=reconciledtransaction;v=1",
        nickname = "getReconciledTransaction")
@ApiResponses(value = {
        @ApiResponse(code = 404, message = "No reconciled transaction found."),
        @ApiResponse(code = 415, message = "Content type not supported.")
    })

public Response get(@Context UriInfo uriInfo, @Context Request request,
                    @HeaderParam("Accept") String accept, @PathParam("regNo") String regNo,
                    @PathParam("accountNo") String accountNo, @PathParam("id") String id) {
    return reconciledTxProducers.getOrDefault(accept, this::handleUnsupportedContentType)
            .getResponse(uriInfo, request, regNo, accountNo, id);
}
项目:mid-tier    文件:TransactionServiceExposure.java   
@GET
@Produces({ "application/hal+json", "application/hal+json;concept=transactionoverview;v=1" })
@ApiOperation(
        value = "obtain all transactions on account for a given account", response = TransactionsRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting from own account"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting from every account")}
        )},
        tags = {"sort", "elements", "interval", "transactions"},
        produces = "application/hal+json, application/hal+json;concept=transactionoverview;v=1",
        nickname = "listTransactions"
    )
public Response list(@Context UriInfo uriInfo, @Context Request request,
                     @HeaderParam("Accept") String accept, @PathParam("regNo") String regNo,
                     @PathParam("accountNo") String accountNo,
                     @QueryParam("sort") String sort, @QueryParam("elements") String elements,
                     @QueryParam("interval") String interval) {
    return transactionsProducers.getOrDefault(accept, this::handleUnsupportedContentType)
            .getResponse(uriInfo, request, regNo, accountNo, sort, elements, interval);
}
项目:mid-tier    文件:TransactionServiceExposure.java   
@GET
@Path("{id}")
@Produces({ "application/hal+json", "application/hal+json;concept=transaction;v=1"})
@LogDuration(limit = 50)
@ApiOperation(
        value = "obtain the individual single transaction from an account", response = TransactionRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting from own account"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting from every account")}
        )},
        produces = "application/hal+json, application/hal+json;concept=transaction;v=1",
        nickname = "getTransaction")
@ApiResponses(value = {
        @ApiResponse(code = 404, message = "No transaction found."),
        @ApiResponse(code = 415, message = "Content type not supported.")
        })
/**
 * the use of authorization scopes to signal roles is a bit dubious and thus this may change in the future
 */
public Response get(@Context UriInfo uriInfo, @Context Request request,
                    @HeaderParam("Accept") String accept,
                    @PathParam("regNo") String regNo,
                    @PathParam("accountNo") String accountNo,
                    @PathParam("id") String id) {
    return transactionProducers.getOrDefault(accept, this::handleUnsupportedContentType)
            .getResponse(uriInfo, request, regNo, accountNo, id);
}
项目:mid-tier    文件:AccountServiceExposure.java   
@GET
@Path("{regNo}-{accountNo}")
@Produces({"application/hal+json", "application/hal+json;concept=account;v=1", "application/hal+json;concept=account;v=2"})
@ApiOperation(value = "gets the information from a single account", response = AccountRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own account"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting every account")}
        )},
        produces = "application/hal+json, application/hal+json;concept=account;v=1, application/hal+json;concept=account;v=2",
        notes = "obtain a single account back in a default projection, which is Account version 2" +
                " Supported projections and versions are:" +
                " AccountSparse in version1 and Account in version 2" +
                " The format of the default version is .... - The Accept Header is not marked as required in the " +
                "swagger - but it is needed - we are working on a solution to that", nickname = "getAccount")
@ApiResponses(value = {
        @ApiResponse(code = 404, message = "No account found.")
        })
public Response get(@Context UriInfo uriInfo, @Context Request request,
                    @PathParam("regNo") @Pattern(regexp = "^[0-9]{4}$") String regNo,
                    @PathParam("accountNo") @Pattern(regexp = "^[0-9]+$") String accountNo,
                    @HeaderParam("Accept") String accept) {
    LOGGER.info("Default version of account collected");
    return accountProducers.getOrDefault(accept, this::handleUnsupportedContentType).getResponse(uriInfo, request, regNo, accountNo);
}
项目:mid-tier    文件:LocationServiceExposure.java   
@GET
@Path("{latitude}-{longitude}")
@Produces({"application/hal+json", "application/hal+json;concept=location;v=1", "application/hal+json;concept=location;v=2"})
@ApiOperation(value = "gets the information from a single position", response = LocationRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own information"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting all information")}
        )},
        produces = "application/hal+json, application/hal+json;concept=location;v=1, application/hal+json;concept=location;v=2",
        notes = "obtain a single customer back in a default projection, which is Location version 2" +
                " Supported projections and versions are:" +
                " Location in version1 and Location in version 2" +
                " The format of the default version is .... - The Accept Header is not marked as required in the " +
                "swagger - but it is needed - we are working on a solution to that", nickname = "getLocation")
@ApiResponses(value = {
        @ApiResponse(code = 404, message = "location not found.")
        })
public Response get(@Context UriInfo uriInfo, @Context Request request,
                    @PathParam("latitude") @Pattern(regexp = "^[0-9]+.[0-9]+,[0-9]*$") String latitude,
                    @PathParam("longitude") @Pattern(regexp = "^[0-9]+.[0-9]+,[0-9]*$") String longitude,
                    @HeaderParam("Accept") String accept) {
    LOGGER.info("Default version of location collected");
    return locationProducers.getOrDefault(accept, this::handleUnsupportedContentType)
            .getResponse(uriInfo, request, latitude, longitude);
}
项目:springfox-loader    文件:SpringfoxLoaderConfig.java   
private List<VendorExtension> getVendorExtensions() {
    Extension[] extensions = springfoxLoader.extensions();
    if (extensions.length == 1 && StringUtils.isEmpty(extensions[0].name())) {
        return Collections.emptyList();
    }

    return Arrays.stream(extensions).map(extension -> {
        ExtensionProperty[] extensionProperties = extension.properties();
        List<StringVendorExtension> vendorExtensions = Arrays.stream(extensionProperties)
                .map(property -> new StringVendorExtension(property.name(), property.value())).collect(Collectors.toList());
        ObjectVendorExtension vendorExtension = new ObjectVendorExtension(extension.name());
        vendorExtensions.forEach(vendorExtension::addProperty);
        return vendorExtension;
    }).collect(Collectors.toList());
}
项目:carbon-device-mgt    文件:CertificateManagementAdminService.java   
@DELETE
@Path("/{serialNumber}")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "DELETE",
        value = "Deleting an SSL Certificate",
        notes = "Delete an SSL certificate that's on the client end.",
        tags = "Certificate Management",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = SCOPE, value = "perm:admin:certificates:delete")
                })
        }
)
@ApiResponses(value = {
        @ApiResponse(
                code = 200,
                message = "OK. \n Successfully removed the certificate."),
        @ApiResponse(
                code = 400,
                message = "Bad Request. \n Invalid request or validation error.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 404,
                message = "Not Found. \n The specified resource does not exist."),
        @ApiResponse(
                code = 500,
                message = "Internal Server Error. \n " +
                        "Server error occurred while removing the certificate.",
                response = ErrorResponse.class)})
Response removeCertificate(
        @ApiParam(
                name = "serialNumber",
                value = "The serial number of the certificate.\n" +
                        "NOTE: Make sure that a certificate with the serial number you provide exists in the server. If not, first add a certificate.",
                required = true,
                defaultValue = "12438035315552875930")
        @PathParam("serialNumber") String serialNumber);
项目:carbon-device-mgt    文件:DeviceAccessAuthorizationAdminService.java   
@POST
@Path("/stat")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "POST",
        value = "Check for device access authorization for stat\n",
        notes = "This is an internal API that can be used to check for authorization.",
        response = DeviceAuthorizationResult.class,
        tags = "Authorization Administrative Service",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = Constants.SCOPE, value = "perm:authorization:verify")
                })
        })

@ApiResponses(value = {
        @ApiResponse(
                code = 200,
                message = "OK. \n Authorized device list will be delivered to the requested services",
                response = DeviceAuthorizationResult.class),
        @ApiResponse(
                code = 400,
                message = "Bad Request. \n Invalid request or validation error.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 404,
                message = "Not Found. \n The specified resource does not exist."),
        @ApiResponse(
                code = 415,
                message = "Unsupported media type. \n The entity of the request was in a not supported format."),
        @ApiResponse(
                code = 500,
                message = "Internal Server Error. \n Server error occurred while checking the authorization" +
                        " for a specified set of devices.",
                response = ErrorResponse.class)
})
Response isAuthorizedForStat(AuthorizationRequest authorizationRequest);
项目:carbon-device-mgt    文件:DeviceAgentService.java   
@DELETE
@Path("/enroll/{type}/{id}")
@ApiOperation(
        httpMethod = "DELETE",
        value = "Unregistering a Device",
        notes = "Use this REST API to unregister a device.",
        tags = "Device Management",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = Constants.SCOPE, value = "perm:device:disenroll")
                })
        }
)
@ApiResponses(value = {
        @ApiResponse(
                code = 200,
                message = "OK. \n Successfully disenrolled the device."),
        @ApiResponse(
                code = 404,
                message = "Not Found. \n The specified resource does not exist."),
        @ApiResponse(
                code = 500,
                message = "Internal Server Error. \n " +
                        "Server error occurred while dis-enrolling the device.")
})
Response disEnrollDevice(
        @ApiParam(name = "type", value = "The unique device identifier.") @PathParam("type") String type,
        @ApiParam(name = "id", value = "The unique device identifier.") @PathParam("id") String id);
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@PUT
@Path("/priorities")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "PUT",
        value = "Updating the Policy Priorities",
        notes = "Make changes to the existing policy priority order by updating the priority order using this API.",
        tags = "Device Policy Management",
        extensions = {
        @Extension(properties = {
                @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:priorities")
        })
}
)
@ApiResponses(
        value = {
        @ApiResponse(
                code = 200,
                message = "Successfully updated the policy priority order."),
        @ApiResponse(
                code = 400,
                message = "Bad Request. Did not update the policy priority order.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 500,
                message = "Exception in updating the policy priorities.",
                response = ErrorResponse.class)
})
Response updatePolicyPriorities(
        @ApiParam(
                name = "priorityUpdatedPolicies",
                value = "List of policies with priorities",
                required = true)
                List<PriorityUpdatedPolicyWrapper> priorityUpdatedPolicies);
项目:carbon-device-mgt    文件:UserManagementService.java   
@GET
@Path("/count")
@ApiOperation(
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "GET",
        value = "Getting the User Count",
        notes = "Get the number of users in WSO2 IoTS via this REST API.",
        tags = "User Management",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = Constants.SCOPE, value = "perm:users:count")
                })
        }
)
@ApiResponses(value = {
        @ApiResponse(
                code = 200,
                message = "OK. \n Successfully fetched the user count.",
                response = BasicUserInfoList.class,
                responseHeaders = {
                        @ResponseHeader(
                                name = "Content-Type",
                                description = "The content type of the body")
                }),
        @ApiResponse(
                code = 406,
                message = "Not Acceptable.\n The requested media type is not supported",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 500,
                message = "Internal Server Error. \n Server error occurred while fetching the total number of users in WSO2 IoTS.",
                response = ErrorResponse.class)
})
Response getUserCount();
项目:carbon-device-mgt    文件:NotificationManagementService.java   
@PUT
@Path("/{id}/mark-checked")
@ApiOperation(
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "PUT",
        value = "Updating the Device Notification Status",
        notes = "When a user has read the the device notification the device notification status must "
                + "change from NEW to CHECKED. This API is used to update device notification status.",
        tags = "Device Notification Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:notifications:mark-checked")
            })
        }
)
@ApiResponses(
        value = {
                @ApiResponse(
                        code = 200,
                        message = "OK",
                        response = Notification.class),
                @ApiResponse(
                        code = 200,
                        message = "Notification updated successfully. But the retrial of the updated "
                                + "notification failed.",
                        response = Notification.class),
                @ApiResponse(
                        code = 500,
                        message = "Error occurred while updating notification status.")
        }
)
Response updateNotificationStatus(
        @ApiParam(
                name = "id",
                value = "The notification ID.",
                required = true,
                defaultValue = "1")
        @PathParam("id") @Max(45)
                int id);
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@POST
@Path("/activate-policy")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "POST",
        value = "Activating Policies",
        notes = "Publish a policy using this API to bring a policy that is in the inactive state to the active state.",
        tags = "Device Policy Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:activate")
            })
        }
)
@ApiResponses(
        value = {
                @ApiResponse(
                        code = 200,
                        message = "Successfully activated the policy."),
                @ApiResponse(
                        code = 400,
                        message = "Bad Request. \n Invalid request or validation error.",
                        response = ErrorResponse.class),
                @ApiResponse(
                        code = 404,
                        message = "Not Found. \n The specified resource/s does not exist.",
                        response = ErrorResponse.class),
                @ApiResponse(
                        code = 500,
                        message = "Sever error whilst activating the policies.",
                        response = ErrorResponse.class)
        })
Response activatePolicies(
        @ApiParam(
                name = "policyIds",
                value = "The list of the policy IDs to be activated",
                required = true,
                defaultValue = "[1]")
                List<Integer> policyIds);
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@POST
@Path("/activate-policy")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "POST",
        value = "Activating Policies",
        notes = "Publish a policy using this API to bring a policy that is in the inactive state to the active state.",
        tags = "Device Policy Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:activate")
            })
        }
)
@ApiResponses(
        value = {
                @ApiResponse(
                        code = 200,
                        message = "Successfully activated the policy."),
                @ApiResponse(
                        code = 400,
                        message = "Bad Request. \n Invalid request or validation error.",
                        response = ErrorResponse.class),
                @ApiResponse(
                        code = 404,
                        message = "Not Found. \n The specified resource/s does not exist.",
                        response = ErrorResponse.class),
                @ApiResponse(
                        code = 500,
                        message = "Sever error whilst activating the policies.",
                        response = ErrorResponse.class)
        })
Response activatePolicies(
        @ApiParam(
                name = "policyIds",
                value = "The list of the policy IDs to be activated",
                required = true,
                defaultValue = "[1]")
                List<Integer> policyIds);
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@POST
@Path("/deactivate-policy")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "POST",
        value = "Deactivating Policies",
        notes = "Unpublish a policy using this API to bring a policy that is in the active state to the inactive state.",
        tags = "Device Policy Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:deactivate")
            })
        }
)
@ApiResponses(
        value = {
        @ApiResponse(
                code = 200,
                message = "Successfully deactivated the policy."),
        @ApiResponse(
                code = 400,
                message = "Bad Request. \n Invalid request or validation error.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 404,
                message = "Not Found. \n The specified resource does not exist.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 500,
                message = "ErrorResponse in deactivating policies.",
                response = ErrorResponse.class)
})
Response deactivatePolicies(
        @ApiParam(
                name = "policyIds",
                value = "The list of Policy IDs that needs to be deactivated.",
                required = true,
                defaultValue = "[1]")
                List<Integer> policyIds);
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@PUT
@Produces("application/json")
@Path("apply-changes")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "PUT",
        value = "Applying Changes on Policies",
        notes = "Policies in the active state will be applied to new devices that register with WSO2 EMM based on" +
                " the policy enforcement criteria . In a situation where you need to make changes to existing" +
                " policies (removing, activating, deactivating and updating) or add new policies, the existing" +
                " devices will not receive these changes immediately. Once all the required changes are made" +
                " you need to apply the changes to push the policy changes to the existing devices.",
        tags = "Device Policy Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:changes")
            })
        }
)
@ApiResponses(
        value = {
        @ApiResponse(
                code = 200,
                message = "Successfully updated the EMM server with the policy changes."),
        @ApiResponse(
                code = 500,
                message = "ErrorResponse in deactivating policies.",
                response = ErrorResponse.class)
})
Response applyChanges();
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@PUT
@Path("/priorities")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "PUT",
        value = "Updating the Policy Priorities",
        notes = "Make changes to the existing policy priority order by updating the priority order using this API.",
        tags = "Device Policy Management",
        extensions = {
        @Extension(properties = {
                @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:priorities")
        })
}
)
@ApiResponses(
        value = {
        @ApiResponse(
                code = 200,
                message = "Successfully updated the policy priority order."),
        @ApiResponse(
                code = 400,
                message = "Bad Request. Did not update the policy priority order.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 500,
                message = "Exception in updating the policy priorities.",
                response = ErrorResponse.class)
})
Response updatePolicyPriorities(
        @ApiParam(
                name = "priorityUpdatedPolicies",
                value = "List of policies with priorities",
                required = true)
                List<PriorityUpdatedPolicyWrapper> priorityUpdatedPolicies);
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@POST
@Path("/deactivate-policy")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "POST",
        value = "Deactivating Policies",
        notes = "Unpublish a policy using this API to bring a policy that is in the active state to the inactive state.",
        tags = "Device Policy Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:deactivate")
            })
        }
)
@ApiResponses(
        value = {
        @ApiResponse(
                code = 200,
                message = "Successfully deactivated the policy."),
        @ApiResponse(
                code = 400,
                message = "Bad Request. \n Invalid request or validation error.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 404,
                message = "Not Found. \n The specified resource does not exist.",
                response = ErrorResponse.class),
        @ApiResponse(
                code = 500,
                message = "ErrorResponse in deactivating policies.",
                response = ErrorResponse.class)
})
Response deactivatePolicies(
        @ApiParam(
                name = "policyIds",
                value = "The list of Policy IDs that needs to be deactivated.",
                required = true,
                defaultValue = "[1]")
                List<Integer> policyIds);
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@PUT
@Produces("application/json")
@Path("apply-changes")
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "PUT",
        value = "Applying Changes on Policies",
        notes = "Policies in the active state will be applied to new devices that register with WSO2 EMM based on" +
                " the policy enforcement criteria . In a situation where you need to make changes to existing" +
                " policies (removing, activating, deactivating and updating) or add new policies, the existing" +
                " devices will not receive these changes immediately. Once all the required changes are made" +
                " you need to apply the changes to push the policy changes to the existing devices.",
        tags = "Device Policy Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:changes")
            })
        }
)
@ApiResponses(
        value = {
        @ApiResponse(
                code = 200,
                message = "Successfully updated the EMM server with the policy changes."),
        @ApiResponse(
                code = 500,
                message = "ErrorResponse in deactivating policies.",
                response = ErrorResponse.class)
})
Response applyChanges();
项目:carbon-device-mgt    文件:NotificationManagementService.java   
@PUT
@Path("/{id}/mark-checked")
@ApiOperation(
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "PUT",
        value = "Updating the Device Notification Status",
        notes = "When a user has read the the device notification the device notification status must "
                + "change from NEW to CHECKED. This API is used to update device notification status.",
        tags = "Device Notification Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:notifications:mark-checked")
            })
        }
)
@ApiResponses(
        value = {
                @ApiResponse(
                        code = 200,
                        message = "OK",
                        response = Notification.class),
                @ApiResponse(
                        code = 200,
                        message = "Notification updated successfully. But the retrial of the updated "
                                + "notification failed.",
                        response = Notification.class),
                @ApiResponse(
                        code = 500,
                        message = "Error occurred while updating notification status.")
        }
)
Response updateNotificationStatus(
        @ApiParam(
                name = "id",
                value = "The notification ID.",
                required = true,
                defaultValue = "1")
        @PathParam("id") @Max(45)
                int id);
项目:mid-tier    文件:VirtualAccountServiceExposure.java   
@PUT
@RolesAllowed("system")
@Path("{virtualAccountNumber}")
@Produces({"application/hal+json"})
@Consumes("application/json")
@LogDuration(limit = 50)
@ApiOperation(value = "Create new or update existing virtualaccount", response = VirtualAccountRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own customer"),
                @ExtensionProperty(name = "system", value = "system allows getting every customer")
        })},
        notes = "PUT is used to create a new virtualaccount or used to alter the values attached to the virtual account",
        consumes = "application/json",
        produces = "application/hal+json, application/hal+json;concept=virtualaccount;v=1, application/hal+json;concept=virtualaccount;v=2",
        nickname = "updateVirtualAccount")
@ApiResponses(value = {
        @ApiResponse(code = 400, message = "Could not update or create the virtualaccount", response = ErrorRepresentation.class),
        @ApiResponse(code = 415, message = "The content-Type was not supported"),
        @ApiResponse(code = 201, message = "New VirtualAccount Created", response = VirtualAccountRepresentation.class,
                responseHeaders = {
                        @ResponseHeader(name = "VirtualAccount", description = "a link to the created resource"),
                        @ResponseHeader(name = "Content-Type", description = "a link to the created resource"),
                        @ResponseHeader(name = "X-Log-Token", description = "an ide for reference purposes in logs etc")
                })
        })
public Response createOrUpdate(@Context UriInfo uriInfo, @Context Request request,
                               @PathParam("virtualAccountNumber") String virtualAccountNumber,
                               @ApiParam(value = "account") VirtualAccountUpdateRepresentation account) {
    if (!virtualAccountNumber.equals(account.getVaNumber())) {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }
    Long no;
    try {
        no = Long.parseLong(virtualAccountNumber);
    } catch (NumberFormatException e) {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }


    Optional<VirtualAccount> virtualaccount = archivist.findAccountByAccountNumber(no);
    VirtualAccount ac;
    if (virtualaccount.isPresent()) {
        ac = virtualaccount.get();
        ac.addUnCommitted(new BigDecimal(account.getUnCommittedBalance()));
    } else {
        ac = new VirtualAccount(no, new BigDecimal(account.getTotalBalance()),
                new BigDecimal(account.getCommittedBalance()), new BigDecimal(account.getUnCommittedBalance()));
    }
    archivist.save(ac);

    CacheControl cc = new CacheControl();
    int maxAge = 30;
    cc.setMaxAge(maxAge);

    return Response.created(URI.create(uriInfo.getPath()))
            .entity(new VirtualAccountRepresentation(ac, uriInfo))
            .cacheControl(cc).expires(Date.from(CurrentTime.now().plusSeconds(maxAge)))
            .status(201)
            .type("application/hal+json;concept=virtualaccount;v=2")
            .build();
}
项目:mid-tier    文件:CustomerServiceExposure.java   
@PUT
@RolesAllowed("advisor")
@Path("{customerNo}")
@Produces({"application/hal+json"})
@Consumes("application/json")
@LogDuration(limit = 50)
@ApiOperation(value = "Create new or update existing customer", response = CustomerRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own customer"),
                @ExtensionProperty(name = "system", value = "system allows getting coOwned customer"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting every customer")
        })},
        notes = "PUT is used to create a new customer from scratch and may be used to alter the name of the customer",
        consumes = "application/json",
        produces = "application/hal+json, application/hal+json;concept=customer;v=1, application/hal+json;concept=customer;v=2",
        nickname = "updateCustomer")
@ApiResponses(value = {
        @ApiResponse(code = 400, message = "Could not update or create the customer", response = ErrorRepresentation.class),
        @ApiResponse(code = 415, message = "The content-Type was not supported"),
        @ApiResponse(code = 201, message = "New Customer Created", response = CustomerRepresentation.class,
                responseHeaders = {
                        @ResponseHeader(name = "Location", description = "a link to the created resource"),
                        @ResponseHeader(name = "Content-Type", description = "a link to the created resource"),
                        @ResponseHeader(name = "X-Log-Token", description = "an ide for reference purposes in logs etc")
                })
        })
public Response createOrUpdate(@Context UriInfo uriInfo, @Context Request request,
                               @PathParam("customerNo") @Pattern(regexp = "^[0-9]+$") String customerNo,
                               @ApiParam(value = "customer") @Valid CustomerUpdateRepresentation customer) {
    if (!customerNo.equals(customer.getNumber())) {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }

    Optional<Customer> cust = archivist.findCustomer(customerNo);
    Customer c;
    if (cust.isPresent()) {
        c = cust.get();
        c.setSirname(customer.getFirstName());
        c.setSirname(customer.getMiddleName());
        c.setSirname(customer.getSirname());
    } else {
        c = new Customer(customer.getFirstName(), customer.getMiddleName(), customer.getSirname());
    }
    archivist.save(c);

    CacheControl cc = new CacheControl();
    int maxAge = 30;
    cc.setMaxAge(maxAge);

    return Response.created(URI.create(uriInfo.getPath()))
            .entity(new CustomerRepresentation(c, uriInfo))
            .cacheControl(cc).expires(Date.from(CurrentTime.now().plusSeconds(maxAge)))
            .status(201)
            .type("application/hal+json;concept=customer;v=2")
            .build();
}
项目:mid-tier    文件:ReconciledTransactionServiceExposure.java   
@PUT
@Path("{id}")
@Produces({ "application/hal+json" })
@Consumes(MediaType.APPLICATION_JSON)
@LogDuration(limit = 50)
@ApiOperation(value = "Create new or update reconciled transaction", response = ReconciledTransactionRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "system", value = "customer allows getting coOwned account")}
        )},
        notes = "reconciled transactions are user controlled checks and notes for transactions" +
                "such as - Yes I have verified that this transaction was correct and thus it is reconciled",
        nickname = "updateReconciledTransaction")
@ApiResponses(value = {
        @ApiResponse(code = 400, message = "No updating possible", response = ErrorRepresentation.class),
        @ApiResponse(code = 415, message = "Content type not supported.")
    })
public Response createOrUpdate(@Context UriInfo uriInfo, @Context Request request,
                               @PathParam("regNo") @Pattern(regexp = "^[0-9]{4}$") String regNo,
                               @PathParam("accountNo") @Pattern(regexp = "^[0-9]+$") String accountNo,
                               @PathParam("id") String id,
                               @ApiParam(value = "reconciled transaction") @Valid ReconciledTransactionUpdateRepresentation rtx
                               ) {


    String txId = Sanitizer.sanitize(id, false, true);
    Transaction tx = archivist.findTransaction(regNo, accountNo, txId);
    if (!defined(tx)) {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }

    ReconciledTransaction reconciled = new ReconciledTransaction(rtx.getReconciled().contains("true"), rtx.getNote(), tx);
    archivist.save(reconciled);
    return new EntityResponseBuilder<>(reconciled.getTransaction(), t -> new ReconciledTransactionRepresentation(reconciled, t, uriInfo))
            .name("reconciledtransaction")
            .version("1")
            .maxAge(60)
            .build(request);
}
项目:mid-tier    文件:AccountServiceExposure.java   
@PUT
@RolesAllowed("advisor")
@Path("{regNo}-{accountNo}")
@Produces({"application/hal+json"})
@Consumes("application/json")
@LogDuration(limit = 50)
@ApiOperation(value = "Create new or update existing account", response = AccountRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own account"),
                @ExtensionProperty(name = "system", value = "system allows getting coOwned account"),
                @ExtensionProperty(name = "advisor", value = "advisor allows getting every account")
        })},
        notes = "PUT is used to create a new account from scratch and may be used to alter the name of the account",
        consumes = "application/json",
        produces = "application/hal+json, application/hal+json;concept=account;v=1, application/hal+json;concept=account;v=2",
        nickname = "updateAccount")
@ApiResponses(value = {
        @ApiResponse(code = 400, message = "Could not update or create the account", response = ErrorRepresentation.class),
        @ApiResponse(code = 415, message = "The content-Type was not supported"),
        @ApiResponse(code = 201, message = "New Account Created", response = AccountRepresentation.class,
                responseHeaders = {
                        @ResponseHeader(name = "Location", description = "a link to the created resource"),
                        @ResponseHeader(name = "Content-Type", description = "a link to the created resource"),
                        @ResponseHeader(name = "X-Log-Token", description = "an ide for reference purposes in logs etc")
                })
        })
public Response createOrUpdate(@Context UriInfo uriInfo, @Context Request request,
                               @PathParam("regNo") @Pattern(regexp = "^[0-9]{4}$") String regNo,
                               @PathParam("accountNo") @Pattern(regexp = "^[0-9]+$") String accountNo,
                               @ApiParam(value = "account") @Valid AccountUpdateRepresentation account) {
    if (!regNo.equals(account.getRegNo()) || !accountNo.equals(account.getAccountNo())) {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }

    Optional<Account> acc = archivist.findAccount(regNo, accountNo);
    Account a;
    if (acc.isPresent()) {
        a = acc.get();
        a.setName(account.getName());
    } else {
        a = new Account(regNo, accountNo, account.getName(), account.getCustomer());
    }
    archivist.save(a);

    CacheControl cc = new CacheControl();
    int maxAge = 30;
    cc.setMaxAge(maxAge);

    return Response.created(URI.create(uriInfo.getPath()))
            .entity(new AccountRepresentation(a, uriInfo))
            .cacheControl(cc).expires(Date.from(CurrentTime.now().plusSeconds(maxAge)))
            .status(201)
            .type("application/hal+json;concept=account;v=2")
            .build();
}
项目:mid-tier    文件:LocationServiceExposure.java   
@PUT
@RolesAllowed("system")
@Path("{latitude}-{longitude}")
@Produces({"application/hal+json"})
@Consumes("application/json")
@LogDuration(limit = 50)
@ApiOperation(value = "Create new or update existing location", response = LocationRepresentation.class,
        authorizations = {
                @Authorization(value = "oauth2", scopes = {}),
                @Authorization(value = "oauth2-cc", scopes = {}),
                @Authorization(value = "oauth2-ac", scopes = {}),
                @Authorization(value = "oauth2-rop", scopes = {}),
                @Authorization(value = "Bearer")
        },
        extensions = {@Extension(name = "roles", properties = {
                @ExtensionProperty(name = "customer", value = "customer allows getting own customer"),
                @ExtensionProperty(name = "system", value = "system allows getting every customer")
        })},
        notes = "PUT is used to create a new location from scratch and may be used to alter the values attached to the location",
        consumes = "application/json",
        produces = "application/hal+json, application/hal+json;concept=location;v=1, application/hal+json;concept=location;v=2",
        nickname = "updateLocation")
@ApiResponses(value = {
        @ApiResponse(code = 400, message = "Could not update or create the location", response = ErrorRepresentation.class),
        @ApiResponse(code = 415, message = "The content-Type was not supported"),
        @ApiResponse(code = 201, message = "New Location Created", response = LocationRepresentation.class,
                responseHeaders = {
                        @ResponseHeader(name = "Location", description = "a link to the created resource"),
                        @ResponseHeader(name = "Content-Type", description = "a link to the created resource"),
                        @ResponseHeader(name = "X-Log-Token", description = "an ide for reference purposes in logs etc")
                })
        })
public Response createOrUpdate(@Context UriInfo uriInfo, @Context Request request,
                               @PathParam("latitude") String latitude,
                               @PathParam("longitude") String longitude,
                               @ApiParam(value = "position") LocationUpdateRepresentation position) {
    if (!latitude.equals(position.getLatitude()) || (!longitude.equals(position.getLongitude()))) {
        throw new WebApplicationException(Response.Status.BAD_REQUEST);
    }

    Optional<Location> location = archivist.findPosition(latitude, longitude);
    Location loc;
    if (location.isPresent()) {
        loc = location.get();
        loc.setAmplitude(position.getAmplitude());
    } else {
        loc = new Location(position.getLatitude(), position.getLongitude(), position.getAmplitude());
    }
    archivist.save(loc);

    CacheControl cc = new CacheControl();
    int maxAge = 30;
    cc.setMaxAge(maxAge);

    return Response.created(URI.create(uriInfo.getPath()))
            .entity(new LocationRepresentation(loc, uriInfo))
            .cacheControl(cc).expires(Date.from(CurrentTime.now().plusSeconds(maxAge)))
            .status(201)
            .type("application/hal+json;concept=location;v=2")
            .build();
}
项目:springfox-loader    文件:SpringfoxLoader.java   
Extension[] extensions() {
    return annotation.value().extensions();
}
项目:carbon-device-mgt    文件:PolicyManagementService.java   
@POST
@ApiOperation(
        consumes = MediaType.APPLICATION_JSON,
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "POST",
        value = "Adding a Policy",
        notes = "Add a policy using this REST API command. When adding a policy you will have the option of saving the policy or saving and publishing the policy." +
                "Using this REST API you are able to save a created Policy and this policy will be in the inactive state.",
        tags = "Device Policy Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:policies:manage")
            })
        }
)
@ApiResponses(
        value = {
                @ApiResponse(
                        code = 201,
                        message = "Created. \n Successfully created the policy.",
                        responseHeaders = {
                                @ResponseHeader(
                                        name = "Content-Location",
                                        description = "The URL of the added policy."),
                                @ResponseHeader(
                                        name = "Content-Type",
                                        description = "The content type of the body"),
                                @ResponseHeader(
                                        name = "ETag",
                                        description = "Entity Tag of the response resource.\n" +
                                                "Used by caches, or in conditional requests."),
                                @ResponseHeader(
                                        name = "Last-Modified",
                                        description = "Date and time the resource was last modified.\n" +
                                                "Used by caches, or in conditional requests.")
                        }
                ),
                @ApiResponse(
                        code = 303,
                        message = "See Other. \n The source can be retrieved from the URL specified in the location header",
                        responseHeaders = {
                                @ResponseHeader(
                                        name = "Content-Location",
                                        description = "The Source URL of the document.")}),
                @ApiResponse(
                        code = 400,
                        message = "Bad Request. \n Invalid request or validation error.",
                        response = ErrorResponse.class),
                @ApiResponse(
                        code = 401,
                        message = "Not Found. \n The user that is currently logged in is not authorized to add policies.",
                        response = ErrorResponse.class),
                @ApiResponse(
                        code = 415,
                        message = "Unsupported media type. \n The format of the requested entity was not supported."),
                @ApiResponse(
                        code = 500,
                        message = "Internal Server Error. \n " +
                                "Server error occurred while adding a new policy.",
                        response = ErrorResponse.class)
        })
Response addPolicy(
        @ApiParam(
                name = "policy",
                value = "The properties required to add a new policy.",
                required = true)
                @Valid PolicyWrapper policy);
项目:carbon-device-mgt    文件:DeviceEventManagementService.java   
@GET
@Path("/{type}/{deviceId}")
@ApiOperation(
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "GET",
        value = "Getting Device Events",
        notes = "Get the events for the device.",
        tags = "Device Event Management",
        extensions = {
                @Extension(properties = {
                        @ExtensionProperty(name = Constants.SCOPE, value = "perm:device-types:events:view")
                })
        }
)
@ApiResponses(
        value = {
                @ApiResponse(
                        code = 200,
                        message = "OK. \n Successfully fetched the event definition.",
                        response = EventRecords.class,
                        responseHeaders = {
                                @ResponseHeader(
                                        name = "Content-Type",
                                        description = "The content type of the body"),
                                @ResponseHeader(
                                        name = "ETag",
                                        description = "Entity Tag of the response resource.\n" +
                                                "Used by caches, or in conditional requests."),
                                @ResponseHeader(
                                        name = "Last-Modified",
                                        description =
                                                "Date and time the resource was last modified.\n" +
                                                        "Used by caches, or in conditional requests."),
                        }
                ),
                @ApiResponse(
                        code = 400,
                        message =
                                "Bad Request. \n"),
                @ApiResponse(
                        code = 406,
                        message = "Not Acceptable.\n The requested media type is not supported"),
                @ApiResponse(
                        code = 500,
                        message = "Internal Server Error. \n Server error occurred while fetching the " +
                                "list of supported device types.",
                        response = ErrorResponse.class)
        }
)
Response getData(@ApiParam(name = "deviceId", value = "id of the device ", required = false)
                 @PathParam("deviceId") String deviceId,
                 @ApiParam(name = "from", value = "unix timestamp to retrieve", required = false)
                 @QueryParam("from") long from,
                 @ApiParam(name = "to", value = "unix time to retrieve", required = false)
                 @QueryParam("to") long to,
                 @ApiParam(name = "type", value = "name of the device type", required = false)
                 @PathParam("type")  String deviceType,
                 @ApiParam(name = "offset", value = "offset of the records that needs to be picked up", required = false)
                 @QueryParam("offset") int offset,
                 @ApiParam(name = "limit", value = "limit of the records that needs to be picked up", required = false)
                 @QueryParam("limit") int limit);
项目:carbon-device-mgt    文件:DeviceManagementService.java   
@GET
@Path("{type}/{id}/compliance-data")
@ApiOperation(
        produces = MediaType.APPLICATION_JSON,
        httpMethod = "GET",
        value = "Getting Policy Compliance Details of a Device",
        notes = "A policy is enforced on the devices that register with WSO2 IoTS. " +
                "The server checks if the settings in the device comply with the policy that is enforced on the device using this REST API.",
        tags = "Device Management",
        extensions = {
            @Extension(properties = {
                    @ExtensionProperty(name = Constants.SCOPE, value = "perm:devices:compliance-data")
            })
        }
)
@ApiResponses(
        value = {
                @ApiResponse(
                        code = 200,
                        message = "OK",
                        response = NonComplianceData.class),
                @ApiResponse(
                        code = 400,
                        message = "Bad Request. \n Invalid request or validation error.",
                        response = ErrorResponse.class),
                @ApiResponse(
                        code = 500,
                        message = "Error occurred while getting the compliance data.",
                        response = ErrorResponse.class)
        }
)
Response getComplianceDataOfDevice(
        @ApiParam(
                name = "type",
                value = "The device type, such as ios, android or windows.",
                required = true)
        @PathParam("type")
        @Size(max = 45)
        String type,
        @ApiParam(
                name = "id",
                value = "Device Identifier",
                required = true)
        @PathParam("id")
        @Size(max = 45)
        String id);