type=page
status=published
title=list-custom-resources
next=list-domains.html
prev=list-context-services.html
~~~~~~

= list-custom-resources

[[list-custom-resources-1]][[GSRFM00162]][[list-custom-resources]]

== list-custom-resources

Gets all custom resources

[[sthref1453]]

=== Synopsis

[source]
----
asadmin [asadmin-options] list-custom-resources [--help]
[target]
----

[[sthref1454]]

=== Description

The `list-custom-resources` subcommand lists the custom resources.

This subcommand is supported in remote mode only.

[[sthref1455]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.

[[sthref1456]]

=== Operands

target::
  This operand specifies the location of the custom resources. Valid
  targets are:

  `server`;;
    Lists the resources on the default server instance. This is the
    default value
  `domain`;;
    Lists the resources in the domain.
  cluster_name;;
    Lists the resources for every server instance in the cluster.
  instance_name;;
    Lists the resources for a particular server instance.

[[sthref1457]]

=== Examples

[[GSRFM654]][[sthref1458]]

==== Example 1   Listing Custom Resources

This example lists the current custom resources.

[source]
----
asadmin> list-custom-resources
sample_custom_resource01
sample_custom_resource02
Command list-custom-resources executed successfully.
----

[[GSRFM655]][[sthref1459]]

==== Example 2   Using the list-custom-resources command with a target

The following example displays the usage of this command.

[source]
----
asadmin> list-custom-resources --user admin --passwordfile
passwords.txt --host plum --port 4848 target6

sample_custom_resource03
sample_custom_resource04
Command list-custom-resources executed successfully.
----

[[sthref1460]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref1461]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:create-custom-resource.html#create-custom-resource-1[`create-custom-resource`(1)],link:delete-custom-resource.html#delete-custom-resource-1[`delete-custom-resource`(1)]


