http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.java deleted file mode 100644 index a238467..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualMachineScaleSetVirtualMachineProfile.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.domain; - -import com.google.auto.value.AutoValue; -import org.jclouds.json.SerializedNames; - -/** - * A virtual machine properties for the virtual machine. - */ -@AutoValue -public abstract class VirtualMachineScaleSetVirtualMachineProfile { - - /** - * The storage profile of the Virtual Machine Scale Set Virtual Machine Profile. - */ - public abstract StorageProfile storageProfile(); - - /** - * The OS profile of the Virtual Machine Scale Set Virtual Machine Profile. - */ - public abstract VirtualMachineScaleSetOSProfile osProfile(); - - /** - * The network profile of the Virtual Machine Scale Set Virtual Machine Profile - */ - public abstract VirtualMachineScaleSetNetworkProfile networkProfile(); - - /** - * The extension profile of the Virtual Machine Scale Set Virtual Machine Profile . - */ - public abstract ExtensionProfile extensionProfile(); - - - - @SerializedNames({"storageProfile", "osProfile", "networkProfile", "extensionProfile"}) - public static VirtualMachineScaleSetVirtualMachineProfile create( - final StorageProfile storageProfile, - final VirtualMachineScaleSetOSProfile osProfile, - final VirtualMachineScaleSetNetworkProfile networkProfile, - final ExtensionProfile extensionProfile) { - return builder() - .storageProfile(storageProfile) - .osProfile(osProfile) - .networkProfile(networkProfile) - .extensionProfile(extensionProfile) - .build(); - } - - public abstract Builder toBuilder(); - - public static Builder builder() { - return new AutoValue_VirtualMachineScaleSetVirtualMachineProfile.Builder(); - } - - @AutoValue.Builder - public abstract static class Builder { - - public abstract Builder storageProfile(StorageProfile storageProfile); - - public abstract Builder osProfile(VirtualMachineScaleSetOSProfile osProfile); - - public abstract Builder networkProfile(VirtualMachineScaleSetNetworkProfile networkProfile); - - public abstract Builder extensionProfile(ExtensionProfile extensionProfile); - - public abstract VirtualMachineScaleSetVirtualMachineProfile build(); - } -}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java deleted file mode 100644 index a0f5c3e..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/domain/VirtualNetwork.java +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.domain; - -import static com.google.common.collect.ImmutableList.copyOf; - -import java.util.Map; -import java.util.List; -import com.google.common.collect.ImmutableList; - -import com.google.auto.value.AutoValue; -import com.google.common.collect.ImmutableMap; - -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.json.SerializedNames; - -@AutoValue -public abstract class VirtualNetwork { - - @AutoValue - public abstract static class AddressSpace { - - public abstract List<String> addressPrefixes(); - - @SerializedNames({"addressPrefixes"}) - public static AddressSpace create(final List<String> addressPrefixes) { - return new AutoValue_VirtualNetwork_AddressSpace(addressPrefixes == null ? ImmutableList.<String>of() : ImmutableList.copyOf(addressPrefixes)); - } - } - - @AutoValue - public abstract static class VirtualNetworkProperties implements Provisionable { - - @Nullable - public abstract String provisioningState(); - - @Nullable - public abstract String resourceGuid(); - - public abstract AddressSpace addressSpace(); - - @Nullable - public abstract List<Subnet> subnets(); - - - @SerializedNames({"provisioningState", "resourceGuid", "addressSpace", "subnets"}) - public static VirtualNetworkProperties create(final String provisioningState, final String resourceGuid, final AddressSpace addressSpace, final List<Subnet> subnets) { - return builder() - .provisioningState(provisioningState) - .resourceGuid(resourceGuid) - .addressSpace(addressSpace) - .subnets(subnets != null ? copyOf(subnets) : null) - .build(); - } - - public abstract Builder toBuilder(); - - public static Builder builder() { - return new AutoValue_VirtualNetwork_VirtualNetworkProperties.Builder(); - } - - @AutoValue.Builder - public abstract static class Builder { - public abstract Builder provisioningState(String provisioningState); - - public abstract Builder resourceGuid(String resourceGuid); - - public abstract Builder addressSpace(AddressSpace addressSpace); - - public abstract Builder subnets(List<Subnet> subnets); - - abstract List<Subnet> subnets(); - - abstract VirtualNetworkProperties autoBuild(); - - public VirtualNetworkProperties build() { - subnets(subnets() != null ? ImmutableList.copyOf(subnets()) : null); - return autoBuild(); - } - } - } - - @Nullable - public abstract String name(); - - @Nullable - public abstract String id(); - - @Nullable - public abstract String etag(); - - public abstract String location(); - - public abstract VirtualNetworkProperties properties(); - - @Nullable - public abstract Map<String, String> tags(); - - @SerializedNames({"name", "id", "etag", "location", "properties", "tags"}) - public static VirtualNetwork create(final String name, - final String id, - final String etag, - final String location, - final VirtualNetworkProperties properties, - final Map<String, String> tags) { - return new AutoValue_VirtualNetwork(name, id, etag, location, properties, tags == null ? null : ImmutableMap.copyOf(tags)); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java deleted file mode 100644 index d8d478e..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/exceptions/AzureComputeRateLimitExceededException.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.exceptions; - -import org.jclouds.http.HttpResponse; -import org.jclouds.rest.RateLimitExceededException; - -import com.google.common.annotations.Beta; -import com.google.common.base.Predicate; -import com.google.common.collect.Multimap; -import com.google.common.collect.Multimaps; - -/** - * Provides detailed information for rate limit exceptions. - */ -@Beta -public class AzureComputeRateLimitExceededException extends RateLimitExceededException { - private static final long serialVersionUID = 1L; - private static final String RATE_LIMIT_HEADER_PREFIX = "x-ms-ratelimit-remaining-"; - - public AzureComputeRateLimitExceededException(HttpResponse response) { - super(response.getStatusLine() + "\n" + rateLimitHeaders(response)); - } - - public AzureComputeRateLimitExceededException(HttpResponse response, Throwable cause) { - super(response.getStatusLine() + "\n" + rateLimitHeaders(response), cause); - } - - private static Multimap<String, String> rateLimitHeaders(HttpResponse response) { - return Multimaps.filterKeys(response.getHeaders(), new Predicate<String>() { - @Override - public boolean apply(String input) { - return input.startsWith(RATE_LIMIT_HEADER_PREFIX); - } - }); - } -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java deleted file mode 100644 index cf5116c..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/AvailabilitySetApi.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.io.Closeable; -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.AvailabilitySet; -import org.jclouds.azurecompute.arm.domain.AvailabilitySet.AvailabilitySetProperties; -import org.jclouds.azurecompute.arm.domain.AvailabilitySet.SKU; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Compute/availabilitySets") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface AvailabilitySetApi extends Closeable { - - @Named("availabilityset:list") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<AvailabilitySet> list(); - - @Named("availabilityset:get") - @Path("/{name}") - @GET - @Fallback(NullOnNotFoundOr404.class) - AvailabilitySet get(@PathParam("name") String name); - - @Named("availabilityset:createOrUpdate") - @MapBinder(BindToJsonPayload.class) - @Path("/{name}") - @PUT - AvailabilitySet createOrUpdate(@PathParam("name") String name, - @Nullable @PayloadParam("sku") SKU sku, - @PayloadParam("location") String location, - @Nullable @PayloadParam("tags") Map<String, String> tags, - @PayloadParam("properties") AvailabilitySetProperties properties); - - @Named("availabilityset:delete") - @Path("/{name}") - @DELETE - @ResponseParser(URIParser.class) - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("name") String name); - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java deleted file mode 100644 index 1ff43de..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DeploymentApi.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks; -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Deployment; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.Payload; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; - -/** - * - create deployment - * - delete deployment - * - get information about deployment - */ -@Path("/resourcegroups/{resourcegroup}/providers/microsoft.resources/deployments") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface DeploymentApi { - - /** - * The Create Template Deployment operation starts the process of an ARM Template deployment. - * It then returns a Deployment object. - */ - @Named("deployment:create") - @Path("/{deploymentname}") - @Payload("{template}") - @PUT - @Produces(MediaType.APPLICATION_JSON) - Deployment create(@PathParam("deploymentname") String deploymentname, - @PayloadParam("template") String template); - - /** - * Get Deployment Information returns information about the specified deployment. - */ - @Named("deployment:get") - @Path("/{deploymentname}") - @GET - @Fallback(NullOnNotFoundOr404.class) - Deployment get(@PathParam("deploymentname") String deploymentname); - - /** - * Validate Deployment validates deployment template before deployment - */ - @Named("deployment:validate") - @Path("/{deploymentname}/validate") - @Payload("{template}") - @POST - @Produces(MediaType.APPLICATION_JSON) - Deployment validate(@PathParam("deploymentname") String deploymentname, - @PayloadParam("template") String template); - - /** - * List all deployments in a resource group - */ - @Named("deployment:list") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<Deployment> list(); - - /** - * The Delete Template Deployment operation starts the process of an ARM Template removal. - */ - @Named("deployment:delete") - @DELETE - @ResponseParser(URIParser.class) - @Path("/{deploymentname}") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) - URI delete(@PathParam("deploymentname") String deploymentname); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java deleted file mode 100644 index 10e9ac6..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/DiskApi.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Disk; -import org.jclouds.azurecompute.arm.domain.DiskProperties; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Compute/disks") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface DiskApi { - - @Named("disk:list") - @SelectJson("value") - @GET - @Fallback(EmptyListOnNotFoundOr404.class) - List<Disk> list(); - - @Named("disk:create_or_update") - @PUT - @MapBinder(BindToJsonPayload.class) - @Path("/{diskName}") - Disk createOrUpdate(@PathParam("diskName") String diskName, - @PayloadParam("location") String location, - @PayloadParam("properties") DiskProperties properties); - - @Named("disk:get") - @Path("/{diskName}") - @GET - @Fallback(NullOnNotFoundOr404.class) - Disk get(@PathParam("diskName") String diskName); - - @Named("disk:delete") - @Path("/{diskName}") - @DELETE - @ResponseParser(URIParser.class) - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("diskName") String diskName); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java deleted file mode 100644 index fe2bccc..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/GraphRBACApi.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.MediaType; - -import org.jclouds.azurecompute.arm.config.GraphRBAC; -import org.jclouds.azurecompute.arm.config.OAuthResource; -import org.jclouds.azurecompute.arm.domain.ServicePrincipal; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Endpoint; -import org.jclouds.rest.annotations.OnlyElement; -import org.jclouds.rest.annotations.QueryParams; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SelectJson; - -import com.google.inject.name.Named; - -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -@Endpoint(GraphRBAC.class) -@OAuthResource(GraphRBAC.ENDPOINT) -public interface GraphRBACApi { - - @Named("servicePrincipal:get") - @GET - @Path("/servicePrincipals") - @QueryParams(keys = "$filter", values = "appId eq '{jclouds.identity}'") - @SelectJson("value") - @OnlyElement - ServicePrincipal getCurrentServicePrincipal(); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java deleted file mode 100644 index 96caa40..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ImageApi.java +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Image; -import org.jclouds.azurecompute.arm.domain.ImageProperties; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Compute/images") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface ImageApi { - - @Named("image:list") - @SelectJson("value") - @GET - @Fallback(EmptyListOnNotFoundOr404.class) - List<Image> list(); - - @Named("image:create_or_update") - @PUT - @MapBinder(BindToJsonPayload.class) - @Path("/{imageName}") - Image createOrUpdate(@PathParam("imageName") String imageName, - @PayloadParam("location") String location, - @PayloadParam("properties") ImageProperties properties); - - @Named("image:get") - @Path("/{imageName}") - @GET - @Fallback(NullOnNotFoundOr404.class) - Image get(@PathParam("imageName") String imageName); - - @Named("image:delete") - @Path("/{imageName}") - @DELETE - @ResponseParser(URIParser.class) - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("imageName") String imageName); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java deleted file mode 100644 index a854fed..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/JobApi.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.io.Closeable; -import java.net.URI; -import java.util.List; - -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks; -import org.jclouds.azurecompute.arm.domain.ResourceDefinition; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus; -import org.jclouds.azurecompute.arm.functions.ParseJobStatus.JobStatus; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.EndpointParam; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; - -/** - * The Azure Resource Manager API checks for job status and progress. - */ -@RequestFilters(OAuthFilter.class) -@Consumes(MediaType.APPLICATION_JSON) -public interface JobApi extends Closeable { - - @GET - @ResponseParser(ParseJobStatus.class) - JobStatus jobStatus(@EndpointParam URI jobURI); - - /** - * Get status of captured custom image after capture call - */ - @GET - @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) - @SelectJson("resources") - List<ResourceDefinition> captureStatus(@EndpointParam URI jobURI); - -} - http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java deleted file mode 100644 index f9805c0..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LoadBalancerApi.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.LoadBalancer; -import org.jclouds.azurecompute.arm.domain.LoadBalancerProperties; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/loadBalancers") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface LoadBalancerApi { - - @Named("loadbalancer:list") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<LoadBalancer> list(); - - @Named("loadbalancer:get") - @Path("/{loadbalancername}") - @GET - @Fallback(NullOnNotFoundOr404.class) - LoadBalancer get(@PathParam("loadbalancername") String lbName); - - @Named("loadbalancer:createOrUpdate") - @Path("/{loadbalancername}") - @PUT - @MapBinder(BindToJsonPayload.class) - LoadBalancer createOrUpdate(@PathParam("loadbalancername") String lbName, - @PayloadParam("location") String location, @Nullable @PayloadParam("tags") Map<String, String> tags, - @PayloadParam("properties") LoadBalancerProperties properties); - - @Named("loadbalancer:delete") - @Path("/{loadbalancername}") - @DELETE - @ResponseParser(URIParser.class) - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("loadbalancername") String lbName); - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.java deleted file mode 100644 index 257293c..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/LocationApi.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Location; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SelectJson; - -/** - * This Azure Resource Manager API provides all of the locations that are available for resource providers - * <p/> - * - * @see <a href="https://msdn.microsoft.com/en-US/library/azure/dn790540.aspx">docs</a> - */ -@Path("/locations") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) -public interface LocationApi { - - /** - * The List Locations operation lists all of the data center locations that are valid for your subscription. - */ - @Named("location:list") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<Location> list(); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java deleted file mode 100644 index ba62a28..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricDefinitionsApi.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.util.List; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.MetricDefinition; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SelectJson; - -/** - * This Azure Resource Manager API provides all the metric definitions available for a given resource - * <p/> - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/monitor/metricdefinitions">docs</a> - */ -@Path("/{resourceid}") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface MetricDefinitionsApi { - @Named("metrics:list") - @Path("/providers/microsoft.insights/metricdefinitions") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<MetricDefinition> list(@Nullable @QueryParam("$filter") String filter); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java deleted file mode 100644 index 03d19a1..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/MetricsApi.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.util.List; -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Metric; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SelectJson; - -/** - * This Azure Resource Manager API provides all the metric data available for a given resource - * <p/> - * - * @see <a href="https://docs.microsoft.com/en-us/rest/api/monitor/metricdefinitions">docs</a> - */ -@Path("/{resourceid}") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface MetricsApi { - @Named("metrics:list") - @Path("/providers/microsoft.insights/metrics") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<Metric> list(@QueryParam("$filter") String filter); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java deleted file mode 100644 index 5d2773f..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkInterfaceCardApi.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCard; -import org.jclouds.azurecompute.arm.domain.NetworkInterfaceCardProperties; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/networkInterfaces") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface NetworkInterfaceCardApi { - - @Named("networkinterfacecard:list") - @SelectJson("value") - @GET - @Fallback(EmptyListOnNotFoundOr404.class) - List<NetworkInterfaceCard> list(); - - @Named("networkinterfacecard:create_or_update") - @Path("/{networkinterfacecardname}") - @MapBinder(BindToJsonPayload.class) - @PUT - NetworkInterfaceCard createOrUpdate(@PathParam("networkinterfacecardname") String networkinterfacecardname, - @PayloadParam("location") String location, - @PayloadParam("properties") NetworkInterfaceCardProperties properties, - @Nullable @PayloadParam("tags") Map<String, String> tags); - - @Named("networkinterfacecard:get") - @Path("/{networkinterfacecardname}") - @GET - @Fallback(NullOnNotFoundOr404.class) - NetworkInterfaceCard get(@PathParam("networkinterfacecardname") String networkinterfacecardname); - - @Named("networkinterfacecard:delete") - @Path("/{networkinterfacecardname}") - @DELETE - @ResponseParser(URIParser.class) - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("networkinterfacecardname") String networkinterfacecardname); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java deleted file mode 100644 index 41c0c85..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityGroupApi.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroup; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityGroupProperties; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/networkSecurityGroups") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface NetworkSecurityGroupApi { - - @Named("networksecuritygroup:list") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<NetworkSecurityGroup> list(); - - @Named("networksecuritygroup:delete") - @Path("/{networksecuritygroupname}") - @DELETE - @ResponseParser(URIParser.class) - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("networksecuritygroupname") String nsgName); - - @Named("networksecuritygroup:createOrUpdate") - @Path("/{networksecuritygroupname}") - @PUT - @MapBinder(BindToJsonPayload.class) - NetworkSecurityGroup createOrUpdate(@PathParam("networksecuritygroupname") String nsgName, - @PayloadParam("location") String location, @Nullable @PayloadParam("tags") Map<String, String> tags, - @PayloadParam("properties") NetworkSecurityGroupProperties properties); - - @Named("networksecuritygroup:get") - @Path("/{networksecuritygroupname}") - @GET - @Fallback(NullOnNotFoundOr404.class) - NetworkSecurityGroup get(@PathParam("networksecuritygroupname") String nsgName); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java deleted file mode 100644 index 7404234..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/NetworkSecurityRuleApi.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityRule; -import org.jclouds.azurecompute.arm.domain.NetworkSecurityRuleProperties; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/networkSecurityGroups/{networksecuritygroup}") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface NetworkSecurityRuleApi { - - @Named("networksecurityrule:createOrUpdate") - @Path("/securityRules/{networksecurityrulename}") - @PUT - @MapBinder(BindToJsonPayload.class) - NetworkSecurityRule createOrUpdate(@PathParam("networksecurityrulename") String ruleName, - @PayloadParam("properties") NetworkSecurityRuleProperties properties); - - @Named("networksecurityrule:getDefaultRule") - @Path("/defaultSecurityRules/{networksecurityrulename}") - @GET - @Fallback(NullOnNotFoundOr404.class) - NetworkSecurityRule getDefaultRule(@PathParam("networksecurityrulename") String ruleName); - - @Named("networksecurityrule:get") - @Path("/securityRules/{networksecurityrulename}") - @GET - @Fallback(NullOnNotFoundOr404.class) - NetworkSecurityRule get(@PathParam("networksecurityrulename") String ruleName); - - @Named("networksecurityrule:delete") - @Path("/securityRules/{networksecurityrulename}") - @DELETE - @ResponseParser(URIParser.class) - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("networksecurityrulename") String ruleName); - - @Named("networksecuritygroup:list") - @Path("/securityRules") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<NetworkSecurityRule> list(); - - @Named("networksecuritygroup:listDefaultRules") - @Path("/defaultSecurityRules") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<NetworkSecurityRule> listDefaultRules(); -} - http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java deleted file mode 100644 index 32b3ccc..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/OSImageApi.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Offer; -import org.jclouds.azurecompute.arm.domain.Publisher; -import org.jclouds.azurecompute.arm.domain.SKU; -import org.jclouds.azurecompute.arm.domain.Version; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.RequestFilters; - -import static javax.ws.rs.core.MediaType.APPLICATION_JSON; - -/** - * The Azure Resource Management API includes operations for managing the OS images in your subscription. - */ -@Path("/providers/Microsoft.Compute/locations/{location}") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(APPLICATION_JSON) -public interface OSImageApi { - - /** - * List Publishers in location - */ - @Named("publisher:list") - @GET - @Path("/publishers") - @Fallback(EmptyListOnNotFoundOr404.class) - List<Publisher> listPublishers(); - - /** - * List Offers in publisher - */ - @Named("offer:list") - @GET - @Path("/publishers/{publisher}/artifacttypes/vmimage/offers") - @Fallback(EmptyListOnNotFoundOr404.class) - List<Offer> listOffers(@PathParam("publisher") String publisher); - - /** - * List SKUs in offer - */ - @Named("sku:list") - @GET - @Path("/publishers/{publisher}/artifacttypes/vmimage/offers/{offer}/skus") - @Fallback(EmptyListOnNotFoundOr404.class) - List<SKU> listSKUs(@PathParam("publisher") String publisher, @PathParam("offer") String offer); - - /** - * List Versions in SKU - */ - @Named("version:list") - @GET - @Path("/publishers/{publisher}/artifacttypes/vmimage/offers/{offer}/skus/{sku}/versions") - @Fallback(EmptyListOnNotFoundOr404.class) - List<Version> listVersions(@PathParam("publisher") String publisher, @PathParam("offer") String offer, - @PathParam("sku") String sku); - - /** - * Get the details of a Version - */ - @Named("version:get") - @GET - @Path("/publishers/{publisher}/artifacttypes/vmimage/offers/{offer}/skus/{sku}/versions/{version}") - @Fallback(EmptyListOnNotFoundOr404.class) - Version getVersion(@PathParam("publisher") String publisher, @PathParam("offer") String offer, - @PathParam("sku") String sku, @PathParam("version") String version); - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java deleted file mode 100644 index 75af4ff..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/PublicIPAddressApi.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.util.List; -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.PublicIPAddress; -import org.jclouds.azurecompute.arm.domain.PublicIPAddressProperties; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.FalseOn204; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/publicIPAddresses") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface PublicIPAddressApi { - - @Named("publicipaddress:list") - @SelectJson("value") - @GET - @Fallback(EmptyListOnNotFoundOr404.class) - List<PublicIPAddress> list(); - - @Named("publicipaddress:create_or_update") - @Path("/{publicipaddressname}") - @MapBinder(BindToJsonPayload.class) - @PUT - PublicIPAddress createOrUpdate(@PathParam("publicipaddressname") String publicipaddressname, - @PayloadParam("location") String location, - @Nullable @PayloadParam("tags") Map<String, String> tags, - @PayloadParam("properties") PublicIPAddressProperties properties); - - @Named("publicipaddress:get") - @Path("/{publicipaddressname}") - @GET - @Fallback(NullOnNotFoundOr404.class) - PublicIPAddress get(@PathParam("publicipaddressname") String publicipaddressname); - - @Named("publicipaddress:delete") - @Path("/{publicipaddressname}") - @DELETE - @ResponseParser(FalseOn204.class) - boolean delete(@PathParam("publicipaddressname") String publicipaddressname); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java deleted file mode 100644 index 7c51621..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceGroupApi.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.io.Closeable; -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Resource; -import org.jclouds.azurecompute.arm.domain.ResourceGroup; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PATCH; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -/** - * The Azure Resource Manager API includes operations for managing resource groups in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn790546.aspx">docs</a> - */ -@Path("/resourcegroups") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface ResourceGroupApi extends Closeable{ - - @Named("resourcegroup:list") - @SelectJson("value") - @GET - @Fallback(EmptyListOnNotFoundOr404.class) - List<ResourceGroup> list(); - - @Named("resourcegroup:create") - @PUT - @Path("/{name}") - @MapBinder(BindToJsonPayload.class) - ResourceGroup create(@PathParam("name") String name, @PayloadParam("location") String location, @Nullable @PayloadParam("tags") Map<String, String> tags); - - @Named("resourcegroup:get") - @GET - @Path("/{name}") - @Fallback(NullOnNotFoundOr404.class) - @Nullable - ResourceGroup get(@PathParam("name") String name); - - @Named("resourcegroup:resources") - @GET - @Path("/{name}/resources") - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<Resource> resources(@PathParam("name") String name); - - @Named("resourcegroup:update") - @PATCH - @Path("/{name}") - @MapBinder(BindToJsonPayload.class) - ResourceGroup update(@PathParam("name") String name, @Nullable @PayloadParam("tags") Map<String, String> tags); - - @Named("resourcegroup:delete") - @DELETE - @ResponseParser(URIParser.class) - @Path("/{name}") - @Fallback(NullOnNotFoundOr404.class) - URI delete(@PathParam("name") String name); -} - http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.java deleted file mode 100644 index 56dd0d4..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/ResourceProviderApi.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.io.Closeable; -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.ResourceProviderMetaData; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SelectJson; - -/** - * The Azure Resource Provider API provides information about a resource provider and its supported resource types. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/azure/dn790534.aspx">docs</a> - */ -@Path("/providers") - -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface ResourceProviderApi extends Closeable { - - @Named("providers:get") - @GET - @Path("/{namespace}") - @SelectJson("resourceTypes") - @Fallback(NullOnNotFoundOr404.class) - @Nullable - List<ResourceProviderMetaData> get(@PathParam("namespace") String namespace); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java deleted file mode 100644 index 0c9399c..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/StorageAccountApi.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.net.URI; -import java.util.List; -import java.util.Map; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks; -import org.jclouds.azurecompute.arm.domain.Availability; -import org.jclouds.azurecompute.arm.domain.StorageService; -import org.jclouds.azurecompute.arm.domain.StorageServiceKeys; -import org.jclouds.azurecompute.arm.domain.StorageServiceUpdateParams; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.FalseOn204; -import org.jclouds.azurecompute.arm.functions.URIParser; -import org.jclouds.javax.annotation.Nullable; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PATCH; -import org.jclouds.rest.annotations.Payload; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -/** - * The Azure Resource Management API includes operations for managing the storage accounts in your subscription. - * - * @see <a href="https://msdn.microsoft.com/en-us/library/mt163683.aspx">docs</a> - */ -@Path("/") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface StorageAccountApi { - - /** - * The List Storage Accounts operation lists the storage accounts that are available in the specified subscription - * and resource group. - * https://msdn.microsoft.com/en-us/library/mt163559.aspx - */ - @Named("storageaccount:list") - @Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts") - @GET - @SelectJson("value") - @Fallback(Fallbacks.EmptyListOnNotFoundOr404.class) - List<StorageService> list(); - - /** - * The Create Storage Account asynchronous operation creates a new storage account in Microsoft Azure. - * https://msdn.microsoft.com/en-us/library/mt163564.aspx - * PUT - */ - @Named("storageaccount:create") - @Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}") - @ResponseParser(URIParser.class) - @MapBinder(BindToJsonPayload.class) - @PUT - URI create(@PathParam("storageAccountName") String storageAccountName, - @PayloadParam("location") String location, - @Nullable @PayloadParam("tags") Map<String, String> tags, - @PayloadParam("properties") Map<String, String> properties); - - /** - * The Check Storage Account Name Availability operation checks to see if the specified storage account name is - * available, or if it has already been taken. https://msdn.microsoft.com/en-us/library/mt163642.aspx - * POST - */ - @Named("CheckStorageAccountNameAvailability") - @POST - @Payload("%7B\"name\":\"{name}\",\"type\":\"Microsoft.Storage/storageAccounts\"%7D") - @Path("/providers/Microsoft.Storage/checkNameAvailability") - @Produces(MediaType.APPLICATION_JSON) - Availability isAvailable(@PayloadParam("name") String storageAccountName); - - /** - * The Get Storage Account Properties operation returns system properties for the specified storage account. - * https://msdn.microsoft.com/en-us/library/mt163553.aspx - */ - @Named("storageaccountproperty:get") - @GET - @Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) - StorageService get(@PathParam("storageAccountName") String storageAccountName); - - /** - * The Get Storage Keys operation returns the primary and secondary access keys for the specified storage account. - * https://msdn.microsoft.com/en-us/library/mt163589.aspx - * POST - */ - @Named("storageaccountkey:get") - @POST - @Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/listKeys") - @Fallback(Fallbacks.NullOnNotFoundOr404.class) - StorageServiceKeys getKeys(@PathParam("storageAccountName") String storageAccountName); - - /** - * https://msdn.microsoft.com/en-us/library/mt163567.aspx - * POST - */ - @Named("RegenerateStorageAccountKeys") - @POST - @Payload("%7B\"keyName\":\"{keyName}\"%7D") - @Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccount}/regenerateKey") - @Produces(MediaType.APPLICATION_JSON) - StorageServiceKeys regenerateKeys(@PathParam("storageAccount") String storageAccount, - @PayloadParam("keyName") String keyName); - - /** - * The Update Storage Account asynchronous operation updates the label, the description, and enables or disables the - * geo-replication status for the specified storage account. https://msdn.microsoft.com/en-us/library/mt163639.aspx - * PATCH - */ - @Named("storageaccount:update") - @PATCH - @MapBinder(BindToJsonPayload.class) - @Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}") - StorageServiceUpdateParams update( - @PathParam("storageAccountName") String storageAccountName, - @Nullable @PayloadParam("tags") Map<String, String> tags, - @PayloadParam("properties") StorageServiceUpdateParams.StorageServiceUpdateProperties properties); - - /** - * https://msdn.microsoft.com/en-us/library/mt163652.aspx - * DELETE - */ - @Named("storageaccount:delete") - @DELETE - @ResponseParser(FalseOn204.class) - @Path("/resourcegroups/{resourceGroup}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}") - boolean delete(@PathParam("storageAccountName") String storageAccountName); - -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java deleted file mode 100644 index 8f30d6c..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/SubnetApi.java +++ /dev/null @@ -1,74 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.PUT; -import javax.ws.rs.Path; -import javax.ws.rs.PathParam; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.Fallbacks.NullOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.Subnet; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.azurecompute.arm.functions.FalseOn204; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.MapBinder; -import org.jclouds.rest.annotations.PayloadParam; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.ResponseParser; -import org.jclouds.rest.annotations.SelectJson; -import org.jclouds.rest.binders.BindToJsonPayload; - -@Path("/resourcegroups/{resourcegroup}/providers/Microsoft.Network/virtualNetworks/{virtualnetwork}/subnets") - -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface SubnetApi { - - @Named("subnet:list") - @SelectJson("value") - @GET - @Fallback(EmptyListOnNotFoundOr404.class) - List<Subnet> list(); - - @Named("subnet:create_or_update") - @Path("/{subnetname}") - @MapBinder(BindToJsonPayload.class) - @PUT - Subnet createOrUpdate(@PathParam("subnetname") String name, - @PayloadParam("properties") Subnet.SubnetProperties properties); - - @Named("subnet:get") - @Path("/{subnetname}") - @GET - @Fallback(NullOnNotFoundOr404.class) - Subnet get(@PathParam("subnetname") String subnetname); - - @Named("subnet:delete") - @Path("/{subnetname}") - @DELETE - @ResponseParser(FalseOn204.class) - boolean delete(@PathParam("subnetname") String subnetname); -} http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/ac03bac4/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java ---------------------------------------------------------------------- diff --git a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java b/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java deleted file mode 100644 index b5917ce..0000000 --- a/azurecompute-arm/src/main/java/org/jclouds/azurecompute/arm/features/VMSizeApi.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.jclouds.azurecompute.arm.features; - -import java.util.List; - -import javax.inject.Named; -import javax.ws.rs.Consumes; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.core.MediaType; - -import org.jclouds.Fallbacks.EmptyListOnNotFoundOr404; -import org.jclouds.azurecompute.arm.domain.VMSize; -import org.jclouds.azurecompute.arm.filters.ApiVersionFilter; -import org.jclouds.oauth.v2.filters.OAuthFilter; -import org.jclouds.rest.annotations.Fallback; -import org.jclouds.rest.annotations.RequestFilters; -import org.jclouds.rest.annotations.SelectJson; - -@Path("/providers/Microsoft.Compute/locations/{location}/vmSizes") -@RequestFilters({ OAuthFilter.class, ApiVersionFilter.class }) -@Consumes(MediaType.APPLICATION_JSON) -public interface VMSizeApi { - - @Named("vmSizes:list") - @GET - @SelectJson("value") - @Fallback(EmptyListOnNotFoundOr404.class) - List<VMSize> list(); -}
