1# --------------------------------------------------------------------------
2# Copyright (c) Microsoft Corporation. All rights reserved.
3# Licensed under the MIT License. See License.txt in the project root for
4# license information.
5#
6# Code generated by Microsoft (R) AutoRest Code Generator.
7# Changes may cause incorrect behavior and will be lost if the code is
8# regenerated.
9# --------------------------------------------------------------------------
10# pylint: disable=too-many-lines
11# pylint: disable=too-many-statements
12
13from azure.cli.core.commands.parameters import (
14    get_three_state_flag,
15    get_enum_type
16)
17from azure.cli.core.commands.validators import validate_file_or_dict
18from ..action import (
19    AddSoldTo,
20    AddEnabledAzurePlans,
21    AddLabels
22)
23
24
25def load_arguments(self, _):
26
27    with self.argument_context('billing account list') as c:
28        c.argument('expand', type=str,
29                   help='May be used to expand the soldTo, invoice sections and billing profiles.')
30
31    with self.argument_context('billing account show') as c:
32        c.argument('account_name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a '
33                   'billing account.')
34        c.argument('expand', type=str,
35                   help='May be used to expand the soldTo, invoice sections and billing profiles.')
36
37    with self.argument_context('billing account update') as c:
38        c.argument('account_name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a '
39                   'billing account.')
40        c.argument('display_name', type=str, help='The billing account name.')
41        c.argument('sold_to', action=AddSoldTo, nargs='*', help='The address of the individual or organization that is '
42                   'responsible for the billing account.')
43        c.argument('departments', type=validate_file_or_dict, help='The departments associated to the enrollment. '
44                   'Expected value: json-string/@json-file.')
45        c.argument('enrollment_accounts', type=validate_file_or_dict, help='The accounts associated to the enrollment. '
46                   'Expected value: json-string/@json-file.')
47        c.argument('billing_profiles_value', type=validate_file_or_dict, help='The billing profiles associated with '
48                   'the billing account. Expected value: json-string/@json-file.')
49
50    with self.argument_context('billing account wait') as c:
51        c.argument('account_name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a '
52                   'billing account.')
53        c.argument('expand', type=str,
54                   help='May be used to expand the soldTo, invoice sections and billing profiles.')
55
56    with self.argument_context('billing balance show') as c:
57        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
58        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
59
60    with self.argument_context('billing instruction list') as c:
61        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
62        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
63
64    with self.argument_context('billing instruction show') as c:
65        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
66        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
67        c.argument('name', options_list=['--name', '-n'], type=str, help='Instruction Name.')
68
69    with self.argument_context('billing instruction create') as c:
70        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
71        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
72        c.argument('name', options_list=['--name', '-n'], type=str, help='Instruction Name.')
73        c.argument('amount', type=float, help='The amount budgeted for this billing instruction.')
74        c.argument('start_date', help='The date this billing instruction goes into effect.')
75        c.argument('end_date', help='The date this billing instruction is no longer in effect.')
76        c.argument('creation_date', help='The date this billing instruction was created.')
77
78    with self.argument_context('billing profile list') as c:
79        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
80        c.argument('expand', type=str, help='May be used to expand the invoice sections.')
81
82    with self.argument_context('billing profile show') as c:
83        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
84        c.argument('profile_name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a '
85                   'billing profile.')
86        c.argument('expand', type=str, help='May be used to expand the invoice sections.')
87
88    with self.argument_context('billing profile create') as c:
89        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
90        c.argument('profile_name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a '
91                   'billing profile.')
92        c.argument('display_name', type=str, help='The name of the billing profile.')
93        c.argument('po_number', type=str, help='The purchase order name that will appear on the invoices generated for '
94                   'the billing profile.')
95        c.argument('bill_to', action=AddSoldTo, nargs='*', help='Billing address.')
96        c.argument('invoice_email_opt_in', arg_type=get_three_state_flag(), help='Flag controlling whether the '
97                   'invoices for the billing profile are sent through email.')
98        c.argument('enabled_azure_plans', action=AddEnabledAzurePlans, nargs='*', help='Information about the enabled '
99                   'azure plans.')
100        c.argument('invoice_sections_value', type=validate_file_or_dict, help='The invoice sections associated to the '
101                   'billing profile. Expected value: json-string/@json-file.')
102
103    with self.argument_context('billing profile update') as c:
104        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
105        c.argument('profile_name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a '
106                   'billing profile.')
107        c.argument('display_name', type=str, help='The name of the billing profile.')
108        c.argument('po_number', type=str, help='The purchase order name that will appear on the invoices generated for '
109                   'the billing profile.')
110        c.argument('bill_to', action=AddSoldTo, nargs='*', help='Billing address.')
111        c.argument('invoice_email_opt_in', arg_type=get_three_state_flag(), help='Flag controlling whether the '
112                   'invoices for the billing profile are sent through email.')
113        c.argument('enabled_azure_plans', action=AddEnabledAzurePlans, nargs='*', help='Information about the enabled '
114                   'azure plans.')
115        c.argument('invoice_sections_value', type=validate_file_or_dict, help='The invoice sections associated to the '
116                   'billing profile. Expected value: json-string/@json-file.')
117
118    with self.argument_context('billing profile wait') as c:
119        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
120        c.argument('profile_name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a '
121                   'billing profile.')
122        c.argument('expand', type=str, help='May be used to expand the invoice sections.')
123
124    with self.argument_context('billing customer list') as c:
125        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
126        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
127        c.argument('search', type=str, help='Used for searching customers by their name. Any customer with name '
128                   'containing the search text will be included in the response')
129        c.argument('filter_', options_list=['--filter'], type=str,
130                   help='May be used to filter the list of customers.')
131
132    with self.argument_context('billing customer show') as c:
133        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
134        c.argument('customer_name', options_list=['--name', '-n', '--customer-name'], type=str, help='The ID that '
135                   'uniquely identifies a customer.')
136        c.argument('expand', type=str, help='May be used to expand enabledAzurePlans and resellers')
137
138    with self.argument_context('billing invoice section list') as c:
139        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
140        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
141
142    with self.argument_context('billing invoice section show') as c:
143        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
144        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
145        c.argument('invoice_section_name', options_list=['--name', '-n', '--invoice-section-name'], type=str, help=''
146                   'The ID that uniquely identifies an invoice section.')
147
148    with self.argument_context('billing invoice section create') as c:
149        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
150        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
151        c.argument('invoice_section_name', options_list=['--name', '-n', '--invoice-section-name'], type=str, help=''
152                   'The ID that uniquely identifies an invoice section.')
153        c.argument('display_name', type=str, help='The name of the invoice section.')
154        c.argument('labels', action=AddLabels, nargs='*', help='Dictionary of metadata associated with the invoice '
155                   'section. Expect value: KEY1=VALUE1 KEY2=VALUE2 ...')
156
157    with self.argument_context('billing invoice section update') as c:
158        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
159        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
160        c.argument('invoice_section_name', options_list=['--name', '-n', '--invoice-section-name'], type=str, help=''
161                   'The ID that uniquely identifies an invoice section.')
162        c.argument('display_name', type=str, help='The name of the invoice section.')
163        c.argument('labels', action=AddLabels, nargs='*', help='Dictionary of metadata associated with the invoice '
164                   'section. Expect value: KEY1=VALUE1 KEY2=VALUE2 ...')
165
166    with self.argument_context('billing invoice section wait') as c:
167        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
168        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
169        c.argument('invoice_section_name', options_list=['--name', '-n', '--invoice-section-name'], type=str, help=''
170                   'The ID that uniquely identifies an invoice section.')
171
172    with self.argument_context('billing permission list') as c:
173        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
174        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
175        c.argument('invoice_section_name', type=str, help='The ID that uniquely identifies an invoice section.')
176        c.argument('customer_name', type=str, help='The ID that uniquely identifies a customer.')
177
178    with self.argument_context('billing subscription list') as c:
179        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
180        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
181        c.argument('invoice_section_name', type=str, help='The ID that uniquely identifies an invoice section.')
182        c.argument('customer_name', type=str, help='The ID that uniquely identifies a customer.')
183
184    with self.argument_context('billing subscription show') as c:
185        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
186
187    with self.argument_context('billing subscription update') as c:
188        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
189        c.argument('subscription_billing_status', arg_type=get_enum_type(['Active', 'Inactive', 'Abandoned', 'Deleted',
190                                                                          'Warning']), help='The current billing '
191                   'status of the subscription.')
192        c.argument('cost_center', type=str, help='The cost center applied to the subscription.')
193        c.argument('sku_id', type=str, help='The sku ID of the Azure plan for the subscription.')
194
195    with self.argument_context('billing subscription move') as c:
196        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
197        c.argument('destination_invoice_section_id', type=str, help='The destination invoice section id.')
198
199    with self.argument_context('billing subscription validate-move') as c:
200        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
201        c.argument('destination_invoice_section_id', type=str, help='The destination invoice section id.')
202
203    with self.argument_context('billing subscription wait') as c:
204        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
205
206    with self.argument_context('billing product list') as c:
207        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
208        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
209        c.argument('invoice_section_name', type=str, help='The ID that uniquely identifies an invoice section.')
210        c.argument('filter_', options_list=['--filter'], type=str, help='May be used to filter by product type. The '
211                   'filter supports \'eq\', \'lt\', \'gt\', \'le\', \'ge\', and \'and\'. It does not currently support '
212                   '\'ne\', \'or\', or \'not\'. Tag filter is a key value pair string where key and value are '
213                   'separated by a colon (:).')
214        c.argument('customer_name', type=str, help='The ID that uniquely identifies a customer.')
215
216    with self.argument_context('billing product show') as c:
217        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
218        c.argument('product_name', options_list=['--name', '-n', '--product-name'], type=str, help='The ID that '
219                   'uniquely identifies a product.')
220
221    with self.argument_context('billing product update') as c:
222        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
223        c.argument('product_name', options_list=['--name', '-n', '--product-name'], type=str, help='The ID that '
224                   'uniquely identifies a product.')
225        c.argument('auto_renew', arg_type=get_enum_type(['Off', 'On']), help='Indicates whether auto renewal is turned '
226                   'on or off for a product.')
227        c.argument('status', arg_type=get_enum_type(['Active', 'Inactive', 'PastDue', 'Expiring', 'Expired',
228                                                     'Disabled', 'Cancelled', 'AutoRenew']), help='The current status '
229                   'of the product.')
230        c.argument('billing_frequency', arg_type=get_enum_type(['OneTime', 'Monthly', 'UsageBased']), help='The '
231                   'frequency at which the product will be billed.')
232
233    with self.argument_context('billing product move') as c:
234        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
235        c.argument('product_name', options_list=['--name', '-n', '--product-name'], type=str, help='The ID that '
236                   'uniquely identifies a product.')
237        c.argument('destination_invoice_section_id', type=str, help='The destination invoice section id.')
238
239    with self.argument_context('billing product validate-move') as c:
240        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
241        c.argument('product_name', options_list=['--name', '-n', '--product-name'], type=str, help='The ID that '
242                   'uniquely identifies a product.')
243        c.argument('destination_invoice_section_id', type=str, help='The destination invoice section id.')
244
245    with self.argument_context('billing invoice list') as c:
246        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
247        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
248        c.argument('period_start_date', type=str, help='The start date to fetch the invoices. The date should be '
249                   'specified in MM-DD-YYYY format.')
250        c.argument('period_end_date', type=str, help='The end date to fetch the invoices. The date should be specified '
251                   'in MM-DD-YYYY format.')
252
253    with self.argument_context('billing invoice show') as c:
254        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
255        c.argument('name', options_list=['--name', '-n'], type=str,
256                   help='The ID that uniquely identifies an invoice.')
257
258    with self.argument_context('billing transaction list') as c:
259        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
260        c.argument('invoice_name', type=str, help='The ID that uniquely identifies an invoice.')
261
262    with self.argument_context('billing policy update') as c:
263        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
264        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
265        c.argument('marketplace_purchases', arg_type=get_enum_type(['AllAllowed', 'OnlyFreeAllowed', 'NotAllowed']),
266                   help='The policy that controls whether Azure marketplace purchases are allowed for a billing '
267                   'profile.')
268        c.argument('reservation_purchases', arg_type=get_enum_type(['Allowed', 'NotAllowed']), help='The policy that '
269                   'controls whether Azure reservation purchases are allowed for a billing profile.')
270        c.argument('view_charges', arg_type=get_enum_type(['Allowed', 'NotAllowed']), help='The policy that controls '
271                   'whether users with Azure RBAC access to a subscription can view its charges.')
272
273    with self.argument_context('billing property update') as c:
274        c.argument('cost_center', type=str, help='The cost center applied to the subscription.')
275
276    with self.argument_context('billing role-definition list') as c:
277        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
278        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
279        c.argument('invoice_section_name', type=str, help='The ID that uniquely identifies an invoice section.')
280
281    with self.argument_context('billing role-assignment list') as c:
282        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
283        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
284        c.argument('invoice_section_name', type=str, help='The ID that uniquely identifies an invoice section.')
285
286    with self.argument_context('billing role-assignment delete') as c:
287        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
288        c.argument('profile_name', type=str, help='The ID that uniquely identifies a billing profile.')
289        c.argument('invoice_section_name', type=str, help='The ID that uniquely identifies an invoice section.')
290        c.argument('name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies a role '
291                   'assignment.')
292
293    with self.argument_context('billing agreement list') as c:
294        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
295        c.argument('expand', type=str, help='May be used to expand the participants.')
296
297    with self.argument_context('billing agreement show') as c:
298        c.argument('account_name', type=str, help='The ID that uniquely identifies a billing account.')
299        c.argument('name', options_list=['--name', '-n'], type=str, help='The ID that uniquely identifies an '
300                   'agreement.')
301        c.argument('expand', type=str, help='May be used to expand the participants.')
302