## Retrieve

`client.Zones.Applications.Dependencies.Get(ctx, dependencyID, query) (*Resource, error)`

**get** `/zones/{zoneId}/applications/{id}/dependencies/{dependencyId}`

Retrieves a specific resource dependency of an application

### Parameters

- `dependencyID string`

- `query ZoneApplicationDependencyGetParams`

  - `ZoneID param.Field[string]`

  - `ID param.Field[string]`

### Returns

- `type Resource struct{…}`

  A Resource is a system that exposes protected information or functionality. It requires authentication of the requesting actor, which may be a user or application, before allowing access.

  - `ID string`

    Unique identifier of the resource

  - `ApplicationType ResourceApplicationType`

    The expected type of client for this credential. Native clients must use localhost URLs for redirect_uris or URIs with custom schemes. Web clients must use https URLs and must not use localhost as the hostname.

    - `const ResourceApplicationTypeNative ResourceApplicationType = "native"`

    - `const ResourceApplicationTypeWeb ResourceApplicationType = "web"`

  - `CreatedAt Time`

    Entity creation timestamp

  - `Identifier string`

    User specified identifier, unique within the zone

  - `Name string`

    Human-readable name

  - `OrganizationID string`

    Organization that owns this resource

  - `OwnerType ResourceOwnerType`

    Who owns this resource. Platform-owned resources cannot be modified via API.

    - `const ResourceOwnerTypePlatform ResourceOwnerType = "platform"`

    - `const ResourceOwnerTypeCustomer ResourceOwnerType = "customer"`

  - `Prefix bool`

    When true, the resource identifier is treated as a URI prefix, protecting all URLs that share the identifier as a prefix at path/query/fragment boundaries. Protocol and hostname must match exactly. When multiple prefix resources satisfy an identifier query, the resource with the longest prefix is matched.

  - `Slug string`

    URL-safe identifier, unique within the zone

  - `UpdatedAt Time`

    Entity update timestamp

  - `ZoneID string`

    Zone this resource belongs to

  - `Application Application`

    An Application is a software system with an associated identity that can access Resources. It may act on its own behalf (machine-to-machine) or on behalf of a user (delegated access).

    - `ID string`

      Unique identifier of the application

    - `Consent ApplicationConsent`

      Consent mode for the application. 'implicit' means consent is automatically granted, 'required' means explicit user consent is needed.

      - `const ApplicationConsentImplicit ApplicationConsent = "implicit"`

      - `const ApplicationConsentRequired ApplicationConsent = "required"`

    - `CreatedAt Time`

      Entity creation timestamp

    - `DependenciesCount int64`

      Number of resource dependencies

    - `Identifier string`

      User specified identifier, unique within the zone

    - `Name string`

      Human-readable name

    - `OrganizationID string`

      Organization that owns this application

    - `OwnerType ApplicationOwnerType`

      Who owns this application. Platform-owned applications cannot be modified via API.

      - `const ApplicationOwnerTypePlatform ApplicationOwnerType = "platform"`

      - `const ApplicationOwnerTypeCustomer ApplicationOwnerType = "customer"`

    - `Slug string`

      URL-safe identifier, unique within the zone

    - `UpdatedAt Time`

      Entity update timestamp

    - `ZoneID string`

      Zone this application belongs to

    - `Description string`

      Human-readable description

    - `Metadata Metadata`

      Entity metadata

      - `DocsURL string`

        Documentation URL

    - `Protocols ApplicationProtocols`

      Protocol-specific configuration

      - `Oauth2 ApplicationProtocolsOauth2`

        OAuth 2.0 protocol configuration

        - `PostLogoutRedirectUris []string`

          OAuth 2.0 post-logout redirect URIs for this application

        - `RedirectUris []string`

          OAuth 2.0 redirect URIs for this application

  - `ApplicationID string`

    ID of the application that provides this resource

  - `CredentialLifetimeSeconds int64`

    Credential lifetime override in seconds. When set, overrides the default credential lifetime for this resource. When absent, the default from the provider or zone is used.

  - `CredentialProvider Provider`

    A Provider is a system that supplies access to Resources and allows actors (Users or Applications) to authenticate.

    - `ID string`

      Unique identifier of the provider

    - `CreatedAt Time`

      Entity creation timestamp

    - `Identifier string`

      User specified identifier, unique within the zone

    - `Name string`

      Human-readable name

    - `OrganizationID string`

      Organization that owns this provider

    - `OwnerType ProviderOwnerType`

      Who owns this provider. Platform-owned providers cannot be modified via API.

      - `const ProviderOwnerTypePlatform ProviderOwnerType = "platform"`

      - `const ProviderOwnerTypeCustomer ProviderOwnerType = "customer"`

    - `Slug string`

      URL-safe identifier, unique within the zone

    - `UpdatedAt Time`

      Entity update timestamp

    - `ZoneID string`

      Zone this provider belongs to

    - `ClientID string`

      OAuth 2.0 client identifier

    - `ClientSecretSet bool`

      Indicates whether a client secret is configured

    - `Description string`

      Human-readable description

    - `Metadata any`

      Provider metadata

    - `Protocols ProviderProtocols`

      Protocol-specific configuration

      - `Oauth2 ProviderProtocolsOauth2`

        OAuth 2.0 protocol configuration

        - `Issuer string`

          OIDC issuer URL used for discovery and token validation.

        - `AuthorizationEndpoint string`

        - `AuthorizationParameters map[string, string]`

          Custom query parameters appended to authorization redirect URLs. Use for non-standard providers (e.g. Google prompt=consent, access_type=offline).

        - `AuthorizationResourceEnabled bool`

          Whether to include the resource parameter in authorization requests.

        - `AuthorizationResourceParameter string`

          The resource parameter value to include in authorization requests. Defaults to "resource" when authorization_resource_enabled is true.

        - `CodeChallengeMethodsSupported []string`

        - `JwksUri string`

        - `RegistrationEndpoint string`

        - `ScopeParameter string`

          The query parameter name for scopes in authorization requests. Defaults to "scope". Slack v2 uses "user_scope".

        - `ScopeSeparator string`

          The separator character for scope values. Defaults to " " (space). Slack v2 uses ",".

        - `ScopesSupported []string`

        - `TokenEndpoint string`

        - `TokenResponseAccessTokenPointer string`

          Dot-separated path to the access token in the token response body. Defaults to "access_token". Slack v2 uses "authed_user.access_token".

      - `Openid ProviderProtocolsOpenid`

        OpenID Connect protocol configuration

        - `Scopes []string`

          Additional OIDC scopes to request from this provider during authentication (e.g. "groups"). Merged with the default scopes (openid, profile, email).

        - `UserIdentifierClaim string`

          Name of a top-level string claim in this provider's ID Token to use as the user identifier on user creation. When not set, the user's Keycard ID is used.

        - `UserinfoEndpoint string`

    - `Type ProviderType`

      - `const ProviderTypeExternal ProviderType = "external"`

      - `const ProviderTypeKeycardVault ProviderType = "keycard-vault"`

      - `const ProviderTypeKeycardSts ProviderType = "keycard-sts"`

  - `CredentialProviderID string`

    ID of the credential provider for this resource

  - `Description string`

    Human-readable description

  - `Metadata Metadata`

    Entity metadata

    - `DocsURL string`

      Documentation URL

  - `Scopes []string`

    Scopes supported by the resource

  - `WhenAccessing []string`

    List of resource IDs that, when accessed, make this dependency available. Only present when this resource is returned as a dependency.

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/keycardai/keycard-go"
)

func main() {
  client := keycard.NewClient(

  )
  resource, err := client.Zones.Applications.Dependencies.Get(
    context.TODO(),
    "dependencyId",
    keycard.ZoneApplicationDependencyGetParams{
      ZoneID: "zoneId",
      ID: "id",
    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", resource.ID)
}
```
