Export-ODataEndpointProxy

Generates a module that contains cmdlets to manage an OData endpoint.

Syntax

Export-ODataEndpointProxy
      [-Uri] <String>
      [-OutputModule] <String>
      [[-MetadataUri] <String>]
      [[-Credential] <PSCredential>]
      [[-CreateRequestMethod] <String>]
      [[-UpdateRequestMethod] <String>]
      [[-CmdletAdapter] <String>]
      [[-ResourceNameMapping] <Hashtable>]
      [-Force]
      [[-CustomData] <Hashtable>]
      [-AllowClobber]
      [-AllowUnsecureConnection]
      [[-Headers] <Hashtable>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

The Export-ODataEndpointProxy cmdlet uses the metadata of an OData endpoint to generate a module that contains cmdlets you can use to manage that OData endpoint. The module is based on CDXML. After this cmdlet generates the module, it saves that module to the path and file name specified by the OutputModule parameter.

Export-ODataEndpointProxy generates cmdlets for create, read, update, and delete (CRUD) operations, non-CRUD actions, and association manipulation.

Export-ODataEndpointProxy generates one CDXML file per endpoint resource. You can edit these CDXML files after the module is generated. For example, if you want to change the noun or verb names of the cmdlets to align with Windows PowerShell cmdlet naming guidelines, you can modify the file.

Every cmdlet in a generated module must include a ConnectionURI parameter in order to connect to the endpoint that the module manages.

Examples

Example 1: Generate a module to manage a retail web service endpoint

PS C:\> Export-ODataEndpointProxy -Uri 'http://services.odata.org/v3/(S(snyobsk1hhutkb2yulwldgf1))/odata/odata.svc' -MetadataUri 'http://services.odata.org/v3/(S(snyobsk1hhutkb2yulwldgf1))/odata/odata.svc/$metadata' -AllowUnsecureConnection -OutputModule 'C:\Users\user\GeneratedScript.psm1' -ResourceNameMapping @{Products = 'Merchandise'}

This command generates a module to manage a retail service endpoint. The command specifies the URI of the endpoint and the URI of the endpoint metadata. The command also provides an output path and script module name as the value of the OutputModule parameter. For the value of the ResourceNameMapping parameter, the command provides a hashtable that maps the resource collection name to the desired noun for the cmdlet set. In this example, Products is the resource collection name and Merchandise is the noun. To allow connections to non-SSL sites, HTTP, as opposed to HTTPS, add the AllowUnsecureConnection parameter.

Parameters

-AllowClobber

Indicates that this cmdlet replaces an existing module.

Type:SwitchParameter
Position:10
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-AllowUnsecureConnection

Indicates that this module can connect to URIs that are not SSL-secured. The module can manage HTTP sites in addition to HTTPS sites.

Type:SwitchParameter
Position:11
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CmdletAdapter

Specifies the cmdlet adapter. The acceptable values for this parameter are: ODataAdapter and NetworkControllerAdapter.

Type:String
Accepted values:ODataAdapter, NetworkControllerAdapter, ODataV4Adapter
Position:6
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CreateRequestMethod

Specifies the request method. The acceptable values for this parameter are: PUT, POST, and PATCH.

Type:String
Accepted values:Put, Post, Patch
Position:4
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Specifies a user account that has access to the OData endpoint. The default value is the current user. If a remote computer runs Windows Vista or a later release of the Windows operating system, the cmdlet prompts you for credentials.

Type:PSCredential
Position:3
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-CustomData

Specifies a hash table of custom data.

Type:Hashtable
Position:9
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

Indicates that this cmdlet overwrites an existing generated module of the same name in an existing Modules folder.

Type:SwitchParameter
Position:8
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Headers

Specifies the headers of the web request. Enter a hash table or dictionary.

Type:Hashtable
Position:12
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-MetadataUri

Specifies the URI of the metadata of the endpoint.

Type:String
Position:2
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-OutputModule

Specifies the path and module name to which this cmdlet saves the generated module of proxy commands.

This cmdlet copies a binary module, module manifest, and formatting file, if applicable, to the specified folder. If you specify only the name of the module, Export-ODataEndpointProxy saves the module in the $HOME\Documents\WindowsPowerShell\Modules folder. If you specify a path, the cmdlet creates the module folder in that path.

Type:String
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-ResourceNameMapping

Specifies a hashtable that contains mappings that let you customize the generated cmdlets. In this hashtable, the resource collection name is the key. The desired cmdlet noun is the value.

For example, in the hash table @{Products = 'Merchandise'}, Products is the resource collection name that serves as the key. Merchandise is the resulting cmdlet noun. The generated cmdlet names might not align to Windows PowerShell cmdlet naming guidelines. You can modify the resource CDXML file to change the cmdlet names after this cmdlet creates the module. For more information, see Strongly Encouraged Development Guidelines.

Type:Hashtable
Position:7
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UpdateRequestMethod

Specifies the update request method. The acceptable values for this parameter are: PUT, POST, and PATCH.

Type:String
Accepted values:Put, Post, Patch
Position:5
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Uri

Specifies the URI of the endpoint.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False