Creating a RESTful Root Resource Class
Root resource classes are POJOs that are either annotated with @Path or have at least one method annotated with @Path or a request method designator, such as @GET, @PUT, @POST, or @DELETE. Resource methods are methods of a resource class annotated with a request method designator. This section explains how to use JAX-RS to annotate Java classes to create RESTful web services.
Developing RESTful Web Services with JAX-RS
JAX-RS is a Java programming language API designed to make it easy to develop applications that use the REST architecture.
The JAX-RS API uses Java programming language annotations to simplify the development of RESTful web services. Developers decorate Java programming language class files with JAX-RS annotations to define resources and the actions that can be performed on those resources. JAX-RS annotations are runtime annotations; therefore, runtime reflection will generate the helper classes and artifacts for the resource. A Java EE application archive containing JAX-RS resource classes will have the resources configured, the helper classes and artifacts generated, and the resource exposed to clients by deploying the archive to a Java EE server.
Table 20-1 lists some of the Java programming annotations that are defined by JAX-RS, with a brief description of how each is used. Further information on the JAX-RS APIs can be viewed at http://docs.oracle.com/javaee/6/api/.
Annotation |
Description |
|---|---|
The @Path annotation’s value is a relative URI path indicating where the Java class will be hosted: for example, /helloworld. You can also embed variables in the URIs to make a URI path template. For example, you could ask for the name of a user and pass it to the application as a variable in the URI: /helloworld/{username}. |
|
The @GET annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP GET requests. The behavior of a resource is determined by the HTTP method to which the resource is responding. |
|
The @POST annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP POST requests. The behavior of a resource is determined by the HTTP method to which the resource is responding. |
|
The @PUT annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP PUT requests. The behavior of a resource is determined by the HTTP method to which the resource is responding. |
|
The @DELETE annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP DELETE requests. The behavior of a resource is determined by the HTTP method to which the resource is responding. |
|
The @HEAD annotation is a request method designator and corresponds to the similarly named HTTP method. The Java method annotated with this request method designator will process HTTP HEAD requests. The behavior of a resource is determined by the HTTP method to which the resource is responding. |
|
The @PathParam annotation is a type of parameter that you can extract for use in your resource class. URI path parameters are extracted from the request URI, and the parameter names correspond to the URI path template variable names specified in the @Path class-level annotation. |
|
The @QueryParam annotation is a type of parameter that you can extract for use in your resource class. Query parameters are extracted from the request URI query parameters. |
|
The @Consumes annotation is used to specify the MIME media types of representations a resource can consume that were sent by the client. |
|
The @Produces annotation is used to specify the MIME media types of representations a resource can produce and send back to the client: for example, "text/plain". |
|
The @Provider annotation is used for anything that is of interest to the JAX-RS runtime, such as MessageBodyReader and MessageBodyWriter. For HTTP requests, the MessageBodyReader is used to map an HTTP request entity body to method parameters. On the response side, a return value is mapped to an HTTP response entity body by using a MessageBodyWriter. If the application needs to supply additional metadata, such as HTTP headers or a different status code, a method can return a Response that wraps the entity and that can be built using Response.ResponseBuilder. |
Overview of a JAX-RS Application
The following code sample is a very simple example of a root resource class that uses JAX-RS annotations:
package com.sun.jersey.samples.helloworld.resources; import javax.ws.rs.GET; import javax.ws.rs.Produces; import javax.ws.rs.Path; // The Java class will be hosted at the URI path "/helloworld" @Path("/helloworld") public class HelloWorldResource { // The Java method will process HTTP GET requests @GET // The Java method will produce content identified by the MIME Media // type "text/plain" @Produces("text/plain") public String getClichedMessage() { // Return some cliched textual content return "Hello World"; } }
The following sections describe the annotations used in this example.
The @Path annotation’s value is a relative URI path. In the preceding example, the Java class will be hosted at the URI path /helloworld. This is an extremely simple use of the @Path annotation, with a static URI path. Variables can be embedded in the URIs. URI path templates are URIs with variables embedded within the URI syntax.
The @GET annotation is a request method designator, along with @POST, @PUT, @DELETE, and @HEAD, defined by JAX-RS and corresponding to the similarly named HTTP methods. In the example, the annotated Java method will process HTTP GET requests. The behavior of a resource is determined by the HTTP method to which the resource is responding.
The @Produces annotation is used to specify the MIME media types a resource can produce and send back to the client. In this example, the Java method will produce representations identified by the MIME media type "text/plain".
The @Consumes annotation is used to specify the MIME media types a resource can consume that were sent by the client. The example could be modified to set the message returned by the getClichedMessage method, as shown in this code example:
@POST @Consumes("text/plain") public void postClichedMessage(String message) { // Store the message }
The @Path Annotation and URI Path Templates
The @Path annotation identifies the URI path template to which the resource responds and is specified at the class or method level of a resource. The @Path annotation’s value is a partial URI path template relative to the base URI of the server on which the resource is deployed, the context root of the application, and the URL pattern to which the JAX-RS runtime responds.
URI path templates are URIs with variables embedded within the URI syntax. These variables are substituted at runtime in order for a resource to respond to a request based on the substituted URI. Variables are denoted by braces ({ and }). For example, look at the following @Path annotation:
@Path("/users/{username}")
In this kind of example, a user is prompted to type his or her name, and then a JAX-RS web service configured to respond to requests to this URI path template responds. For example, if the user types the user name “Galileo,” the web service responds to the following URL:
http://example.com/users/Galileo
To obtain the value of the user name, the @PathParam annotation may be used on the method parameter of a request method, as shown in the following code example:
@Path("/users/{username}") public class UserResource { @GET @Produces("text/xml") public String getUser(@PathParam("username") String userName) { ... } }
By default, the URI variable must match the regular expression "[^/]+?". This variable may be customized by specifying a different regular expression after the variable name. For example, if a user name must consist only of lowercase and uppercase alphanumeric characters, override the default regular expression in the variable definition:
@Path("users/{username: [a-zA-Z][a-zA-Z_0-9]*}")
In this example the username variable will match only user names that begin with one uppercase or lowercase letter and zero or more alphanumeric characters and the underscore character. If a user name does not match that template, a 404 (Not Found) response will be sent to the client.
A @Path value isn’t required to have leading or trailing slashes (/). The JAX-RS runtime parses URI path templates the same whether or not they have leading or trailing spaces.
A URI path template has one or more variables, with each variable name surrounded by braces: { to begin the variable name and } to end it. In the preceding example, username is the variable name. At runtime, a resource configured to respond to the preceding URI path template will attempt to process the URI data that corresponds to the location of {username} in the URI as the variable data for username.
For example, if you want to deploy a resource that responds to the URI path template http://example.com/myContextRoot/resources/{name1}/{name2}/, you must deploy the application to a Java EE server that responds to requests to the http://example.com/myContextRoot URI and then decorate your resource with the following @Path annotation:
@Path("/{name1}/{name2}/") public class SomeResource { ... }
In this example, the URL pattern for the JAX-RS helper servlet, specified in web.xml, is the default:
<servlet-mapping> <servlet-name>My JAX-RS Resource</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping>
A variable name can be used more than once in the URI path template.
If a character in the value of a variable would conflict with the reserved characters of a URI, the conflicting character should be substituted with percent encoding. For example, spaces in the value of a variable should be substituted with %20.
When defining URI path templates, be careful that the resulting URI after substitution is valid.
Table 20-2 lists some examples of URI path template variables and how the URIs are resolved after substitution. The following variable names and values are used in the examples:
name1: james
name2: gatz
name3:
location: Main%20Street
question: why
Note - The value of the name3 variable is an empty string.
URI Path Template |
URI After Substitution |
|---|---|
http://example.com/{name1}/{name2}/ |
http://example.com/james/gatz/ |
http://example.com/{question}/{question}/{question}/ |
http://example.com/why/why/why/ |
http://example.com/maps/{location} |
http://example.com/maps/Main%20Street |
http://example.com/{name3}/home/ |
http://example.com//home/ |
Responding to HTTP Methods and Requests
The behavior of a resource is determined by the HTTP methods (typically, GET, POST, PUT, DELETE) to which the resource is responding.
The Request Method Designator Annotations
Request method designator annotations are runtime annotations, defined by JAX-RS, that correspond to the similarly named HTTP methods. Within a resource class file, HTTP methods are mapped to Java programming language methods by using the request method designator annotations. The behavior of a resource is determined by which HTTP method the resource is responding to. JAX-RS defines a set of request method designators for the common HTTP methods @GET, @POST, @PUT, @DELETE, and @HEAD; you can also create your own custom request method designators. Creating custom request method designators is outside the scope of this document.
The following example, an extract from the storage service sample, shows the use of the PUT method to create or update a storage container:
@PUT public Response putContainer() { System.out.println("PUT CONTAINER " + container); URI uri = uriInfo.getAbsolutePath(); Container c = new Container(container, uri.toString()); Response r; if (!MemoryStore.MS.hasContainer(c)) { r = Response.created(uri).build(); } else { r = Response.noContent().build(); } MemoryStore.MS.createContainer(c); return r; }
By default, the JAX-RS runtime will automatically support the methods HEAD and OPTIONS if not explicitly implemented. For HEAD, the runtime will invoke the implemented GET method, if present, and ignore the response entity, if set. For OPTIONS, the Allow response header will be set to the set of HTTP methods supported by the resource. In addition, the JAX-RS runtime will return a Web Application Definition Language (WADL) document describing the resource; see http://www.w3.org/Submission/wadl/ for more information.
Methods decorated with request method designators must return void, a Java programming language type, or a javax.ws.rs.core.Response object. Multiple parameters may be extracted from the URI by using the @PathParam or @QueryParam annotations as described in Extracting Request Parameters. Conversion between Java types and an entity body is the responsibility of an entity provider, such as MessageBodyReader or MessageBodyWriter. Methods that need to provide additional metadata with a response should return an instance of the Response class. The ResponseBuilder class provides a convenient way to create a Response instance using a builder pattern. The HTTP PUT and POST methods expect an HTTP request body, so you should use a MessageBodyReader for methods that respond to PUT and POST requests.
Both @PUT and @POST can be used to create or update a resource. POST can mean anything, so when using POST, it is up to the application to define the semantics. PUT has well-defined semantics. When using PUT for creation, the client declares the URI for the newly created resource.
PUT has very clear semantics for creating and updating a resource. The representation the client sends must be the same representation that is received using a GET, given the same media type. PUT does not allow a resource to be partially updated, a common mistake when attempting to use the PUT method. A common application pattern is to use POST to create a resource and return a 201 response with a location header whose value is the URI to the newly created resource. In this pattern, the web service declares the URI for the newly created resource.
Using Entity Providers to Map HTTP Response and Request Entity Bodies
Entity providers supply mapping services between representations and their associated Java types. The two types of entity providers are MessageBodyReader and MessageBodyWriter. For HTTP requests, the MessageBodyReader is used to map an HTTP request entity body to method parameters. On the response side, a return value is mapped to an HTTP response entity body by using a MessageBodyWriter. If the application needs to supply additional metadata, such as HTTP headers or a different status code, a method can return a Response that wraps the entity and that can be built by using Response.ResponseBuilder.
Table 20-3 shows the standard types that are supported automatically for HTTP request and response entity bodies. You need to write an entity provider only if you are not choosing one of these standard types.
Java Type |
Supported Media Types |
|---|---|
byte[] |
All media types (*/*) |
java.lang.String |
All text media types (text/*) |
java.io.InputStream |
All media types (*/*) |
java.io.Reader |
All media types (*/*) |
java.io.File |
All media types (*/*) |
javax.activation.DataSource |
All media types (*/*) |
javax.xml.transform.Source |
XML media types (text/xml, application/xml, and application/*+xml) |
javax.xml.bind.JAXBElement and application-supplied JAXB classes |
XML media types (text/xml, application/xml, and application/*+xml) |
MultivaluedMap<String, String> |
Form content (application/x-www-form-urlencoded) |
StreamingOutput |
All media types (*/*), MessageBodyWriter only |
The following example shows how to use MessageBodyReader with the @Consumes and @Provider annotations:
@Consumes("application/x-www-form-urlencoded") @Provider public class FormReader implements MessageBodyReader<NameValuePair> {
The following example shows how to use MessageBodyWriter with the @Produces and @Provider annotations:
@Produces("text/html") @Provider public class FormWriter implements MessageBodyWriter<Hashtable<String, String>> {
The following example shows how to use ResponseBuilder:
@GET public Response getItem() { System.out.println("GET ITEM " + container + " " + item); Item i = MemoryStore.MS.getItem(container, item); if (i == null) throw new NotFoundException("Item not found"); Date lastModified = i.getLastModified().getTime(); EntityTag et = new EntityTag(i.getDigest()); ResponseBuilder rb = request.evaluatePreconditions(lastModified, et); if (rb != null) return rb.build(); byte[] b = MemoryStore.MS.getItemData(container, item); return Response.ok(b, i.getMimeType()). lastModified(lastModified).tag(et).build(); }
Using @Consumes and @Produces to Customize Requests and Responses
The information sent to a resource and then passed back to the client is specified as a MIME media type in the headers of an HTTP request or response. You can specify which MIME media types of representations a resource can respond to or produce by using the following annotations:
javax.ws.rs.Consumes
javax.ws.rs.Produces
By default, a resource class can respond to and produce all MIME media types of representations specified in the HTTP request and response headers.
The @Produces Annotation
The @Produces annotation is used to specify the MIME media types or representations a resource can produce and send back to the client. If @Produces is applied at the class level, all the methods in a resource can produce the specified MIME types by default. If applied at the method level, the annotation overrides any @Produces annotations applied at the class level.
If no methods in a resource are able to produce the MIME type in a client request, the JAX-RS runtime sends back an HTTP “406 Not Acceptable” error.
The value of @Produces is an array of String of MIME types. For example:
@Produces({"image/jpeg,image/png"})
The following example shows how to apply @Produces at both the class and method levels:
@Path("/myResource") @Produces("text/plain") public class SomeResource { @GET public String doGetAsPlainText() { ... } @GET @Produces("text/html") public String doGetAsHtml() { ... } }
The doGetAsPlainText method defaults to the MIME media type of the @Produces annotation at the class level. The doGetAsHtml method’s @Produces annotation overrides the class-level @Produces setting and specifies that the method can produce HTML rather than plain text.
If a resource class is capable of producing more than one MIME media type, the resource method chosen will correspond to the most acceptable media type as declared by the client. More specifically, the Accept header of the HTTP request declares what is most acceptable. For example, if the Accept header is Accept: text/plain, the doGetAsPlainText method will be invoked. Alternatively, if the Accept header is Accept: text/plain;q=0.9, text/html, which declares that the client can accept media types of text/plain and text/html but prefers the latter, the doGetAsHtml method will be invoked.
More than one media type may be declared in the same @Produces declaration. The following code example shows how this is done:
@Produces({"application/xml", "application/json"}) public String doGetAsXmlOrJson() { ... }
The doGetAsXmlOrJson method will get invoked if either of the media types application/xml and application/json is acceptable. If both are equally acceptable, the former will be chosen because it occurs first. The preceding examples refer explicitly to MIME media types for clarity. It is possible to refer to constant values, which may reduce typographical errors. For more information, see the constant field values of MediaType at http://jsr311.java.net/nonav/releases/1.0/javax/ws/rs/core/MediaType.html.
The @Consumes Annotation
The @Consumes annotation is used to specify which MIME media types of representations a resource can accept, or consume, from the client. If @Consumes is applied at the class level, all the response methods accept the specified MIME types by default. If applied at the method level, @Consumes overrides any @Consumes annotations applied at the class level.
If a resource is unable to consume the MIME type of a client request, the JAX-RS runtime sends back an HTTP 415 (“Unsupported Media Type”) error.
The value of @Consumes is an array of String of acceptable MIME types. For example:
@Consumes({"text/plain,text/html"})
The following example shows how to apply @Consumes at both the class and method levels:
@Path("/myResource") @Consumes("multipart/related") public class SomeResource { @POST public String doPost(MimeMultipart mimeMultipartData) { ... } @POST @Consumes("application/x-www-form-urlencoded") public String doPost2(FormURLEncodedProperties formData) { ... } }
The doPost method defaults to the MIME media type of the @Consumes annotation at the class level. The doPost2 method overrides the class level @Consumes annotation to specify that it can accept URL-encoded form data.
If no resource methods can respond to the requested MIME type, an HTTP 415 (“Unsupported Media Type”) error is returned to the client.
The HelloWorld example discussed previously in this section can be modified to set the message by using @Consumes, as shown in the following code example:
@POST @Consumes("text/plain") public void postClichedMessage(String message) { // Store the message }
In this example, the Java method will consume representations identified by the MIME media type text/plain. Note that the resource method returns void. This means that no representation is returned and that a response with a status code of HTTP 204 (“No Content”) will be returned.
Extracting Request Parameters
Parameters of a resource method may be annotated with parameter-based annotations to extract information from a request. A previous example presented the use of the @PathParam parameter to extract a path parameter from the path component of the request URL that matched the path declared in @Path.
You can extract the following types of parameters for use in your resource class:
Query
URI path
Form
Cookie
Header
Matrix
Query parameters are extracted from the request URI query parameters and are specified by using the javax.ws.rs.QueryParam annotation in the method parameter arguments. The following example, from the sparklines sample application, demonstrates using @QueryParam to extract query parameters from the Query component of the request URL:
@Path("smooth") @GET public Response smooth( @DefaultValue("2") @QueryParam("step") int step, @DefaultValue("true") @QueryParam("min-m") boolean hasMin, @DefaultValue("true") @QueryParam("max-m") boolean hasMax, @DefaultValue("true") @QueryParam("last-m") boolean hasLast, @DefaultValue("blue") @QueryParam("min-color") ColorParam minColor, @DefaultValue("green") @QueryParam("max-color") ColorParam maxColor, @DefaultValue("red") @QueryParam("last-color") ColorParam lastColor ) { ... }
If the query parameter step exists in the query component of the request URI, the value of step will be extracted and parsed as a 32-bit signed integer and assigned to the step method parameter. If step does not exist, a default value of 2, as declared in the @DefaultValue annotation, will be assigned to the step method parameter. If the step value cannot be parsed as a 32-bit signed integer, an HTTP 400 (“Client Error”) response is returned.
User-defined Java programming language types may be used as query parameters. The following code example shows the ColorParam class used in the preceding query parameter example:
public class ColorParam extends Color { public ColorParam(String s) { super(getRGB(s)); } private static int getRGB(String s) { if (s.charAt(0) == '#') { try { Color c = Color.decode("0x" + s.substring(1)); return c.getRGB(); } catch (NumberFormatException e) { throw new WebApplicationException(400); } } else { try { Field f = Color.class.getField(s); return ((Color)f.get(null)).getRGB(); } catch (Exception e) { throw new WebApplicationException(400); } } } }
The constructor for ColorParam takes a single String parameter.
Both @QueryParam and @PathParam can be used only on the following Java types:
All primitive types except char
All wrapper classes of primitive types except Character
Any class with a constructor that accepts a single String argument
Any class with the static method named valueOf(String) that accepts a single String argument
List<T>, Set<T>, or SortedSet<T>, where T matches the already listed criteria. Sometimes, parameters may contain more than one value for the same name. If this is the case, these types may be used to obtain all values
If @DefaultValue is not used in conjunction with @QueryParam, and the query parameter is not present in the request, the value will be an empty collection for List, Set, or SortedSet; null for other object types; and the default for primitive types.
URI path parameters are extracted from the request URI, and the parameter names correspond to the URI path template variable names specified in the @Path class-level annotation. URI parameters are specified using the javax.ws.rs.PathParam annotation in the method parameter arguments. The following example shows how to use @Path variables and the @PathParam annotation in a method:
@Path("/{username}") public class MyResourceBean { ... @GET public String printUsername(@PathParam("username") String userId) { ... } }
In the preceding snippet, the URI path template variable name username is specified as a parameter to the printUsername method. The @PathParam annotation is set to the variable name username. At runtime, before printUsername is called, the value of username is extracted from the URI and cast to a String. The resulting String is then available to the method as the userId variable.
If the URI path template variable cannot be cast to the specified type, the JAX-RS runtime returns an HTTP 400 (“Bad Request”) error to the client. If the @PathParam annotation cannot be cast to the specified type, the JAX-RS runtime returns an HTTP 404 (“Not Found”) error to the client.
The @PathParam parameter and the other parameter-based annotations (@MatrixParam, @HeaderParam, @CookieParam, and @FormParam) obey the same rules as @QueryParam.
Cookie parameters, indicated by decorating the parameter with javax.ws.rs.CookieParam, extract information from the cookies declared in cookie-related HTTP headers. Header parameters, indicated by decorating the parameter with javax.ws.rs.HeaderParam, extract information from the HTTP headers. Matrix parameters, indicated by decorating the parameter with javax.ws.rs.MatrixParam, extract information from URL path segments.
Form parameters, indicated by decorating the parameter with javax.ws.rs.FormParam, extract information from a request representation that is of the MIME media type application/x-www-form-urlencoded and conforms to the encoding specified by HTML forms, as described in http://www.w3.org/TR/html401/interact/forms.html#h-<IP_ADDRESS>. This parameter is very useful for extracting information sent by POST in HTML forms.
The following example extracts the name form parameter from the POST form data:
@POST @Consumes("application/x-www-form-urlencoded") public void post(@FormParam("name") String name) { // Store the message }
To obtain a general map of parameter names and values for query and path parameters, use the following code:
@GET public String get(@Context UriInfo ui) { MultivaluedMap<String, String> queryParams = ui.getQueryParameters(); MultivaluedMap<String, String> pathParams = ui.getPathParameters(); }
The following method extracts header and cookie parameter names and values into a map:
@GET public String get(@Context HttpHeaders hh) { MultivaluedMap<String, String> headerParams = hh.getRequestHeaders(); Map<String, Cookie> pathParams = hh.getCookies(); }
In general, @Context can be used to obtain contextual Java types related to the request or response.
For form parameters, it is possible to do the following:
@POST @Consumes("application/x-www-form-urlencoded") public void post(MultivaluedMap<String, String> formParams) { // Store the message }


--- layout: post title: THe Astoria Team Is hiring !!! date: 2010-01-26 10:31:00.000000000 -05:00 type: post published: true status: publish categories: [] tags: - Job announcements - Nontech meta: _encloseme: '1' orig_url: http://blogs.msdn.microsoft.com/b/phaniraj/archive/2010/01/26/the-astoria-team-is-hiring.aspx orig_site_id: '7524' orig_post_id: '9953627' orig_parent_id: '9953627' orig_thread_id: '697764' _wds_ratings_users: '0' orig_application_key: phaniraj orig_post_author_id: '56365' orig_post_author_username: PhaniRajuYN orig_post_author_created: Nov 10 2006 05:47:39:000PM orig_is_approved: '1' orig_attachment_count: '0' orig_url_title: http://blogs.msdn.com/b/phaniraj/archive/2010/01/26/the-astoria-team-is-hiring.aspx opengraph_tags: | author: login: phanirajuyn email<EMAIL_ADDRESS>display_name: Phani Raju MSFT first_name: '' last_name: '' ---
Yep , we now have open positions for a few testers who get to work on the next generation of Data Protocols.
Some advantages of working on the team :
1. You get to work with Pablo Castro
2. We have annual ski events which are always fun
3. The team is filled with some of the smartest people you’ll come to know
4. You get to own and deliver key components of the Astoria runtime while learning a lot about data and REST
How do I apply ?
Send an email to<EMAIL_ADDRESS>with your resume and “Astoria/EF Team Referal" :<YourNameHere>” in the subject.
( or )
Apply via the Job site and put in my alias “PhaniRaj” as the referal .
The job descriptions :
Open positions on the Astoria Team:
https://careers.microsoft.com/JobDetails.aspx?ss=&pg=0&so=&rw=1&jid=11878&jlang=EN
Open positions on the EF Team :
https://careers.microsoft.com/JobDetails.aspx?ss=&pg=0&so=&rw=1&jid=11877&jlang=EN


Click Statistics, Map or Wikipedia on the left to begin query input.
The top section is used to query the server for data on countries. Enter the name and check the details you wish to retrieve. Press Statistics, Map or Wikipedia to view each section of data. Press toggle all to toggle all checkboxes.
The lower section is used for free control of the map. Simply enter latitude and longitude, zoom level and map type, then hit submit.
To go to the admin page, press the red Admin Page button at the bottom of the page.
Error 404: Page not found!


{# This simple template derives from ``base.html``. See ``base.html`` for more information about template inheritance. #} {%- extends "base.html" %} {# Loads some of the macros included with Flask-Bootstrap. We are using the utils module here to automatically render Flask's flashed messages in a bootstrap friendly manner #} {% import "bootstrap/utils.html" as utils %} {# Inside the ``content`` is where you should place most of your own stuff. This will keep scripts at the page end and a navbar you add on later intact. #} {% block content %}
| # | ♪ | Title | Type | Item | Edit |
|---|---|---|---|---|---|
| {{ loop.index }} | {% if entry.playitems %} ✓ {% else %} - {% endif %} | {{ entry.title }} | {{ entry.type }} | {{ entry.item }} | Play {% if session.logged_in %} Write {%- endif %} |


Jenkins backporting toolkit is a set of scripts that assist in backporting fixes from the master branch to the LTS branch. See LTS Release Line for the process.
Prerequisite
Part of this tool is written in Groovy, other part in Ruby. You'll also need to have a Java property file in ~/.jenkins-ci.org
file that contains your jenkins-ci.org user name and password in "userName" and "password" keys. Example below:
userName=kohsuke password=xxxxx
Tool: jenkins-backport-generate-list
Usage: jenkins-backport-generate-list <MASTER-REV-LIST> <STABLE-REV-LIST>
This command takes two parameters that represent (1) commits that are made in the master branch that are subject of the backporting ("MASTER-REV-LIST") and (2) commits that are made in the stable branch ("STABLE-REV-LIST"). For more information about how to specify commits, refer to git-rev-parse man page. The command is a wrapper of git
, and it expects you to be inside the Jenkins workspace.
The typical approach is to run it like jenkins-backport-generate-list 1.X..1.Y 1.X..stable"
where 1.X is the main line release version from which LTS was branched off, and 1.Y is the latest main line release that satisfies the soaking criteria (last release -2).
The script lists up all the tickets that are marked as fixed in the master branch, except all the ones that are also marked as fixed in the stable branch. For each ticket, it'll retrieve other information about the ticket from JIRA, such as # of votes, priority, description, etc., and the result will be tabluated into an HTML table:
For each ticket it'll also list up all the commits that are needed for the fix. This process uses the commit log notation used in Jenkins, and the list of commits are written as text file in ./cherry-pick/<TICKETID>
. So for example one of them would look like the following:
% cat cherry-pick/JENKINS-10030 307fca204598d2496325455ee49b1b634e71fdf2 6b5ef4bd4aa8703f26ca7bda421171b56f9d7db9
Tool: jenkins-backport-cherry-pick
Usage: jenkins-backport-cherry-pick <TICKETID>
This command uses ./cherry-pick/*
that are left behind by jenkins-backport-generate-list
, and assits the actual cherry-pick activity. It basically runs git-cherry-pick
for each commit listed in the cherry-pick file. It will automatically resolve the conflict on ./changelog.html
that's very common during backporting, by always favoring the version in the stable branch — this is OK because the LTS changelog is generated automatically.
If a conflict occurs, it'll launch interactive shell and ask you to resolve it. You'll do so, and exit from the shell, and the script will continue where it left off. It'll commit each cherry-picked change with the special header indicating the original commit ID (git cherry-pick
doesn't do this for commits that have conflicts.)
TODO
- Switch to JIRA REST API client so that we can honor the 'lts-candidate' labels.


Enjoy exclusive benefits of premium
2,000+ servers
4x faster
Multiple devices
40+ different countries
No bandwidth or quota limitation
Priority support
Bypass list
Sort server list
Upgrade Once, use on PC, Phone and Tablet


interceptors
Module
Module Summary
Description
This module contains the mandatory functions for user supplied native interceptors and their intended behavior. See also the User's Guide.
Using Interceptors may reduce the through-put significantly if the supplied interceptors invoke expensive operations. Hence, one should always supply interceptors which cause as little overhead as possible.
It is possible to alter the Data, Bin and Args parameter for the in_reply and out_reply, in_reply_encoded, in_request_encoded, out_reply_encoded and out_request_encoded, in_request and out_request respectively. But, if it is done incorrectly, the consequences can be serious.
The Extra parameter is set to 'undefined' by Orber when calling the first interceptor and may be set to any Erlang term. If an interceptor change this parameter it will be passed on to the next interceptor in the list uninterpreted.
The Ref parameter is set to 'undefined' by Orber when calling new_in_connection or new_out_connection using the first interceptor. The user supplied interceptor may set NewRef to any Erlang term. If an interceptor change this parameter it will be passed on to the next interceptor in the list uninterpreted.
Exports
new_in_connection(Ref, PeerHost, PeerPort) -> NewRef
new_in_connection(Ref, PeerHost, PeerPort, SocketHost, SocketPort) -> NewRef
Types
When a new connection is requested by a client side ORB this operation is invoked. If more than one interceptor is supplied, e.g., {native, ['myInterceptor1', 'myInterceptor2']}, the return value from 'myInterceptor1' is passed to 'myInterceptor2' as Ref. Initially, Orber uses the atom 'undefined' as Ref parameter when calling the first interceptor. The return value from the last interceptor, in the example above 'myInterceptor2', is passed to all other functions exported by the interceptors. Hence, the Ref parameter can, for example, be used as a unique identifier to mnesia or ets where information/restrictions for this connection is stored.
The PeerHost and PeerPort variables supplied data of the client ORB which requested a new connection. SocketHost and SocketPort are the local interface and port the client connected to.
If, for some reason, we do not allow the client ORB to connect simply invoke exit(Reason).
new_out_connection(Ref, PeerHost, PeerPort) -> NewRef
new_out_connection(Ref, PeerHost, PeerPort, SocketHost, SocketPort) -> NewRef
Types
When a new connection is set up this function is invoked. Behaves just like new_in_connection; the only difference is that the PeerHost and PeerPort variables identifies the target ORB's bootstrap data and SocketHost and SocketPort are the local interface and port the client ORB connected via.
closed_in_connection(Ref) -> NewRef
Types
When an existing connection is terminated this operation is invoked. The main purpose of this function is to make it possible for a user to clean up all data associated with the associated connection.
The input parameter Ref is the return value from new_in_connection/3.
closed_out_connection(Ref) -> NewRef
Types
When an existing connection is terminated this operation is invoked. The main purpose of this function is to make it possible for a user to clean up all data associated with the associated connection.
The input parameter Ref is the return value from new_out_connection/3.
in_reply(Ref, Obj, Ctx, Op, Data, Extra) -> Reply
Types
When replies are delivered from the server side ORB to the client side ORB this operation is invoked. The Data parameter is a list in which the first element is the return value value from the target object and the rest is a all parameters defined as out or inout in the IDL-specification.
in_reply_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply
Types
When replies are delivered from the server side ORB to the client side ORB this operation is invoked. The Bin parameter is the reply body still uncoded.
in_request(Ref, Obj, Ctx, Op, Args, Extra) -> Reply
Types
When a new request arrives at the server side ORB this operation is invoked.
in_request_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply
Types
When a new request arrives at the server side ORB this operation is invoked before decoding the request body.
out_reply(Ref, Obj, Ctx, Op, Data, Extra) -> Reply
Types
After the target object have been invoked this operation is invoked with the result. The Data parameter is a list in which the first element is the return value value from the target object and the rest is a all parameters defined as out or inout in the IDL-specification.
out_reply_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply
Types
This operation is similar to out_reply; the only difference is that the reply body have been encoded.
out_request(Ref, Obj, Ctx, Op, Args, Extra) -> Reply
Types
Before a request is sent to the server side ORB, out_request is invoked.
out_request_encoded(Ref, Obj, Ctx, Op, Bin, Extra) -> Reply
Types
This operation is similar to out_request; the only difference is that the request body have been encoded.


Italian World Cup winner Grosso to coach struggling Brescia
Serie A strugglers Brescia named Italian 2006 World Cup winner Fabio Grosso as their new coach on Tuesday.
MILAN: Serie A strugglers Brescia named Italian 2006 World Cup winner Fabio Grosso as their new coach on Tuesday.
The club confirmed in a statement on their website that the 41-year-old would replace Eugenio Corini, who led Brescia out of Serie B last season but was sacked on Sunday after only 10 games of the present campaign following a 2-1 defeat at Verona.
Grosso, who has previously coached Bari and Verona, is best known for scoring a dramatic goal deep into extra-time as Italy beat hosts Germany 2-0 in the 2006 World Cup semi-finals.
He also converted the winning kick as Italy beat France on penalties in the final following a 1-1 draw.
Brescia, who are second bottom in the 20-team table with seven points from 10 games, are the fifth Serie A club to change coach this season following Sampdoria, Genoa, AC Milan and Udinese.
(Writing by Brian Homewood; Editing by Toby Davis)


longitudinal-data-structures.Rmd
All data has structure. There are ways that we can specify some permanent structure to the data, which gives some useful features later on, for free. This vignette discusses how to structure your longitudinal data as a time series, and what that means.
This idea, that longitudinal data is a time series, is Big Idea #1 behind the brolgar
package.
Anything that is observed sequentially over time is a time series. – Professors Rob Hyndman and George Athanasopolous
Longitudinal data has a few other names, such as “panel data”. I used to always think that “time series” was defined as something that was by definition “regular” - with equal spacings between observations. This is actually not the case - you can have both “regular”, and “irregular” time series.
Why care about using a time series? Once we account for this time series structure inherent in longitudinal data, we gain access to a suite of nice tools that simplify and accelerate how we work with time series data. brolgar
is built on top of the powerful tsibble
package by Earo Wang, if you would like to learn more, see the official package documentation or read the paper.
To convert longitudinal data into a “time series tibble”, a tsibble
, we need to consider:
Together, the index and key uniquely identify an observation.
What do we mean by this? Let’s look at the first section of the wages, wages data analysed in Singer & Willett (2003):
library(brolgar)
suppressPackageStartupMessages(library(dplyr))
slice(wages, 1:10)
#> # A tsibble: 10 x 9 [!]
#> # Key: id [2]
#> id ln_wages xp ged xp_since_ged black hispanic high_grade
#> <int> <dbl> <dbl> <int> <dbl> <int> <int> <int>
#> 1 31 1.49 0.015 1 0.015 0 1 8
#> 2 31 1.43 0.715 1 0.715 0 1 8
#> 3 31 1.47 1.73 1 1.73 0 1 8
#> 4 31 1.75 2.77 1 2.77 0 1 8
#> 5 31 1.93 3.93 1 3.93 0 1 8
#> 6 31 1.71 4.95 1 4.95 0 1 8
#> 7 31 2.09 5.96 1 5.96 0 1 8
#> 8 31 2.13 6.98 1 6.98 0 1 8
#> 9 36 1.98 0.315 1 0.315 0 0 9
#> 10 36 1.80 0.983 1 0.983 0 0 9
#> # … with 1 more variable: unemploy_rate <dbl>
We have the id
column, which identifies an individual.
We also have the xp
column, which identifies the experience an individual has.
So:
id
xp
We could create a tsibble
of this data by using the as_tsibble
function from tsibble
, also stating, regular = FALSE
, since we have an irregular
time series (the measurements are not regularly measured, and have a varying distance between each measurement):
library(tsibble)
as_tsibble(x = wages,
key = id,
index = xp,
regular = FALSE)
#> # A tsibble: 6,402 x 9 [!]
#> # Key: id [888]
#> id ln_wages xp ged xp_since_ged black hispanic high_grade
#> <int> <dbl> <dbl> <int> <dbl> <int> <int> <int>
#> 1 31 1.49 0.015 1 0.015 0 1 8
#> 2 31 1.43 0.715 1 0.715 0 1 8
#> 3 31 1.47 1.73 1 1.73 0 1 8
#> 4 31 1.75 2.77 1 2.77 0 1 8
#> 5 31 1.93 3.93 1 3.93 0 1 8
#> 6 31 1.71 4.95 1 4.95 0 1 8
#> 7 31 2.09 5.96 1 5.96 0 1 8
#> 8 31 2.13 6.98 1 6.98 0 1 8
#> 9 36 1.98 0.315 1 0.315 0 0 9
#> 10 36 1.80 0.983 1 0.983 0 0 9
#> # … with 6,392 more rows, and 1 more variable: unemploy_rate <dbl>
Note the following information printed at the top of wages
# A tsibble: 6,402 x 9 [!]
# Key: id [888]
...
This says:
The !
at the top means that there is no regular spacing between series
The “key” variable is then listed - id
, of which there 888.


GameObject()
Last Updated: August 24, 2019 12:38
Usage:
1 new GameObject(Jabo.canvasContext);
Doesn't contain any parameters but you can set it individually after declaration
Properties:
x
- X coordinate
y
- Y coordinate
width
- Size of the object horizontally
height
- Size of object vertically
sprite
- May contain Animation(), JSprite(), or none (will render a black rectangle).
Functions:
GameObject.update()
- Updates the object
GameObject.render()
- Renders the object
GameObject.near()
- returns nearest GameObject
GameObject.Translate(xMove, yMove)
- Moves object more info.
GameObject.delete()
- removes this GameObject() from objects[]
Additional Information
When you initialize a GameObject() it is automatically added into objects[] variable. objects[] are built-in variable to store all Game Objects. You can easily get an element from objects[] by using objects[index].


Change your account information
Import bookmarks from an HTML file exported by your browser or Delicious
Drag the bookmarklet below into your browser's bookmarks bar, then click it while on any page you want to save.
Save on Bookmarkly
If you use Google Chrome, you can download this extension to add a bookmarkly button to your browser's toolbar.


IAB Tech Lab U.S. Privacy API Reference Implementation
Case 1: Business declared CCPA doesn't apply
Please wait...
Case 2: User did opt out, do not share data
Please wait...
Case 3: User didn't opt out, business as usual
Please wait...


Tinder - Dating. Friends. Fun.
With 30 billion matches to date, Tinder® is the world’s most popular app for meeting new people.  Chat and meet up with interesting people
(252)
Social Networking
Grindr LLC
SCRUFF
SCRUFF is the top-rated and most reliable app for gay, bi, trans and queer guys to connect.
More than 15 million guys worldwide use SCRUFF to find fr
(221)
Social Networking
Perry Street Software, Inc
Bumble - Dating. Friends. Chat
Millions of people have signed up for Bumble to start building valuable relationships, finding friends, and making empowered connections.
 It displays posts from the moments of your life, showcasing you and your interests. Inviting guys to connec
(28)
Social Networking
Hornet Networks Limited
Badoo — Dating. Chat. Friends
Welcome to Badoo, the place to date honestly!
 Blued allows you to date cute guys from around the world,
(25)
Social Networking
BlueCity Holdings Hong Kong Limited
Jack’d - Gay Chat & Dating
Jack’d is where you’ll find the most diverse community of gay, bi, trans, queer, and curious guys around the globe. With 5 million people spanning
(5)
Social Networking
Perry Street Software, Inc
Zoosk Dating: Chat, Meet, Date
Tired of having to swipe through countless profiles on dating sites, and want more meaningful date experiences with quality people? Zoosk helps millio
(424)
Social Networking
Zoosk, Inc.
Skout — Meet New People
Skout is the global network for meeting new people.
Instantly meet people near you or around the world.  Unlike other apps, speed limits are automatically updated for your location. See the intro vide
(97)
Navigation
Tagged -Chill, Chat & Go Live!
Tagged is the #1 place to link up with new people, chill and play games with over 300 Million other users!
So, what makes us different from other app
(1,379)
Social Networking
Ifwe Inc.
Chat for Strangers, Video Chat
Making new friends is now an entertaining iPhone and IPad experience.
With "Chat for Strangers - Random Video Chat" you can chat with 1000's of other
(135)
Social Networking
FunPokes, Inc.
SURGE – Gay Dating & Chat App
Looking for your next hot gay date? SURGE is a favorite free dating app for gays, bi, trans and queer men to meet, chat and date with lovely guys!  Your Pride is our Pride.
 Manhunt is the most direct way for men to meet other men. Be
(3)
Lifestyle
Online Buddies, Inc
GROWLr: Gay Bears Near You
The only app for Bears and Bear Chasers!
 GROWLr allows
(183)
Social Networking
Initech, LLC
OkCupid: Online Dating App
Get the best dating app for singles and find a match based on who you really are and what you love.
Better dates come from better connections - that�
(286)
Social Networking
OkCupid
Daddyhunt: Fun Gay Dating
Daddyhunt: It’s a Lifestyle!
Daddyhunt is the largest online gay community in the world specifically for older men and their admirers. Whether you�
(13)
Social Networking
DH Services
MeetMe - Meet new people!
MeetMe helps you find new people nearby who share your interests and want to chat now! It’s fun, friendly, and free!
Join 100+ MILLION PEOPLE chat
(464)
Social Networking
MeetMe, Inc.
ROMEO - Gay Dating & Chat
Join the world's most exciting gay social network. With more free options than any other gay dating app, ROMEO is the best way to meet new people and
(106)
Social Networking
PlanetRomeo B.V.
 Be careful what you choose, though: one choice can change the course o
(640)
Games
Nanobit d.o.o.
翻牌子-Gay或Les年轻的同志配对应用
翻牌子是当下华人同志社群非常年轻和流行的高效配对应用。
截止目前，翻牌子用户已累计产生1553896794次配对。
Social Networking
Shanghai TWONE Information Technology Co.,Ltd
Video Call Santa
No 1 Overall in the US, UK, Ireland, and Australia
The original Video Call Santa is back with our biggest update!
“This Genius Video Call Santa ap
(540)
Entertainment
Dualverse, Inc.
Clover Dating App
Clover is the fastest way to meet new people on your iPhone.
Forget needing to use multiple dating apps, Clover is the only free dating app you’ll
(190)
Social Networking
Clover Inc.
AdultChat live video call&chat
Are you looking for a specific circle that you could meet friends or start a romantic video talk? Chat and meet up with interesting people, you could
(1)
Social Networking
Wai Ching Chow
GuySpy: Gay Dating & Chat
If you are looking to chat or date with hot gay or bisexual guys near you, download our dating app and get these great free features:
• Check out
(59)
Social Networking
Pink Triangle Press
misterb&b - Gay Travel
Experience a more welcoming world with misterb&b.

Start by exploring a new type of video with Amino Stories to share the best pa
(1,341)
Social Networking
Narvii Inc.
3Fun: Threesome & Swingers App
3Fun - The Best Threesome App for Meeting Local Open-minded People for 3some & Swinger Lifestyle. 3Fun is a safe and private space where you can share
(152)
Social Networking
3Fun Limited
DOWN Date&Hookup:18+ Fun Chat
** Now with 6.5 MILLION singles worldwide! **
The Fastest Growing Dating & Hookup App
The only dating app that gives you the power to be honest - yo
(92)
Lifestyle
Down, Inc.
EliteSingles - Serious Dating
Looking for a 30+ dating app? Educated singles? You’re in the right place!

REVIEWS:
"There's a pinch of magic to
(1)
Games
Digicub Ltd.
HER: Lesbian & LGBTQ Dating
Join 7 million lesbian, bisexual and queer people on HER - the world's largest and most loved free dating app for LGBTQ women.
So much more than 'sw
(144)
Lifestyle
Bloomer Inc
Matcha: Challenge Your Crush
Whether love is just a Game to you or something very serious, Matcha Dating App is dedicated to suit your needs.
GAYTIMES+ is the new LGBTQ+ membersh
Lifestyle
GAY TIMES LIMITED
Feeld: For Couples & Singles
Dating for humans. Feeld is a digital dating space where you can explore your desires. An alternative dating platform for couples and singles that is
(138)
Lifestyle
Feeld Ltd
GayCities LGBTQ City Guides
Instantly access recommended gay bars, restaurants, shops, gyms and more with photos, descriptions and reviews. Find where to go and what to do in ov
Travel
Q.Digital, Inc.
Sexy Game for Couples: Dirty
◆◆◆ Download for FREE while it lasts! ◆◆◆ The biggest ever collection of TRUTH and DARES ◆◆◆
▶ All the best Truth or Dares in o
(24)
Entertainment
Dobrinka Peeva
Twoo - Meet New People
Meet millions of new people from all over the world, wherever you are. Have a good chat, make new friends or even find the love of your life.
Discover Shuffle list to meet new people or
Share your profile link to connect with your friends!
Millions of
(141)
Social Networking
C2M BILISIM TEKNOLOJILERI REKLAM HIZMETLERI TICARET VE ORGANIZASYON A S
EDGE Gay/Lesbian News
Welcome to the world’s largest network for LGBTQ+ news and entertainment!
As featured in DIVA, Curve and many others!
Choose you
(1)
Games
Digicub Ltd.
Race Arena - Fall Car Battle
Race off, enter the arena and start drifting! Race Arena is a 3D physics-based game where you and your racing rivals compete for the space on the plat
(25)
Games
DEVGEIM, OOO
Brainbuddy: Quit Porn Forever
*Celebrating 1 MILLION downloads. As featured in TIME magazine.*
Addicted to porn? Reboot your brain. Reboot your life.
Brainbuddy rewires your bra
(54)
Health & Fitness
AppStudio Australia Pty Ltd
HOLE, the gay chat & dating
Open HOLE and you are one tap away from finding a partner.
 When it’s 100% free and totally safe to use! Check it out ht
Social Networking
Thomas Quas IT Solutions
Recon - Find Fetish Men
The world’s biggest dating app exclusively for gay, bi or curious men into fetish.  Fix a mind-blowing date with the nicest local match. Fill every moment with love energy. Our app
(2)
Lifestyle
NSI (HOLDINGS) LIMITED
Sex Dice - Play love games with your beloved
#1 TOP RELATIONSHIP IMPROVING APP IN THE USA WITH MORE THAN 1,000,000 DOWNLOADS!
Sex dice is a dice game intended to heighten the atmosphere and prom
(1)
Games
Apps BG SLLC
Grizzly- Gay Dating & Chat
Tired of hunting for GAY GUYS on your own? Stop fantasizing about love and find it instantly on Grizzly, the hottest gay dating app for bears! Create
(9)
Lifestyle
Surge Gay App s.r.o.
Love Tester - Crush Test Quiz
Looking to find out if you are in love with someone? If you are, this love test calculator app is exactly what you are looking for.
Answer ten questi
(114)
Games
DH3 Games Ltd
Attitude Magazine.
 Redesigned for iPad, our interactive editions come with moving video covers, behind the scen
(3)
Lifestyle
Stream Publishing Limited
Video Chat BFF - Social Text Messenger to Match Straight, Gay, Lesbian Singles nearby for FaceTime, Skype, Kik & Snapchat calls
Join, search and contact over 350,000 FaceTime, Skype, Kik & Snapchat users around the world for FREE!
 Find a new friend or your Mr. Right.
 The hottest app for gay, bi, and curious men who are looking to have fun, or find love.  Meet nearby men, chat with guys that are currently visiti
Social Networking
Cyberserve Ltd.
9monsters Gay Chat
9monsters is a very unique gay social application originating in Japan with a central focus on the Asia-Pacific.
Mainly, This app has 2 key features w
Social Networking
applibros Inc.

From the creators of
(1)
Games
WET Productions Incorporated
Gays AroundMe - Gay Dating To Meet New Local Guys
Welcome to GaysAroundMe which is part of the iconic brand SinglesAroundMe™.

T
(1)
Entertainment
GreenTomatoMedia Limited
KinkD: Kink, BDSM Dating Chat
KinkD - The best bondage, kink, fetish and BDSM dating community. A premier kinky chat & social network app for kinky singles, couples and swingers!
Getmale will (perhaps?) help you achieve your dreams and spend some great time
- Communicate with our members through a person
Social Networking
Kozelo
Gay Video Streaming & Dating
Partner is a cool gay dating app for real communication only.
Our superiority over other dating apps:
- No need for a long talk with strangers online
(1)
Social Networking
My Top Apps Limited
Fridae - LGBT Asia
The Fridae Mobile Dating App - Empowering LGBT Asia
The Fridae App, for the Asian Lesbian, Gay, Bi and Trans Community all over the world.
Founded i
(15)
Social Networking
Fridae Limited
LongStory
Who ever said you can't go back?
LongStory, a charming and LGBTQ+ friendly dating sim set at the weirdly lovable Weasel Heights Middle School lets yo
(13)
Games
Bloom Digital Media Inc.
Obey Me! - Anime Otome Sim -
▶▷▶A Brand New Gaming Experience◀◁◀
What if the characters could come by your side, laugh and cry together with you, and become your frien
(113)
Games
NTT Solmare
Lovelink™- Chapters of Love
Meet your dream match – just one swipe away!
 With intere
(99)
Games
Ludia
My Love & Dating Story Choices
Welcome to the best love story games ever!!!
BEARWWW is the social network of the gay bear community.
Meet and greet others g
(2)
Social Networking
COREXCO
Spartacus Int. Gay Guide
Unique travel experiences start with Spartacus. Explore unique locations - including all hotspots of the gay community.  We are happy about every 5* rating "
GAY FM is pure good mood! Dance to the best remixes from the clubs of this world - and to
(2)
Music
Silvacast GmbH
Threesome Hookup, 3Some Meet
3rder is the No.1 threesome dating app and dating site where peculiar and open-minded couples and singles meet for fun!
Do you want to find some loca
(15)
Social Networking
长安 毛
Big Book of Kamasutra
Ready to test your limits? Download and explore this big book of kamasutra sex positions. As we say at Big Book, if it's not in here, then it's just
Shopping
Benjamin Satterwhite
Gay Dating Hookup Chat App for Kik & Snapchat
It couldn't be easier to make new friends on Kik Messenger and Snapchat, followers for Instagram, browse our community that's the home to thousands of
Social Networking
Songfu Jiang
AI Virtual Boyfriend — Romance
Meet our virtual boyfriends! Each of them is unique and has many stories to tell you.

 - ZDNet Brazil
“Cruise
Lifestyle
Shag Digital Pty Ltd
WOW Presents Plus
WOW Presents Plus features the best of Pop, Doc, Drag, and original LGBT Programming. Join now for exclusive new series featuring Bob the Drag Queen,
(132)
Entertainment
World of Wonder Productions
Ghost Detector Haunted Radar
Find ghosts and places of other paranormal activities with EM4,
The most accurate sensor for iOS devices.
New algorithm - EM4 is finally stable, it's
(18)
Entertainment
Talgame LLC
BRO: Friends, Dates, and FWBs
The Bro App (BRO) is the new 'social app' just for men for friendship, dates, and more! BRO goes beyond using labels, and is for men that are interest
(15)
Social Networking
BROTECH, LLC
B-Messenger Video Chat
B-Messenger is a trendy video chat app with over 5 million subscribers worldwide. Join us to instantly connect with new friends in your area or meet n
Social Networking
Burhan Bozkurt
Dirty Jokes - Funny Jokes For Adults
———————————————
OVERVIEW
———————————————
Enjoy the best
of the best adult jokes, ever!
�
Book
Mario Guenther-Bruns
HARDLINE Chat
Meet hot gay, bi, and curious guys near you on the best chat dating app Hardline Chat! It's got everything Grindr, Jack'd, GuySpy and Scruff doesn't h
Social Networking
First Media Group Inc.
RealMen
RealMen is innovative and smart web platform for gay male dating, developed by dedicated team with long experience in the industry. The intuitive and
(2)
Social Networking
RM Media GmbH
QMagazine Gay Lifestyle
QMagazine e la prima rivista gay friendly italiana di Turismo & Lifestyle per gli uomini e le donne che amano il bello. QMagazine ama definirsi aperta
Lifestyle
Pocketmags Europe Ltd
Wapo Gay Dating & Chat For Men
FREE GAY DATING, CHAT & MEET FOR MEN 18+!
Introducing Wapo, one of the world’s most popular dating apps for you to find, meet and talk to gay, bi
(1)
Social Networking
Wapo y Wapa Limited
Animate Me - Dance Video Maker
Become a MUSIC VIDEO DIRECTOR in one of the most fun entertainment apps of the year.
Animate Me - Dance Video Maker!
Why is this DIFFERENT than all
(2)
Photo & Video
Psycho Bear Studios
Pocketmags Digital Newsstand
Download the Pocketmags Magazine Newsstand app today and receive a FREE issue from some of our best-sellers. Discover, Read and Enjoy more than 1,000
(3)
Lifestyle
MagazineCloner.com Limited
Looky - celebrity Lookalike
Looky uses the best machine learning algorithms to find really important information like which celebrity do you most resemble?!
Looky will give you
(74)
Games
Who do I Look Like Inc.
Musclr - Gay Muscle Dating
Musclr is a dating app and social network for catered to the muscle community and muscle-worshipers! You can choose to sign up as a Muscle Man or Wors
Social Networking
Pocket Bear LTD
GayRoyal - Dating & Chat
GayRoyal App is the official App to the world’s #1 Gay Dating Site GayRoyal.com
With GayRoyal you have all your dating possibilities at the palm o
Social Networking
42pixels
Gays dating app - Chance
Meet your men!

The concept is easy: Swipe right
(45)
Social Networking
Surge Gay App s.r.o.


--- title: Wiley's UI Living Style Guide fabricator: true ---
Wiley’s UI Living Style Guide is an accessory to the One Wiley Brand Guidelines. The purpose of this style guide is to help inform the design of digital products such as websites, web apps, and mobile apps. Like the One Wiley Brand Guidelines, this living style guide is meant to be flexible, and it will evolve over time. The intention is that UI designers start using it as much as possible over time, so please check back here when starting a new digital initiative.
Currently the toolkit only includes some fundamental elements of the One Wiley visual language and several footer templates. In the future we aim to increase the scope of the One Wiley UI Guidelines to encompass a wide range of HTML and CSS components that can be easily dropped into future websites and applications.
These guidelines have been designed to ensure we have a consistent, yet flexible brand look and feel across all of Wiley. They’ve been divided into nine key sections that should provide a good understanding of what to do and how to do it.
While we’ve provided many examples, there will always be some exceptions to the rules or questions that remain unanswered. If you find yourself in such a situation, then do your best to come to a sensible conclusion. If there’s something that you’re not 100% sure about, then please feel free to contact a member of the UI Living Style Guide team.
Wiley has a direct relationship with an increasing amount of products and brands. Some are sub-brands of Wiley, others communicate their own identity to a particular user group.
To illustrate the broad range of distinct online products Wiley helps facilitate, we have created the diagram below.
{{this.description}}
Some examples include:
The effort to maintain this living style guide is currently being undertaken by Stuart Allen .


Legivel Wish List
Processing options
The processing of the Legivel Mapper should be configurable with attributes and processing options.
The following options are desired:
- Use default value if missing. ie a missing mandatory int should get value 0, a missing string should get an empty string (!)
The following attributes are desired:
- Attribute in which one can define a default value on a field, in case of a missing value
Wrapped style Discriminated Union
The following Yaml must be mapped to a DU's Union Cases, with containing data:
1: 2: |
|
Implementation is tricky; probably requires a dedicated list-of-DU mapper.
More FSharp types support
Support for:
- FSharp Map
- FSharp Set (using YamlExtended tag "!!set"?)
- Tuples? (not sure about this one)
Multi-platform support
This library currently supports net461, obviously it should also support netstandard16 or something higher.
Readable Serialization
Currently, Legivel only supports Yaml parsing. The Legivel.Parser also has a ToCanonical serializer, but this is in machine format, not in human-readable format. This feature should be taken into two steps, in the Legivel.Mapper a mapper must convert native to the generic format, and the Legivel.Parser should get the generic to readable string function. Adding this feature contradicts "Parser" in the name Legivel.Parser, but let's solve that naming problem later.


btSoftBody::ePSolver Struct Reference
ePSolver : positions solvers
More...
#include <btSoftBody.h>
List of all members.
Detailed Description
ePSolver : positions solvers
Definition at line 102 of file btSoftBody.h.
Member Enumeration Documentation
- Enumerator:
-
| Anchors |
Linear solver. |
| RContacts |
Anchor solver. |
| SContacts |
Rigid contacts solver. |
| END |
Soft contacts solver. |
Definition at line 102 of file btSoftBody.h.
The documentation for this struct was generated from the following file:
- C:/Users/New/Documents/Games_Technology/Year4_Semester1/ICT397/~My Work/Assignment2/ICT397Carre/CarreGameEngine/Dependencies/BulletPhysicsEngine/include/BulletSoftBody/btSoftBody.h


The execution of Concordion commands can be observed using listeners
. Listeners have access to the HTML element with which the command is associated,
and can modify the output HTML.
An extension is installed that listens to assertEquals, assertTrue, assertFalse and execute commands. When the following instrumentation:

The square root of 4.0 is 2.0

The square root of 16.0 is 3.0

3 is is positive

-4 is is positive

-5 is is not positive

6 is is not positive

is run with a fixture that performs the arithmetical operations, the logged events are:
| Event |
|---|
| Set #num = '4.0' |
| Execute 'The square root of 4.0 is 2.0' |
| Success '2.0' |
| Set #num = '16.0' |
| Execute 'The square root of 16.0 is 3.0' |
| Failure expected:'3.0' actual:'4.0' |
| Set #num = '3' |
| Success 'is positive' |
| Set #num = '-4' |
| Failure expected:'is positive' actual:'== false' |
| Set #num = '-5' |
| Success 'is not positive' |
| Set #num = '6' |
| Failure expected:'is not positive' actual:'== true' |
Run listeners
are notified of the outcome of run commands (success, failure or ignored)Throwable caught listeners
are notified of any throwables
that occur while processing a command, including custom commands.Concordion build listeners
provide access to the target
to allow resources to be writtenDocument parsing listeners
provide access to the document
prior to parsingSpecification processing listeners
provide access to the specification
before and after processingSee the processing listeners specification for examples.


Coding Quiz Challenge
Try to answer the following code-related questions within the time limit. Careful as incorrect answers will deduct the timer by 5 seconds!
Try to answer the following code-related questions within the time limit. Careful as incorrect answers will deduct the timer by 5 seconds!
Your score:


Play a game of Ping-Pong
Rules
Ping-Pong will count up to your number from 1 with the follow exceptions:
Numbers divisible by 3 will be replaced by "ping"
Numbers divisible by 5 will be replaced by "pong"
Numbers divisible by 15 will be replaced by "ping-pong"
Play:
Enter a number to play:
Enter


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Marcus Pavilonis
10/4/2018
LGBT people are seeing more representation in 2018 on television than ever before, whether on reality shows or sitcoms and dramas.
TV shows featuring gay couples, transgender women and men, and other characters with fluid sexualities and genders may not be as groundbreaking as they were a decade ago, but the increasing representation is just as important today than ever before.
Whether it is overblown personalities on teen dramas and reality shows or the normal down-to-earth people on fictional dramas and comedies, LGBT individuals are able to find more and more on-screen characters they can relate to.
Here are some of the best shows with LGBT representation:
Netflix's reboot of 'Queer Eye' is not to be missed. (Photo via @queereye Instagram)
This show is a Netflix Original Series of the Bravo series Queer Eye for the Straight Guy. This reality show features the Fab Five: Antoni Porowski, a food and wine expert; Tan France, a fashion expert; Karamo Brown, a culture expert; Bobby Berk, a design expert; and Jonathan Van Ness, a hair and grooming expert.
The Fab Five set out to makeover the lives of different people in the state of Georgia while also providing amazing social commentary on anything from LGBT rights to how to best way to declutter someone's house. In the end they are able to teach people more about themselves, while also helping them gain a new sense of self-confidence and establish control over their lives.
OINTB is a six-season Netflix show set at a women’s prison; which features of variety of characters of different races, sexual orientations and gender identities. The show is based off a memoir by Piper Kerman detailing her time in a women’s prison. The show is Netflix’s most-watched original series.
The show does not make the prisoner’s sexuality and gender identity central to the plot, but it makes the variety of characters on the show more original and adds to the way in which the show seeks to humanize prisoners and address some of the important topics and contentious issues surrounding U.S. incarceration.
This Freeform comedy drama premiered in July 2017 and follows three friends, Jane, Kat and Sutton while they work at a women’s magazine called Scarlet. The show is inspired by the life of former Cosmopolitan editor-in-chief Joanna Coles.
In the first season, Kat explores her sexuality and meets a photographer named Adena. As the second seasons rolls on, their relationship grows and becomes more complex. The show has received a lot of praise for bringing in diverse representation of a lesbian relationship through this couple.
This reality competition show follows host RuPaul in the quest to find the America’s next drag superstar. The show has spanned ten seasons and even airs internationally. Each episode roughly follows a format consisting of a mini challenge, a main challenge, a runway walk, the judging panel, a lip sync battle and the elimination of a contestant.
Contestants on the show can be of any sexual orientation or gender, but the show mostly features either gay men or transgender women. The show has also produced spin-off shows RuPaul's Drag U and RuPaul's Drag Race: All Stars.
Since season one of HTGAWM, the show has evolved to feature more and more in depth conversation surrounding the LGBT people. Though at first the only real representation came from Connor Walsh and his sex scenes, the show has grown to include so much more as it moves into its fifth season.
Viewers get to be with Annalise Keating while she explores her sexuality, they get to see Walsh stay in a steady yet turbulent relationship that has grown exponentially since it was first introduced, and the show has storylines featuring other characters and actors who are LGBT identifying.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Menopause normally occurs in women at around the age of fifty and it signals the end of menstrual periods. Menopause happens because the ovaries run out of eggs and stop producing the estrogen necessary for menstruation. The menstrual pattern may become irregular before it stops altogether, which is called perimenopause, and it may also be accompanied by hot flashes. During a hot flash you will suddenly feel overheated and may even break out in a sweat that lasts for two to three minutes. When twelve consecutive periods are missed, you are in menopause, and any bleeding afterward is abnormal. The stage of menopause can be confirmed by certain blood studies, but it is often unnecessary to do these tests.
Recurrent vaginal bleeding after menopause is abnormal and may be an early warning sign of cancer, especially endometrial cancer (cancer in the lining of the womb). When this occurs, you should seek prompt medical evaluation. Early diagnosis and treatment may improve your chances of survival. Starting at age thirty-five, women who have a family history of hereditary nonpolyposis colon cancer (a risk factor for endometrial cancer) should get annual screenings for endometrial cancer by getting an endometrial biopsy. Other risk factors for developing endometrial cancer include:


"Valverde will decide whether this is his last season at Barca"
by BeSoccerThe Barcelona sporting director, Eric Abidal, said that the Barca coach himself, Ernesto Valverde, will decide whether he stays or not.
In an interview which 'Sport' publish this Sunday, Eric Abidal says that "Ernesto Valverde will decide whether this is his last season at Barca." He signed a contract renewal until 30th June 2020 with the option of one more campaign.
In addition, he admitted that the Barca president, Josep Maria Bartomeu, "is talking to Messi's agents to seal his contract renewal." This comes a few months after it was revealed that the player had the possibility of leaving the club at the end of any season.
Featured links
- Ballon d'Or winner already been decided
- The latest football transfers news and rumours
- Possible 'Clasico' in the Spanish Supercup final
- Who has the most free-kicks goals: Messi or Cristiano?
On Neymar, Abidal said "we are not ruling out signing him now."
Finally, on his fellow countryman, Antoine Griezmann, he admitted he has underperformed. "He knows he's not at his level. I talk a lot to him. We have to be patient."


{{ job.name }}
{{ job.company_description }}{{ job.job_title }} {{ job.dates }}
{{ job.job_description }}
--- layout: default title: Work | Aaron Gunderson header: Work description: Aaron Gunderson's Work Experience ---
{{ job.job_title }} {{ job.dates }}
{{ job.job_description }}


Nael's Story
Here is a bio of myself in 2019.
I got to like moon cake at my first try since it tastes so good that it made me forget to ask the history of moon cake.
I met a few friends who frequently went to hiking, and I joined them in one of their hiking schedules.
I got the chance to organize a trip to my six friends to visit my motherland. Here you could find details about the trip.
This was a life changing opportunity since I got the chance to learn more about the actual problems of the world in education and tools to solve it.
If you are interested in my stories, feel free to scroll the pictures and follow me on instagram


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 4
Making your own flatbread is fast and super easy and a lot of fun too. Customise with toppings of your choice! This is designed to be a low cost recipe.
For the flatbreads, sieve the flour into a mixing bowl and season with a couple of pinches of salt and a pinch of pepper. Add the olive oil and mix in the warm water - starting with 150ml/5fl oz and adding more if needed to bring the mixture together to form a thick dough. Knead the dough in the bowl to bring it together.
Knead the dough on a floured work surface for 3-4 minutes, or until the dough is slightly elastic. Cover and leave to rest while you prepare the rest of the dish.
For the toppings, heat a small saucepan over a low heat. Add a dash of olive oil and add the garlic and fry for one minute. Add the tomatoes, dried herbs and a pinch of salt and pepper and bring to a simmer. Mash the tomatoes with a potato masher to create a smoother sauce and simmer the mixture for 10-15 minutes, or until thickened to a spreadable sauce.
Preheat the oven to the highest temperature and place a non-stick baking tray in the oven to heat.
 Lightly oil the hot baking tray, place the flatbread pizza bases on top and cook in the hot oven for 2-3 minutes (you may need to do this in batches if you don’t have room to do them all at once).
Turn the flatbread pizza bases over. Taste the tomato sauce and add salt and pepper to taste. Divide the tomato mixture between the four flatbread pizza bases, spreading out until you almost reach the edges but leaving a 2cm/¾in border round the edge.
Sprinkle over the grated courgette, top with the torn mozzarella, pepperoni slices and onion. Drizzle with a little extra olive oil, season with salt and pepper and place back into the hot oven for 6-7 minutes, or until the base is cooked through and the cheese melting and turning golden-brown. Serve immediately.


|
Bullet Collision Detection & Physics Library
|
#include <btTriangleShapeEx.h>
Public Member Functions | |
| btPrimitiveTriangle () | |
| void | buildTriPlane () |
| bool | overlap_test_conservative (const btPrimitiveTriangle &other) |
| Test if triangles could collide. More... | |
| void | get_edge_plane (int edge_index, btVector4 &plane) const |
| Calcs the plane which is paralele to the edge and perpendicular to the triangle plane. More... | |
| void | applyTransform (const btTransform &t) |
| int | clip_triangle (btPrimitiveTriangle &other, btVector3 *clipped_points) |
| Clips the triangle against this. More... | |
| bool | find_triangle_collision_clip_method (btPrimitiveTriangle &other, GIM_TRIANGLE_CONTACT &contacts) |
| Find collision using the clipping method. More... | |
Public Attributes | |
| btVector3 | m_vertices [3] |
| btVector4 | m_plane |
| btScalar | m_margin |
| btScalar | m_dummy |
Definition at line 69 of file btTriangleShapeEx.h.
|
inline |
Definition at line 76 of file btTriangleShapeEx.h.
|
inline |
Definition at line 101 of file btTriangleShapeEx.h.
|
inline |
Definition at line 80 of file btTriangleShapeEx.h.
| int btPrimitiveTriangle::clip_triangle | ( | btPrimitiveTriangle & | other, |
| btVector3 * | clipped_points | ||
| ) |
Clips the triangle against this.
Definition at line 87 of file btTriangleShapeEx.cpp.
| bool btPrimitiveTriangle::find_triangle_collision_clip_method | ( | btPrimitiveTriangle & | other, |
| GIM_TRIANGLE_CONTACT & | contacts | ||
| ) |
Find collision using the clipping method.
Definition at line 120 of file btTriangleShapeEx.cpp.
|
inline |
Calcs the plane which is paralele to the edge and perpendicular to the triangle plane.
Definition at line 94 of file btTriangleShapeEx.h.
| bool btPrimitiveTriangle::overlap_test_conservative | ( | const btPrimitiveTriangle & | other | ) |
Test if triangles could collide.
class btPrimitiveTriangle
Definition at line 63 of file btTriangleShapeEx.cpp.
| btScalar btPrimitiveTriangle::m_dummy |
Definition at line 75 of file btTriangleShapeEx.h.
| btScalar btPrimitiveTriangle::m_margin |
Definition at line 74 of file btTriangleShapeEx.h.
| btVector4 btPrimitiveTriangle::m_plane |
Definition at line 73 of file btTriangleShapeEx.h.
| btVector3 btPrimitiveTriangle::m_vertices[3] |
Definition at line 72 of file btTriangleShapeEx.h.


You can import mp3-files by clicking the "open" icon beneath the tracklist. Please note however, that mp3-files will not be restored when reloading, at this time.
You can import JSON-files by clicking the "open" icon beneath the tracklist. Those tracks imported from JSON will be restored when you reload the player. The structure of the JSON should look like this:
{
"tracks": [
{
"url": "assets/filename.mp3",
"title": "Tracktitle",
"artist": "The Artist",
"genre": "The Genre",
"album": "The Album",
"year": "2014"
},
{
...
}
]
}


{% extends "base.html" %} {#Head container#} {% load staticfiles %} {% load bootstrap %} {% load i18n widget_tweaks %} {% block content %}
{% blocktrans %} This page will automatically refresh. Your AMR request should be complete in 5 to 10 minutes (more if you requested many SeqIDs). {%endblocktrans%}
{% trans "You don't have to remain on this page - this AMR request will be visible on "%} {% trans "AMR Home"%}
{% if request.user.email in amr.emails_array %}{%trans "Your email is already on the list to be notified."%}
{%trans "Would you like to add another email?"%} {% else %}{%trans "Would you like an email upon completion?"%}
{% endif %} {% elif amr_request.status == 'Unprocessed' %}{% trans "Return to"%} {% trans "AMR Home"%}
{% elif amr_request.status == 'Complete' %}{% trans "These results will be available for 7 days."%}
| Gene | #} {#Location | #} {#|
|---|---|---|
| {{ key }} | #} {# {% if value == "chromosome" %}#} {#Chromosome | #} {# {% else %}#} {#Plasmid {{ value }} | #} {# {% endif %}#} {#


Actions, resources, and condition keys for AWS Service Catalog
AWS Service Catalog (service prefix:
servicecatalog
) provides the following service-specific resources, actions, and condition context keys for use in IAM permission policies.
References:
-
Learn how to configure this service .
-
View a list of the API operations available for this service .
-
Learn how to secure this service and its resources by using IAM permission policies.
Topics
Actions defined by AWS Service Catalog
You can specify the following actions in the
Action
element of an IAM policy statement. Use policies to grant permissions to perform an operation in AWS. When you use an action in a policy, you usually allow or deny access to the API operation or CLI command with the same name. However, in some cases, a single action controls access to more than one operation. Alternatively, some operations require several different actions.
The
Resource types
column of the Actions table indicates whether each action supports resource-level permissions. If there is no value for this column, you must specify all resources ("*") to which the policy applies in the
Resource
element of your policy statement. If the column includes a resource type, then you can specify an ARN of that type in a statement with that action. If the action has one or more required resources, the caller must have permission to use the action with those resources. Required resources are indicated in the table with an asterisk (*). If you limit resource access with the
Resource
element in an IAM policy, you must include an ARN or pattern for each required resource type. Some actions support multiple resource types. If the resource type is optional (not indicated as required), then you can choose to use one of the optional resource types.
The
Condition keys
column of the Actions table includes keys that you can specify in a policy statement's
Condition
element. For more information on the condition keys that are associated with resources for the service, see the
Condition keys
column of the Resource types table.
For details about the columns in the following table, see Actions table .
| Actions | Description | Access level | Resource types (*required) | Condition keys | Dependent actions |
|---|---|---|---|---|---|
| AcceptPortfolioShare | Grants permission to accept a portfolio that has been shared with you | Write | |||
| AssociateAttributeGroup | Grants permission to associate an attribute group with an application | Write | |||
| AssociateBudgetWithResource | Grants permission to associate a budget with a resource | Write | |||
| AssociatePrincipalWithPortfolio | Grants permission to associate an IAM principal with a portfolio, giving the specified principal access to any products associated with the specified portfolio | Write | |||
| AssociateProductWithPortfolio | Grants permission to associate a product with a portfolio | Write | |||
| AssociateResource | Grants permission to associate a resource with an application | Write |
cloudformation:DescribeStacks resource-groups:CreateGroup resource-groups:GetGroup resource-groups:Tag |
||
| AssociateServiceActionWithProvisioningArtifact | Grants permission to associate an action with a provisioning artifact | Write | |||
| AssociateTagOptionWithResource | Grants permission to associate the specified TagOption with the specified portfolio or product | Write | |||
| BatchAssociateServiceActionWithProvisioningArtifact | Grants permission to associate multiple self-service actions with provisioning artifacts | Write | |||
| BatchDisassociateServiceActionFromProvisioningArtifact | Grants permission to disassociate a batch of self-service actions from the specified provisioning artifact | Write | |||
| CopyProduct | Grants permission to copy the specified source product to the specified target product or a new product | Write | |||
| CreateApplication | Grants permission to create an application | Write |
iam:CreateServiceLinkedRole |
||
| CreateAttributeGroup | Grants permission to create an attribute group | Write | |||
| CreateConstraint | Grants permission to create a constraint on an associated product and portfolio | Write | |||
| CreatePortfolio | Grants permission to create a portfolio | Write | |||
| CreatePortfolioShare | Grants permission to share a portfolio you own with another AWS account | Permissions management | |||
| CreateProduct | Grants permission to create a product and that product's first provisioning artifact | Write | |||
| CreateProvisionedProductPlan | Grants permission to add a new provisioned product plan | Write | |||
| CreateProvisioningArtifact | Grants permission to add a new provisioning artifact to an existing product | Write | |||
| CreateServiceAction | Grants permission to create a self-service action | Write | |||
| CreateTagOption | Grants permission to create a TagOption | Write | |||
| DeleteApplication | Grants permission to delete an application if all associations have been removed from the application | Write | |||
| DeleteAttributeGroup | Grants permission to delete an attribute group if all associations have been removed from the attribute group | Write | |||
| DeleteConstraint | Grants permission to remove and delete an existing constraint from an associated product and portfolio | Write | |||
| DeletePortfolio | Grants permission to delete a portfolio if all associations and shares have been removed from the portfolio | Write | |||
| DeletePortfolioShare | Grants permission to unshare a portfolio you own from an AWS account you previously shared the portfolio with | Permissions management | |||
| DeleteProduct | Grants permission to delete a product if all associations have been removed from the product | Write | |||
| DeleteProvisionedProductPlan | Grants permission to delete a provisioned product plan | Write | |||
| DeleteProvisioningArtifact | Grants permission to delete a provisioning artifact from a product | Write | |||
| DeleteServiceAction | Grants permission to delete a self-service action | Write | |||
| DeleteTagOption | Grants permission to delete the specified TagOption | Write | |||
| DescribeConstraint | Grants permission to describe a constraint | Read | |||
| DescribeCopyProductStatus | Grants permission to get the status of the specified copy product operation | Read | |||
| DescribePortfolio | Grants permission to describe a portfolio | Read | |||
| DescribePortfolioShareStatus | Grants permission to get the status of the specified portfolio share operation | Read | |||
| DescribePortfolioShares | Grants permission to view a summary of each of the portfolio shares that were created for the specified portfolio | List | |||
| DescribeProduct | Grants permission to describe a product as an end-user | Read | |||
| DescribeProductAsAdmin | Grants permission to describe a product as an admin | Read | |||
| DescribeProductView | Grants permission to describe a product as an end-user | Read | |||
| DescribeProvisionedProduct | Grants permission to describe a provisioned product | Read | |||
| DescribeProvisionedProductPlan | Grants permission to describe a provisioned product plan | Read | |||
| DescribeProvisioningArtifact | Grants permission to describe a provisioning artifact | Read | |||
| DescribeProvisioningParameters | Grants permission to describe the parameters that you need to specify to successfully provision a specified provisioning artifact | Read | |||
| DescribeRecord | Grants permission to describe a record and lists any outputs | Read | |||
| DescribeServiceAction | Grants permission to describe a self-service action | Read | |||
| DescribeServiceActionExecutionParameters | Grants permission to get the default parameters if you executed the specified Service Action on the specified Provisioned Product | Read | |||
| DescribeTagOption | Grants permission to get information about the specified TagOption | Read | |||
| DisableAWSOrganizationsAccess | Grants permission to disable portfolio sharing through AWS Organizations feature | Write | |||
| DisassociateAttributeGroup | Grants permission to disassociate an attribute group from an application | Write | |||
| DisassociateBudgetFromResource | Grants permission to disassociate a budget from a resource | Write | |||
| DisassociatePrincipalFromPortfolio | Grants permission to disassociate an IAM principal from a portfolio | Write | |||
| DisassociateProductFromPortfolio | Grants permission to disassociate a product from a portfolio | Write | |||
| DisassociateResource | Grants permission to disassociate a resource from an application | Write |
resource-groups:DeleteGroup |
||
| DisassociateServiceActionFromProvisioningArtifact | Grants permission to disassociate the specified self-service action association from the specified provisioning artifact | Write | |||
| DisassociateTagOptionFromResource | Grants permission to disassociate the specified TagOption from the specified resource | Write | |||
| EnableAWSOrganizationsAccess | Grants permission to enable portfolio sharing feature through AWS Organizations | Write | |||
| ExecuteProvisionedProductPlan | Grants permission to execute a provisioned product plan | Write | |||
| ExecuteProvisionedProductServiceAction | Grants permission to executes a provisioned product plan | Write | |||
| GetAWSOrganizationsAccessStatus | Grants permission to get the access status of AWS Organization portfolio share feature | Read | |||
| GetApplication | Grants permission to get an application | Read | |||
| GetAssociatedResource | Grants permission to get information about a resource associated to an application | Read | |||
| GetAttributeGroup | Grants permission to get an attribute group | Read | |||
| GetConfiguration | Grants permission to read AppRegistry configurations | Read | |||
| GetProvisionedProductOutputs | Grants permission to get the provisioned product output with either provisioned product id or name | Read | |||
| ImportAsProvisionedProduct | Grants permission to import a resource into a provisioned product | Write | |||
| ListAcceptedPortfolioShares | Grants permission to list the portfolios that have been shared with you and you have accepted | List | |||
| ListApplications | Grants permission to list your applications | List | |||
| ListAssociatedAttributeGroups | Grants permission to list the attribute groups associated with an application | List | |||
| ListAssociatedResources | Grants permission to list the resources associated with an application | List | |||
| ListAttributeGroups | Grants permission to list your attribute groups | List | |||
| ListAttributeGroupsForApplication | Grants permission to list the associated attribute groups for a given application | List | |||
| ListBudgetsForResource | Grants permission to list all the budgets associated to a resource | List | |||
| ListConstraintsForPortfolio | Grants permission to list constraints associated with a given portfolio | List | |||
| ListLaunchPaths | Grants permission to list the different ways to launch a given product as an end-user | List | |||
| ListOrganizationPortfolioAccess | Grants permission to list the organization nodes that have access to the specified portfolio | List | |||
| ListPortfolioAccess | Grants permission to list the AWS accounts you have shared a given portfolio with | List | |||
| ListPortfolios | Grants permission to list the portfolios in your account | List | |||
| ListPortfoliosForProduct | Grants permission to list the portfolios associated with a given product | List | |||
| ListPrincipalsForPortfolio | Grants permission to list the IAM principals associated with a given portfolio | List | |||
| ListProvisionedProductPlans | Grants permission to list the provisioned product plans | List | |||
| ListProvisioningArtifacts | Grants permission to list the provisioning artifacts associated with a given product | List | |||
| ListProvisioningArtifactsForServiceAction | Grants permission to list all provisioning artifacts for the specified self-service action | List | |||
| ListRecordHistory | Grants permission to list all the records in your account or all the records related to a given provisioned product | List | |||
| ListResourcesForTagOption | Grants permission to list the resources associated with the specified TagOption | List | |||
| ListServiceActions | Grants permission to list all self-service actions | List | |||
| ListServiceActionsForProvisioningArtifact | Grants permission to list all the service actions associated with the specified provisioning artifact in your account | List | |||
| ListStackInstancesForProvisionedProduct | Grants permission to list account, region and status of each stack instances that are associated with a CFN_STACKSET type provisioned product | List | |||
| ListTagOptions | Grants permission to list the specified TagOptions or all TagOptions | List | |||
| ListTagsForResource | Grants permission to list the tags for a service catalog appregistry resource | Read | |||
| NotifyProvisionProductEngineWorkflowResult | Grants permission to notify the result of the provisioning engine execution | Write | |||
| NotifyTerminateProvisionedProductEngineWorkflowResult | Grants permission to notify the result of the terminate engine execution | Write | |||
| NotifyUpdateProvisionedProductEngineWorkflowResult | Grants permission to notify the result of the update engine execution | Write | |||
| ProvisionProduct | Grants permission to provision a product with a specified provisioning artifact and launch parameters | Write | |||
| PutConfiguration | Grants permission to assign AppRegistry configurations | Write | |||
| RejectPortfolioShare | Grants permission to reject a portfolio that has been shared with you that you previously accepted | Write | |||
| ScanProvisionedProducts | Grants permission to list all the provisioned products in your account | List | |||
| SearchProducts | Grants permission to list the products available to you as an end-user | List | |||
| SearchProductsAsAdmin | Grants permission to list all the products in your account or all the products associated with a given portfolio | List | |||
| SearchProvisionedProducts | Grants permission to list all the provisioned products in your account | List | |||
| SyncResource | Grants permission to sync a resource with its current state in AppRegistry | Write |
cloudformation:UpdateStack |
||
| TagResource | Grants permission to tag a service catalog appregistry resource | Tagging | |||
| TerminateProvisionedProduct | Grants permission to terminate an existing provisioned product | Write | |||
| UntagResource | Grants permission to remove a tag from a service catalog appregistry resource | Tagging | |||
| UpdateApplication | Grants permission to update the attributes of an existing application | Write |
iam:CreateServiceLinkedRole |
||
| UpdateAttributeGroup | Grants permission to update the attributes of an existing attribute group | Write | |||
| UpdateConstraint | Grants permission to update the metadata fields of an existing constraint | Write | |||
| UpdatePortfolio | Grants permission to update the metadata fields and/or tags of an existing portfolio | Write | |||
| UpdatePortfolioShare | Grants permission to enable or disable resource sharing for an existing portfolio share | Permissions management | |||
| UpdateProduct | Grants permission to update the metadata fields and/or tags of an existing product | Write | |||
| UpdateProvisionedProduct | Grants permission to update an existing provisioned product | Write | |||
| UpdateProvisionedProductProperties | Grants permission to update the properties of an existing provisioned product | Write | |||
| UpdateProvisioningArtifact | Grants permission to update the metadata fields of an existing provisioning artifact | Write | |||
| UpdateServiceAction | Grants permission to update a self-service action | Write | |||
| UpdateTagOption | Grants permission to update the specified TagOption | Write |
Resource types defined by AWS Service Catalog
The following resource types are defined by this service and can be used in the
Resource
element of IAM permission policy statements. Each action in the
Actions table
identifies the resource types that can be specified with that action. A resource type can also define which condition keys you can include in a policy. These keys are displayed in the last column of the Resource types table. For details about the columns in the following table, see
Resource types table
.
| Resource types | ARN | Condition keys |
|---|---|---|
| Application |
arn:$
{
Partition}:servicecatalog:$
{
Region}:$
{
Account}:/applications/$
{
ApplicationId}
|
|
| AttributeGroup |
arn:$
{
Partition}:servicecatalog:$
{
Region}:$
{
Account}:/attribute-groups/$
{
AttributeGroupId}
|
|
| Portfolio |
arn:$
{
Partition}:catalog:$
{
Region}:$
{
Account}:portfolio/$
{
PortfolioId}
|
|
| Product |
arn:$
{
Partition}:catalog:$
{
Region}:$
{
Account}:product/$
{
ProductId}
|
Condition keys for AWS Service Catalog
AWS Service Catalog defines the following condition keys that can be used in the
Condition
element of an IAM policy. You can use these keys to further refine the conditions under which the policy statement applies. For details about the columns in the following table, see
Condition keys table
.
To view the global condition keys that are available to all services, see Available global condition keys .
Note
For example policies that show how these condition keys can be used in an IAM policy, see Example Access Policies for Provisioned Product Management in the Service Catalog Administrator Guide .
| Condition keys | Description | Type |
|---|---|---|
| aws:RequestTag/${TagKey} | Filters access by the presence of tag key-value pairs in the request | String |
| aws:ResourceTag/${TagKey} | Filters access by tag key-value pairs attached to the resource | String |
| aws:TagKeys | Filters access by the presence of tag keys in the request | ArrayOfString |
| servicecatalog:Resource | Filters access by controlling what value can be specified as the Resource parameter in an AppRegistry associate resource API | String |
| servicecatalog:ResourceType | Filters access by controlling what value can be specified as the ResourceType parameter in an AppRegistry associate resource API | String |
| servicecatalog:accountLevel | Filters access by user to see and perform actions on resources created by anyone in the account | String |
| servicecatalog:roleLevel | Filters access by user to see and perform actions on resources created either by them or by anyone federating into the same role as them | String |
| servicecatalog:userLevel | Filters access by user to see and perform actions on only resources that they created | String |


Project By Tejas kapade (v.2.0)
Change Background :
Width:
Height:
Background:
Mix Colour:
Colour Degree:
Text Size:
Border width:
Border Colour:
Border Curve:
Text colour:
Text Density:
Button Shadow Colour:
Button Shadow Position-X:
Button Shadow Position-Y:
Button Shadow Blur:
click above "Get CSS" button and it will give you exact CSS code that you can copy from here.


Registration Example for Sir loyag
by satyam
2
Form
Loading…
Contact me..... If u have any issues
© sir loya2021