// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.gcp.projects;

import com.pulumi.core.Output;
import com.pulumi.core.TypeShape;
import com.pulumi.deployment.Deployment;
import com.pulumi.deployment.InvokeOptions;
import com.pulumi.gcp.Utilities;
import com.pulumi.gcp.projects.inputs.GetIamPolicyArgs;
import com.pulumi.gcp.projects.inputs.GetIamPolicyPlainArgs;
import com.pulumi.gcp.projects.inputs.GetOrganizationPolicyArgs;
import com.pulumi.gcp.projects.inputs.GetOrganizationPolicyPlainArgs;
import com.pulumi.gcp.projects.inputs.GetProjectArgs;
import com.pulumi.gcp.projects.inputs.GetProjectPlainArgs;
import com.pulumi.gcp.projects.inputs.GetProjectServiceArgs;
import com.pulumi.gcp.projects.inputs.GetProjectServicePlainArgs;
import com.pulumi.gcp.projects.outputs.GetIamPolicyResult;
import com.pulumi.gcp.projects.outputs.GetOrganizationPolicyResult;
import com.pulumi.gcp.projects.outputs.GetProjectResult;
import com.pulumi.gcp.projects.outputs.GetProjectServiceResult;
import java.util.concurrent.CompletableFuture;

public final class ProjectsFunctions {
    /**
     * Retrieves the current IAM policy data for a project.
     * 
     * ## example
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetIamPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getIamPolicy(GetIamPolicyArgs.builder()
     *             .project(&#34;myproject&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetIamPolicyResult> getIamPolicy(GetIamPolicyArgs args) {
        return getIamPolicy(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the current IAM policy data for a project.
     * 
     * ## example
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetIamPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getIamPolicy(GetIamPolicyArgs.builder()
     *             .project(&#34;myproject&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetIamPolicyResult> getIamPolicyPlain(GetIamPolicyPlainArgs args) {
        return getIamPolicyPlain(args, InvokeOptions.Empty);
    }
    /**
     * Retrieves the current IAM policy data for a project.
     * 
     * ## example
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetIamPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getIamPolicy(GetIamPolicyArgs.builder()
     *             .project(&#34;myproject&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetIamPolicyResult> getIamPolicy(GetIamPolicyArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("gcp:projects/getIamPolicy:getIamPolicy", TypeShape.of(GetIamPolicyResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieves the current IAM policy data for a project.
     * 
     * ## example
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetIamPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getIamPolicy(GetIamPolicyArgs.builder()
     *             .project(&#34;myproject&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetIamPolicyResult> getIamPolicyPlain(GetIamPolicyPlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("gcp:projects/getIamPolicy:getIamPolicy", TypeShape.of(GetIamPolicyResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Allows management of Organization policies for a Google Project. For more information see
     * [the official
     * documentation](https://cloud.google.com/resource-manager/docs/organization-policy/overview)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetOrganizationPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getOrganizationPolicy(GetOrganizationPolicyArgs.builder()
     *             .project(&#34;project-id&#34;)
     *             .constraint(&#34;constraints/serviceuser.services&#34;)
     *             .build());
     * 
     *         ctx.export(&#34;version&#34;, policy.applyValue(getOrganizationPolicyResult -&gt; getOrganizationPolicyResult.version()));
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetOrganizationPolicyResult> getOrganizationPolicy(GetOrganizationPolicyArgs args) {
        return getOrganizationPolicy(args, InvokeOptions.Empty);
    }
    /**
     * Allows management of Organization policies for a Google Project. For more information see
     * [the official
     * documentation](https://cloud.google.com/resource-manager/docs/organization-policy/overview)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetOrganizationPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getOrganizationPolicy(GetOrganizationPolicyArgs.builder()
     *             .project(&#34;project-id&#34;)
     *             .constraint(&#34;constraints/serviceuser.services&#34;)
     *             .build());
     * 
     *         ctx.export(&#34;version&#34;, policy.applyValue(getOrganizationPolicyResult -&gt; getOrganizationPolicyResult.version()));
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetOrganizationPolicyResult> getOrganizationPolicyPlain(GetOrganizationPolicyPlainArgs args) {
        return getOrganizationPolicyPlain(args, InvokeOptions.Empty);
    }
    /**
     * Allows management of Organization policies for a Google Project. For more information see
     * [the official
     * documentation](https://cloud.google.com/resource-manager/docs/organization-policy/overview)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetOrganizationPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getOrganizationPolicy(GetOrganizationPolicyArgs.builder()
     *             .project(&#34;project-id&#34;)
     *             .constraint(&#34;constraints/serviceuser.services&#34;)
     *             .build());
     * 
     *         ctx.export(&#34;version&#34;, policy.applyValue(getOrganizationPolicyResult -&gt; getOrganizationPolicyResult.version()));
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetOrganizationPolicyResult> getOrganizationPolicy(GetOrganizationPolicyArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("gcp:projects/getOrganizationPolicy:getOrganizationPolicy", TypeShape.of(GetOrganizationPolicyResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Allows management of Organization policies for a Google Project. For more information see
     * [the official
     * documentation](https://cloud.google.com/resource-manager/docs/organization-policy/overview)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetOrganizationPolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var policy = ProjectsFunctions.getOrganizationPolicy(GetOrganizationPolicyArgs.builder()
     *             .project(&#34;project-id&#34;)
     *             .constraint(&#34;constraints/serviceuser.services&#34;)
     *             .build());
     * 
     *         ctx.export(&#34;version&#34;, policy.applyValue(getOrganizationPolicyResult -&gt; getOrganizationPolicyResult.version()));
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetOrganizationPolicyResult> getOrganizationPolicyPlain(GetOrganizationPolicyPlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("gcp:projects/getOrganizationPolicy:getOrganizationPolicy", TypeShape.of(GetOrganizationPolicyResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieve information about a set of projects based on a filter. See the
     * [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list)
     * for more details.
     * 
     * ## Example Usage
     * ### Searching For Projects About To Be Deleted In An Org
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectArgs;
     * import com.pulumi.gcp.organizations.OrganizationsFunctions;
     * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-org-projects = ProjectsFunctions.getProject(GetProjectArgs.builder()
     *             .filter(&#34;parent.id:012345678910 lifecycleState:DELETE_REQUESTED&#34;)
     *             .build());
     * 
     *         final var deletion-candidate = OrganizationsFunctions.getProject(GetProjectArgs.builder()
     *             .projectId(my_org_projects.projects()[0].projectId())
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetProjectResult> getProject(GetProjectArgs args) {
        return getProject(args, InvokeOptions.Empty);
    }
    /**
     * Retrieve information about a set of projects based on a filter. See the
     * [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list)
     * for more details.
     * 
     * ## Example Usage
     * ### Searching For Projects About To Be Deleted In An Org
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectArgs;
     * import com.pulumi.gcp.organizations.OrganizationsFunctions;
     * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-org-projects = ProjectsFunctions.getProject(GetProjectArgs.builder()
     *             .filter(&#34;parent.id:012345678910 lifecycleState:DELETE_REQUESTED&#34;)
     *             .build());
     * 
     *         final var deletion-candidate = OrganizationsFunctions.getProject(GetProjectArgs.builder()
     *             .projectId(my_org_projects.projects()[0].projectId())
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetProjectResult> getProjectPlain(GetProjectPlainArgs args) {
        return getProjectPlain(args, InvokeOptions.Empty);
    }
    /**
     * Retrieve information about a set of projects based on a filter. See the
     * [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list)
     * for more details.
     * 
     * ## Example Usage
     * ### Searching For Projects About To Be Deleted In An Org
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectArgs;
     * import com.pulumi.gcp.organizations.OrganizationsFunctions;
     * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-org-projects = ProjectsFunctions.getProject(GetProjectArgs.builder()
     *             .filter(&#34;parent.id:012345678910 lifecycleState:DELETE_REQUESTED&#34;)
     *             .build());
     * 
     *         final var deletion-candidate = OrganizationsFunctions.getProject(GetProjectArgs.builder()
     *             .projectId(my_org_projects.projects()[0].projectId())
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetProjectResult> getProject(GetProjectArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("gcp:projects/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Retrieve information about a set of projects based on a filter. See the
     * [REST API](https://cloud.google.com/resource-manager/reference/rest/v1/projects/list)
     * for more details.
     * 
     * ## Example Usage
     * ### Searching For Projects About To Be Deleted In An Org
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectArgs;
     * import com.pulumi.gcp.organizations.OrganizationsFunctions;
     * import com.pulumi.gcp.organizations.inputs.GetProjectArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-org-projects = ProjectsFunctions.getProject(GetProjectArgs.builder()
     *             .filter(&#34;parent.id:012345678910 lifecycleState:DELETE_REQUESTED&#34;)
     *             .build());
     * 
     *         final var deletion-candidate = OrganizationsFunctions.getProject(GetProjectArgs.builder()
     *             .projectId(my_org_projects.projects()[0].projectId())
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetProjectResult> getProjectPlain(GetProjectPlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("gcp:projects/getProject:getProject", TypeShape.of(GetProjectResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Verify the API service for the Google Cloud Platform project to see if it is enabled or not.
     * 
     * For a list of services available, visit the [API library page](https://console.cloud.google.com/apis/library)
     * or run `gcloud services list --available`.
     * 
     * This datasource requires the [Service Usage API](https://console.cloud.google.com/apis/library/serviceusage.googleapis.com)
     * to use.
     * 
     * To get more information about `gcp.projects.Service`, see:
     * 
     * * [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1/services)
     * * How-to Guides
     *     * [Enabling and Disabling Services](https://cloud.google.com/service-usage/docs/enable-disable)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectServiceArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-project-service = ProjectsFunctions.getProjectService(GetProjectServiceArgs.builder()
     *             .service(&#34;my-project-service&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetProjectServiceResult> getProjectService(GetProjectServiceArgs args) {
        return getProjectService(args, InvokeOptions.Empty);
    }
    /**
     * Verify the API service for the Google Cloud Platform project to see if it is enabled or not.
     * 
     * For a list of services available, visit the [API library page](https://console.cloud.google.com/apis/library)
     * or run `gcloud services list --available`.
     * 
     * This datasource requires the [Service Usage API](https://console.cloud.google.com/apis/library/serviceusage.googleapis.com)
     * to use.
     * 
     * To get more information about `gcp.projects.Service`, see:
     * 
     * * [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1/services)
     * * How-to Guides
     *     * [Enabling and Disabling Services](https://cloud.google.com/service-usage/docs/enable-disable)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectServiceArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-project-service = ProjectsFunctions.getProjectService(GetProjectServiceArgs.builder()
     *             .service(&#34;my-project-service&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetProjectServiceResult> getProjectServicePlain(GetProjectServicePlainArgs args) {
        return getProjectServicePlain(args, InvokeOptions.Empty);
    }
    /**
     * Verify the API service for the Google Cloud Platform project to see if it is enabled or not.
     * 
     * For a list of services available, visit the [API library page](https://console.cloud.google.com/apis/library)
     * or run `gcloud services list --available`.
     * 
     * This datasource requires the [Service Usage API](https://console.cloud.google.com/apis/library/serviceusage.googleapis.com)
     * to use.
     * 
     * To get more information about `gcp.projects.Service`, see:
     * 
     * * [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1/services)
     * * How-to Guides
     *     * [Enabling and Disabling Services](https://cloud.google.com/service-usage/docs/enable-disable)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectServiceArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-project-service = ProjectsFunctions.getProjectService(GetProjectServiceArgs.builder()
     *             .service(&#34;my-project-service&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static Output<GetProjectServiceResult> getProjectService(GetProjectServiceArgs args, InvokeOptions options) {
        return Deployment.getInstance().invoke("gcp:projects/getProjectService:getProjectService", TypeShape.of(GetProjectServiceResult.class), args, Utilities.withVersion(options));
    }
    /**
     * Verify the API service for the Google Cloud Platform project to see if it is enabled or not.
     * 
     * For a list of services available, visit the [API library page](https://console.cloud.google.com/apis/library)
     * or run `gcloud services list --available`.
     * 
     * This datasource requires the [Service Usage API](https://console.cloud.google.com/apis/library/serviceusage.googleapis.com)
     * to use.
     * 
     * To get more information about `gcp.projects.Service`, see:
     * 
     * * [API documentation](https://cloud.google.com/service-usage/docs/reference/rest/v1/services)
     * * How-to Guides
     *     * [Enabling and Disabling Services](https://cloud.google.com/service-usage/docs/enable-disable)
     * 
     * ## Example Usage
     * ```java
     * package generated_program;
     * 
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.gcp.projects.ProjectsFunctions;
     * import com.pulumi.gcp.projects.inputs.GetProjectServiceArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * 
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     * 
     *     public static void stack(Context ctx) {
     *         final var my-project-service = ProjectsFunctions.getProjectService(GetProjectServiceArgs.builder()
     *             .service(&#34;my-project-service&#34;)
     *             .build());
     * 
     *     }
     * }
     * ```
     * 
     */
    public static CompletableFuture<GetProjectServiceResult> getProjectServicePlain(GetProjectServicePlainArgs args, InvokeOptions options) {
        return Deployment.getInstance().invokeAsync("gcp:projects/getProjectService:getProjectService", TypeShape.of(GetProjectServiceResult.class), args, Utilities.withVersion(options));
    }
}
